@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
@@ -0,0 +1,102 @@
1
+ import React, { useCallback, useMemo } 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 DialTupleInputProps {
10
+ name: string;
11
+ label?: string;
12
+ labelPosition?: LabelPositionT;
13
+ icon?: string;
14
+ }
15
+
16
+ /**
17
+ * General tuple input component that handles mixed-type tuples
18
+ * Similar to interface/object but displays elements in a more compact layout
19
+ * Used for tuples containing strings, objects, or other complex types
20
+ */
21
+ export const DialTupleInput: React.FC<DialTupleInputProps> = ({
22
+ name,
23
+ label,
24
+ labelPosition = "top",
25
+ icon,
26
+ }) => {
27
+ const { getValue, setValue, schemas } = useDialSchema();
28
+
29
+ const values = useMemo(() => getValue(name) || [], [getValue, name]);
30
+
31
+ const handleElementChange = useCallback(
32
+ (elementName: string, value: unknown) => {
33
+ const newValues = Array.isArray(values) ? [...values] : [];
34
+
35
+ // Extract index from element name (e.g., "[0]" -> 0 or "x" -> find by name)
36
+ const schema = schemas.find((s) => s.name === name);
37
+ if (!schema || !schema.typeDefinition?.schemas) {
38
+ return;
39
+ }
40
+
41
+ const elementIndex = schema.typeDefinition.schemas.findIndex((s) => s.name === elementName);
42
+
43
+ if (elementIndex >= 0) {
44
+ newValues[elementIndex] = value;
45
+ setValue(name, newValues);
46
+ }
47
+ },
48
+ [name, setValue, values, schemas],
49
+ );
50
+
51
+ const schema = schemas.find((s) => s.name === name);
52
+
53
+ if (!schema || !schema.typeDefinition?.schemas) {
54
+ return null;
55
+ }
56
+
57
+ // Convert tuple array to object format for DialProvider
58
+ const valuesObject: Record<string, unknown> = {};
59
+ schema.typeDefinition.schemas.forEach((elemSchema, index) => {
60
+ valuesObject[elemSchema.name] = Array.isArray(values) ? values[index] : undefined;
61
+ });
62
+
63
+ const tupleContent = (
64
+ <div className="border-surface-secondary flex flex-col gap-2 rounded-md border p-2">
65
+ <DialProvider
66
+ schemas={schema.typeDefinition.schemas}
67
+ values={valuesObject}
68
+ onValueChange={handleElementChange}
69
+ >
70
+ <DialPanel
71
+ schemas={schema.typeDefinition.schemas}
72
+ groups={schema.typeDefinition.groups}
73
+ labelLayout={schema.labelPosition as LabelPositionT}
74
+ />
75
+ </DialProvider>
76
+ </div>
77
+ );
78
+
79
+ if (!label) {
80
+ return tupleContent;
81
+ }
82
+
83
+ return (
84
+ <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
85
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
86
+ <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
87
+ {label}
88
+ </Label>
89
+ <div className="flex flex-col gap-2 pl-1.5">
90
+ {schema.helpText && (
91
+ <span
92
+ className="text-text-secondary cursor-help text-xs"
93
+ title={schema.helpText as string}
94
+ >
95
+ ⓘ {schema.helpText}
96
+ </span>
97
+ )}
98
+ {tupleContent}
99
+ </div>
100
+ </FormLayout>
101
+ );
102
+ };
@@ -65,34 +65,24 @@ export const DialVectorInput: React.FC<DialVectorInputProps> = ({
65
65
  const steps = schema.steps || [];
66
66
  const mins = schema.mins || [];
67
67
  const maxs = schema.maxs || [];
68
- const tags = schema.tags || {};
68
+ const defaults = Array.isArray(schema.value) ? schema.value : [];
69
69
 
70
70
  // Ensure value is an array with correct dimensions
71
71
  const vectorValue = Array.isArray(value)
72
- ? value.concat(Array(Math.max(0, dimensions - value.length)).fill(0))
73
- : Array(dimensions).fill(0);
72
+ ? value.concat(
73
+ Array.from({ length: Math.max(0, dimensions - value.length) }, (_, i) =>
74
+ defaults[value.length + i] !== undefined ? defaults[value.length + i] : 0,
75
+ ),
76
+ )
77
+ : Array.from({ length: dimensions }, (_, i) => (defaults[i] !== undefined ? defaults[i] : 0));
74
78
 
75
79
  // Check if we have mixed types (contains boolean)
76
80
  const hasMixedTypes = dtypes.some((dtype) => dtype === "boolean");
77
81
 
78
82
  // Determine layout from tags
79
- let gridAutoFlow: "column" | "row";
80
- let gridColumns: number | undefined;
81
- let gridRows: number | undefined;
82
-
83
- if (typeof tags.col === "number") {
84
- gridAutoFlow = "column";
85
- gridRows = tags.col;
86
- gridColumns = undefined;
87
- } else if (typeof tags.row === "number") {
88
- gridAutoFlow = "row";
89
- gridColumns = tags.row;
90
- gridRows = undefined;
91
- } else {
92
- gridAutoFlow = "row";
93
- gridColumns = undefined;
94
- gridRows = undefined;
95
- }
83
+ const gridAutoFlow = schema.vectorFlow === "row" ? "row" : "column";
84
+ const gridColumns = typeof schema.vectorCols === "number" ? schema.vectorCols : undefined;
85
+ const gridRows = typeof schema.vectorRows === "number" ? schema.vectorRows : undefined;
96
86
 
97
87
  if (hasMixedTypes) {
98
88
  // Separate number and boolean indices and values
@@ -237,7 +227,7 @@ export const DialVectorInput: React.FC<DialVectorInputProps> = ({
237
227
 
238
228
  return (
239
229
  <FormLayout orientation={`label-${labelPosition}` as LayoutType}>
240
- <Label size="sm" className="flex items-center gap-1">
230
+ <Label size="sm" className="flex items-center gap-1 pl-1.5">
241
231
  <IconRenderer iconName={icon} size={14} className="text-text-secondary" />
242
232
  {label}
243
233
  </Label>
@@ -30,3 +30,9 @@ export { DialPresetsInput } from "./DialPresetsInput";
30
30
 
31
31
  // Variable-dimension vector input
32
32
  export { DialVectorInput } from "./DialVectorInput";
33
+
34
+ // General tuple input for mixed types
35
+ export { DialTupleInput } from "./DialTupleInput";
36
+
37
+ // Array input for primitive types
38
+ export { DialArrayInput } from "./DialArrayInput";
@@ -5,247 +5,395 @@ import { CursorContext } from "./cursor-context";
5
5
  import type { CursorProviderProps } from "./types";
6
6
  import { cn } from "../hooks/cn";
7
7
 
8
+ // Spring physics configuration
9
+ const SPRING_CONFIG = {
10
+ stiffness: 0.15, // How snappy (higher = faster)
11
+ damping: 0.75, // How bouncy (lower = more bounce, 1 = no bounce)
12
+ mass: 1,
13
+ };
14
+
15
+ // Squish configuration
16
+ const SQUISH_CONFIG = {
17
+ maxSquish: 0.15, // Maximum squish amount (0.15 = 15% squish)
18
+ velocityScale: 0.008, // How much velocity affects squish
19
+ recovery: 0.15, // How fast squish recovers
20
+ };
21
+
22
+ interface SpringState {
23
+ x: number;
24
+ y: number;
25
+ width: number;
26
+ height: number;
27
+ velocityX: number;
28
+ velocityY: number;
29
+ velocityW: number;
30
+ velocityH: number;
31
+ scaleX: number;
32
+ scaleY: number;
33
+ }
34
+
8
35
  export const CursorProvider = ({
9
36
  children,
10
37
  maxOffsetX = 5,
11
38
  maxOffsetY = 20,
12
39
  cursorSize = 20,
13
- transitionDuration = 100,
40
+ boundaryThreshold = 4,
41
+ outerThreshold = 8,
14
42
  cursorClassName,
15
43
  className,
16
44
  as: Component = "div",
17
45
  ...props
18
46
  }: CursorProviderProps) => {
19
- // Check if we're in a browser environment
20
47
  const [isClient, setIsClient] = useState(false);
21
48
  const [isMouseInside, setIsMouseInside] = useState(false);
22
- const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });
23
- const [hoveredElementId, setHoveredElementId] = useState<string | null>(null);
24
- const [elementDimensions, setElementDimensions] = useState({
25
- width: 0,
26
- height: 0,
49
+
50
+ // Refs for high-frequency updates
51
+ const cursorRef = useRef<HTMLDivElement>(null);
52
+ const cursorInnerRef = useRef<HTMLDivElement>(null);
53
+ const mousePositionRef = useRef({ x: 0, y: 0 });
54
+ const prevMousePositionRef = useRef({ x: 0, y: 0 });
55
+ const hoveredElementIdRef = useRef<string | null>(null);
56
+ const hoveredElementRef = useRef<HTMLElement | null>(null);
57
+ const elementDimensionsRef = useRef({ width: 0, height: 0, x: 0, y: 0, right: 0, bottom: 0 });
58
+ const elementBorderRadiusRef = useRef<string>("9999px");
59
+ const animationFrameRef = useRef<number | null>(null);
60
+
61
+ // Spring animation state
62
+ const springRef = useRef<SpringState>({
27
63
  x: 0,
28
64
  y: 0,
29
- right: 0,
30
- bottom: 0,
65
+ width: cursorSize,
66
+ height: cursorSize,
67
+ velocityX: 0,
68
+ velocityY: 0,
69
+ velocityW: 0,
70
+ velocityH: 0,
71
+ scaleX: 1,
72
+ scaleY: 1,
31
73
  });
32
74
 
33
- const hoveredElementRef = useRef<HTMLElement | null>(null);
75
+ // Target state (where we want the cursor to be)
76
+ const targetRef = useRef({
77
+ x: 0,
78
+ y: 0,
79
+ width: cursorSize,
80
+ height: cursorSize,
81
+ });
82
+
83
+ const [hoveredElementId, setHoveredElementId] = useState<string | null>(null);
34
84
 
35
- // Set isClient to true after component mounts (client-side only)
36
85
  useEffect(() => {
37
86
  setIsClient(true);
38
87
  }, []);
39
88
 
89
+ // Calculate target position and size based on current state
90
+ const updateTarget = useCallback(() => {
91
+ const mouse = mousePositionRef.current;
92
+ const dims = elementDimensionsRef.current;
93
+ const isHovering = hoveredElementIdRef.current !== null;
94
+
95
+ if (isHovering && dims.width > 0) {
96
+ // Calculate distance from each edge (negative = outside)
97
+ const distFromLeft = mouse.x - dims.x;
98
+ const distFromRight = dims.x + dims.width - mouse.x;
99
+ const distFromTop = mouse.y - dims.y;
100
+ const distFromBottom = dims.y + dims.height - mouse.y;
101
+
102
+ // Total threshold zone = inner boundary + outer threshold
103
+ const totalThreshold = boundaryThreshold + outerThreshold;
104
+
105
+ let offsetX = 0;
106
+ let offsetY = 0;
107
+
108
+ // Left side: inside near edge or outside within threshold
109
+ if (distFromLeft < boundaryThreshold) {
110
+ // Map from boundaryThreshold (inside) to -outerThreshold (outside) -> 0 to maxOffset
111
+ const progress = Math.min(1, (boundaryThreshold - distFromLeft) / totalThreshold);
112
+ offsetX = -maxOffsetX * progress;
113
+ }
114
+ // Right side
115
+ else if (distFromRight < boundaryThreshold) {
116
+ const progress = Math.min(1, (boundaryThreshold - distFromRight) / totalThreshold);
117
+ offsetX = maxOffsetX * progress;
118
+ }
119
+
120
+ // Top side
121
+ if (distFromTop < boundaryThreshold) {
122
+ const progress = Math.min(1, (boundaryThreshold - distFromTop) / totalThreshold);
123
+ offsetY = -maxOffsetY * progress;
124
+ }
125
+ // Bottom side
126
+ else if (distFromBottom < boundaryThreshold) {
127
+ const progress = Math.min(1, (boundaryThreshold - distFromBottom) / totalThreshold);
128
+ offsetY = maxOffsetY * progress;
129
+ }
130
+
131
+ targetRef.current = {
132
+ x: dims.x + offsetX,
133
+ y: dims.y + offsetY,
134
+ width: dims.width,
135
+ height: dims.height,
136
+ };
137
+ } else {
138
+ // Follow mouse as a dot
139
+ targetRef.current = {
140
+ x: mouse.x - cursorSize / 2,
141
+ y: mouse.y - cursorSize / 2,
142
+ width: cursorSize,
143
+ height: cursorSize,
144
+ };
145
+ }
146
+ }, [cursorSize, maxOffsetX, maxOffsetY, boundaryThreshold, outerThreshold]);
147
+
148
+ // Animation loop with spring physics
149
+ const animate = useCallback(() => {
150
+ const cursor = cursorRef.current;
151
+ const cursorInner = cursorInnerRef.current;
152
+ if (!cursor || !cursorInner) {
153
+ animationFrameRef.current = requestAnimationFrame(animate);
154
+ return;
155
+ }
156
+
157
+ const spring = springRef.current;
158
+ const target = targetRef.current;
159
+ const { stiffness, damping } = SPRING_CONFIG;
160
+
161
+ // Calculate mouse velocity for squish effect
162
+ const mouse = mousePositionRef.current;
163
+ const prevMouse = prevMousePositionRef.current;
164
+ const mouseVelocityX = mouse.x - prevMouse.x;
165
+ const mouseVelocityY = mouse.y - prevMouse.y;
166
+ prevMousePositionRef.current = { ...mouse };
167
+
168
+ // Spring physics for position
169
+ const forceX = (target.x - spring.x) * stiffness;
170
+ const forceY = (target.y - spring.y) * stiffness;
171
+ spring.velocityX = (spring.velocityX + forceX) * damping;
172
+ spring.velocityY = (spring.velocityY + forceY) * damping;
173
+ spring.x += spring.velocityX;
174
+ spring.y += spring.velocityY;
175
+
176
+ // Spring physics for size
177
+ const forceW = (target.width - spring.width) * stiffness;
178
+ const forceH = (target.height - spring.height) * stiffness;
179
+ spring.velocityW = (spring.velocityW + forceW) * damping;
180
+ spring.velocityH = (spring.velocityH + forceH) * damping;
181
+ spring.width += spring.velocityW;
182
+ spring.height += spring.velocityH;
183
+
184
+ // Squish effect based on velocity
185
+ // Moving horizontally -> squish vertically (and vice versa)
186
+ const targetScaleX = 1 - Math.abs(mouseVelocityY) * SQUISH_CONFIG.velocityScale;
187
+ const targetScaleY = 1 - Math.abs(mouseVelocityX) * SQUISH_CONFIG.velocityScale;
188
+
189
+ // Clamp squish and smoothly interpolate
190
+ const clampedTargetScaleX = Math.max(1 - SQUISH_CONFIG.maxSquish, Math.min(1, targetScaleX));
191
+ const clampedTargetScaleY = Math.max(1 - SQUISH_CONFIG.maxSquish, Math.min(1, targetScaleY));
192
+
193
+ spring.scaleX += (clampedTargetScaleX - spring.scaleX) * SQUISH_CONFIG.recovery;
194
+ spring.scaleY += (clampedTargetScaleY - spring.scaleY) * SQUISH_CONFIG.recovery;
195
+
196
+ // Also add squish from spring velocity (bouncing)
197
+ const bounceSquishX = 1 - Math.abs(spring.velocityY) * 0.02;
198
+ const bounceSquishY = 1 - Math.abs(spring.velocityX) * 0.02;
199
+ const finalScaleX = Math.max(0.85, spring.scaleX * bounceSquishX);
200
+ const finalScaleY = Math.max(0.85, spring.scaleY * bounceSquishY);
201
+
202
+ // Apply to DOM
203
+ cursor.style.transform = `translate3d(${spring.x}px, ${spring.y}px, 0)`;
204
+ cursor.style.width = `${spring.width}px`;
205
+ cursor.style.height = `${spring.height}px`;
206
+
207
+ // Apply squish to inner element
208
+ cursorInner.style.transform = `scale(${finalScaleX}, ${finalScaleY})`;
209
+
210
+ // Update border radius based on hover state - use target element's radius
211
+ const isHovering = hoveredElementIdRef.current !== null;
212
+ if (isHovering) {
213
+ cursorInner.style.borderRadius = elementBorderRadiusRef.current;
214
+ } else {
215
+ cursorInner.style.borderRadius = "9999px";
216
+ }
217
+
218
+ animationFrameRef.current = requestAnimationFrame(animate);
219
+ }, []);
220
+
221
+ // Start animation loop
222
+ useEffect(() => {
223
+ if (!isClient) return;
224
+
225
+ animationFrameRef.current = requestAnimationFrame(animate);
226
+
227
+ return () => {
228
+ if (animationFrameRef.current) {
229
+ cancelAnimationFrame(animationFrameRef.current);
230
+ }
231
+ };
232
+ }, [isClient, animate]);
233
+
234
+ // Handle mouse movement
40
235
  useEffect(() => {
41
236
  if (!isClient) return;
42
237
 
43
238
  const handleMouseMove = (e: MouseEvent) => {
44
- setMousePosition({ x: e.clientX, y: e.clientY });
239
+ mousePositionRef.current = { x: e.clientX, y: e.clientY };
240
+ updateTarget();
45
241
  };
46
242
 
47
- document.addEventListener("mousemove", handleMouseMove);
243
+ document.addEventListener("mousemove", handleMouseMove, { passive: true });
48
244
  return () => document.removeEventListener("mousemove", handleMouseMove);
49
- }, [isClient]);
245
+ }, [isClient, updateTarget]);
50
246
 
51
247
  const handleMouseEnter = useCallback(() => {
52
248
  setIsMouseInside(true);
53
- }, []);
249
+ // Initialize spring position to current mouse position
250
+ const mouse = mousePositionRef.current;
251
+ springRef.current.x = mouse.x - cursorSize / 2;
252
+ springRef.current.y = mouse.y - cursorSize / 2;
253
+ updateTarget();
254
+ }, [cursorSize, updateTarget]);
54
255
 
55
256
  const handleMouseLeave = useCallback(() => {
56
257
  setIsMouseInside(false);
57
- setHoveredElementId(null);
258
+ hoveredElementIdRef.current = null;
58
259
  hoveredElementRef.current = null;
59
- }, []);
260
+ setHoveredElementId(null);
261
+ updateTarget();
262
+ }, [updateTarget]);
60
263
 
61
264
  const checkMouseInElement = useCallback(() => {
62
- if (!hoveredElementRef.current || !hoveredElementId) {
63
- return;
64
- }
265
+ if (!hoveredElementRef.current || !hoveredElementIdRef.current) return;
65
266
 
66
267
  const rect = hoveredElementRef.current.getBoundingClientRect();
268
+ const mouse = mousePositionRef.current;
67
269
 
68
- setElementDimensions({
270
+ elementDimensionsRef.current = {
69
271
  width: rect.width,
70
272
  height: rect.height,
71
273
  x: rect.left,
72
274
  y: rect.top,
73
275
  right: rect.right,
74
276
  bottom: rect.bottom,
75
- });
277
+ };
76
278
 
77
279
  const isInside =
78
- mousePosition.x >= rect.left &&
79
- mousePosition.x <= rect.right &&
80
- mousePosition.y >= rect.top &&
81
- mousePosition.y <= rect.bottom;
280
+ mouse.x >= rect.left &&
281
+ mouse.x <= rect.right &&
282
+ mouse.y >= rect.top &&
283
+ mouse.y <= rect.bottom;
82
284
 
83
285
  if (!isInside) {
84
- setHoveredElementId(null);
286
+ hoveredElementIdRef.current = null;
85
287
  hoveredElementRef.current = null;
288
+ setHoveredElementId(null);
86
289
  }
87
- }, [mousePosition, hoveredElementId]);
290
+
291
+ updateTarget();
292
+ }, [updateTarget]);
88
293
 
