@vuer-ai/vuer-uikit 0.0.120 → 0.1.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 (790) hide show
  1. package/README.md +28 -0
  2. package/dist/SyncScroll/SyncScroll.cjs +13 -13
  3. package/dist/SyncScroll/SyncScroll.mjs +6 -6
  4. package/dist/SyncScroll/index.cjs +13 -13
  5. package/dist/SyncScroll/index.mjs +6 -6
  6. package/dist/SyncScroll/useSyncScroll.d.cts +5 -5
  7. package/dist/SyncScroll/useSyncScroll.d.ts +5 -5
  8. package/dist/{chunk-42WQWP6X.cjs → chunk-22T2AL3G.cjs} +8 -8
  9. package/dist/{chunk-NMRFBO43.mjs → chunk-2IMCDH5J.mjs} +3 -3
  10. package/dist/{chunk-EOLUDKZ3.mjs → chunk-2J466BYZ.mjs} +26 -47
  11. package/dist/{chunk-LVIZRMYN.cjs → chunk-2KBNQ5PY.cjs} +2 -2
  12. package/dist/{chunk-S7CCCMMU.cjs → chunk-34NDAZS6.cjs} +18 -9
  13. package/dist/{chunk-DM43KZU7.cjs → chunk-3F3LBOQJ.cjs} +2 -2
  14. package/dist/chunk-3JMUI4R2.cjs +136 -0
  15. package/dist/{chunk-CWS5PF67.cjs → chunk-3UQ323EB.cjs} +8 -42
  16. package/dist/{chunk-QXFFRQ7E.mjs → chunk-44U6VC46.mjs} +543 -95
  17. package/dist/{chunk-JW456O5K.mjs → chunk-4FB6B2ES.mjs} +1 -1
  18. package/dist/{chunk-66NKH2SV.cjs → chunk-4FIP3EXW.cjs} +6 -6
  19. package/dist/chunk-4SI4QV5R.cjs +14 -0
  20. package/dist/{chunk-IAFCABPY.mjs → chunk-4W7JKZVN.mjs} +3 -2
  21. package/dist/{chunk-EEGQLTSQ.cjs → chunk-4WWGBRQV.cjs} +77 -0
  22. package/dist/chunk-4Y5IF7R5.mjs +322 -0
  23. package/dist/chunk-52GNIM6H.mjs +12 -0
  24. package/dist/{chunk-X6WOCNBX.cjs → chunk-57NITJN5.cjs} +2 -2
  25. package/dist/{chunk-LMYA5IOK.mjs → chunk-5GBMVMLS.mjs} +4 -4
  26. package/dist/{chunk-QWBMDS3S.cjs → chunk-5HT74RHB.cjs} +5 -5
  27. package/dist/{chunk-4ODJAEOM.mjs → chunk-5JYH7TXY.mjs} +1 -1
  28. package/dist/{chunk-2CD4D2BR.cjs → chunk-6CJWNYHL.cjs} +3 -3
  29. package/dist/{chunk-CRX2ZCM2.cjs → chunk-6LTCLQH3.cjs} +6 -1
  30. package/dist/{chunk-WKK5UX2W.mjs → chunk-6U6LRS37.mjs} +2 -2
  31. package/dist/{chunk-4OUQ6NSX.cjs → chunk-6VIKDPCD.cjs} +2 -2
  32. package/dist/{chunk-6D7FGGSX.cjs → chunk-753HUOAI.cjs} +26 -26
  33. package/dist/{chunk-LYGYXV7S.cjs → chunk-7ICRKPIO.cjs} +16 -16
  34. package/dist/chunk-7MKCWXNV.cjs +32 -0
  35. package/dist/{chunk-FMKD5JBL.mjs → chunk-7TD77VF4.mjs} +10 -6
  36. package/dist/{chunk-5ARBIWXX.cjs → chunk-7TXGEIV3.cjs} +10 -10
  37. package/dist/chunk-7WJ73FEI.mjs +43 -0
  38. package/dist/{chunk-SLXM4F24.cjs → chunk-7YFUNCKT.cjs} +9 -9
  39. package/dist/{chunk-LGFWHV23.cjs → chunk-ACGXE2IO.cjs} +2 -2
  40. package/dist/{chunk-IU65XB2K.cjs → chunk-AFALU3AK.cjs} +2 -2
  41. package/dist/{chunk-EGIIZWP3.mjs → chunk-AFR23IX6.mjs} +1 -1
  42. package/dist/{chunk-CXPF274N.mjs → chunk-BK77KKIM.mjs} +1 -1
  43. package/dist/{chunk-4PMXRQXC.cjs → chunk-BNXJ5VBE.cjs} +6 -6
  44. package/dist/{chunk-3DIFS7CO.mjs → chunk-BPCD4L7T.mjs} +1 -1
  45. package/dist/{chunk-JQYMF2FW.cjs → chunk-BSDIS4KS.cjs} +4 -4
  46. package/dist/{chunk-REZAPK6Z.mjs → chunk-BTGAKK3B.mjs} +1 -1
  47. package/dist/{chunk-TB5L3GBP.cjs → chunk-BXJTOIRR.cjs} +584 -133
  48. package/dist/{chunk-35ZN6IW7.mjs → chunk-BYZ7HIIK.mjs} +1 -1
  49. package/dist/{chunk-XS5IUI62.cjs → chunk-BZI74LKX.cjs} +3 -2
  50. package/dist/{chunk-2IS7TXTN.mjs → chunk-CENP2PIB.mjs} +1 -1
  51. package/dist/{chunk-SAXISARG.cjs → chunk-CMO3SLOU.cjs} +2 -2
  52. package/dist/{chunk-CIOLL5LX.mjs → chunk-CN6SZKJZ.mjs} +1 -1
  53. package/dist/chunk-CRY23RMB.mjs +30 -0
  54. package/dist/{chunk-7AAMQGY2.cjs → chunk-CYWVJ3HF.cjs} +7 -7
  55. package/dist/{chunk-EVBYVJTW.mjs → chunk-D2LUQKPM.mjs} +130 -91
  56. package/dist/chunk-DF7WIFZK.cjs +316 -0
  57. package/dist/chunk-DKLVWYTC.cjs +71 -0
  58. package/dist/chunk-DKWLF3KW.mjs +149 -0
  59. package/dist/{chunk-F2LEYFWW.cjs → chunk-DPJPOBUT.cjs} +5 -5
  60. package/dist/{chunk-SR3M2R3S.mjs → chunk-DSQPFXYL.mjs} +22 -24
  61. package/dist/chunk-DVUN6GQI.cjs +21 -0
  62. package/dist/{chunk-7ACZU3BT.mjs → chunk-EG6JETUN.mjs} +1 -1
  63. package/dist/{chunk-T4U3BG2V.mjs → chunk-EGJLY5VZ.mjs} +1 -1
  64. package/dist/{chunk-AE5YDMFT.mjs → chunk-EXM6QMNR.mjs} +3 -3
  65. package/dist/{chunk-H6JGIEAU.mjs → chunk-EYMZP5PL.mjs} +1 -1
  66. package/dist/{chunk-K2ZYSKRU.mjs → chunk-EZ536NLQ.mjs} +1 -1
  67. package/dist/chunk-FRM27RLN.cjs +264 -0
  68. package/dist/chunk-FTB337IJ.cjs +143 -0
  69. package/dist/{chunk-7A5EMDZH.mjs → chunk-G35PQKU5.mjs} +5 -5
  70. package/dist/{chunk-ZJSL6HSL.mjs → chunk-GAAP5JO4.mjs} +1 -1
  71. package/dist/chunk-GHQA7PER.mjs +107 -0
  72. package/dist/{chunk-ND3WJ63Z.cjs → chunk-GVRVRBDU.cjs} +2 -2
  73. package/dist/chunk-GZ2BG42R.mjs +34 -0
  74. package/dist/chunk-H3JRYX2U.mjs +19 -0
  75. package/dist/{chunk-T66ETI7E.mjs → chunk-HBEU2PU2.mjs} +6 -1
  76. package/dist/{chunk-SMXN2KOV.mjs → chunk-HGTL7DFT.mjs} +1 -1
  77. package/dist/{chunk-JFPIUDGT.mjs → chunk-HI4LO6IJ.mjs} +1 -1
  78. package/dist/{chunk-QO2AM6MF.mjs → chunk-HIDTQ4Z2.mjs} +1 -1
  79. package/dist/{chunk-DDU3SPCC.mjs → chunk-HNW2DRPV.mjs} +58 -9
  80. package/dist/{chunk-5AKVDZMA.cjs → chunk-HSUL5OUG.cjs} +14 -13
  81. package/dist/{chunk-EY6PKK4X.cjs → chunk-I2COLDHC.cjs} +2 -2
  82. package/dist/chunk-IAWMCOHS.cjs +45 -0
  83. package/dist/chunk-IM5QVMGO.cjs +2 -0
  84. package/dist/{chunk-UQQBUPGF.mjs → chunk-IPMWGCAI.mjs} +5 -21
  85. package/dist/{chunk-SCUMWMIN.mjs → chunk-ITOTSGSL.mjs} +1 -1
  86. package/dist/{chunk-NJWKR5WR.mjs → chunk-IYTGWOZY.mjs} +1 -1
  87. package/dist/chunk-J74A5LNZ.cjs +179 -0
  88. package/dist/{chunk-CKGEV2JL.cjs → chunk-JDEZ6NNG.cjs} +2 -2
  89. package/dist/chunk-JEWTYDLX.cjs +119 -0
  90. package/dist/{chunk-Q7WCKEXG.cjs → chunk-JF43YF6J.cjs} +3 -3
  91. package/dist/chunk-JTFQFULL.cjs +166 -0
  92. package/dist/{chunk-XQ3MWA3D.mjs → chunk-KXKUQSNY.mjs} +3 -3
  93. package/dist/chunk-L2AKG4VJ.mjs +258 -0
  94. package/dist/{chunk-ZCSJGDX7.mjs → chunk-L2DME42Q.mjs} +1 -1
  95. package/dist/{chunk-K2BQNNEX.cjs → chunk-L6W77P4B.cjs} +8 -8
  96. package/dist/{chunk-N4Y5CBOI.cjs → chunk-LGUQR5AR.cjs} +4 -4
  97. package/dist/{chunk-ZA7WOIIB.mjs → chunk-LHP7FLGK.mjs} +1 -1
  98. package/dist/{chunk-MYZHDWBF.mjs → chunk-LLFE3UHZ.mjs} +10 -10
  99. package/dist/{chunk-332A4MHC.mjs → chunk-LNYUFL3Q.mjs} +1 -1
  100. package/dist/{chunk-BUAWPPXA.cjs → chunk-MQ5DGLVE.cjs} +11 -11
  101. package/dist/{chunk-EXY6WRH4.mjs → chunk-N6KP2HIC.mjs} +2 -2
  102. package/dist/{chunk-V75PKBIV.cjs → chunk-NEJKCSS5.cjs} +9 -9
  103. package/dist/{chunk-KPGZOX2A.cjs → chunk-NHFIDL5X.cjs} +5 -5
  104. package/dist/{chunk-JNV3UBBP.cjs → chunk-NIACIZWY.cjs} +6 -22
  105. package/dist/{chunk-PC5DHSC4.mjs → chunk-NKUK73WB.mjs} +71 -1
  106. package/dist/{chunk-5OZS5UJX.cjs → chunk-NSPAT6XV.cjs} +7 -7
  107. package/dist/chunk-NUBFD3YP.mjs +117 -0
  108. package/dist/{chunk-4BQPIY5Z.mjs → chunk-O2NGB7YP.mjs} +1 -1
  109. package/dist/{chunk-7H7U2X45.cjs → chunk-O3DFVRON.cjs} +17 -13
  110. package/dist/chunk-O57DAVOQ.mjs +1 -0
  111. package/dist/{chunk-S37MJNNP.cjs → chunk-OCADGDGL.cjs} +2 -2
  112. package/dist/{chunk-ZSAPBZ36.mjs → chunk-OW653F7T.mjs} +1 -1
  113. package/dist/{chunk-GRXUYMZJ.cjs → chunk-OX5FXH6W.cjs} +4 -4
  114. package/dist/{chunk-GQYUSBSO.mjs → chunk-P3FBRYWH.mjs} +3 -10
  115. package/dist/{chunk-P3YSHGT5.mjs → chunk-P55DAW6H.mjs} +1 -1
  116. package/dist/{chunk-JOOURIX7.cjs → chunk-P6E4WLMD.cjs} +4 -4
  117. package/dist/{chunk-WDSOII5A.cjs → chunk-P7J7XHDE.cjs} +2 -2
  118. package/dist/chunk-PHRZ5JE6.mjs +1 -0
  119. package/dist/{chunk-F3HOBNGR.cjs → chunk-PMG3NZF5.cjs} +4 -4
  120. package/dist/chunk-PMYOKSO3.mjs +30 -0
  121. package/dist/chunk-PTUZYCOY.mjs +314 -0
  122. package/dist/{chunk-PV6CEMTT.cjs → chunk-PWZ4F3WY.cjs} +4 -4
  123. package/dist/{chunk-QBAZ6TKZ.cjs → chunk-PZZW3E5D.cjs} +2 -2
  124. package/dist/chunk-Q3UN25WC.mjs +141 -0
  125. package/dist/{chunk-MXGPFCLN.cjs → chunk-QS6WNNLM.cjs} +2 -2
  126. package/dist/{chunk-PR3BCKLJ.mjs → chunk-QSDYNIZB.mjs} +2 -1
  127. package/dist/{chunk-GTBXRWCK.cjs → chunk-QTLUPDLH.cjs} +8 -7
  128. package/dist/{chunk-BXZSWY4N.mjs → chunk-QYJZ5KA6.mjs} +1 -1
  129. package/dist/{chunk-JYYAGDLZ.cjs → chunk-R22VW3EK.cjs} +2 -2
  130. package/dist/{chunk-NKGUQZTD.cjs → chunk-RHVKIZMQ.cjs} +2 -2
  131. package/dist/{chunk-U22YVR7M.mjs → chunk-RLY4A3IY.mjs} +15 -6
  132. package/dist/{chunk-OJOWMXXY.mjs → chunk-RR76Z6OK.mjs} +3 -3
  133. package/dist/{chunk-D562KO2I.mjs → chunk-RWHVZM2B.mjs} +2 -2
  134. package/dist/chunk-S4C7HO32.cjs +36 -0
  135. package/dist/chunk-SBAVMK7J.cjs +181 -0
  136. package/dist/{chunk-DAVMLI3P.cjs → chunk-SNUQOJLK.cjs} +4 -4
  137. package/dist/{chunk-KY2PYKDZ.mjs → chunk-SO5KFX2C.mjs} +1 -1
  138. package/dist/{chunk-HB65PF7F.cjs → chunk-SOHGIAGF.cjs} +2 -2
  139. package/dist/{chunk-RW4T7UBU.cjs → chunk-STJMH4NX.cjs} +3 -3
  140. package/dist/{chunk-VYINXXYX.cjs → chunk-SUWJDU3Y.cjs} +59 -61
  141. package/dist/chunk-T2BDPMCF.cjs +358 -0
  142. package/dist/{chunk-U5W4ZALG.cjs → chunk-T2OAWYOU.cjs} +6 -6
  143. package/dist/{chunk-Q7VP2WSX.mjs → chunk-TCCFFSXM.mjs} +29 -12
  144. package/dist/{chunk-PRNBDGOF.cjs → chunk-THE6FZKP.cjs} +29 -49
  145. package/dist/{chunk-RGOZPSTI.mjs → chunk-TMBHKVKH.mjs} +1 -1
  146. package/dist/chunk-TQOGGHSJ.mjs +23 -0
  147. package/dist/{chunk-VTW2DF63.mjs → chunk-TWDDNHRP.mjs} +1 -1
  148. package/dist/{chunk-DDIB73SZ.mjs → chunk-UB3ELCFR.mjs} +4 -4
  149. package/dist/{chunk-XTLGNJIO.mjs → chunk-UBGNADCN.mjs} +1 -1
  150. package/dist/chunk-UCAIVC2B.cjs +32 -0
  151. package/dist/chunk-UEHPZIQB.cjs +2 -0
  152. package/dist/{chunk-ASZIBFA6.cjs → chunk-UZTOUPJ7.cjs} +131 -92
  153. package/dist/{chunk-3NIMV5PH.mjs → chunk-V4THHKSO.mjs} +1 -1
  154. package/dist/{chunk-G5VBLDAM.mjs → chunk-VBEVJE7Q.mjs} +1 -1
  155. package/dist/chunk-VDYJAOMN.mjs +177 -0
  156. package/dist/{chunk-64VVW5YR.mjs → chunk-VLNU7Y2K.mjs} +8 -43
  157. package/dist/{chunk-ZS7ESTKH.cjs → chunk-VT6E2N6C.cjs} +8 -12
  158. package/dist/{chunk-OLYHHP67.mjs → chunk-VWLZKPDB.mjs} +6 -5
  159. package/dist/{chunk-UMGNAR3W.cjs → chunk-W22SQYEO.cjs} +8 -8
  160. package/dist/{chunk-VWVYCQWF.mjs → chunk-WBM7ATPT.mjs} +1 -1
  161. package/dist/{chunk-CH3BSVL4.cjs → chunk-WGY33IHV.cjs} +2 -2
  162. package/dist/{chunk-DAA2GQAS.cjs → chunk-WRJAYU2L.cjs} +27 -27
  163. package/dist/{chunk-7AEOJFD4.cjs → chunk-WX3VWVWD.cjs} +2 -2
  164. package/dist/{chunk-EBFPZBUQ.cjs → chunk-WYUJM72T.cjs} +7 -7
  165. package/dist/{chunk-EK3BTKZP.cjs → chunk-WZQ2BT3P.cjs} +142 -26
  166. package/dist/{chunk-KR7VBV3B.cjs → chunk-XIDCYS6G.cjs} +2 -1
  167. package/dist/{chunk-WHV6Z7YX.mjs → chunk-XIESS6HW.mjs} +1 -1
  168. package/dist/{chunk-UIJEAY6H.mjs → chunk-XTZURZIR.mjs} +1 -1
  169. package/dist/{chunk-7AZ3PLUC.mjs → chunk-XZLQHASB.mjs} +1 -1
  170. package/dist/{chunk-SRZ56OJH.mjs → chunk-XZTEU7ME.mjs} +3 -3
  171. package/dist/{chunk-RLTLA7VS.mjs → chunk-Y2IIKDRY.mjs} +1 -1
  172. package/dist/chunk-YDF6VWBW.cjs +151 -0
  173. package/dist/{chunk-CR6JOOO3.cjs → chunk-YGZHBIZP.cjs} +3 -10
  174. package/dist/{chunk-TWQONYWC.mjs → chunk-YMMSHGYC.mjs} +1 -1
  175. package/dist/chunk-YQL6JDVP.cjs +21 -0
  176. package/dist/{chunk-Q37KC3CL.mjs → chunk-YRNI7ZJ7.mjs} +134 -18
  177. package/dist/{chunk-3ZEQVODC.cjs → chunk-ZAK7AFVY.cjs} +2 -2
  178. package/dist/{chunk-W3IHFG4B.cjs → chunk-ZG33TW5I.cjs} +8 -8
  179. package/dist/{chunk-FK6ZROZE.mjs → chunk-ZJYPKTF4.mjs} +2 -1
  180. package/dist/chunk-ZMRODJ3I.mjs +149 -0
  181. package/dist/{chunk-AHD46BFN.mjs → chunk-ZQOQB6GF.mjs} +1 -1
  182. package/dist/dial/DialPanel.cjs +104 -92
  183. package/dist/dial/DialPanel.d.cts +5 -5
  184. package/dist/dial/DialPanel.d.ts +5 -5
  185. package/dist/dial/DialPanel.mjs +103 -91
  186. package/dist/dial/DialProvider.d.cts +16 -51
  187. package/dist/dial/DialProvider.d.ts +16 -51
  188. package/dist/dial/IconRenderer.d.cts +2 -2
  189. package/dist/dial/IconRenderer.d.ts +2 -2
  190. package/dist/dial/components/DialButton.cjs +22 -0
  191. package/dist/dial/components/DialButton.d.cts +28 -0
  192. package/dist/dial/components/DialButton.d.ts +28 -0
  193. package/dist/dial/components/DialButton.mjs +13 -0
  194. package/dist/dial/components/DialCustom.cjs +11 -0
  195. package/dist/dial/components/DialCustom.d.cts +34 -0
  196. package/dist/dial/components/DialCustom.d.ts +34 -0
  197. package/dist/dial/components/DialCustom.mjs +2 -0
  198. package/dist/dial/components/index.cjs +29 -0
  199. package/dist/dial/components/index.d.cts +4 -0
  200. package/dist/dial/components/index.d.ts +4 -0
  201. package/dist/dial/components/index.mjs +16 -0
  202. package/dist/dial/index.cjs +128 -108
  203. package/dist/dial/index.d.cts +5 -1
  204. package/dist/dial/index.d.ts +5 -1
  205. package/dist/dial/index.mjs +103 -91
  206. package/dist/dial/types.cjs +4 -0
  207. package/dist/dial/types.d.cts +21 -0
  208. package/dist/dial/types.d.ts +21 -0
  209. package/dist/dial/types.mjs +1 -0
  210. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +108 -96
  211. package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +8 -8
  212. package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +8 -8
  213. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +103 -91
  214. package/dist/dial/wrapped-inputs/DialArrayInput.cjs +139 -0
  215. package/dist/dial/wrapped-inputs/DialArrayInput.d.cts +20 -0
  216. package/dist/dial/wrapped-inputs/DialArrayInput.d.ts +20 -0
  217. package/dist/dial/wrapped-inputs/DialArrayInput.mjs +130 -0
  218. package/dist/dial/wrapped-inputs/DialInputs.cjs +117 -105
  219. package/dist/dial/wrapped-inputs/DialInputs.d.cts +19 -17
  220. package/dist/dial/wrapped-inputs/DialInputs.d.ts +19 -17
  221. package/dist/dial/wrapped-inputs/DialInputs.mjs +103 -91
  222. package/dist/dial/wrapped-inputs/DialInterfaceInput.cjs +139 -0
  223. package/dist/dial/wrapped-inputs/DialInterfaceInput.d.cts +13 -0
  224. package/dist/dial/wrapped-inputs/DialInterfaceInput.d.ts +13 -0
  225. package/dist/dial/wrapped-inputs/DialInterfaceInput.mjs +130 -0
  226. package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +94 -86
  227. package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +4 -4
  228. package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +4 -4
  229. package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +93 -85
  230. package/dist/dial/wrapped-inputs/DialTupleInput.cjs +139 -0
  231. package/dist/dial/wrapped-inputs/DialTupleInput.d.cts +18 -0
  232. package/dist/dial/wrapped-inputs/DialTupleInput.d.ts +18 -0
  233. package/dist/dial/wrapped-inputs/DialTupleInput.mjs +130 -0
  234. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +104 -92
  235. package/dist/dial/wrapped-inputs/DialVectorInput.d.cts +2 -2
  236. package/dist/dial/wrapped-inputs/DialVectorInput.d.ts +2 -2
  237. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +103 -91
  238. package/dist/dial/wrapped-inputs/index.cjs +132 -112
  239. package/dist/dial/wrapped-inputs/index.d.cts +4 -2
  240. package/dist/dial/wrapped-inputs/index.d.ts +4 -2
  241. package/dist/dial/wrapped-inputs/index.mjs +103 -91
  242. package/dist/highlight-cursor/cursor-context.d.cts +2 -2
  243. package/dist/highlight-cursor/cursor-context.d.ts +2 -2
  244. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  245. package/dist/highlight-cursor/cursor-provider.d.cts +1 -1
  246. package/dist/highlight-cursor/cursor-provider.d.ts +1 -1
  247. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  248. package/dist/highlight-cursor/enhanced-components.cjs +16 -16
  249. package/dist/highlight-cursor/enhanced-components.d.cts +4 -4
  250. package/dist/highlight-cursor/enhanced-components.d.ts +4 -4
  251. package/dist/highlight-cursor/enhanced-components.mjs +11 -11
  252. package/dist/highlight-cursor/index.cjs +21 -21
  253. package/dist/highlight-cursor/index.mjs +12 -12
  254. package/dist/highlight-cursor/types.d.cts +2 -1
  255. package/dist/highlight-cursor/types.d.ts +2 -1
  256. package/dist/highlight-cursor/with-cursor.d.cts +2 -2
  257. package/dist/highlight-cursor/with-cursor.d.ts +2 -2
  258. package/dist/hooks/clientOnly.d.cts +4 -4
  259. package/dist/hooks/clientOnly.d.ts +4 -4
  260. package/dist/hooks/cn.cjs +2 -2
  261. package/dist/hooks/cn.mjs +1 -1
  262. package/dist/hooks/index.cjs +22 -22
  263. package/dist/hooks/index.mjs +5 -5
  264. package/dist/hooks/useIsMobile.cjs +2 -2
  265. package/dist/hooks/useIsMobile.mjs +1 -1
  266. package/dist/index.cjs +587 -407
  267. package/dist/index.css +13 -76
  268. package/dist/index.d.cts +20 -6
  269. package/dist/index.d.ts +20 -6
  270. package/dist/index.mjs +103 -91
  271. package/dist/schema-types-D9b7Dc1G.d.cts +163 -0
  272. package/dist/schema-types-D9b7Dc1G.d.ts +163 -0
  273. package/dist/styles/theme.css +1 -1
  274. package/dist/ui/DialBadge.cjs +10 -10
  275. package/dist/ui/DialBadge.mjs +6 -6
  276. package/dist/ui/UIKitBadge.cjs +10 -10
  277. package/dist/ui/UIKitBadge.mjs +6 -6
  278. package/dist/ui/alert-dialog.cjs +60 -0
  279. package/dist/ui/alert-dialog.d.cts +17 -0
  280. package/dist/ui/alert-dialog.d.ts +17 -0
  281. package/dist/ui/alert-dialog.mjs +11 -0
  282. package/dist/ui/avatar.cjs +10 -10
  283. package/dist/ui/avatar.d.cts +2 -2
  284. package/dist/ui/avatar.d.ts +2 -2
  285. package/dist/ui/avatar.mjs +6 -6
  286. package/dist/ui/badge.cjs +8 -8
  287. package/dist/ui/badge.d.cts +2 -2
  288. package/dist/ui/badge.d.ts +2 -2
  289. package/dist/ui/badge.mjs +6 -6
  290. package/dist/ui/button.cjs +8 -8
  291. package/dist/ui/button.d.cts +3 -3
  292. package/dist/ui/button.d.ts +3 -3
  293. package/dist/ui/button.mjs +6 -6
  294. package/dist/ui/card.cjs +14 -13
  295. package/dist/ui/card.d.cts +14 -2
  296. package/dist/ui/card.d.ts +14 -2
  297. package/dist/ui/card.mjs +7 -6
  298. package/dist/ui/checkbox.cjs +7 -7
  299. package/dist/ui/checkbox.mjs +6 -6
  300. package/dist/ui/collapsible.cjs +9 -9
  301. package/dist/ui/collapsible.mjs +6 -6
  302. package/dist/ui/context-menu.cjs +76 -0
  303. package/dist/ui/context-menu.d.cts +28 -0
  304. package/dist/ui/context-menu.d.ts +28 -0
  305. package/dist/ui/context-menu.mjs +11 -0
  306. package/dist/ui/drag-selectable/createSelectable.d.cts +2 -2
  307. package/dist/ui/drag-selectable/createSelectable.d.ts +2 -2
  308. package/dist/ui/drawer.cjs +16 -16
  309. package/dist/ui/drawer.d.cts +11 -11
  310. package/dist/ui/drawer.d.ts +11 -11
  311. package/dist/ui/drawer.mjs +6 -6
  312. package/dist/ui/dropdown.cjs +21 -21
  313. package/dist/ui/dropdown.mjs +6 -6
  314. package/dist/ui/index.cjs +485 -317
  315. package/dist/ui/index.d.cts +15 -5
  316. package/dist/ui/index.d.ts +15 -5
  317. package/dist/ui/index.mjs +90 -82
  318. package/dist/ui/inputs/color-input.cjs +8 -8
  319. package/dist/ui/inputs/color-input.d.cts +7 -3
  320. package/dist/ui/inputs/color-input.d.ts +7 -3
  321. package/dist/ui/inputs/color-input.mjs +7 -7
  322. package/dist/ui/inputs/index.cjs +56 -56
  323. package/dist/ui/inputs/index.mjs +25 -25
  324. package/dist/ui/inputs/input-numbers.cjs +8 -8
  325. package/dist/ui/inputs/input-numbers.d.cts +7 -3
  326. package/dist/ui/inputs/input-numbers.d.ts +7 -3
  327. package/dist/ui/inputs/input-numbers.mjs +7 -7
  328. package/dist/ui/inputs/input.cjs +9 -9
  329. package/dist/ui/inputs/input.d.cts +4 -4
  330. package/dist/ui/inputs/input.d.ts +4 -4
  331. package/dist/ui/inputs/input.mjs +6 -6
  332. package/dist/ui/inputs/number-inputs/CmInput.cjs +9 -9
  333. package/dist/ui/inputs/number-inputs/CmInput.d.cts +2 -2
  334. package/dist/ui/inputs/number-inputs/CmInput.d.ts +2 -2
  335. package/dist/ui/inputs/number-inputs/CmInput.mjs +8 -8
  336. package/dist/ui/inputs/number-inputs/DegInput.cjs +9 -9
  337. package/dist/ui/inputs/number-inputs/DegInput.d.cts +2 -2
  338. package/dist/ui/inputs/number-inputs/DegInput.d.ts +2 -2
  339. package/dist/ui/inputs/number-inputs/DegInput.mjs +8 -8
  340. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +11 -11
  341. package/dist/ui/inputs/number-inputs/EulerDegInput.d.cts +2 -2
  342. package/dist/ui/inputs/number-inputs/EulerDegInput.d.ts +2 -2
  343. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +10 -10
  344. package/dist/ui/inputs/number-inputs/EulerInput.cjs +10 -10
  345. package/dist/ui/inputs/number-inputs/EulerInput.d.cts +2 -2
  346. package/dist/ui/inputs/number-inputs/EulerInput.d.ts +2 -2
  347. package/dist/ui/inputs/number-inputs/EulerInput.mjs +9 -9
  348. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +10 -10
  349. package/dist/ui/inputs/number-inputs/EulerRadInput.d.cts +2 -2
  350. package/dist/ui/inputs/number-inputs/EulerRadInput.d.ts +2 -2
  351. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +9 -9
  352. package/dist/ui/inputs/number-inputs/InchInput.cjs +9 -9
  353. package/dist/ui/inputs/number-inputs/InchInput.d.cts +2 -2
  354. package/dist/ui/inputs/number-inputs/InchInput.d.ts +2 -2
  355. package/dist/ui/inputs/number-inputs/InchInput.mjs +8 -8
  356. package/dist/ui/inputs/number-inputs/IntInput.cjs +9 -9
  357. package/dist/ui/inputs/number-inputs/IntInput.d.cts +2 -2
  358. package/dist/ui/inputs/number-inputs/IntInput.d.ts +2 -2
  359. package/dist/ui/inputs/number-inputs/IntInput.mjs +8 -8
  360. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +10 -10
  361. package/dist/ui/inputs/number-inputs/KVectorInput.d.cts +2 -2
  362. package/dist/ui/inputs/number-inputs/KVectorInput.d.ts +2 -2
  363. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +9 -9
  364. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +10 -10
  365. package/dist/ui/inputs/number-inputs/QuaternionInput.d.cts +2 -2
  366. package/dist/ui/inputs/number-inputs/QuaternionInput.d.ts +2 -2
  367. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +9 -9
  368. package/dist/ui/inputs/number-inputs/RadInput.cjs +9 -9
  369. package/dist/ui/inputs/number-inputs/RadInput.d.cts +2 -2
  370. package/dist/ui/inputs/number-inputs/RadInput.d.ts +2 -2
  371. package/dist/ui/inputs/number-inputs/RadInput.mjs +8 -8
  372. package/dist/ui/inputs/number-inputs/TimeInput.cjs +9 -9
  373. package/dist/ui/inputs/number-inputs/TimeInput.d.cts +2 -2
  374. package/dist/ui/inputs/number-inputs/TimeInput.d.ts +2 -2
  375. package/dist/ui/inputs/number-inputs/TimeInput.mjs +8 -8
  376. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +10 -10
  377. package/dist/ui/inputs/number-inputs/Vec3Input.d.cts +2 -2
  378. package/dist/ui/inputs/number-inputs/Vec3Input.d.ts +2 -2
  379. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +9 -9
  380. package/dist/ui/inputs/number-inputs/VectorInput.cjs +9 -9
  381. package/dist/ui/inputs/number-inputs/VectorInput.d.cts +4 -2
  382. package/dist/ui/inputs/number-inputs/VectorInput.d.ts +4 -2
  383. package/dist/ui/inputs/number-inputs/VectorInput.mjs +8 -8
  384. package/dist/ui/inputs/number-inputs/index.cjs +42 -42
  385. package/dist/ui/inputs/number-inputs/index.mjs +20 -20
  386. package/dist/ui/inputs/presets-input.cjs +10 -10
  387. package/dist/ui/inputs/presets-input.d.cts +2 -2
  388. package/dist/ui/inputs/presets-input.d.ts +2 -2
  389. package/dist/ui/inputs/presets-input.mjs +9 -9
  390. package/dist/ui/inputs/presets-rad-input.cjs +11 -11
  391. package/dist/ui/inputs/presets-rad-input.d.cts +2 -2
  392. package/dist/ui/inputs/presets-rad-input.d.ts +2 -2
  393. package/dist/ui/inputs/presets-rad-input.mjs +10 -10
  394. package/dist/ui/inputs/text-input.cjs +8 -8
  395. package/dist/ui/inputs/text-input.d.cts +2 -2
  396. package/dist/ui/inputs/text-input.d.ts +2 -2
  397. package/dist/ui/inputs/text-input.mjs +7 -7
  398. package/dist/ui/label.cjs +7 -7
  399. package/dist/ui/label.d.cts +4 -4
  400. package/dist/ui/label.d.ts +4 -4
  401. package/dist/ui/label.mjs +6 -6
  402. package/dist/ui/layout.cjs +7 -7
  403. package/dist/ui/layout.mjs +6 -6
  404. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +8 -8
  405. package/dist/ui/layouts/dock-layout/DockLayoutView.d.cts +2 -1
  406. package/dist/ui/layouts/dock-layout/DockLayoutView.d.ts +2 -1
  407. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +7 -7
  408. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +12 -12
  409. package/dist/ui/layouts/dock-layout/LayoutSlots.d.cts +3 -3
  410. package/dist/ui/layouts/dock-layout/LayoutSlots.d.ts +3 -3
  411. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +6 -6
  412. package/dist/ui/layouts/dock-layout/index.cjs +14 -14
  413. package/dist/ui/layouts/dock-layout/index.mjs +7 -7
  414. package/dist/ui/layouts/index.cjs +20 -20
  415. package/dist/ui/layouts/index.mjs +9 -9
  416. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +12 -12
  417. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +6 -6
  418. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +8 -8
  419. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.d.cts +13 -1
  420. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.d.ts +13 -1
  421. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +7 -7
  422. package/dist/ui/layouts/liquid-layout/index.cjs +8 -8
  423. package/dist/ui/layouts/liquid-layout/index.mjs +7 -7
  424. package/dist/ui/modal.cjs +16 -16
  425. package/dist/ui/modal.mjs +6 -6
  426. package/dist/ui/navigation.cjs +8 -8
  427. package/dist/ui/navigation.d.cts +2 -2
  428. package/dist/ui/navigation.d.ts +2 -2
  429. package/dist/ui/navigation.mjs +7 -7
  430. package/dist/ui/pagination.cjs +14 -14
  431. package/dist/ui/pagination.mjs +7 -7
  432. package/dist/ui/popover.cjs +14 -10
  433. package/dist/ui/popover.d.cts +18 -8
  434. package/dist/ui/popover.d.ts +18 -8
  435. package/dist/ui/popover.mjs +6 -6
  436. package/dist/ui/progress.cjs +7 -7
  437. package/dist/ui/progress.d.cts +1 -1
  438. package/dist/ui/progress.d.ts +1 -1
  439. package/dist/ui/progress.mjs +6 -6
  440. package/dist/ui/radio-group.cjs +8 -8
  441. package/dist/ui/radio-group.mjs +6 -6
  442. package/dist/ui/resizable.cjs +9 -9
  443. package/dist/ui/resizable.d.cts +2 -2
  444. package/dist/ui/resizable.d.ts +2 -2
  445. package/dist/ui/resizable.mjs +6 -6
  446. package/dist/ui/select.cjs +17 -17
  447. package/dist/ui/select.d.cts +3 -2
  448. package/dist/ui/select.d.ts +3 -2
  449. package/dist/ui/select.mjs +6 -6
  450. package/dist/ui/separator.cjs +7 -7
  451. package/dist/ui/separator.mjs +6 -6
  452. package/dist/ui/sheet.cjs +14 -14
  453. package/dist/ui/sheet.d.cts +26 -13
  454. package/dist/ui/sheet.d.ts +26 -13
  455. package/dist/ui/sheet.mjs +6 -6
  456. package/dist/ui/sidebar.cjs +36 -36
  457. package/dist/ui/sidebar.mjs +12 -12
  458. package/dist/ui/simple-tree-view.cjs +7 -7
  459. package/dist/ui/simple-tree-view.d.cts +2 -2
  460. package/dist/ui/simple-tree-view.d.ts +2 -2
  461. package/dist/ui/simple-tree-view.mjs +6 -6
  462. package/dist/ui/skeleton.cjs +7 -7
  463. package/dist/ui/skeleton.mjs +6 -6
  464. package/dist/ui/slider.cjs +7 -7
  465. package/dist/ui/slider.d.cts +2 -2
  466. package/dist/ui/slider.d.ts +2 -2
  467. package/dist/ui/slider.mjs +6 -6
  468. package/dist/ui/switch.cjs +7 -7
  469. package/dist/ui/switch.d.cts +4 -1
  470. package/dist/ui/switch.d.ts +4 -1
  471. package/dist/ui/switch.mjs +6 -6
  472. package/dist/ui/table.cjs +14 -14
  473. package/dist/ui/table.d.cts +9 -9
  474. package/dist/ui/table.d.ts +9 -9
  475. package/dist/ui/table.mjs +6 -6
  476. package/dist/ui/tabs.cjs +14 -10
  477. package/dist/ui/tabs.d.cts +25 -7
  478. package/dist/ui/tabs.d.ts +25 -7
  479. package/dist/ui/tabs.mjs +6 -6
  480. package/dist/ui/textarea.cjs +7 -7
  481. package/dist/ui/textarea.d.cts +1 -1
  482. package/dist/ui/textarea.d.ts +1 -1
  483. package/dist/ui/textarea.mjs +6 -6
  484. package/dist/ui/theme/ThemeProvider.cjs +15 -15
  485. package/dist/ui/theme/ThemeProvider.d.cts +3 -3
  486. package/dist/ui/theme/ThemeProvider.d.ts +3 -3
  487. package/dist/ui/theme/ThemeProvider.mjs +1 -1
  488. package/dist/ui/theme/ThemeToggles.cjs +11 -11
  489. package/dist/ui/theme/ThemeToggles.d.cts +18 -3
  490. package/dist/ui/theme/ThemeToggles.d.ts +18 -3
  491. package/dist/ui/theme/ThemeToggles.mjs +9 -9
  492. package/dist/ui/theme/index.cjs +15 -15
  493. package/dist/ui/theme/index.mjs +9 -9
  494. package/dist/ui/theme/themeScript.d.cts +2 -2
  495. package/dist/ui/theme/themeScript.d.ts +2 -2
  496. package/dist/ui/toast.cjs +19 -3
  497. package/dist/ui/toast.d.cts +1 -1
  498. package/dist/ui/toast.d.ts +1 -1
  499. package/dist/ui/toast.mjs +17 -1
  500. package/dist/ui/toggle-buttons.cjs +11 -11
  501. package/dist/ui/toggle-buttons.d.cts +7 -7
  502. package/dist/ui/toggle-buttons.d.ts +7 -7
  503. package/dist/ui/toggle-buttons.mjs +6 -6
  504. package/dist/ui/toggle-group.cjs +9 -9
  505. package/dist/ui/toggle-group.d.cts +3 -3
  506. package/dist/ui/toggle-group.d.ts +3 -3
  507. package/dist/ui/toggle-group.mjs +6 -6
  508. package/dist/ui/toggle.cjs +8 -8
  509. package/dist/ui/toggle.mjs +6 -6
  510. package/dist/ui/toolbar.cjs +9 -9
  511. package/dist/ui/toolbar.mjs +6 -6
  512. package/dist/ui/tooltip.cjs +10 -10
  513. package/dist/ui/tooltip.d.cts +2 -2
  514. package/dist/ui/tooltip.d.ts +2 -2
  515. package/dist/ui/tooltip.mjs +6 -6
  516. package/dist/ui/tree-view/TreeSearchBar.cjs +9 -9
  517. package/dist/ui/tree-view/TreeSearchBar.mjs +8 -8
  518. package/dist/ui/tree-view/TreeView.cjs +10 -8
  519. package/dist/ui/tree-view/TreeView.d.cts +12 -6
  520. package/dist/ui/tree-view/TreeView.d.ts +12 -6
  521. package/dist/ui/tree-view/TreeView.mjs +8 -6
  522. package/dist/ui/tree-view/hooks.cjs +31 -3
  523. package/dist/ui/tree-view/hooks.d.cts +33 -1
  524. package/dist/ui/tree-view/hooks.d.ts +33 -1
  525. package/dist/ui/tree-view/hooks.mjs +1 -1
  526. package/dist/ui/tree-view/index.cjs +49 -20
  527. package/dist/ui/tree-view/index.d.cts +1 -1
  528. package/dist/ui/tree-view/index.d.ts +1 -1
  529. package/dist/ui/tree-view/index.mjs +11 -10
  530. package/dist/ui/tree-view/types.d.cts +1 -0
  531. package/dist/ui/tree-view/types.d.ts +1 -0
  532. package/dist/ui/tree-view-legacy.cjs +13 -13
  533. package/dist/ui/tree-view-legacy.mjs +9 -9
  534. package/dist/ui/virtual-grid/VirtualGrid.cjs +21 -0
  535. package/dist/ui/virtual-grid/VirtualGrid.d.cts +10 -0
  536. package/dist/ui/virtual-grid/VirtualGrid.d.ts +10 -0
  537. package/dist/ui/virtual-grid/VirtualGrid.mjs +12 -0
  538. package/dist/ui/virtual-grid/index.cjs +26 -0
  539. package/dist/ui/virtual-grid/index.d.cts +4 -0
  540. package/dist/ui/virtual-grid/index.d.ts +4 -0
  541. package/dist/ui/virtual-grid/index.mjs +13 -0
  542. package/dist/ui/virtual-grid/types.cjs +2 -0
  543. package/dist/ui/virtual-grid/types.d.cts +70 -0
  544. package/dist/ui/virtual-grid/types.d.ts +70 -0
  545. package/dist/ui/virtual-grid/types.mjs +1 -0
  546. package/dist/ui/virtual-grid/useVirtualGrid.cjs +10 -0
  547. package/dist/ui/virtual-grid/useVirtualGrid.d.cts +9 -0
  548. package/dist/ui/virtual-grid/useVirtualGrid.d.ts +9 -0
  549. package/dist/ui/virtual-grid/useVirtualGrid.mjs +1 -0
  550. package/dist/ui/virtual-list/VirtualList.cjs +21 -0
  551. package/dist/ui/virtual-list/VirtualList.d.cts +10 -0
  552. package/dist/ui/virtual-list/VirtualList.d.ts +10 -0
  553. package/dist/ui/virtual-list/VirtualList.mjs +12 -0
  554. package/dist/ui/virtual-list/index.cjs +26 -0
  555. package/dist/ui/virtual-list/index.d.cts +4 -0
  556. package/dist/ui/virtual-list/index.d.ts +4 -0
  557. package/dist/ui/virtual-list/index.mjs +13 -0
  558. package/dist/ui/virtual-list/types.cjs +2 -0
  559. package/dist/ui/virtual-list/types.d.cts +54 -0
  560. package/dist/ui/virtual-list/types.d.ts +54 -0
  561. package/dist/ui/virtual-list/types.mjs +1 -0
  562. package/dist/ui/virtual-list/useVirtualList.cjs +10 -0
  563. package/dist/ui/virtual-list/useVirtualList.d.cts +9 -0
  564. package/dist/ui/virtual-list/useVirtualList.d.ts +9 -0
  565. package/dist/ui/virtual-list/useVirtualList.mjs +1 -0
  566. package/dist/ui/waterfall/CursorOverlay.cjs +7 -7
  567. package/dist/ui/waterfall/CursorOverlay.mjs +6 -6
  568. package/dist/ui/waterfall/NavigationControls.d.cts +2 -2
  569. package/dist/ui/waterfall/NavigationControls.d.ts +2 -2
  570. package/dist/ui/waterfall/TimelineEvent.cjs +7 -7
  571. package/dist/ui/waterfall/TimelineEvent.mjs +6 -6
  572. package/dist/ui/waterfall/TimelineProcessBar.cjs +7 -7
  573. package/dist/ui/waterfall/TimelineProcessBar.mjs +6 -6
  574. package/dist/ui/waterfall/Wedges.cjs +8 -8
  575. package/dist/ui/waterfall/Wedges.mjs +6 -6
  576. package/dist/ui/waterfall/WheelZoomContext.d.cts +2 -2
  577. package/dist/ui/waterfall/WheelZoomContext.d.ts +2 -2
  578. package/dist/ui/waterfall/hooks/useTimelineState.d.cts +4 -3
  579. package/dist/ui/waterfall/hooks/useTimelineState.d.ts +4 -3
  580. package/dist/ui/waterfall/hooks/useViewport.d.cts +4 -4
  581. package/dist/ui/waterfall/hooks/useViewport.d.ts +4 -4
  582. package/dist/ui/waterfall/index.cjs +20 -19
  583. package/dist/ui/waterfall/index.d.cts +2 -2
  584. package/dist/ui/waterfall/index.d.ts +2 -2
  585. package/dist/ui/waterfall/index.mjs +19 -18
  586. package/package.json +6 -9
  587. package/src/dial/DialPanel.tsx +167 -30
  588. package/src/dial/DialProvider.tsx +20 -68
  589. package/src/dial/components/DialButton.tsx +52 -0
  590. package/src/dial/components/DialCustom.tsx +45 -0
  591. package/src/dial/components/index.ts +3 -0
  592. package/src/dial/index.ts +11 -6
  593. package/src/dial/types.ts +32 -0
  594. package/src/dial/wrapped-inputs/ControlledInputs.tsx +22 -16
  595. package/src/dial/wrapped-inputs/DialArrayInput.tsx +175 -0
  596. package/src/dial/wrapped-inputs/DialInputs.tsx +119 -23
  597. package/src/dial/wrapped-inputs/DialInterfaceInput.tsx +80 -0
  598. package/src/dial/wrapped-inputs/DialPresetsInput.tsx +4 -3
  599. package/src/dial/wrapped-inputs/DialTupleInput.tsx +102 -0
  600. package/src/dial/wrapped-inputs/DialVectorInput.tsx +11 -21
  601. package/src/dial/wrapped-inputs/index.ts +6 -0
  602. package/src/highlight-cursor/cursor-provider.tsx +279 -131
  603. package/src/highlight-cursor/types.ts +2 -1
  604. package/src/hooks/cn.ts +5 -0
  605. package/src/hooks/useIsMobile.ts +14 -30
  606. package/src/index.css +0 -1
  607. package/src/styles/theme.css +2 -2
  608. package/src/ui/DialBadge.tsx +7 -5
  609. package/src/ui/alert-dialog.tsx +168 -0
  610. package/src/ui/badge.tsx +1 -0
  611. package/src/ui/card.tsx +76 -8
  612. package/src/ui/context-menu.tsx +358 -0
  613. package/src/ui/index.ts +6 -0
  614. package/src/ui/inputs/color-input.tsx +92 -8
  615. package/src/ui/inputs/input-numbers.tsx +148 -92
  616. package/src/ui/inputs/number-inputs/EulerRadInput.tsx +43 -42
  617. package/src/ui/inputs/number-inputs/VectorInput.tsx +2 -1
  618. package/src/ui/inputs/presets-rad-input.tsx +5 -2
  619. package/src/ui/inputs/text-input.tsx +1 -1
  620. package/src/ui/layouts/dock-layout/DockLayoutView.tsx +15 -4
  621. package/src/ui/layouts/dock-layout/LayoutSlots.tsx +14 -5
  622. package/src/ui/layouts/liquid-layout/LiquidLayoutView.tsx +44 -5
  623. package/src/ui/popover.tsx +10 -49
  624. package/src/ui/progress.tsx +7 -14
  625. package/src/ui/select.tsx +5 -2
  626. package/src/ui/separator.tsx +1 -1
  627. package/src/ui/sheet.tsx +14 -116
  628. package/src/ui/sidebar.tsx +18 -19
  629. package/src/ui/switch.tsx +7 -2
  630. package/src/ui/tabs.tsx +29 -58
  631. package/src/ui/theme/ThemeProvider.tsx +4 -3
  632. package/src/ui/theme/ThemeToggles.tsx +48 -12
  633. package/src/ui/toast.tsx +13 -16
  634. package/src/ui/tooltip.tsx +3 -30
  635. package/src/ui/tree-view/TreeView.tsx +179 -21
  636. package/src/ui/tree-view/hooks.tsx +148 -0
  637. package/src/ui/tree-view/types.ts +2 -1
  638. package/src/ui/virtual-grid/VirtualGrid.tsx +345 -0
  639. package/src/ui/virtual-grid/index.ts +10 -0
  640. package/src/ui/virtual-grid/types.ts +72 -0
  641. package/src/ui/virtual-grid/useVirtualGrid.ts +243 -0
  642. package/src/ui/virtual-list/VirtualList.tsx +207 -0
  643. package/src/ui/virtual-list/index.ts +8 -0
  644. package/src/ui/virtual-list/types.ts +54 -0
  645. package/src/ui/virtual-list/useVirtualList.ts +203 -0
  646. package/src/ui/waterfall/TimelineProcessBar.tsx +10 -4
  647. package/dist/auth/components/index.cjs +0 -128
  648. package/dist/auth/components/index.d.cts +0 -2
  649. package/dist/auth/components/index.d.ts +0 -2
  650. package/dist/auth/components/index.mjs +0 -119
  651. package/dist/auth/components/user-avatar/index.cjs +0 -127
  652. package/dist/auth/components/user-avatar/index.d.cts +0 -8
  653. package/dist/auth/components/user-avatar/index.d.ts +0 -8
  654. package/dist/auth/components/user-avatar/index.mjs +0 -118
  655. package/dist/auth/context/user-context.cjs +0 -10
  656. package/dist/auth/context/user-context.d.cts +0 -13
  657. package/dist/auth/context/user-context.d.ts +0 -13
  658. package/dist/auth/context/user-context.mjs +0 -1
  659. package/dist/auth/handler/fetch-auth.cjs +0 -11
  660. package/dist/auth/handler/fetch-auth.d.cts +0 -3
  661. package/dist/auth/handler/fetch-auth.d.ts +0 -3
  662. package/dist/auth/handler/fetch-auth.mjs +0 -2
  663. package/dist/auth/handler/fetch-server.cjs +0 -11
  664. package/dist/auth/handler/fetch-server.d.cts +0 -3
  665. package/dist/auth/handler/fetch-server.d.ts +0 -3
  666. package/dist/auth/handler/fetch-server.mjs +0 -2
  667. package/dist/auth/handler/get-session.cjs +0 -12
  668. package/dist/auth/handler/get-session.d.cts +0 -21
  669. package/dist/auth/handler/get-session.d.ts +0 -21
  670. package/dist/auth/handler/get-session.mjs +0 -3
  671. package/dist/auth/handler/get-sessions.cjs +0 -12
  672. package/dist/auth/handler/get-sessions.d.cts +0 -21
  673. package/dist/auth/handler/get-sessions.d.ts +0 -21
  674. package/dist/auth/handler/get-sessions.mjs +0 -3
  675. package/dist/auth/handler/sign-in-handler.cjs +0 -11
  676. package/dist/auth/handler/sign-in-handler.d.cts +0 -6
  677. package/dist/auth/handler/sign-in-handler.d.ts +0 -6
  678. package/dist/auth/handler/sign-in-handler.mjs +0 -2
  679. package/dist/auth/handler/sign-out-handler.cjs +0 -12
  680. package/dist/auth/handler/sign-out-handler.d.cts +0 -5
  681. package/dist/auth/handler/sign-out-handler.d.ts +0 -5
  682. package/dist/auth/handler/sign-out-handler.mjs +0 -3
  683. package/dist/auth/hooks/use-sign-in.cjs +0 -14
  684. package/dist/auth/hooks/use-sign-in.d.cts +0 -9
  685. package/dist/auth/hooks/use-sign-in.d.ts +0 -9
  686. package/dist/auth/hooks/use-sign-in.mjs +0 -5
  687. package/dist/auth/hooks/use-sign-out.cjs +0 -15
  688. package/dist/auth/hooks/use-sign-out.d.cts +0 -6
  689. package/dist/auth/hooks/use-sign-out.d.ts +0 -6
  690. package/dist/auth/hooks/use-sign-out.mjs +0 -6
  691. package/dist/auth/hooks/use-user.cjs +0 -11
  692. package/dist/auth/hooks/use-user.d.cts +0 -8
  693. package/dist/auth/hooks/use-user.d.ts +0 -8
  694. package/dist/auth/hooks/use-user.mjs +0 -2
  695. package/dist/auth/hooks/use-vuer-sessions.cjs +0 -15
  696. package/dist/auth/hooks/use-vuer-sessions.d.cts +0 -9
  697. package/dist/auth/hooks/use-vuer-sessions.d.ts +0 -9
  698. package/dist/auth/hooks/use-vuer-sessions.mjs +0 -6
  699. package/dist/auth/index.cjs +0 -165
  700. package/dist/auth/index.d.cts +0 -13
  701. package/dist/auth/index.d.ts +0 -13
  702. package/dist/auth/index.mjs +0 -124
  703. package/dist/auth/localstorage-key.cjs +0 -14
  704. package/dist/auth/localstorage-key.d.cts +0 -4
  705. package/dist/auth/localstorage-key.d.ts +0 -4
  706. package/dist/auth/localstorage-key.mjs +0 -1
  707. package/dist/auth/types.d.cts +0 -27
  708. package/dist/auth/types.d.ts +0 -27
  709. package/dist/auth/vuer-user-provider.cjs +0 -14
  710. package/dist/auth/vuer-user-provider.d.cts +0 -9
  711. package/dist/auth/vuer-user-provider.d.ts +0 -9
  712. package/dist/auth/vuer-user-provider.mjs +0 -5
  713. package/dist/chunk-2DXJJLJL.mjs +0 -51
  714. package/dist/chunk-2GXIGEKC.mjs +0 -66
  715. package/dist/chunk-3WMO5QJJ.cjs +0 -8
  716. package/dist/chunk-5OHAV55L.mjs +0 -24
  717. package/dist/chunk-6C53NKMF.mjs +0 -206
  718. package/dist/chunk-6GJM7TPE.cjs +0 -28
  719. package/dist/chunk-7E5Y224I.cjs +0 -14
  720. package/dist/chunk-7R5HY3IM.cjs +0 -12
  721. package/dist/chunk-EMVKGL5D.mjs +0 -28
  722. package/dist/chunk-EMXEFZEB.cjs +0 -30
  723. package/dist/chunk-EOSYXHEH.mjs +0 -27
  724. package/dist/chunk-EXXV3BXT.cjs +0 -23
  725. package/dist/chunk-F4Z5KATZ.cjs +0 -8
  726. package/dist/chunk-FROQ45MN.mjs +0 -6
  727. package/dist/chunk-FZAGJSW2.cjs +0 -47
  728. package/dist/chunk-H7RH4CZ7.cjs +0 -54
  729. package/dist/chunk-HOMAESTR.mjs +0 -12
  730. package/dist/chunk-IPQU5CJD.mjs +0 -21
  731. package/dist/chunk-JR4TVE43.cjs +0 -31
  732. package/dist/chunk-KIZEJMW4.cjs +0 -15
  733. package/dist/chunk-KQW3YARN.cjs +0 -117
  734. package/dist/chunk-L2XJ5Q7T.cjs +0 -58
  735. package/dist/chunk-LAPOK2L4.mjs +0 -193
  736. package/dist/chunk-MFYDZKQF.mjs +0 -28
  737. package/dist/chunk-MNCBTS63.cjs +0 -68
  738. package/dist/chunk-MO5V43Z3.mjs +0 -13
  739. package/dist/chunk-MRMSCW3P.cjs +0 -19
  740. package/dist/chunk-OOHCJIRV.cjs +0 -26
  741. package/dist/chunk-PX2H7Z4D.mjs +0 -26
  742. package/dist/chunk-PXDT5GFJ.mjs +0 -13
  743. package/dist/chunk-Q3CJUGX3.cjs +0 -21
  744. package/dist/chunk-Q76WU4DL.cjs +0 -17
  745. package/dist/chunk-R4HT3SYR.cjs +0 -208
  746. package/dist/chunk-RSBVQ7SJ.cjs +0 -54
  747. package/dist/chunk-RTYZO2AC.cjs +0 -30
  748. package/dist/chunk-SO2UTKSV.mjs +0 -17
  749. package/dist/chunk-UT7B4TLZ.mjs +0 -5
  750. package/dist/chunk-V4KDK3BN.mjs +0 -52
  751. package/dist/chunk-V5T6XOSB.cjs +0 -222
  752. package/dist/chunk-VSFPXAGN.mjs +0 -10
  753. package/dist/chunk-VSIOXWSI.cjs +0 -53
  754. package/dist/chunk-WDS3VL7E.mjs +0 -56
  755. package/dist/chunk-X3H6FYAM.cjs +0 -15
  756. package/dist/chunk-XHJDRQD7.mjs +0 -29
  757. package/dist/chunk-Y2XVZEXM.mjs +0 -45
  758. package/dist/chunk-Z7BZFZEV.mjs +0 -15
  759. package/dist/dial/DialProvider.example.cjs +0 -72
  760. package/dist/dial/DialProvider.example.d.cts +0 -7
  761. package/dist/dial/DialProvider.example.d.ts +0 -7
  762. package/dist/dial/DialProvider.example.mjs +0 -68
  763. package/dist/styles/toast.css +0 -64
  764. package/dist/styles/toast.d.cts +0 -2
  765. package/dist/styles/toast.d.ts +0 -2
  766. package/src/auth/components/index.ts +0 -1
  767. package/src/auth/components/user-avatar/index.tsx +0 -94
  768. package/src/auth/context/user-context.ts +0 -15
  769. package/src/auth/handler/fetch-auth.ts +0 -10
  770. package/src/auth/handler/fetch-server.ts +0 -10
  771. package/src/auth/handler/get-session.ts +0 -19
  772. package/src/auth/handler/get-sessions.ts +0 -16
  773. package/src/auth/handler/sign-in-handler.ts +0 -64
  774. package/src/auth/handler/sign-out-handler.ts +0 -9
  775. package/src/auth/hooks/use-sign-in.ts +0 -33
  776. package/src/auth/hooks/use-sign-out.ts +0 -30
  777. package/src/auth/hooks/use-user.ts +0 -10
  778. package/src/auth/hooks/use-vuer-sessions.ts +0 -29
  779. package/src/auth/index.ts +0 -12
  780. package/src/auth/localstorage-key.ts +0 -3
  781. package/src/auth/types.ts +0 -38
  782. package/src/auth/vuer-user-provider.tsx +0 -58
  783. package/src/dial/DialProvider.example.tsx +0 -80
  784. package/src/styles/toast.css +0 -67
  785. /package/dist/{auth/types.mjs → chunk-6NZ5VXK7.mjs} +0 -0
  786. /package/dist/{chunk-UXWS62ZO.mjs → chunk-6THKQIF7.mjs} +0 -0
  787. /package/dist/{auth/types.cjs → chunk-AS3GNGJN.cjs} +0 -0
  788. /package/dist/{chunk-NK7L5H2Y.cjs → chunk-DPILGC4Y.cjs} +0 -0
  789. /package/dist/{chunk-YWECB5GR.cjs → chunk-F4NQLN5E.cjs} +0 -0
  790. /package/dist/{chunk-YYLBP356.mjs → chunk-NU5W73NH.mjs} +0 -0
