@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.
- package/README.md +28 -0
- package/dist/SyncScroll/SyncScroll.cjs +13 -13
- package/dist/SyncScroll/SyncScroll.mjs +6 -6
- package/dist/SyncScroll/index.cjs +13 -13
- package/dist/SyncScroll/index.mjs +6 -6
- package/dist/SyncScroll/useSyncScroll.d.cts +5 -5
- package/dist/SyncScroll/useSyncScroll.d.ts +5 -5
- package/dist/{chunk-42WQWP6X.cjs → chunk-22T2AL3G.cjs} +8 -8
- package/dist/{chunk-NMRFBO43.mjs → chunk-2IMCDH5J.mjs} +3 -3
- package/dist/{chunk-EOLUDKZ3.mjs → chunk-2J466BYZ.mjs} +26 -47
- package/dist/{chunk-LVIZRMYN.cjs → chunk-2KBNQ5PY.cjs} +2 -2
- package/dist/{chunk-S7CCCMMU.cjs → chunk-34NDAZS6.cjs} +18 -9
- package/dist/{chunk-DM43KZU7.cjs → chunk-3F3LBOQJ.cjs} +2 -2
- package/dist/chunk-3JMUI4R2.cjs +136 -0
- package/dist/{chunk-CWS5PF67.cjs → chunk-3UQ323EB.cjs} +8 -42
- package/dist/{chunk-QXFFRQ7E.mjs → chunk-44U6VC46.mjs} +543 -95
- package/dist/{chunk-JW456O5K.mjs → chunk-4FB6B2ES.mjs} +1 -1
- package/dist/{chunk-66NKH2SV.cjs → chunk-4FIP3EXW.cjs} +6 -6
- package/dist/chunk-4SI4QV5R.cjs +14 -0
- package/dist/{chunk-IAFCABPY.mjs → chunk-4W7JKZVN.mjs} +3 -2
- package/dist/{chunk-EEGQLTSQ.cjs → chunk-4WWGBRQV.cjs} +77 -0
- package/dist/chunk-4Y5IF7R5.mjs +322 -0
- package/dist/chunk-52GNIM6H.mjs +12 -0
- package/dist/{chunk-X6WOCNBX.cjs → chunk-57NITJN5.cjs} +2 -2
- package/dist/{chunk-LMYA5IOK.mjs → chunk-5GBMVMLS.mjs} +4 -4
- package/dist/{chunk-QWBMDS3S.cjs → chunk-5HT74RHB.cjs} +5 -5
- package/dist/{chunk-4ODJAEOM.mjs → chunk-5JYH7TXY.mjs} +1 -1
- package/dist/{chunk-2CD4D2BR.cjs → chunk-6CJWNYHL.cjs} +3 -3
- package/dist/{chunk-CRX2ZCM2.cjs → chunk-6LTCLQH3.cjs} +6 -1
- package/dist/{chunk-WKK5UX2W.mjs → chunk-6U6LRS37.mjs} +2 -2
- package/dist/{chunk-4OUQ6NSX.cjs → chunk-6VIKDPCD.cjs} +2 -2
- package/dist/{chunk-6D7FGGSX.cjs → chunk-753HUOAI.cjs} +26 -26
- package/dist/{chunk-LYGYXV7S.cjs → chunk-7ICRKPIO.cjs} +16 -16
- package/dist/chunk-7MKCWXNV.cjs +32 -0
- package/dist/{chunk-FMKD5JBL.mjs → chunk-7TD77VF4.mjs} +10 -6
- package/dist/{chunk-5ARBIWXX.cjs → chunk-7TXGEIV3.cjs} +10 -10
- package/dist/chunk-7WJ73FEI.mjs +43 -0
- package/dist/{chunk-SLXM4F24.cjs → chunk-7YFUNCKT.cjs} +9 -9
- package/dist/{chunk-LGFWHV23.cjs → chunk-ACGXE2IO.cjs} +2 -2
- package/dist/{chunk-IU65XB2K.cjs → chunk-AFALU3AK.cjs} +2 -2
- package/dist/{chunk-EGIIZWP3.mjs → chunk-AFR23IX6.mjs} +1 -1
- package/dist/{chunk-CXPF274N.mjs → chunk-BK77KKIM.mjs} +1 -1
- package/dist/{chunk-4PMXRQXC.cjs → chunk-BNXJ5VBE.cjs} +6 -6
- package/dist/{chunk-3DIFS7CO.mjs → chunk-BPCD4L7T.mjs} +1 -1
- package/dist/{chunk-JQYMF2FW.cjs → chunk-BSDIS4KS.cjs} +4 -4
- package/dist/{chunk-REZAPK6Z.mjs → chunk-BTGAKK3B.mjs} +1 -1
- package/dist/{chunk-TB5L3GBP.cjs → chunk-BXJTOIRR.cjs} +584 -133
- package/dist/{chunk-35ZN6IW7.mjs → chunk-BYZ7HIIK.mjs} +1 -1
- package/dist/{chunk-XS5IUI62.cjs → chunk-BZI74LKX.cjs} +3 -2
- package/dist/{chunk-2IS7TXTN.mjs → chunk-CENP2PIB.mjs} +1 -1
- package/dist/{chunk-SAXISARG.cjs → chunk-CMO3SLOU.cjs} +2 -2
- package/dist/{chunk-CIOLL5LX.mjs → chunk-CN6SZKJZ.mjs} +1 -1
- package/dist/chunk-CRY23RMB.mjs +30 -0
- package/dist/{chunk-7AAMQGY2.cjs → chunk-CYWVJ3HF.cjs} +7 -7
- package/dist/{chunk-EVBYVJTW.mjs → chunk-D2LUQKPM.mjs} +130 -91
- package/dist/chunk-DF7WIFZK.cjs +316 -0
- package/dist/chunk-DKLVWYTC.cjs +71 -0
- package/dist/chunk-DKWLF3KW.mjs +149 -0
- package/dist/{chunk-F2LEYFWW.cjs → chunk-DPJPOBUT.cjs} +5 -5
- package/dist/{chunk-SR3M2R3S.mjs → chunk-DSQPFXYL.mjs} +22 -24
- package/dist/chunk-DVUN6GQI.cjs +21 -0
- package/dist/{chunk-7ACZU3BT.mjs → chunk-EG6JETUN.mjs} +1 -1
- package/dist/{chunk-T4U3BG2V.mjs → chunk-EGJLY5VZ.mjs} +1 -1
- package/dist/{chunk-AE5YDMFT.mjs → chunk-EXM6QMNR.mjs} +3 -3
- package/dist/{chunk-H6JGIEAU.mjs → chunk-EYMZP5PL.mjs} +1 -1
- package/dist/{chunk-K2ZYSKRU.mjs → chunk-EZ536NLQ.mjs} +1 -1
- package/dist/chunk-FRM27RLN.cjs +264 -0
- package/dist/chunk-FTB337IJ.cjs +143 -0
- package/dist/{chunk-7A5EMDZH.mjs → chunk-G35PQKU5.mjs} +5 -5
- package/dist/{chunk-ZJSL6HSL.mjs → chunk-GAAP5JO4.mjs} +1 -1
- package/dist/chunk-GHQA7PER.mjs +107 -0
- package/dist/{chunk-ND3WJ63Z.cjs → chunk-GVRVRBDU.cjs} +2 -2
- package/dist/chunk-GZ2BG42R.mjs +34 -0
- package/dist/chunk-H3JRYX2U.mjs +19 -0
- package/dist/{chunk-T66ETI7E.mjs → chunk-HBEU2PU2.mjs} +6 -1
- package/dist/{chunk-SMXN2KOV.mjs → chunk-HGTL7DFT.mjs} +1 -1
- package/dist/{chunk-JFPIUDGT.mjs → chunk-HI4LO6IJ.mjs} +1 -1
- package/dist/{chunk-QO2AM6MF.mjs → chunk-HIDTQ4Z2.mjs} +1 -1
- package/dist/{chunk-DDU3SPCC.mjs → chunk-HNW2DRPV.mjs} +58 -9
- package/dist/{chunk-5AKVDZMA.cjs → chunk-HSUL5OUG.cjs} +14 -13
- package/dist/{chunk-EY6PKK4X.cjs → chunk-I2COLDHC.cjs} +2 -2
- package/dist/chunk-IAWMCOHS.cjs +45 -0
- package/dist/chunk-IM5QVMGO.cjs +2 -0
- package/dist/{chunk-UQQBUPGF.mjs → chunk-IPMWGCAI.mjs} +5 -21
- package/dist/{chunk-SCUMWMIN.mjs → chunk-ITOTSGSL.mjs} +1 -1
- package/dist/{chunk-NJWKR5WR.mjs → chunk-IYTGWOZY.mjs} +1 -1
- package/dist/chunk-J74A5LNZ.cjs +179 -0
- package/dist/{chunk-CKGEV2JL.cjs → chunk-JDEZ6NNG.cjs} +2 -2
- package/dist/chunk-JEWTYDLX.cjs +119 -0
- package/dist/{chunk-Q7WCKEXG.cjs → chunk-JF43YF6J.cjs} +3 -3
- package/dist/chunk-JTFQFULL.cjs +166 -0
- package/dist/{chunk-XQ3MWA3D.mjs → chunk-KXKUQSNY.mjs} +3 -3
- package/dist/chunk-L2AKG4VJ.mjs +258 -0
- package/dist/{chunk-ZCSJGDX7.mjs → chunk-L2DME42Q.mjs} +1 -1
- package/dist/{chunk-K2BQNNEX.cjs → chunk-L6W77P4B.cjs} +8 -8
- package/dist/{chunk-N4Y5CBOI.cjs → chunk-LGUQR5AR.cjs} +4 -4
- package/dist/{chunk-ZA7WOIIB.mjs → chunk-LHP7FLGK.mjs} +1 -1
- package/dist/{chunk-MYZHDWBF.mjs → chunk-LLFE3UHZ.mjs} +10 -10
- package/dist/{chunk-332A4MHC.mjs → chunk-LNYUFL3Q.mjs} +1 -1
- package/dist/{chunk-BUAWPPXA.cjs → chunk-MQ5DGLVE.cjs} +11 -11
- package/dist/{chunk-EXY6WRH4.mjs → chunk-N6KP2HIC.mjs} +2 -2
- package/dist/{chunk-V75PKBIV.cjs → chunk-NEJKCSS5.cjs} +9 -9
- package/dist/{chunk-KPGZOX2A.cjs → chunk-NHFIDL5X.cjs} +5 -5
- package/dist/{chunk-JNV3UBBP.cjs → chunk-NIACIZWY.cjs} +6 -22
- package/dist/{chunk-PC5DHSC4.mjs → chunk-NKUK73WB.mjs} +71 -1
- package/dist/{chunk-5OZS5UJX.cjs → chunk-NSPAT6XV.cjs} +7 -7
- package/dist/chunk-NUBFD3YP.mjs +117 -0
- package/dist/{chunk-4BQPIY5Z.mjs → chunk-O2NGB7YP.mjs} +1 -1
- package/dist/{chunk-7H7U2X45.cjs → chunk-O3DFVRON.cjs} +17 -13
- package/dist/chunk-O57DAVOQ.mjs +1 -0
- package/dist/{chunk-S37MJNNP.cjs → chunk-OCADGDGL.cjs} +2 -2
- package/dist/{chunk-ZSAPBZ36.mjs → chunk-OW653F7T.mjs} +1 -1
- package/dist/{chunk-GRXUYMZJ.cjs → chunk-OX5FXH6W.cjs} +4 -4
- package/dist/{chunk-GQYUSBSO.mjs → chunk-P3FBRYWH.mjs} +3 -10
- package/dist/{chunk-P3YSHGT5.mjs → chunk-P55DAW6H.mjs} +1 -1
- package/dist/{chunk-JOOURIX7.cjs → chunk-P6E4WLMD.cjs} +4 -4
- package/dist/{chunk-WDSOII5A.cjs → chunk-P7J7XHDE.cjs} +2 -2
- package/dist/chunk-PHRZ5JE6.mjs +1 -0
- package/dist/{chunk-F3HOBNGR.cjs → chunk-PMG3NZF5.cjs} +4 -4
- package/dist/chunk-PMYOKSO3.mjs +30 -0
- package/dist/chunk-PTUZYCOY.mjs +314 -0
- package/dist/{chunk-PV6CEMTT.cjs → chunk-PWZ4F3WY.cjs} +4 -4
- package/dist/{chunk-QBAZ6TKZ.cjs → chunk-PZZW3E5D.cjs} +2 -2
- package/dist/chunk-Q3UN25WC.mjs +141 -0
- package/dist/{chunk-MXGPFCLN.cjs → chunk-QS6WNNLM.cjs} +2 -2
- package/dist/{chunk-PR3BCKLJ.mjs → chunk-QSDYNIZB.mjs} +2 -1
- package/dist/{chunk-GTBXRWCK.cjs → chunk-QTLUPDLH.cjs} +8 -7
- package/dist/{chunk-BXZSWY4N.mjs → chunk-QYJZ5KA6.mjs} +1 -1
- package/dist/{chunk-JYYAGDLZ.cjs → chunk-R22VW3EK.cjs} +2 -2
- package/dist/{chunk-NKGUQZTD.cjs → chunk-RHVKIZMQ.cjs} +2 -2
- package/dist/{chunk-U22YVR7M.mjs → chunk-RLY4A3IY.mjs} +15 -6
- package/dist/{chunk-OJOWMXXY.mjs → chunk-RR76Z6OK.mjs} +3 -3
- package/dist/{chunk-D562KO2I.mjs → chunk-RWHVZM2B.mjs} +2 -2
- package/dist/chunk-S4C7HO32.cjs +36 -0
- package/dist/chunk-SBAVMK7J.cjs +181 -0
- package/dist/{chunk-DAVMLI3P.cjs → chunk-SNUQOJLK.cjs} +4 -4
- package/dist/{chunk-KY2PYKDZ.mjs → chunk-SO5KFX2C.mjs} +1 -1
- package/dist/{chunk-HB65PF7F.cjs → chunk-SOHGIAGF.cjs} +2 -2
- package/dist/{chunk-RW4T7UBU.cjs → chunk-STJMH4NX.cjs} +3 -3
- package/dist/{chunk-VYINXXYX.cjs → chunk-SUWJDU3Y.cjs} +59 -61
- package/dist/chunk-T2BDPMCF.cjs +358 -0
- package/dist/{chunk-U5W4ZALG.cjs → chunk-T2OAWYOU.cjs} +6 -6
- package/dist/{chunk-Q7VP2WSX.mjs → chunk-TCCFFSXM.mjs} +29 -12
- package/dist/{chunk-PRNBDGOF.cjs → chunk-THE6FZKP.cjs} +29 -49
- package/dist/{chunk-RGOZPSTI.mjs → chunk-TMBHKVKH.mjs} +1 -1
- package/dist/chunk-TQOGGHSJ.mjs +23 -0
- package/dist/{chunk-VTW2DF63.mjs → chunk-TWDDNHRP.mjs} +1 -1
- package/dist/{chunk-DDIB73SZ.mjs → chunk-UB3ELCFR.mjs} +4 -4
- package/dist/{chunk-XTLGNJIO.mjs → chunk-UBGNADCN.mjs} +1 -1
- package/dist/chunk-UCAIVC2B.cjs +32 -0
- package/dist/chunk-UEHPZIQB.cjs +2 -0
- package/dist/{chunk-ASZIBFA6.cjs → chunk-UZTOUPJ7.cjs} +131 -92
- package/dist/{chunk-3NIMV5PH.mjs → chunk-V4THHKSO.mjs} +1 -1
- package/dist/{chunk-G5VBLDAM.mjs → chunk-VBEVJE7Q.mjs} +1 -1
- package/dist/chunk-VDYJAOMN.mjs +177 -0
- package/dist/{chunk-64VVW5YR.mjs → chunk-VLNU7Y2K.mjs} +8 -43
- package/dist/{chunk-ZS7ESTKH.cjs → chunk-VT6E2N6C.cjs} +8 -12
- package/dist/{chunk-OLYHHP67.mjs → chunk-VWLZKPDB.mjs} +6 -5
- package/dist/{chunk-UMGNAR3W.cjs → chunk-W22SQYEO.cjs} +8 -8
- package/dist/{chunk-VWVYCQWF.mjs → chunk-WBM7ATPT.mjs} +1 -1
- package/dist/{chunk-CH3BSVL4.cjs → chunk-WGY33IHV.cjs} +2 -2
- package/dist/{chunk-DAA2GQAS.cjs → chunk-WRJAYU2L.cjs} +27 -27
- package/dist/{chunk-7AEOJFD4.cjs → chunk-WX3VWVWD.cjs} +2 -2
- package/dist/{chunk-EBFPZBUQ.cjs → chunk-WYUJM72T.cjs} +7 -7
- package/dist/{chunk-EK3BTKZP.cjs → chunk-WZQ2BT3P.cjs} +142 -26
- package/dist/{chunk-KR7VBV3B.cjs → chunk-XIDCYS6G.cjs} +2 -1
- package/dist/{chunk-WHV6Z7YX.mjs → chunk-XIESS6HW.mjs} +1 -1
- package/dist/{chunk-UIJEAY6H.mjs → chunk-XTZURZIR.mjs} +1 -1
- package/dist/{chunk-7AZ3PLUC.mjs → chunk-XZLQHASB.mjs} +1 -1
- package/dist/{chunk-SRZ56OJH.mjs → chunk-XZTEU7ME.mjs} +3 -3
- package/dist/{chunk-RLTLA7VS.mjs → chunk-Y2IIKDRY.mjs} +1 -1
- package/dist/chunk-YDF6VWBW.cjs +151 -0
- package/dist/{chunk-CR6JOOO3.cjs → chunk-YGZHBIZP.cjs} +3 -10
- package/dist/{chunk-TWQONYWC.mjs → chunk-YMMSHGYC.mjs} +1 -1
- package/dist/chunk-YQL6JDVP.cjs +21 -0
- package/dist/{chunk-Q37KC3CL.mjs → chunk-YRNI7ZJ7.mjs} +134 -18
- package/dist/{chunk-3ZEQVODC.cjs → chunk-ZAK7AFVY.cjs} +2 -2
- package/dist/{chunk-W3IHFG4B.cjs → chunk-ZG33TW5I.cjs} +8 -8
- package/dist/{chunk-FK6ZROZE.mjs → chunk-ZJYPKTF4.mjs} +2 -1
- package/dist/chunk-ZMRODJ3I.mjs +149 -0
- package/dist/{chunk-AHD46BFN.mjs → chunk-ZQOQB6GF.mjs} +1 -1
- package/dist/dial/DialPanel.cjs +104 -92
- package/dist/dial/DialPanel.d.cts +5 -5
- package/dist/dial/DialPanel.d.ts +5 -5
- package/dist/dial/DialPanel.mjs +103 -91
- package/dist/dial/DialProvider.d.cts +16 -51
- package/dist/dial/DialProvider.d.ts +16 -51
- package/dist/dial/IconRenderer.d.cts +2 -2
- package/dist/dial/IconRenderer.d.ts +2 -2
- package/dist/dial/components/DialButton.cjs +22 -0
- package/dist/dial/components/DialButton.d.cts +28 -0
- package/dist/dial/components/DialButton.d.ts +28 -0
- package/dist/dial/components/DialButton.mjs +13 -0
- package/dist/dial/components/DialCustom.cjs +11 -0
- package/dist/dial/components/DialCustom.d.cts +34 -0
- package/dist/dial/components/DialCustom.d.ts +34 -0
- package/dist/dial/components/DialCustom.mjs +2 -0
- package/dist/dial/components/index.cjs +29 -0
- package/dist/dial/components/index.d.cts +4 -0
- package/dist/dial/components/index.d.ts +4 -0
- package/dist/dial/components/index.mjs +16 -0
- package/dist/dial/index.cjs +128 -108
- package/dist/dial/index.d.cts +5 -1
- package/dist/dial/index.d.ts +5 -1
- package/dist/dial/index.mjs +103 -91
- package/dist/dial/types.cjs +4 -0
- package/dist/dial/types.d.cts +21 -0
- package/dist/dial/types.d.ts +21 -0
- package/dist/dial/types.mjs +1 -0
- package/dist/dial/wrapped-inputs/ControlledInputs.cjs +108 -96
- package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +8 -8
- package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +8 -8
- package/dist/dial/wrapped-inputs/ControlledInputs.mjs +103 -91
- package/dist/dial/wrapped-inputs/DialArrayInput.cjs +139 -0
- package/dist/dial/wrapped-inputs/DialArrayInput.d.cts +20 -0
- package/dist/dial/wrapped-inputs/DialArrayInput.d.ts +20 -0
- package/dist/dial/wrapped-inputs/DialArrayInput.mjs +130 -0
- package/dist/dial/wrapped-inputs/DialInputs.cjs +117 -105
- package/dist/dial/wrapped-inputs/DialInputs.d.cts +19 -17
- package/dist/dial/wrapped-inputs/DialInputs.d.ts +19 -17
- package/dist/dial/wrapped-inputs/DialInputs.mjs +103 -91
- package/dist/dial/wrapped-inputs/DialInterfaceInput.cjs +139 -0
- package/dist/dial/wrapped-inputs/DialInterfaceInput.d.cts +13 -0
- package/dist/dial/wrapped-inputs/DialInterfaceInput.d.ts +13 -0
- package/dist/dial/wrapped-inputs/DialInterfaceInput.mjs +130 -0
- package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +94 -86
- package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +4 -4
- package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +4 -4
- package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +93 -85
- package/dist/dial/wrapped-inputs/DialTupleInput.cjs +139 -0
- package/dist/dial/wrapped-inputs/DialTupleInput.d.cts +18 -0
- package/dist/dial/wrapped-inputs/DialTupleInput.d.ts +18 -0
- package/dist/dial/wrapped-inputs/DialTupleInput.mjs +130 -0
- package/dist/dial/wrapped-inputs/DialVectorInput.cjs +104 -92
- package/dist/dial/wrapped-inputs/DialVectorInput.d.cts +2 -2
- package/dist/dial/wrapped-inputs/DialVectorInput.d.ts +2 -2
- package/dist/dial/wrapped-inputs/DialVectorInput.mjs +103 -91
- package/dist/dial/wrapped-inputs/index.cjs +132 -112
- package/dist/dial/wrapped-inputs/index.d.cts +4 -2
- package/dist/dial/wrapped-inputs/index.d.ts +4 -2
- package/dist/dial/wrapped-inputs/index.mjs +103 -91
- package/dist/highlight-cursor/cursor-context.d.cts +2 -2
- package/dist/highlight-cursor/cursor-context.d.ts +2 -2
- package/dist/highlight-cursor/cursor-provider.cjs +3 -3
- package/dist/highlight-cursor/cursor-provider.d.cts +1 -1
- package/dist/highlight-cursor/cursor-provider.d.ts +1 -1
- package/dist/highlight-cursor/cursor-provider.mjs +2 -2
- package/dist/highlight-cursor/enhanced-components.cjs +16 -16
- package/dist/highlight-cursor/enhanced-components.d.cts +4 -4
- package/dist/highlight-cursor/enhanced-components.d.ts +4 -4
- package/dist/highlight-cursor/enhanced-components.mjs +11 -11
- package/dist/highlight-cursor/index.cjs +21 -21
- package/dist/highlight-cursor/index.mjs +12 -12
- package/dist/highlight-cursor/types.d.cts +2 -1
- package/dist/highlight-cursor/types.d.ts +2 -1
- package/dist/highlight-cursor/with-cursor.d.cts +2 -2
- package/dist/highlight-cursor/with-cursor.d.ts +2 -2
- package/dist/hooks/clientOnly.d.cts +4 -4
- package/dist/hooks/clientOnly.d.ts +4 -4
- package/dist/hooks/cn.cjs +2 -2
- package/dist/hooks/cn.mjs +1 -1
- package/dist/hooks/index.cjs +22 -22
- package/dist/hooks/index.mjs +5 -5
- package/dist/hooks/useIsMobile.cjs +2 -2
- package/dist/hooks/useIsMobile.mjs +1 -1
- package/dist/index.cjs +587 -407
- package/dist/index.css +13 -76
- package/dist/index.d.cts +20 -6
- package/dist/index.d.ts +20 -6
- package/dist/index.mjs +103 -91
- package/dist/schema-types-D9b7Dc1G.d.cts +163 -0
- package/dist/schema-types-D9b7Dc1G.d.ts +163 -0
- package/dist/styles/theme.css +1 -1
- package/dist/ui/DialBadge.cjs +10 -10
- package/dist/ui/DialBadge.mjs +6 -6
- package/dist/ui/UIKitBadge.cjs +10 -10
- package/dist/ui/UIKitBadge.mjs +6 -6
- package/dist/ui/alert-dialog.cjs +60 -0
- package/dist/ui/alert-dialog.d.cts +17 -0
- package/dist/ui/alert-dialog.d.ts +17 -0
- package/dist/ui/alert-dialog.mjs +11 -0
- package/dist/ui/avatar.cjs +10 -10
- package/dist/ui/avatar.d.cts +2 -2
- package/dist/ui/avatar.d.ts +2 -2
- package/dist/ui/avatar.mjs +6 -6
- package/dist/ui/badge.cjs +8 -8
- package/dist/ui/badge.d.cts +2 -2
- package/dist/ui/badge.d.ts +2 -2
- package/dist/ui/badge.mjs +6 -6
- package/dist/ui/button.cjs +8 -8
- package/dist/ui/button.d.cts +3 -3
- package/dist/ui/button.d.ts +3 -3
- package/dist/ui/button.mjs +6 -6
- package/dist/ui/card.cjs +14 -13
- package/dist/ui/card.d.cts +14 -2
- package/dist/ui/card.d.ts +14 -2
- package/dist/ui/card.mjs +7 -6
- package/dist/ui/checkbox.cjs +7 -7
- package/dist/ui/checkbox.mjs +6 -6
- package/dist/ui/collapsible.cjs +9 -9
- package/dist/ui/collapsible.mjs +6 -6
- package/dist/ui/context-menu.cjs +76 -0
- package/dist/ui/context-menu.d.cts +28 -0
- package/dist/ui/context-menu.d.ts +28 -0
- package/dist/ui/context-menu.mjs +11 -0
- package/dist/ui/drag-selectable/createSelectable.d.cts +2 -2
- package/dist/ui/drag-selectable/createSelectable.d.ts +2 -2
- package/dist/ui/drawer.cjs +16 -16
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.ts +11 -11
- package/dist/ui/drawer.mjs +6 -6
- package/dist/ui/dropdown.cjs +21 -21
- package/dist/ui/dropdown.mjs +6 -6
- package/dist/ui/index.cjs +485 -317
- package/dist/ui/index.d.cts +15 -5
- package/dist/ui/index.d.ts +15 -5
- package/dist/ui/index.mjs +90 -82
- package/dist/ui/inputs/color-input.cjs +8 -8
- package/dist/ui/inputs/color-input.d.cts +7 -3
- package/dist/ui/inputs/color-input.d.ts +7 -3
- package/dist/ui/inputs/color-input.mjs +7 -7
- package/dist/ui/inputs/index.cjs +56 -56
- package/dist/ui/inputs/index.mjs +25 -25
- package/dist/ui/inputs/input-numbers.cjs +8 -8
- package/dist/ui/inputs/input-numbers.d.cts +7 -3
- package/dist/ui/inputs/input-numbers.d.ts +7 -3
- package/dist/ui/inputs/input-numbers.mjs +7 -7
- package/dist/ui/inputs/input.cjs +9 -9
- package/dist/ui/inputs/input.d.cts +4 -4
- package/dist/ui/inputs/input.d.ts +4 -4
- package/dist/ui/inputs/input.mjs +6 -6
- package/dist/ui/inputs/number-inputs/CmInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/CmInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/CmInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/CmInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/DegInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/DegInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/DegInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/DegInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +11 -11
- package/dist/ui/inputs/number-inputs/EulerDegInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/EulerDegInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +10 -10
- package/dist/ui/inputs/number-inputs/EulerInput.cjs +10 -10
- package/dist/ui/inputs/number-inputs/EulerInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/EulerInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/EulerInput.mjs +9 -9
- package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +10 -10
- package/dist/ui/inputs/number-inputs/EulerRadInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/EulerRadInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +9 -9
- package/dist/ui/inputs/number-inputs/InchInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/InchInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/InchInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/InchInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/IntInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/IntInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/IntInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/IntInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/KVectorInput.cjs +10 -10
- package/dist/ui/inputs/number-inputs/KVectorInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/KVectorInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/KVectorInput.mjs +9 -9
- package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +10 -10
- package/dist/ui/inputs/number-inputs/QuaternionInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/QuaternionInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +9 -9
- package/dist/ui/inputs/number-inputs/RadInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/RadInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/RadInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/RadInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/TimeInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/TimeInput.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/TimeInput.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/TimeInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/Vec3Input.cjs +10 -10
- package/dist/ui/inputs/number-inputs/Vec3Input.d.cts +2 -2
- package/dist/ui/inputs/number-inputs/Vec3Input.d.ts +2 -2
- package/dist/ui/inputs/number-inputs/Vec3Input.mjs +9 -9
- package/dist/ui/inputs/number-inputs/VectorInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/VectorInput.d.cts +4 -2
- package/dist/ui/inputs/number-inputs/VectorInput.d.ts +4 -2
- package/dist/ui/inputs/number-inputs/VectorInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/index.cjs +42 -42
- package/dist/ui/inputs/number-inputs/index.mjs +20 -20
- package/dist/ui/inputs/presets-input.cjs +10 -10
- package/dist/ui/inputs/presets-input.d.cts +2 -2
- package/dist/ui/inputs/presets-input.d.ts +2 -2
- package/dist/ui/inputs/presets-input.mjs +9 -9
- package/dist/ui/inputs/presets-rad-input.cjs +11 -11
- package/dist/ui/inputs/presets-rad-input.d.cts +2 -2
- package/dist/ui/inputs/presets-rad-input.d.ts +2 -2
- package/dist/ui/inputs/presets-rad-input.mjs +10 -10
- package/dist/ui/inputs/text-input.cjs +8 -8
- package/dist/ui/inputs/text-input.d.cts +2 -2
- package/dist/ui/inputs/text-input.d.ts +2 -2
- package/dist/ui/inputs/text-input.mjs +7 -7
- package/dist/ui/label.cjs +7 -7
- package/dist/ui/label.d.cts +4 -4
- package/dist/ui/label.d.ts +4 -4
- package/dist/ui/label.mjs +6 -6
- package/dist/ui/layout.cjs +7 -7
- package/dist/ui/layout.mjs +6 -6
- package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +8 -8
- package/dist/ui/layouts/dock-layout/DockLayoutView.d.cts +2 -1
- package/dist/ui/layouts/dock-layout/DockLayoutView.d.ts +2 -1
- package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +7 -7
- package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +12 -12
- package/dist/ui/layouts/dock-layout/LayoutSlots.d.cts +3 -3
- package/dist/ui/layouts/dock-layout/LayoutSlots.d.ts +3 -3
- package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +6 -6
- package/dist/ui/layouts/dock-layout/index.cjs +14 -14
- package/dist/ui/layouts/dock-layout/index.mjs +7 -7
- package/dist/ui/layouts/index.cjs +20 -20
- package/dist/ui/layouts/index.mjs +9 -9
- package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +12 -12
- package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +6 -6
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +8 -8
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.d.cts +13 -1
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.d.ts +13 -1
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +7 -7
- package/dist/ui/layouts/liquid-layout/index.cjs +8 -8
- package/dist/ui/layouts/liquid-layout/index.mjs +7 -7
- package/dist/ui/modal.cjs +16 -16
- package/dist/ui/modal.mjs +6 -6
- package/dist/ui/navigation.cjs +8 -8
- package/dist/ui/navigation.d.cts +2 -2
- package/dist/ui/navigation.d.ts +2 -2
- package/dist/ui/navigation.mjs +7 -7
- package/dist/ui/pagination.cjs +14 -14
- package/dist/ui/pagination.mjs +7 -7
- package/dist/ui/popover.cjs +14 -10
- package/dist/ui/popover.d.cts +18 -8
- package/dist/ui/popover.d.ts +18 -8
- package/dist/ui/popover.mjs +6 -6
- package/dist/ui/progress.cjs +7 -7
- package/dist/ui/progress.d.cts +1 -1
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/progress.mjs +6 -6
- package/dist/ui/radio-group.cjs +8 -8
- package/dist/ui/radio-group.mjs +6 -6
- package/dist/ui/resizable.cjs +9 -9
- package/dist/ui/resizable.d.cts +2 -2
- package/dist/ui/resizable.d.ts +2 -2
- package/dist/ui/resizable.mjs +6 -6
- package/dist/ui/select.cjs +17 -17
- package/dist/ui/select.d.cts +3 -2
- package/dist/ui/select.d.ts +3 -2
- package/dist/ui/select.mjs +6 -6
- package/dist/ui/separator.cjs +7 -7
- package/dist/ui/separator.mjs +6 -6
- package/dist/ui/sheet.cjs +14 -14
- package/dist/ui/sheet.d.cts +26 -13
- package/dist/ui/sheet.d.ts +26 -13
- package/dist/ui/sheet.mjs +6 -6
- package/dist/ui/sidebar.cjs +36 -36
- package/dist/ui/sidebar.mjs +12 -12
- package/dist/ui/simple-tree-view.cjs +7 -7
- package/dist/ui/simple-tree-view.d.cts +2 -2
- package/dist/ui/simple-tree-view.d.ts +2 -2
- package/dist/ui/simple-tree-view.mjs +6 -6
- package/dist/ui/skeleton.cjs +7 -7
- package/dist/ui/skeleton.mjs +6 -6
- package/dist/ui/slider.cjs +7 -7
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.ts +2 -2
- package/dist/ui/slider.mjs +6 -6
- package/dist/ui/switch.cjs +7 -7
- package/dist/ui/switch.d.cts +4 -1
- package/dist/ui/switch.d.ts +4 -1
- package/dist/ui/switch.mjs +6 -6
- package/dist/ui/table.cjs +14 -14
- package/dist/ui/table.d.cts +9 -9
- package/dist/ui/table.d.ts +9 -9
- package/dist/ui/table.mjs +6 -6
- package/dist/ui/tabs.cjs +14 -10
- package/dist/ui/tabs.d.cts +25 -7
- package/dist/ui/tabs.d.ts +25 -7
- package/dist/ui/tabs.mjs +6 -6
- package/dist/ui/textarea.cjs +7 -7
- package/dist/ui/textarea.d.cts +1 -1
- package/dist/ui/textarea.d.ts +1 -1
- package/dist/ui/textarea.mjs +6 -6
- package/dist/ui/theme/ThemeProvider.cjs +15 -15
- package/dist/ui/theme/ThemeProvider.d.cts +3 -3
- package/dist/ui/theme/ThemeProvider.d.ts +3 -3
- package/dist/ui/theme/ThemeProvider.mjs +1 -1
- package/dist/ui/theme/ThemeToggles.cjs +11 -11
- package/dist/ui/theme/ThemeToggles.d.cts +18 -3
- package/dist/ui/theme/ThemeToggles.d.ts +18 -3
- package/dist/ui/theme/ThemeToggles.mjs +9 -9
- package/dist/ui/theme/index.cjs +15 -15
- package/dist/ui/theme/index.mjs +9 -9
- package/dist/ui/theme/themeScript.d.cts +2 -2
- package/dist/ui/theme/themeScript.d.ts +2 -2
- package/dist/ui/toast.cjs +19 -3
- package/dist/ui/toast.d.cts +1 -1
- package/dist/ui/toast.d.ts +1 -1
- package/dist/ui/toast.mjs +17 -1
- package/dist/ui/toggle-buttons.cjs +11 -11
- package/dist/ui/toggle-buttons.d.cts +7 -7
- package/dist/ui/toggle-buttons.d.ts +7 -7
- package/dist/ui/toggle-buttons.mjs +6 -6
- package/dist/ui/toggle-group.cjs +9 -9
- package/dist/ui/toggle-group.d.cts +3 -3
- package/dist/ui/toggle-group.d.ts +3 -3
- package/dist/ui/toggle-group.mjs +6 -6
- package/dist/ui/toggle.cjs +8 -8
- package/dist/ui/toggle.mjs +6 -6
- package/dist/ui/toolbar.cjs +9 -9
- package/dist/ui/toolbar.mjs +6 -6
- package/dist/ui/tooltip.cjs +10 -10
- package/dist/ui/tooltip.d.cts +2 -2
- package/dist/ui/tooltip.d.ts +2 -2
- package/dist/ui/tooltip.mjs +6 -6
- package/dist/ui/tree-view/TreeSearchBar.cjs +9 -9
- package/dist/ui/tree-view/TreeSearchBar.mjs +8 -8
- package/dist/ui/tree-view/TreeView.cjs +10 -8
- package/dist/ui/tree-view/TreeView.d.cts +12 -6
- package/dist/ui/tree-view/TreeView.d.ts +12 -6
- package/dist/ui/tree-view/TreeView.mjs +8 -6
- package/dist/ui/tree-view/hooks.cjs +31 -3
- package/dist/ui/tree-view/hooks.d.cts +33 -1
- package/dist/ui/tree-view/hooks.d.ts +33 -1
- package/dist/ui/tree-view/hooks.mjs +1 -1
- package/dist/ui/tree-view/index.cjs +49 -20
- package/dist/ui/tree-view/index.d.cts +1 -1
- package/dist/ui/tree-view/index.d.ts +1 -1
- package/dist/ui/tree-view/index.mjs +11 -10
- package/dist/ui/tree-view/types.d.cts +1 -0
- package/dist/ui/tree-view/types.d.ts +1 -0
- package/dist/ui/tree-view-legacy.cjs +13 -13
- package/dist/ui/tree-view-legacy.mjs +9 -9
- package/dist/ui/virtual-grid/VirtualGrid.cjs +21 -0
- package/dist/ui/virtual-grid/VirtualGrid.d.cts +10 -0
- package/dist/ui/virtual-grid/VirtualGrid.d.ts +10 -0
- package/dist/ui/virtual-grid/VirtualGrid.mjs +12 -0
- package/dist/ui/virtual-grid/index.cjs +26 -0
- package/dist/ui/virtual-grid/index.d.cts +4 -0
- package/dist/ui/virtual-grid/index.d.ts +4 -0
- package/dist/ui/virtual-grid/index.mjs +13 -0
- package/dist/ui/virtual-grid/types.cjs +2 -0
- package/dist/ui/virtual-grid/types.d.cts +70 -0
- package/dist/ui/virtual-grid/types.d.ts +70 -0
- package/dist/ui/virtual-grid/types.mjs +1 -0
- package/dist/ui/virtual-grid/useVirtualGrid.cjs +10 -0
- package/dist/ui/virtual-grid/useVirtualGrid.d.cts +9 -0
- package/dist/ui/virtual-grid/useVirtualGrid.d.ts +9 -0
- package/dist/ui/virtual-grid/useVirtualGrid.mjs +1 -0
- package/dist/ui/virtual-list/VirtualList.cjs +21 -0
- package/dist/ui/virtual-list/VirtualList.d.cts +10 -0
- package/dist/ui/virtual-list/VirtualList.d.ts +10 -0
- package/dist/ui/virtual-list/VirtualList.mjs +12 -0
- package/dist/ui/virtual-list/index.cjs +26 -0
- package/dist/ui/virtual-list/index.d.cts +4 -0
- package/dist/ui/virtual-list/index.d.ts +4 -0
- package/dist/ui/virtual-list/index.mjs +13 -0
- package/dist/ui/virtual-list/types.cjs +2 -0
- package/dist/ui/virtual-list/types.d.cts +54 -0
- package/dist/ui/virtual-list/types.d.ts +54 -0
- package/dist/ui/virtual-list/types.mjs +1 -0
- package/dist/ui/virtual-list/useVirtualList.cjs +10 -0
- package/dist/ui/virtual-list/useVirtualList.d.cts +9 -0
- package/dist/ui/virtual-list/useVirtualList.d.ts +9 -0
- package/dist/ui/virtual-list/useVirtualList.mjs +1 -0
- package/dist/ui/waterfall/CursorOverlay.cjs +7 -7
- package/dist/ui/waterfall/CursorOverlay.mjs +6 -6
- package/dist/ui/waterfall/NavigationControls.d.cts +2 -2
- package/dist/ui/waterfall/NavigationControls.d.ts +2 -2
- package/dist/ui/waterfall/TimelineEvent.cjs +7 -7
- package/dist/ui/waterfall/TimelineEvent.mjs +6 -6
- package/dist/ui/waterfall/TimelineProcessBar.cjs +7 -7
- package/dist/ui/waterfall/TimelineProcessBar.mjs +6 -6
- package/dist/ui/waterfall/Wedges.cjs +8 -8
- package/dist/ui/waterfall/Wedges.mjs +6 -6
- package/dist/ui/waterfall/WheelZoomContext.d.cts +2 -2
- package/dist/ui/waterfall/WheelZoomContext.d.ts +2 -2
- package/dist/ui/waterfall/hooks/useTimelineState.d.cts +4 -3
- package/dist/ui/waterfall/hooks/useTimelineState.d.ts +4 -3
- package/dist/ui/waterfall/hooks/useViewport.d.cts +4 -4
- package/dist/ui/waterfall/hooks/useViewport.d.ts +4 -4
- package/dist/ui/waterfall/index.cjs +20 -19
- package/dist/ui/waterfall/index.d.cts +2 -2
- package/dist/ui/waterfall/index.d.ts +2 -2
- package/dist/ui/waterfall/index.mjs +19 -18
- package/package.json +6 -9
- package/src/dial/DialPanel.tsx +167 -30
- package/src/dial/DialProvider.tsx +20 -68
- package/src/dial/components/DialButton.tsx +52 -0
- package/src/dial/components/DialCustom.tsx +45 -0
- package/src/dial/components/index.ts +3 -0
- package/src/dial/index.ts +11 -6
- package/src/dial/types.ts +32 -0
- package/src/dial/wrapped-inputs/ControlledInputs.tsx +22 -16
- package/src/dial/wrapped-inputs/DialArrayInput.tsx +175 -0
- package/src/dial/wrapped-inputs/DialInputs.tsx +119 -23
- package/src/dial/wrapped-inputs/DialInterfaceInput.tsx +80 -0
- package/src/dial/wrapped-inputs/DialPresetsInput.tsx +4 -3
- package/src/dial/wrapped-inputs/DialTupleInput.tsx +102 -0
- package/src/dial/wrapped-inputs/DialVectorInput.tsx +11 -21
- package/src/dial/wrapped-inputs/index.ts +6 -0
- package/src/highlight-cursor/cursor-provider.tsx +279 -131
- package/src/highlight-cursor/types.ts +2 -1
- package/src/hooks/cn.ts +5 -0
- package/src/hooks/useIsMobile.ts +14 -30
- package/src/index.css +0 -1
- package/src/styles/theme.css +2 -2
- package/src/ui/DialBadge.tsx +7 -5
- package/src/ui/alert-dialog.tsx +168 -0
- package/src/ui/badge.tsx +1 -0
- package/src/ui/card.tsx +76 -8
- package/src/ui/context-menu.tsx +358 -0
- package/src/ui/index.ts +6 -0
- package/src/ui/inputs/color-input.tsx +92 -8
- package/src/ui/inputs/input-numbers.tsx +148 -92
- package/src/ui/inputs/number-inputs/EulerRadInput.tsx +43 -42
- package/src/ui/inputs/number-inputs/VectorInput.tsx +2 -1
- package/src/ui/inputs/presets-rad-input.tsx +5 -2
- package/src/ui/inputs/text-input.tsx +1 -1
- package/src/ui/layouts/dock-layout/DockLayoutView.tsx +15 -4
- package/src/ui/layouts/dock-layout/LayoutSlots.tsx +14 -5
- package/src/ui/layouts/liquid-layout/LiquidLayoutView.tsx +44 -5
- package/src/ui/popover.tsx +10 -49
- package/src/ui/progress.tsx +7 -14
- package/src/ui/select.tsx +5 -2
- package/src/ui/separator.tsx +1 -1
- package/src/ui/sheet.tsx +14 -116
- package/src/ui/sidebar.tsx +18 -19
- package/src/ui/switch.tsx +7 -2
- package/src/ui/tabs.tsx +29 -58
- package/src/ui/theme/ThemeProvider.tsx +4 -3
- package/src/ui/theme/ThemeToggles.tsx +48 -12
- package/src/ui/toast.tsx +13 -16
- package/src/ui/tooltip.tsx +3 -30
- package/src/ui/tree-view/TreeView.tsx +179 -21
- package/src/ui/tree-view/hooks.tsx +148 -0
- package/src/ui/tree-view/types.ts +2 -1
- package/src/ui/virtual-grid/VirtualGrid.tsx +345 -0
- package/src/ui/virtual-grid/index.ts +10 -0
- package/src/ui/virtual-grid/types.ts +72 -0
- package/src/ui/virtual-grid/useVirtualGrid.ts +243 -0
- package/src/ui/virtual-list/VirtualList.tsx +207 -0
- package/src/ui/virtual-list/index.ts +8 -0
- package/src/ui/virtual-list/types.ts +54 -0
- package/src/ui/virtual-list/useVirtualList.ts +203 -0
- package/src/ui/waterfall/TimelineProcessBar.tsx +10 -4
- package/dist/auth/components/index.cjs +0 -128
- package/dist/auth/components/index.d.cts +0 -2
- package/dist/auth/components/index.d.ts +0 -2
- package/dist/auth/components/index.mjs +0 -119
- package/dist/auth/components/user-avatar/index.cjs +0 -127
- package/dist/auth/components/user-avatar/index.d.cts +0 -8
- package/dist/auth/components/user-avatar/index.d.ts +0 -8
- package/dist/auth/components/user-avatar/index.mjs +0 -118
- package/dist/auth/context/user-context.cjs +0 -10
- package/dist/auth/context/user-context.d.cts +0 -13
- package/dist/auth/context/user-context.d.ts +0 -13
- package/dist/auth/context/user-context.mjs +0 -1
- package/dist/auth/handler/fetch-auth.cjs +0 -11
- package/dist/auth/handler/fetch-auth.d.cts +0 -3
- package/dist/auth/handler/fetch-auth.d.ts +0 -3
- package/dist/auth/handler/fetch-auth.mjs +0 -2
- package/dist/auth/handler/fetch-server.cjs +0 -11
- package/dist/auth/handler/fetch-server.d.cts +0 -3
- package/dist/auth/handler/fetch-server.d.ts +0 -3
- package/dist/auth/handler/fetch-server.mjs +0 -2
- package/dist/auth/handler/get-session.cjs +0 -12
- package/dist/auth/handler/get-session.d.cts +0 -21
- package/dist/auth/handler/get-session.d.ts +0 -21
- package/dist/auth/handler/get-session.mjs +0 -3
- package/dist/auth/handler/get-sessions.cjs +0 -12
- package/dist/auth/handler/get-sessions.d.cts +0 -21
- package/dist/auth/handler/get-sessions.d.ts +0 -21
- package/dist/auth/handler/get-sessions.mjs +0 -3
- package/dist/auth/handler/sign-in-handler.cjs +0 -11
- package/dist/auth/handler/sign-in-handler.d.cts +0 -6
- package/dist/auth/handler/sign-in-handler.d.ts +0 -6
- package/dist/auth/handler/sign-in-handler.mjs +0 -2
- package/dist/auth/handler/sign-out-handler.cjs +0 -12
- package/dist/auth/handler/sign-out-handler.d.cts +0 -5
- package/dist/auth/handler/sign-out-handler.d.ts +0 -5
- package/dist/auth/handler/sign-out-handler.mjs +0 -3
- package/dist/auth/hooks/use-sign-in.cjs +0 -14
- package/dist/auth/hooks/use-sign-in.d.cts +0 -9
- package/dist/auth/hooks/use-sign-in.d.ts +0 -9
- package/dist/auth/hooks/use-sign-in.mjs +0 -5
- package/dist/auth/hooks/use-sign-out.cjs +0 -15
- package/dist/auth/hooks/use-sign-out.d.cts +0 -6
- package/dist/auth/hooks/use-sign-out.d.ts +0 -6
- package/dist/auth/hooks/use-sign-out.mjs +0 -6
- package/dist/auth/hooks/use-user.cjs +0 -11
- package/dist/auth/hooks/use-user.d.cts +0 -8
- package/dist/auth/hooks/use-user.d.ts +0 -8
- package/dist/auth/hooks/use-user.mjs +0 -2
- package/dist/auth/hooks/use-vuer-sessions.cjs +0 -15
- package/dist/auth/hooks/use-vuer-sessions.d.cts +0 -9
- package/dist/auth/hooks/use-vuer-sessions.d.ts +0 -9
- package/dist/auth/hooks/use-vuer-sessions.mjs +0 -6
- package/dist/auth/index.cjs +0 -165
- package/dist/auth/index.d.cts +0 -13
- package/dist/auth/index.d.ts +0 -13
- package/dist/auth/index.mjs +0 -124
- package/dist/auth/localstorage-key.cjs +0 -14
- package/dist/auth/localstorage-key.d.cts +0 -4
- package/dist/auth/localstorage-key.d.ts +0 -4
- package/dist/auth/localstorage-key.mjs +0 -1
- package/dist/auth/types.d.cts +0 -27
- package/dist/auth/types.d.ts +0 -27
- package/dist/auth/vuer-user-provider.cjs +0 -14
- package/dist/auth/vuer-user-provider.d.cts +0 -9
- package/dist/auth/vuer-user-provider.d.ts +0 -9
- package/dist/auth/vuer-user-provider.mjs +0 -5
- package/dist/chunk-2DXJJLJL.mjs +0 -51
- package/dist/chunk-2GXIGEKC.mjs +0 -66
- package/dist/chunk-3WMO5QJJ.cjs +0 -8
- package/dist/chunk-5OHAV55L.mjs +0 -24
- package/dist/chunk-6C53NKMF.mjs +0 -206
- package/dist/chunk-6GJM7TPE.cjs +0 -28
- package/dist/chunk-7E5Y224I.cjs +0 -14
- package/dist/chunk-7R5HY3IM.cjs +0 -12
- package/dist/chunk-EMVKGL5D.mjs +0 -28
- package/dist/chunk-EMXEFZEB.cjs +0 -30
- package/dist/chunk-EOSYXHEH.mjs +0 -27
- package/dist/chunk-EXXV3BXT.cjs +0 -23
- package/dist/chunk-F4Z5KATZ.cjs +0 -8
- package/dist/chunk-FROQ45MN.mjs +0 -6
- package/dist/chunk-FZAGJSW2.cjs +0 -47
- package/dist/chunk-H7RH4CZ7.cjs +0 -54
- package/dist/chunk-HOMAESTR.mjs +0 -12
- package/dist/chunk-IPQU5CJD.mjs +0 -21
- package/dist/chunk-JR4TVE43.cjs +0 -31
- package/dist/chunk-KIZEJMW4.cjs +0 -15
- package/dist/chunk-KQW3YARN.cjs +0 -117
- package/dist/chunk-L2XJ5Q7T.cjs +0 -58
- package/dist/chunk-LAPOK2L4.mjs +0 -193
- package/dist/chunk-MFYDZKQF.mjs +0 -28
- package/dist/chunk-MNCBTS63.cjs +0 -68
- package/dist/chunk-MO5V43Z3.mjs +0 -13
- package/dist/chunk-MRMSCW3P.cjs +0 -19
- package/dist/chunk-OOHCJIRV.cjs +0 -26
- package/dist/chunk-PX2H7Z4D.mjs +0 -26
- package/dist/chunk-PXDT5GFJ.mjs +0 -13
- package/dist/chunk-Q3CJUGX3.cjs +0 -21
- package/dist/chunk-Q76WU4DL.cjs +0 -17
- package/dist/chunk-R4HT3SYR.cjs +0 -208
- package/dist/chunk-RSBVQ7SJ.cjs +0 -54
- package/dist/chunk-RTYZO2AC.cjs +0 -30
- package/dist/chunk-SO2UTKSV.mjs +0 -17
- package/dist/chunk-UT7B4TLZ.mjs +0 -5
- package/dist/chunk-V4KDK3BN.mjs +0 -52
- package/dist/chunk-V5T6XOSB.cjs +0 -222
- package/dist/chunk-VSFPXAGN.mjs +0 -10
- package/dist/chunk-VSIOXWSI.cjs +0 -53
- package/dist/chunk-WDS3VL7E.mjs +0 -56
- package/dist/chunk-X3H6FYAM.cjs +0 -15
- package/dist/chunk-XHJDRQD7.mjs +0 -29
- package/dist/chunk-Y2XVZEXM.mjs +0 -45
- package/dist/chunk-Z7BZFZEV.mjs +0 -15
- package/dist/dial/DialProvider.example.cjs +0 -72
- package/dist/dial/DialProvider.example.d.cts +0 -7
- package/dist/dial/DialProvider.example.d.ts +0 -7
- package/dist/dial/DialProvider.example.mjs +0 -68
- package/dist/styles/toast.css +0 -64
- package/dist/styles/toast.d.cts +0 -2
- package/dist/styles/toast.d.ts +0 -2
- package/src/auth/components/index.ts +0 -1
- package/src/auth/components/user-avatar/index.tsx +0 -94
- package/src/auth/context/user-context.ts +0 -15
- package/src/auth/handler/fetch-auth.ts +0 -10
- package/src/auth/handler/fetch-server.ts +0 -10
- package/src/auth/handler/get-session.ts +0 -19
- package/src/auth/handler/get-sessions.ts +0 -16
- package/src/auth/handler/sign-in-handler.ts +0 -64
- package/src/auth/handler/sign-out-handler.ts +0 -9
- package/src/auth/hooks/use-sign-in.ts +0 -33
- package/src/auth/hooks/use-sign-out.ts +0 -30
- package/src/auth/hooks/use-user.ts +0 -10
- package/src/auth/hooks/use-vuer-sessions.ts +0 -29
- package/src/auth/index.ts +0 -12
- package/src/auth/localstorage-key.ts +0 -3
- package/src/auth/types.ts +0 -38
- package/src/auth/vuer-user-provider.tsx +0 -58
- package/src/dial/DialProvider.example.tsx +0 -80
- package/src/styles/toast.css +0 -67
- /package/dist/{auth/types.mjs → chunk-6NZ5VXK7.mjs} +0 -0
- /package/dist/{chunk-UXWS62ZO.mjs → chunk-6THKQIF7.mjs} +0 -0
- /package/dist/{auth/types.cjs → chunk-AS3GNGJN.cjs} +0 -0
- /package/dist/{chunk-NK7L5H2Y.cjs → chunk-DPILGC4Y.cjs} +0 -0
- /package/dist/{chunk-YWECB5GR.cjs → chunk-F4NQLN5E.cjs} +0 -0
- /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
|
|
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(
|
|
73
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 || !
|
|
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
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
286
|
+
hoveredElementIdRef.current = null;
|
|
85
287
|
hoveredElementRef.current = null;
|
|
288
|
+
setHoveredElementId(null);
|
|
86
289
|
}
|
|
87
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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 (
|
|
130
|
-
|
|
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
|
-
[
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
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
|
-
|
|
366
|
+
ref={cursorRef}
|
|
367
|
+
className="pointer-events-none fixed z-50"
|
|
230
368
|
style={{
|
|
231
|
-
|
|
232
|
-
|
|
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)}
|