89
294
  useEffect(() => {
90
295
  if (!isClient) return;
91
296
 
92
- const handleScroll = () => {
93
- checkMouseInElement();
94
- };
297
+ const handleScroll = () => checkMouseInElement();
95
298
 
96
299
  document.addEventListener("scroll", handleScroll, { passive: true, capture: true });
97
-
98
- return () => {
99
- document.removeEventListener("scroll", handleScroll, { capture: true });
100
- };
300
+ return () => document.removeEventListener("scroll", handleScroll, { capture: true });
101
301
  }, [checkMouseInElement, isClient]);
102
302
 
103
303
  const registerHoveredElement = useCallback(
104
304
  (id: string, dimensions: DOMRect, element?: HTMLElement) => {
105
- setHoveredElementId(id);
106
- setElementDimensions({
305
+ hoveredElementIdRef.current = id;
306
+ elementDimensionsRef.current = {
107
307
  width: dimensions.width,
108
308
  height: dimensions.height,
109
309
  x: dimensions.left,
110
310
  y: dimensions.top,
111
311
  right: dimensions.right,
112
312
  bottom: dimensions.bottom,
113
- });
114
-
313
+ };
115
314
  if (element) {
116
315
  hoveredElementRef.current = element;
316
+ // Get computed border-radius from the target element
317
+ const computedStyle = window.getComputedStyle(element);
318
+ elementBorderRadiusRef.current = computedStyle.borderRadius || "8px";
117
319
  }
320
+ setHoveredElementId(id);
321
+ updateTarget();
118
322
  },
119
- [],
323
+ [updateTarget],
120
324
  );