@@ -13,9 +13,10 @@ import {
13
13
  SelectValue,
14
14
  Slider,
15
15
  Switch,
16
- } from "../../index"; // Base input component that connects to the dial store
17
- import { LabelPositionT, useDialSchema } from "../DialProvider";
16
+ } from "../../index";
17
+ import { useDialSchema } from "../DialProvider";
18
18
  import { IconRenderer } from "../IconRenderer";
19
+ import type { LabelPositionT } from "../types";
19
20
 
20
21
  // Helper component for wrapping inputs with labels
21
22
  const DialInputWrapper: React.FC<{
@@ -30,7 +31,7 @@ const DialInputWrapper: React.FC<{
30
31
 
31
32
  return (
32
33
  <FormLayout orientation={`label-${labelPosition}` as LayoutType} className="overflow-x-hidden">
33
- <Label size="sm" className="flex items-center gap-1">
34
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
34
35
  <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
35
36
  {label}
36
37
  </Label>
@@ -108,7 +109,7 @@ export const DialBooleanInput: React.FC<DialNumInputProps> = ({
108
109
  const { getValue, setValue } = useDialSchema();
109
110
  const value = (getValue(name) ?? false) as boolean;
110
111
 
111
- const handleChange = useCallback((checked: boolean) => setValue(name, checked), [name]);
112
+ const handleChange = useCallback((checked: boolean) => setValue(name, checked), [name, setValue]);
112
113
 
113
114
  const switchProps = {
114
115
  checked: value,
@@ -116,12 +117,12 @@ export const DialBooleanInput: React.FC<DialNumInputProps> = ({
116
117
  };
117
118
 
118
119
  if (!label || labelPosition === "inline") {
119
- return <Switch {...switchProps} />;
120
+ return <Switch className="ml-1.5" {...switchProps} />;
120
121
  }
121
122
 
122
123
  return (
123
124
  <DialInputWrapper label={label} labelPosition={labelPosition} icon={icon} {...props}>
124
- <Switch {...switchProps} />
125
+ <Switch className="ml-1.5" {...switchProps} />
125
126
  </DialInputWrapper>
126
127
  );
127
128
  };
@@ -129,14 +130,17 @@ export const DialBooleanInput: React.FC<DialNumInputProps> = ({
129
130
  // Dial-wrapped ColorInput
130
131
  export const DialColorInput: React.FC<DialNumInputProps> = ({ name, label, icon, ...props }) => {
131
132
  const { getValue, setValue } = useDialSchema();
132
- const value = (getValue(name) ?? "") as string;
133
+ // Value can be string or number (0xffffff format)
134
+ const value = getValue(name) as string | number | undefined;
133
135
 
134
- const handleChange = useCallback(
135
- (e: React.ChangeEvent<HTMLInputElement>) => setValue(name, e.target.value),
136
- [name],
136
+ const handleValueChange = useCallback(
137
+ (hexColor: string) => setValue(name, hexColor),
138
+ [name, setValue],
137
139
  );
138
140
 
139
- const inputComp = <ColorInput value={value} onChange={handleChange} prefix={label} />;
141
+ const inputComp = (
142
+ <ColorInput className="ml-1.5" value={value ?? ""} onValueChange={handleValueChange} />
143
+ );
140
144
 
141
145
  return (
142
146
  <DialInputWrapper label={label} icon={icon} {...props}>
@@ -162,7 +166,7 @@ export const DialSelectInput: React.FC<DialNumInputProps> = ({
162
166
  const parsed = !isNaN(Number(val)) ? Number(val) : val;
163
167
  setValue(name, parsed);
164
168
  },
165
- [name],
169
+ [name, setValue],
166
170
  );
167
171
 
168
172
  const selectComponent = (
@@ -199,7 +203,7 @@ export const DialSliderInput: React.FC<DialNumInputProps> = ({
199
203
  const { getValue, setValue } = useDialSchema();
200
204
  const value = (getValue(name) ?? min) as number;
201
205
 
202
- const handleValueChange = useCallback(([val]: number[]) => setValue(name, val), [name]);
206
+ const handleValueChange = useCallback(([val]: number[]) => setValue(name, val), [name, setValue]);
203
207
 
204
208
  const sliderProps = {
205
209
  value: [value],
@@ -207,13 +211,15 @@ export const DialSliderInput: React.FC<DialNumInputProps> = ({
207
211
  min,
208
212
  max,
209
213
  step,
210
- className: "flex-1",
214
+ className: "flex-1 pl-1.5",
211
215
  };
212
216
 
213
217
  return (
214
218
  <DialInputWrapper label={label} icon={icon} {...props}>
215
- <Slider {...sliderProps} />
216
- <span className="text-text-secondary w-12 text-right text-sm">{value}</span>
219
+ <div className={"flex"}>
220
+ <Slider {...sliderProps} />
221
+ <span className="text-text-secondary w-12 text-right text-sm">{value}</span>
222
+ </div>
217
223
  </DialInputWrapper>
218
224
  );
219
225
  };
@@ -0,0 +1,175 @@
1
+ import { Plus, X } from "lucide-react";
2
+ import React, { useCallback, useMemo } from "react";
3
+
4
+ import { Button, FormLayout, Input, Label, Switch, type LayoutType } from "../../index";
5
+ import { useDialSchema } from "../DialProvider";
6
+ import { IconRenderer } from "../IconRenderer";
7
+ import { LabelPositionT } from "../types";
8
+
9
+ interface DialArrayInputProps {
10
+ name: string;
11
+ label?: string;
12
+ labelPosition?: LabelPositionT;
13
+ icon?: string;
14
+ }
15
+
16
+ /**
17
+ * Array input component for primitive types (string, number, boolean)
18
+ * Supports add/remove operations for dynamic arrays
19
+ *
20
+ * Note: Currently only supports primitive element types.
21
+ * Complex types (objects, nested arrays) are not supported.
22
+ */
23
+ export const DialArrayInput: React.FC<DialArrayInputProps> = ({
24
+ name,
25
+ label,
26
+ labelPosition = "top",
27
+ icon,
28
+ }) => {
29
+ const { getValue, setValue, schemas } = useDialSchema();
30
+
31
+ const schema = schemas.find((s) => s.name === name);
32
+ const arrayValue = useMemo(
33
+ () => (getValue(name) || []) as Array<string | number | boolean>,
34
+ [getValue, name],
35
+ );
36
+ const elementType = schema?.arrayElementType || "string";
37
+
38
+ const handleAddItem = useCallback(() => {
39
+ const newValue = [...arrayValue];
40
+ // Add default value based on element type
41
+ switch (elementType) {
42
+ case "number":
43
+ newValue.push(0);
44
+ break;
45
+ case "boolean":
46
+ newValue.push(false);
47
+ break;
48
+ default: // string
49
+ newValue.push("");
50
+ break;
51
+ }
52
+ setValue(name, newValue);
53
+ }, [arrayValue, elementType, name, setValue]);
54
+
55
+ const handleRemoveItem = useCallback(
56
+ (index: number) => {
57
+ const newValue = arrayValue.filter((_, i) => i !== index);
58
+ setValue(name, newValue);
59
+ },
60
+ [arrayValue, name, setValue],
61
+ );
62
+
63
+ const handleItemChange = useCallback(
64
+ (index: number, value: string | number | boolean) => {
65
+ const newValue = [...arrayValue];
66
+ newValue[index] = value;
67
+ setValue(name, newValue);
68
+ },
69
+ [arrayValue, name, setValue],
70
+ );
71
+
72
+ if (!schema) {
73
+ return null;
74
+ }
75
+
76
+ const renderItemInput = (item: string | number | boolean, index: number) => {
77
+ const itemKey = `${name}-${index}`;
78
+
79
+ switch (elementType) {
80
+ case "boolean":
81
+ return (
82
+ <Switch
83
+ key={itemKey}
84
+ checked={item as boolean}
85
+ onCheckedChange={(checked) => handleItemChange(index, checked)}
86
+ />
87
+ );
88
+
89
+ case "number":
90
+ return (
91
+ <Input
92
+ key={itemKey}
93
+ type="number"
94
+ value={item as number}
95
+ onChange={(e) => handleItemChange(index, Number(e.target.value))}
96
+ className="flex-1"
97
+ step={schema.step || 0.1}
98
+ min={schema.min}
99
+ max={schema.max}
100
+ />
101
+ );
102
+
103
+ default: // string
104
+ return (
105
+ <Input
106
+ key={itemKey}
107
+ type="text"
108
+ value={item as string}
109
+ onChange={(e) => handleItemChange(index, e.target.value)}
110
+ className="flex-1"
111
+ placeholder={schema.placeholder}
112
+ />
113
+ );
114
+ }
115
+ };
116
+
117
+ const arrayContent = (
118
+ <div className="flex flex-col gap-2">
119
+ {/* Array items */}
120
+ {arrayValue.map((item, index) => (
121
+ <div key={`${name}-item-${index}`} className="flex items-center gap-2">
122
+ <span className="text-text-secondary min-w-[20px] text-xs">{index + 1}.</span>
123
+ {renderItemInput(item, index)}
124
+ <Button
125
+ variant="ghost"
126
+ size="sm"
127
+ icon
128
+ onClick={() => handleRemoveItem(index)}
129
+ className="h-8 w-8"
130
+ title="Remove item"
131
+ >
132
+ <X className="h-4 w-4" />
133
+ </Button>
134
+ </div>
135
+ ))}
136
+
137
+ {/* Add button */}
138
+ <Button variant="secondary" size="sm" onClick={handleAddItem} className="self-start">
139
+ <Plus className="mr-1 h-4 w-4" />
140
+ Add {elementType}
141
+ </Button>
142
+
143
+ {/* Empty state */}
144
+ {arrayValue.length === 0 && (
145
+ <div className="text-text-secondary text-sm italic">
146
+ No items. Click "Add {elementType}" to start.
147
+ </div>
148
+ )}
149
+ </div>
150
+ );
151
+
152
+ if (!label) {
153
+ return arrayContent;
154
+ }
155
+
156
+ return (
157
+ <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
158
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
159
+ <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
160
+ {label}
161
+ </Label>
162
+ <div className="flex flex-col gap-2 pl-1.5">
163
+ {schema.helpText && (
164
+ <span
165
+ className="text-text-secondary cursor-help text-xs"
166
+ title={schema.helpText as string}
167
+ >
168
+ ⓘ {schema.helpText}
169
+ </span>
170
+ )}
171
+ <div className="border-surface-secondary rounded-md border p-2">{arrayContent}</div>
172
+ </div>
173
+ </FormLayout>
174
+ );
175
+ };
@@ -1,6 +1,8 @@
1
- import React, { PropsWithChildren } from "react";
1
+ import { LockKeyhole, LockOpen } from "lucide-react";
2
+ import React, { PropsWithChildren, useCallback, useMemo } from "react";
2
3
 
3
4
  import {
5
+ Button,
4
6
  CmInput,
5
7
  DegInput,
6
8
  EulerDegInput,
@@ -18,8 +20,9 @@ import {
18
20
  Vec3Input,
19
21
  VectorInput,
20
22
  } from "../../index";
21
- import { LabelPositionT, useDialSchema } from "../DialProvider";
23
+ import { useDialSchema } from "../DialProvider";
22
24
  import { IconRenderer } from "../IconRenderer";
25
+ import type { LabelPositionT } from "../types";
23
26
 
24
27
  // Base props for all dial-wrapped inputs
25
28
  interface DialWrapperProps {
@@ -31,6 +34,8 @@ interface DialWrapperProps {
31
34
  max?: number;
32
35
  labelPosition?: LabelPositionT;
33
36
  icon?: string;
37
+ /** Display format for angle values: rad (default), deg, or pi */
38
+ format?: "rad" | "deg" | "pi";
34
39
  }
35
40
 
36
41
  // Helper component for wrapping inputs with labels
@@ -46,7 +51,7 @@ const DialInputWrapper: React.FC<PropsWithChildren<DialWrapperProps>> = ({
46
51
 
47
52
  return (
48
53
  <FormLayout orientation={`label-${labelPosition}` as LayoutType} className="overflow-x-hidden">
49
- <Label size="sm" className="flex items-center gap-1">
54
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
50
55
  <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
51
56
  {label}
52
57
  </Label>
@@ -72,15 +77,103 @@ export const DialVec3Input: React.FC<DialWrapperProps> = ({
72
77
  const minArray = min !== undefined ? [min, min, min] : undefined;
73
78
  const maxArray = max !== undefined ? [max, max, max] : undefined;
74
79
 
80
+ const isLockable = ["position", "rotation", "scale"].includes(name);
81
+
82
+ // Get disabled fields from the schema values
83
+ const disabledFields = (getValue("disabledFields") as string[]) ?? [];
84
+
85
+ // Create disabled array for each axis
86
+ const disabled = useMemo(() => {
87
+ if (!isLockable) return undefined;
88
+ return [
89
+ disabledFields.includes(`${name}.0`),
90
+ disabledFields.includes(`${name}.1`),
91
+ disabledFields.includes(`${name}.2`),
92
+ ];
93
+ }, [isLockable, name, disabledFields]);
94
+
95
+ // Handle suffix batch action (drag to lock/unlock multiple inputs)
96
+ const handleSuffixBatchAction = useCallback(
97
+ (indices: number[]) => {
98
+ if (indices.length === 0) return;
99
+
100
+ const firstIndex = indices[0];
101
+ const firstFieldName = `${name}.${firstIndex}`;
102
+ const shouldLock = !disabledFields.includes(firstFieldName);
103
+
104
+ const newDisabledFields = [...disabledFields];
105
+
106
+ indices.forEach((index) => {
107
+ const fieldName = `${name}.${index}`;
108
+ const fieldIndex = newDisabledFields.indexOf(fieldName);
109
+
110
+ if (shouldLock && fieldIndex === -1) {
111
+ // Lock this field
112
+ newDisabledFields.push(fieldName);
113
+ } else if (!shouldLock && fieldIndex > -1) {
114
+ // Unlock this field
115
+ newDisabledFields.splice(fieldIndex, 1);
116
+ }
117
+ });
118
+
119
+ setValue("disabledFields", newDisabledFields);
120
+ },
121
+ [name, disabledFields, setValue],
122
+ );
123
+
124
+ // Create lock button suffix array
125
+ const suffix = useMemo(() => {
126
+ if (!isLockable) return undefined;
127
+ return [0, 1, 2].map((index) => {
128
+ const isLocked = disabled?.[index] ?? false;
129
+
130
+ return (
131
+ <Button
132
+ variant="ghost"
133
+ size="sm"
134
+ icon
135
+ className="hover:bg-shadow-secondary size-4 p-0"
136
+ title={isLocked ? `Unlock ${["X", "Y", "Z"][index]}` : `Lock ${["X", "Y", "Z"][index]}`}
137
+ >
138
+ {isLocked ? (
139
+ <LockKeyhole strokeWidth={1.5} className="text-icon-tertiary size-2.5" />
140
+ ) : (
141
+ <LockOpen strokeWidth={1.5} className="text-icon-tertiary size-2.5" />
142
+ )}
143
+ </Button>
144
+ );
145
+ });
146
+ }, [isLockable, disabled]);
147
+
148
+ // Handle value change - filter out locked values
149
+ const handleValueChange = useCallback(
150
+ (newValue: [number, number, number]) => {
151
+ if (!isLockable || !disabled) {
152
+ setValue(name, newValue);
153
+ return;
154
+ }
155
+ const filteredValue = newValue.map((v, i) => (disabled[i] ? value[i] : v)) as [
156
+ number,
157
+ number,
158
+ number,
159
+ ];
160
+ setValue(name, filteredValue);
161
+ },
162
+ [name, setValue, value, isLockable, disabled],
163
+ );
164
+
75
165
  if (labelPosition === "inline") {
76
166
  return (
77
167
  <Vec3Input
78
168
  value={value}
79
- onValuesChange={(val) => setValue(name, val)}
169
+ onValuesChange={handleValueChange}
80
170
  size={size}
81
171
  step={step}
82
172
  min={minArray}
83
173
  max={maxArray}
174
+ disabledItems={disabled}
175
+ suffix={suffix}
176
+ onSuffixBatchAction={isLockable ? handleSuffixBatchAction : undefined}
84
177
  prefix={label ? [label, "", ""] : undefined}
85
178
  />
86
179
  );
@@ -89,11 +182,14 @@ export const DialVec3Input: React.FC<DialWrapperProps> = ({
89
182
  <DialInputWrapper name={name} label={label} icon={icon}>
90
183
  <Vec3Input
91
184
  value={value}
92
- onValuesChange={(val) => setValue(name, val)}
185
+ onValuesChange={handleValueChange}
93
186
  size={size}
94
187
  step={step}
95
188
  min={minArray}
96
189
  max={maxArray}
190
+ disabledItems={disabled}
191
+ suffix={suffix}
192
+ onSuffixBatchAction={isLockable ? handleSuffixBatchAction : undefined}
97
193
  />
98
194
  </DialInputWrapper>
99
195
  );
@@ -466,7 +562,7 @@ export const DialTextInput: React.FC<DialWrapperProps & { placeholder?: string }
466
562
  );
467
563
  } else {
468
564
  return (
469
- <DialInputWrapper name={name} label={label} icon={icon}>
565
+ <DialInputWrapper name={name} label={label} icon={icon} labelPosition={labelPosition}>
470
566
  <TextInput
471
567
  value={value}
472
568
  onChange={(val) => setValue(name, val)}
@@ -478,7 +574,7 @@ export const DialTextInput: React.FC<DialWrapperProps & { placeholder?: string }
478
574
  }
479
575
  };
480
576
 
481
- // Dial-wrapped EulerRadInput (radians with degree display)
577
+ // Dial-wrapped EulerRadInput (radians with configurable display format)
482
578
  export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
483
579
  name,
484
580
  label,
@@ -486,6 +582,7 @@ export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
486
582
  step,
487
583
  labelPosition,
488
584
  icon,
585
+ format = "rad", // Default to radians
489
586
  }) => {
490
587
  const { getValue, setValue } = useDialSchema();
491
588
  const value = (getValue(name) ?? [0, 0, 0]) as [number, number, number];
@@ -497,7 +594,7 @@ export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
497
594
  onValuesChange={(val) => setValue(name, val)}
498
595
  size={size}
499
596
  step={step}
500
- display="deg"
597
+ display={format}
501
598
  prefix={label ? [label, "", ""] : undefined}
502
599
  />
503
600
  );
@@ -509,14 +606,14 @@ export const DialEulerRadInput: React.FC<DialWrapperProps> = ({
509
606
  onValuesChange={(val) => setValue(name, val)}
510
607
  size={size}
511
608
  step={step}
512
- display="deg"
609
+ display={format}
513
610
  />
514
611
  </DialInputWrapper>
515
612
  );
516
613
  }
517
614
  };
518
615
 
519
- // Dial-wrapped number-rad input (displays as degrees but stores as radians)
616
+ // Dial-wrapped number-rad input (stores radians, configurable display format)
520
617
  export const DialNumberRadInput: React.FC<DialWrapperProps> = ({
521
618
  name,
522
619
  label,
@@ -524,24 +621,17 @@ export const DialNumberRadInput: React.FC<DialWrapperProps> = ({
524
621
  step,
525
622
  labelPosition,
526
623
  icon,
624
+ format = "rad", // Default to radians
527
625
  }) => {
528
626
  const { getValue, setValue } = useDialSchema();
529
627
  const value = (getValue(name) ?? 0) as number;
530
628
 
531
- // Convert radians to degrees for display
532
- const degValue = (value * 180) / Math.PI;
533
-
534
- // Handler to convert degrees back to radians
535
- const handleChange = (deg: number) => {
536
- const rad = (deg * Math.PI) / 180;
537
- setValue(name, rad);
538
- };
539
-
540
629
  if (labelPosition === "inline") {
541
630
  return (
542
- <DegInput
543
- value={degValue}
544
- onChange={handleChange}
631
+ <RadInput
632
+ value={value}
633
+ onChange={(val) => setValue(name, val)}
634
+ display={format}
545
635
  size={size}
546
636
  step={step}
547
637
  prefix={label ? [label] : undefined}
@@ -550,7 +640,13 @@ export const DialNumberRadInput: React.FC<DialWrapperProps> = ({
550
640
  } else {
551
641
  return (
552
642
  <DialInputWrapper name={name} label={label} icon={icon}>
553
- <DegInput value={degValue} onChange={handleChange} size={size} step={step} />
643
+ <RadInput
644
+ value={value}
645
+ onChange={(val) => setValue(name, val)}
646
+ display={format}
647
+ size={size}
648
+ step={step}
649
+ />
554
650
  </DialInputWrapper>
555
651
  );
556
652
  }
@@ -0,0 +1,80 @@
1
+ import React, { useCallback } from "react";
2
+
3
+ import { FormLayout, Label, type LayoutType } from "../../index";
4
+ import { DialPanel } from "../DialPanel";
5
+ import { DialProvider, useDialSchema } from "../DialProvider";
6
+ import { IconRenderer } from "../IconRenderer";
7
+ import { LabelPositionT } from "../types";
8
+
9
+ interface DialInterfaceInputProps {
10
+ name: string;
11
+ label?: string;
12
+ labelPosition?: LabelPositionT;
13
+ icon?: string;
14
+ }
15
+
16
+ export const DialInterfaceInput: React.FC<DialInterfaceInputProps> = ({
17
+ name,
18
+ label,
19
+ labelPosition = "top",
20
+ icon,
21
+ }) => {
22
+ const { getValue, setValue, schemas } = useDialSchema();
23
+
24
+ const values: Record<string, unknown> = getValue(name) as Record<string, unknown>;
25
+
26
+ const handlePropertyChange = useCallback(
27
+ (propName: string, value: unknown) => {
28
+ const newValues = { ...values };
29
+ newValues[propName] = value;
30
+ setValue(name, newValues);
31
+ },
32
+ [name, setValue, values],
33
+ );
34
+
35
+ const schema = schemas.find((s) => s.name === name);
36
+
37
+ if (!schema || !schema.typeDefinition?.schemas) {
38
+ return null;
39
+ }
40
+
41
+ const interfaceContent = (
42
+ <div className="border-surface-secondary flex flex-col gap-2 rounded-md border p-2">
43
+ <DialProvider
44
+ schemas={schema.typeDefinition.schemas}
45
+ values={values}
46
+ onValueChange={handlePropertyChange}
47
+ >
48
+ <DialPanel
49
+ schemas={schema.typeDefinition.schemas}
50
+ groups={schema.typeDefinition.groups}
51
+ labelLayout={schema.labelPosition as LabelPositionT}
52
+ />
53
+ </DialProvider>
54
+ </div>
55
+ );
56
+
57
+ if (!label) {
58
+ return interfaceContent;
59
+ }
60
+
61
+ return (
62
+ <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
63
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
64
+ <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
65
+ {label}
66
+ </Label>
67
+ <div className="flex flex-col gap-2 pl-1.5">
68
+ {schema.helpText && (
69
+ <span
70
+ className="text-text-secondary cursor-help text-xs"
71
+ title={schema.helpText as string}
72
+ >
73
+ ⓘ {schema.helpText}
74
+ </span>
75
+ )}
76
+ {interfaceContent}
77
+ </div>
78
+ </FormLayout>
79
+ );
80
+ };
@@ -1,9 +1,10 @@
1
1
  import React from "react";
2
2
 
3
3
  import { FormLayout, Label, type LayoutType } from "../../ui";
4
- import { PresetsInput } from "../../ui/inputs/presets-input";
5
- import { LabelPositionT, useDialSchema } from "../DialProvider";
4
+ import { PresetsInput } from "../../ui";
5
+ import { useDialSchema } from "../DialProvider";
6
6
  import { IconRenderer } from "../IconRenderer";
7
+ import { LabelPositionT } from "../types";
7
8
 
8
9
  const DialInputWrapper: React.FC<{
9
10
  label?: string;
@@ -17,7 +18,7 @@ const DialInputWrapper: React.FC<{
17
18
 
18
19
  return (
19
20
  <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
20
- <Label size="sm" className="flex items-center gap-1">
21
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
21
22
  <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
22
23
  {label}
23
24
  </Label>