121
325
 
122
326
  const unregisterHoveredElement = useCallback(() => {
123
- setHoveredElementId(null);
327
+ hoveredElementIdRef.current = null;
124
328
  hoveredElementRef.current = null;
125
- }, []);
329
+ elementBorderRadiusRef.current = "9999px";
330
+ setHoveredElementId(null);
331
+ updateTarget();
332
+ }, [updateTarget]);
126
333
 
127
334
  const updateElementDimensions = useCallback(
128
335
  (dimensions: DOMRect) => {
129
- if (hoveredElementId) {
130
- setElementDimensions({
336
+ if (hoveredElementIdRef.current) {
337
+ elementDimensionsRef.current = {
131
338
  width: dimensions.width,
132
339
  height: dimensions.height,
133
340
  x: dimensions.left,
134
341
  y: dimensions.top,
135
342
  right: dimensions.right,
136
343
  bottom: dimensions.bottom,
137
- });
344
+ };
345
+ updateTarget();
138
346
  }
139
347
  },
140
- [hoveredElementId],
348
+ [updateTarget],
141
349
  );
142
350
 
143
- const getCursorPosition = () => {
144
- if (!hoveredElementId) {
145
- return {
146
- x: mousePosition.x - cursorSize / 2,
147
- y: mousePosition.y - cursorSize / 2,
148
- };
149
- }
150
-
151
- // Calculate the center of the element
152
- const elementCenterX = elementDimensions.x + elementDimensions.width / 2;
153
- const elementCenterY = elementDimensions.y + elementDimensions.height / 2;
154
-
155
- // Calculate offset from center (with some dampening for smoothness)
156
- const offsetX = (mousePosition.x - elementCenterX) * 0.1;
157
- const offsetY = (mousePosition.y - elementCenterY) * 0.1;
158
-
159
- // Apply bounds to keep cursor within reasonable limits
160
- const boundedOffsetX = Math.max(-maxOffsetX, Math.min(maxOffsetX, offsetX));
161
- const boundedOffsetY = Math.max(-maxOffsetY, Math.min(maxOffsetY, offsetY));
162
-
163
- return {
164
- x: elementDimensions.x + boundedOffsetX,
165
- y: elementDimensions.y + boundedOffsetY,
166
- };
167
- };
168
-
169
351
  const contextValue = useMemo(
170
352
  () => ({
171
- // State values that change during component lifecycle
172
- mousePosition,
173
- hoveredElementId,
174
- elementDimensions,
175
-
176
- // Callbacks that should be stable references
177
- registerHoveredElement,
178
- unregisterHoveredElement,
179
- updateElementDimensions,
180
- }),
181
- [
182
- mousePosition,
353
+ mousePosition: mousePositionRef.current,
183
354
  hoveredElementId,
184
- elementDimensions,
355
+ elementDimensions: elementDimensionsRef.current,
185
356
  registerHoveredElement,
186
357
  unregisterHoveredElement,
187
358
  updateElementDimensions,
188
- ],
189
- );
190
-
191
- const cursorPosition = getCursorPosition();
192
-
193
- const cursorStyleObject = useMemo(
194
- () => ({
195
- left: cursorPosition.x,
196
- top: cursorPosition.y,
197
- width: hoveredElementId
198
- ? elementDimensions.width > 0
199
- ? elementDimensions.width
200
- : cursorSize
201
- : cursorSize,
202
- height: hoveredElementId
203
- ? elementDimensions.height > 0
204
- ? elementDimensions.height
205
- : cursorSize
206
- : cursorSize,
207
- willChange: "transform, width, height",
208
359
  }),
209
- [
210
- cursorPosition.x,
211
- cursorPosition.y,
212
- hoveredElementId,
213
- elementDimensions.width,
214
- elementDimensions.height,
215
- cursorSize,
216
- ],
360
+ [hoveredElementId, registerHoveredElement, unregisterHoveredElement, updateElementDimensions],
217
361
  );
218
362
 
219
- let styleClass;
220
- if (hoveredElementId) {
221
- styleClass = `opacity-[0.05] rounded-uk-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
222
- } else {
223
- styleClass = `opacity-90 rounded-full z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
224
- }
225
-
226
- // Create cursor element to be portaled
227
- const cursorElement = isClient && isMouseInside && (
363
+ // Cursor with halo/glow effect from original design
364
+ const cursorElement = isClient && (
228
365
  <div
229
- className={`pointer-events-none fixed ${styleClass} ${hoveredElementId ? "" : cursorClassName || ""}`}
366
+ ref={cursorRef}
367
+ className="pointer-events-none fixed z-50"
230
368
  style={{
231
- ...cursorStyleObject,
232
- backgroundColor: "var(--shadow-tertiary)",
369
+ left: 0,
370
+ top: 0,
371
+ width: cursorSize,
372
+ height: cursorSize,
373
+ display: isMouseInside ? "block" : "none",
374
+ willChange: "transform, width, height",
233
375
  }}
234
- />
376
+ >
377
+ <div
378
+ ref={cursorInnerRef}
379
+ className={cn("h-full w-full border border-white/50", cursorClassName)}
380
+ style={{
381
+ backgroundColor: "rgba(156, 163, 175, 0.2)",
382
+ boxShadow: "0 0 25px rgba(255, 255, 255, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.5)",
383
+ borderRadius: "9999px",
384
+ transformOrigin: "center center",
385
+ }}
386
+ />
387
+ </div>
235
388
  );
236
389
 
237
- // Use React.Fragment at the top level to avoid any DOM structure that might affect layout
238
390
  return (
239
391
  <>
240
- {/* Portal the cursor overlay to document.body to completely avoid layout impact */}
241
392
  {isClient &&
242
393
  typeof document !== "undefined" &&
243
394
  document.body &&
244
- cursorElement &&
245
395
  createPortal(cursorElement, document.body)}
246
- {/* Context provider with no DOM element */}
247
396
  <CursorContext.Provider value={contextValue}>
248
- {/* Use the Component directly with no extra wrappers */}
249
397
  <Component
250
398
  {...props}
251
399
  className={cn(className)}