@vuer-ai/vuer-uikit 0.0.101 → 0.0.103
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/dist/SyncScroll/SyncScroll.cjs +4 -4
- package/dist/SyncScroll/SyncScroll.mjs +4 -4
- package/dist/SyncScroll/index.cjs +4 -4
- package/dist/SyncScroll/index.mjs +4 -4
- package/dist/auth/context/auth-context.cjs +10 -0
- package/dist/auth/context/auth-context.d.cts +15 -0
- package/dist/auth/context/auth-context.d.ts +15 -0
- package/dist/auth/context/auth-context.mjs +1 -0
- package/dist/auth/handler/create-client.cjs +12 -0
- package/dist/auth/handler/create-client.d.cts +7 -0
- package/dist/auth/handler/create-client.d.ts +7 -0
- package/dist/auth/handler/create-client.mjs +3 -0
- package/dist/auth/handler/sign-in-handler.cjs +11 -0
- package/dist/auth/handler/sign-in-handler.d.cts +7 -0
- package/dist/auth/handler/sign-in-handler.d.ts +7 -0
- package/dist/auth/handler/sign-in-handler.mjs +2 -0
- package/dist/auth/hooks/use-vuer-auth.cjs +11 -0
- package/dist/auth/hooks/use-vuer-auth.d.cts +9 -0
- package/dist/auth/hooks/use-vuer-auth.d.ts +9 -0
- package/dist/auth/hooks/use-vuer-auth.mjs +2 -0
- package/dist/auth/hooks/use-vuer-method.cjs +14 -0
- package/dist/auth/hooks/use-vuer-method.d.cts +11 -0
- package/dist/auth/hooks/use-vuer-method.d.ts +11 -0
- package/dist/auth/hooks/use-vuer-method.mjs +5 -0
- package/dist/auth/index.cjs +33 -0
- package/dist/auth/index.d.cts +10 -0
- package/dist/auth/index.d.ts +10 -0
- package/dist/auth/index.mjs +8 -0
- package/dist/auth/localstorage-key.cjs +14 -0
- package/dist/auth/localstorage-key.d.cts +4 -0
- package/dist/auth/localstorage-key.d.ts +4 -0
- package/dist/auth/localstorage-key.mjs +1 -0
- package/dist/auth/types.cjs +14 -0
- package/dist/auth/types.d.cts +3481 -0
- package/dist/auth/types.d.ts +3481 -0
- package/dist/auth/types.mjs +1 -0
- package/dist/auth/vuer-auth-provider.cjs +14 -0
- package/dist/auth/vuer-auth-provider.d.cts +9 -0
- package/dist/auth/vuer-auth-provider.d.ts +9 -0
- package/dist/auth/vuer-auth-provider.mjs +5 -0
- package/dist/{chunk-OJUK6WJ5.mjs → chunk-24IUD6Q3.mjs} +1 -1
- package/dist/{chunk-BMJX3SEO.cjs → chunk-2EG65KGO.cjs} +2 -2
- package/dist/{chunk-EC4HJUX6.cjs → chunk-2PJO5UJL.cjs} +11 -11
- package/dist/{chunk-LPA6WYFD.cjs → chunk-2WD4ZL27.cjs} +4 -4
- package/dist/chunk-3IVDCAFM.mjs +10 -0
- package/dist/{chunk-ZZLF2YWP.mjs → chunk-3TUONMQ6.mjs} +1 -1
- package/dist/{chunk-TPPM276W.mjs → chunk-3VVQWVDE.mjs} +1 -1
- package/dist/chunk-4B44SRRP.cjs +12 -0
- package/dist/{chunk-NT5ZTF56.mjs → chunk-4JGGLCXT.mjs} +1 -1
- package/dist/{chunk-YMSWUGHW.cjs → chunk-4PKPCOAF.cjs} +2 -1
- package/dist/{chunk-KMCZXNKA.mjs → chunk-4THQPG6Y.mjs} +1 -1
- package/dist/{chunk-62VCQ2SU.cjs → chunk-4WRTIOGZ.cjs} +3 -2
- package/dist/{chunk-55RSKLJ5.cjs → chunk-5JPYU5A6.cjs} +11 -11
- package/dist/{chunk-PQEAXTVY.mjs → chunk-5KJP6A6C.mjs} +12 -26
- package/dist/{chunk-ZNPI2TYG.mjs → chunk-5MBEK77I.mjs} +5 -13
- package/dist/{chunk-G7FYBSFO.cjs → chunk-5SP25SO3.cjs} +15 -14
- package/dist/chunk-5XBMFADS.cjs +42 -0
- package/dist/{chunk-HKJCPZZG.cjs → chunk-64L2SNKA.cjs} +2 -2
- package/dist/chunk-6BD5MQ5R.cjs +8 -0
- package/dist/{chunk-ZPH5LMEM.mjs → chunk-6NSQLHKC.mjs} +1 -1
- package/dist/{chunk-OYNLQTHW.cjs → chunk-6QU4J3HY.cjs} +23 -25
- package/dist/{chunk-2FGRTFK4.mjs → chunk-6XOTWZFC.mjs} +2 -2
- package/dist/{chunk-AAWWWYRN.cjs → chunk-7GJVMFKJ.cjs} +4 -4
- package/dist/{chunk-C4E2MFZB.mjs → chunk-7HOEFGEO.mjs} +1 -1
- package/dist/chunk-7KQXX7QB.mjs +54 -0
- package/dist/{chunk-W3RJNSWQ.mjs → chunk-7NOBQH7O.mjs} +2 -2
- package/dist/{chunk-OTR4SFDC.cjs → chunk-A2UZY7Y2.cjs} +2 -2
- package/dist/chunk-ACYOVCGH.mjs +30 -0
- package/dist/chunk-ACYZOKPT.mjs +64 -0
- package/dist/chunk-AJQEHMYV.cjs +47 -0
- package/dist/{chunk-7YMH34JL.cjs → chunk-AOV3ADTV.cjs} +2 -2
- package/dist/{chunk-AIYM5PFP.cjs → chunk-BXBSZOBU.cjs} +8 -4
- package/dist/{chunk-5WDPNBQW.cjs → chunk-C6L7YIGW.cjs} +2 -1
- package/dist/{chunk-CZ2YNM7Y.mjs → chunk-CGUQWS2I.mjs} +1 -1
- package/dist/chunk-CHYXRETV.cjs +23 -0
- package/dist/{chunk-INHZ5D7P.mjs → chunk-CZ4GQOXG.mjs} +1 -6
- package/dist/{chunk-5EXV5EWF.mjs → chunk-D5H4XX6Q.mjs} +1 -1
- package/dist/{chunk-MUQYO2G3.cjs → chunk-D5WOPTKY.cjs} +2 -2
- package/dist/{chunk-CWAVHHJA.cjs → chunk-EAXBNWXE.cjs} +2 -2
- package/dist/{chunk-EAZQH4IX.mjs → chunk-EOSYXHEH.mjs} +1 -1
- package/dist/{chunk-MIGXY5PR.mjs → chunk-EXQQRW7T.mjs} +1 -1
- package/dist/chunk-FBAOEFDU.mjs +24 -0
- package/dist/{chunk-7LLDKYND.mjs → chunk-FK6ZROZE.mjs} +31 -29
- package/dist/{chunk-EBBHJLUX.mjs → chunk-G4Q5ALRW.mjs} +2 -1
- package/dist/chunk-G6U2K2GR.cjs +32 -0
- package/dist/{chunk-DREOOKO2.cjs → chunk-GOGJVFRN.cjs} +4 -4
- package/dist/{chunk-W3J4QTKS.cjs → chunk-H6MFBIRB.cjs} +7 -7
- package/dist/{chunk-TZC4ST5T.cjs → chunk-HA6M4XKT.cjs} +24 -337
- package/dist/{chunk-NSQOQD43.cjs → chunk-HBIZQDDS.cjs} +1 -6
- package/dist/{chunk-7RIGSS5X.cjs → chunk-HN3AMWUM.cjs} +2 -2
- package/dist/chunk-HPK4YEVK.cjs +27 -0
- package/dist/{chunk-M5UZ3SBY.cjs → chunk-I2BVWNRP.cjs} +218 -51
- package/dist/chunk-IXNXSECD.mjs +45 -0
- package/dist/chunk-IY36FZ5R.mjs +40 -0
- package/dist/{chunk-FFCQKAQA.cjs → chunk-JFIAWTRH.cjs} +2 -2
- package/dist/{chunk-AEVZSYGJ.cjs → chunk-JFJRNNPQ.cjs} +2 -2
- package/dist/chunk-JLWAIMUZ.cjs +26 -0
- package/dist/{chunk-7R2ZBAE6.mjs → chunk-JUSFLIU5.mjs} +1 -1
- package/dist/{chunk-K22BEXUA.mjs → chunk-JVV7W3TP.mjs} +1 -1
- package/dist/{chunk-VO3C6RE2.mjs → chunk-JWUIZX35.mjs} +2 -2
- package/dist/{chunk-6TSA7KXX.cjs → chunk-JWVH6R35.cjs} +1 -1
- package/dist/chunk-JYIVDUDL.cjs +66 -0
- package/dist/{chunk-NTGUD2JN.mjs → chunk-KBC7VNER.mjs} +1 -1
- package/dist/{chunk-CX6OFX5Z.mjs → chunk-KJH46JR3.mjs} +2 -1
- package/dist/{chunk-JM6NBUDT.cjs → chunk-KR7VBV3B.cjs} +31 -30
- package/dist/chunk-LBGZKACW.cjs +30 -0
- package/dist/{chunk-2CZEFXEW.cjs → chunk-LFSCJLL2.cjs} +5 -13
- package/dist/{chunk-3UEVUYFQ.cjs → chunk-LQGXG373.cjs} +4 -6
- package/dist/{chunk-4XUJBMDE.mjs → chunk-LRSDE62T.mjs} +4 -6
- package/dist/chunk-LSKJOUAE.cjs +56 -0
- package/dist/chunk-M6JLGVJ7.mjs +28 -0
- package/dist/{chunk-D3IW2NW6.mjs → chunk-MG5TTPA7.mjs} +3 -2
- package/dist/{chunk-NO35POZW.mjs → chunk-MHJM7YMG.mjs} +4 -33
- package/dist/{chunk-ZAP4EHBO.cjs → chunk-MIT3YWUC.cjs} +2 -2
- package/dist/{chunk-3THWK3HB.mjs → chunk-NHG2ROYB.mjs} +2 -1
- package/dist/{chunk-GDUVAZDW.cjs → chunk-NSUFTZNC.cjs} +2 -2
- package/dist/{chunk-BIUDC66P.mjs → chunk-OLVOIUCE.mjs} +12 -14
- package/dist/{chunk-VTEWRMGQ.mjs → chunk-OPYMZDEZ.mjs} +3 -3
- package/dist/{chunk-V2IP7UUV.mjs → chunk-PIC2EJWA.mjs} +2 -2
- package/dist/chunk-PKSIXQJX.mjs +20 -0
- package/dist/{chunk-YUHHUSIO.cjs → chunk-PTCDBU72.cjs} +2 -2
- package/dist/{chunk-SQQXY4AY.mjs → chunk-PTGMHZFS.mjs} +1 -1
- package/dist/chunk-PZMA33PL.mjs +25 -0
- package/dist/{chunk-GWIACOMY.cjs → chunk-Q2HC5ZL4.cjs} +3 -38
- package/dist/{chunk-IJGCH57E.cjs → chunk-QHAGQCVF.cjs} +1 -1
- package/dist/{chunk-CUOGY4FW.mjs → chunk-QZUTRJSP.mjs} +2 -2
- package/dist/{chunk-LG3PNH2P.mjs → chunk-RIJUPORK.mjs} +1 -1
- package/dist/{chunk-SUSABE24.mjs → chunk-S6PSU47F.mjs} +1 -1
- package/dist/{chunk-A2PCEL5S.mjs → chunk-S7SGB2FD.mjs} +3 -3
- package/dist/{chunk-QBFOBDBC.cjs → chunk-SHHQDSSI.cjs} +2 -2
- package/dist/chunk-SMIACO56.mjs +330 -0
- package/dist/{chunk-UCRLH44Q.cjs → chunk-SPRBKXGP.cjs} +2 -2
- package/dist/{chunk-73VF2W3D.mjs → chunk-SUEFWFPX.mjs} +2 -2
- package/dist/{chunk-PIXIN3IG.mjs → chunk-SYX6TMCQ.mjs} +1 -1
- package/dist/chunk-TC3W4VRO.mjs +6 -0
- package/dist/{chunk-L26ULDYM.mjs → chunk-THMYDDZF.mjs} +1 -1
- package/dist/{chunk-OWEYAVGT.mjs → chunk-TYXRHZZG.mjs} +8 -5
- package/dist/{chunk-LP3AGGRK.cjs → chunk-UTS56UA5.cjs} +1 -1
- package/dist/{chunk-OMZHB2FB.cjs → chunk-V3VUFIG3.cjs} +4 -2
- package/dist/{chunk-6CM4GYJU.mjs → chunk-VEWWUO2N.mjs} +1 -1
- package/dist/{chunk-76V4RD4V.cjs → chunk-VLOFKTSL.cjs} +3 -3
- package/dist/{chunk-RU423LFT.cjs → chunk-VQP3QBC6.cjs} +1 -1
- package/dist/{chunk-6J7ZVRSY.mjs → chunk-VUMOJPEC.mjs} +1 -1
- package/dist/chunk-WGVKFNG6.mjs +5 -0
- package/dist/{chunk-JD4J3RDN.cjs → chunk-WHV4VATL.cjs} +12 -26
- package/dist/{chunk-QUFZWF4E.cjs → chunk-WRKB3W2J.cjs} +6 -6
- package/dist/{chunk-JA6XS5KY.cjs → chunk-WZGZX3S2.cjs} +3 -3
- package/dist/{chunk-XGGAJUY3.cjs → chunk-XURKXOZK.cjs} +2 -2
- package/dist/{chunk-U7XH7M5B.mjs → chunk-Y2H4A5AC.mjs} +8 -9
- package/dist/{chunk-MDR7WUX6.cjs → chunk-Y5SVZCPQ.cjs} +13 -14
- package/dist/{chunk-AJYO5W6O.mjs → chunk-YHY6SXVJ.mjs} +11 -10
- package/dist/{chunk-PO2LYHDO.mjs → chunk-YKHK6C4Q.mjs} +4 -2
- package/dist/{chunk-MEE3IHTT.mjs → chunk-YLDDI6SZ.mjs} +186 -23
- package/dist/{chunk-LPVBUX2J.cjs → chunk-YQ5KKJQ3.cjs} +2 -1
- package/dist/{chunk-5TXABUNC.mjs → chunk-ZNM6PNI6.mjs} +1 -1
- package/dist/{chunk-EQIEKFCA.cjs → chunk-ZRRCYQ53.cjs} +3 -3
- package/dist/{chunk-MCYFLR4F.cjs → chunk-ZS7ESTKH.cjs} +1 -1
- package/dist/chunk-ZULCZ5L6.cjs +8 -0
- package/dist/dial/DialPanel.cjs +71 -70
- package/dist/dial/DialPanel.mjs +70 -69
- package/dist/dial/DialProvider.d.cts +1 -0
- package/dist/dial/DialProvider.d.ts +1 -0
- package/dist/dial/index.cjs +87 -86
- package/dist/dial/index.mjs +70 -69
- package/dist/dial/wrapped-inputs/ControlledInputs.cjs +78 -73
- package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +2 -1
- package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +2 -1
- package/dist/dial/wrapped-inputs/ControlledInputs.mjs +70 -69
- package/dist/dial/wrapped-inputs/DialInputs.cjs +90 -81
- package/dist/dial/wrapped-inputs/DialInputs.d.cts +3 -1
- package/dist/dial/wrapped-inputs/DialInputs.d.ts +3 -1
- package/dist/dial/wrapped-inputs/DialInputs.mjs +70 -69
- package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +124 -0
- package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +16 -0
- package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +16 -0
- package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +115 -0
- package/dist/dial/wrapped-inputs/DialVectorInput.cjs +71 -70
- package/dist/dial/wrapped-inputs/DialVectorInput.mjs +70 -69
- package/dist/dial/wrapped-inputs/index.cjs +103 -86
- package/dist/dial/wrapped-inputs/index.d.cts +3 -2
- package/dist/dial/wrapped-inputs/index.d.ts +3 -2
- package/dist/dial/wrapped-inputs/index.mjs +70 -69
- package/dist/highlight-cursor/enhanced-components.cjs +13 -13
- package/dist/highlight-cursor/enhanced-components.mjs +8 -8
- package/dist/highlight-cursor/index.cjs +13 -13
- package/dist/highlight-cursor/index.mjs +8 -8
- package/dist/hooks/index.cjs +21 -21
- package/dist/hooks/index.mjs +4 -4
- package/dist/hooks/useQueryParams.cjs +3 -3
- package/dist/hooks/useQueryParams.mjs +2 -2
- package/dist/index.cjs +437 -456
- package/dist/index.css +28 -21
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.mjs +70 -69
- package/dist/styles/theme.css +15 -8
- package/dist/ui/DialBadge.cjs +12 -8
- package/dist/ui/DialBadge.d.cts +11 -6
- package/dist/ui/DialBadge.d.ts +11 -6
- package/dist/ui/DialBadge.mjs +5 -5
- package/dist/ui/UIKitBadge.cjs +9 -9
- package/dist/ui/UIKitBadge.mjs +5 -5
- package/dist/ui/avatar.cjs +9 -33
- package/dist/ui/avatar.d.cts +4 -61
- package/dist/ui/avatar.d.ts +4 -61
- package/dist/ui/avatar.mjs +5 -5
- package/dist/ui/badge.cjs +7 -7
- package/dist/ui/badge.mjs +5 -5
- package/dist/ui/button.cjs +7 -7
- package/dist/ui/button.mjs +5 -5
- package/dist/ui/card.cjs +12 -12
- package/dist/ui/card.mjs +5 -5
- package/dist/ui/checkbox.cjs +4 -4
- package/dist/ui/checkbox.mjs +4 -4
- package/dist/ui/collapsible.cjs +4 -4
- package/dist/ui/collapsible.mjs +4 -4
- package/dist/ui/drawer.cjs +15 -15
- package/dist/ui/drawer.mjs +5 -5
- package/dist/ui/dropdown.cjs +20 -20
- package/dist/ui/dropdown.d.cts +18 -27
- package/dist/ui/dropdown.d.ts +18 -27
- package/dist/ui/dropdown.mjs +5 -5
- package/dist/ui/index.cjs +396 -415
- package/dist/ui/index.d.cts +4 -3
- package/dist/ui/index.d.ts +4 -3
- package/dist/ui/index.mjs +68 -67
- package/dist/ui/inputs/color-input.cjs +7 -7
- package/dist/ui/inputs/color-input.mjs +6 -6
- package/dist/ui/inputs/index.cjs +62 -57
- package/dist/ui/inputs/index.d.cts +1 -0
- package/dist/ui/inputs/index.d.ts +1 -0
- package/dist/ui/inputs/index.mjs +25 -24
- package/dist/ui/inputs/input-numbers.cjs +7 -7
- package/dist/ui/inputs/input-numbers.mjs +6 -6
- package/dist/ui/inputs/input.cjs +8 -8
- package/dist/ui/inputs/input.mjs +5 -5
- package/dist/ui/inputs/number-inputs/CmInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/CmInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/DegInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/DegInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +10 -10
- package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +9 -9
- package/dist/ui/inputs/number-inputs/EulerInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/EulerInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +9 -10
- package/dist/ui/inputs/number-inputs/EulerRadInput.d.cts +6 -3
- package/dist/ui/inputs/number-inputs/EulerRadInput.d.ts +6 -3
- package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +8 -9
- package/dist/ui/inputs/number-inputs/InchInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/InchInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/IntInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/IntInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/KVectorInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/KVectorInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +9 -9
- package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +8 -8
- package/dist/ui/inputs/number-inputs/RadInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/RadInput.d.cts +1 -0
- package/dist/ui/inputs/number-inputs/RadInput.d.ts +1 -0
- package/dist/ui/inputs/number-inputs/RadInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/TimeInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/TimeInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/Vec3Input.cjs +9 -9
- package/dist/ui/inputs/number-inputs/Vec3Input.mjs +8 -8
- package/dist/ui/inputs/number-inputs/VectorInput.cjs +8 -8
- package/dist/ui/inputs/number-inputs/VectorInput.mjs +7 -7
- package/dist/ui/inputs/number-inputs/index.cjs +42 -42
- package/dist/ui/inputs/number-inputs/index.mjs +19 -19
- package/dist/ui/inputs/presets-input.cjs +9 -9
- package/dist/ui/inputs/presets-input.mjs +8 -8
- package/dist/ui/inputs/presets-rad-input.cjs +24 -0
- package/dist/ui/inputs/presets-rad-input.d.cts +17 -0
- package/dist/ui/inputs/presets-rad-input.d.ts +17 -0
- package/dist/ui/inputs/presets-rad-input.mjs +15 -0
- package/dist/ui/inputs/text-input.cjs +7 -7
- package/dist/ui/inputs/text-input.mjs +6 -6
- package/dist/ui/label.cjs +4 -4
- package/dist/ui/label.mjs +4 -4
- package/dist/ui/layout.cjs +4 -4
- package/dist/ui/layout.mjs +4 -4
- package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +6 -6
- package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +5 -5
- package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +4 -4
- package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +4 -4
- package/dist/ui/layouts/dock-layout/index.cjs +6 -6
- package/dist/ui/layouts/dock-layout/index.mjs +5 -5
- package/dist/ui/layouts/index.cjs +10 -10
- package/dist/ui/layouts/index.mjs +8 -8
- package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +11 -11
- package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +5 -5
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +7 -7
- package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +6 -6
- package/dist/ui/layouts/liquid-layout/index.cjs +7 -7
- package/dist/ui/layouts/liquid-layout/index.mjs +6 -6
- package/dist/ui/modal.cjs +15 -15
- package/dist/ui/modal.mjs +5 -5
- package/dist/ui/navigation.cjs +7 -7
- package/dist/ui/navigation.mjs +6 -6
- package/dist/ui/pagination.cjs +13 -13
- package/dist/ui/pagination.mjs +6 -6
- package/dist/ui/panel.cjs +12 -12
- package/dist/ui/panel.mjs +5 -5
- package/dist/ui/popover.cjs +9 -9
- package/dist/ui/popover.mjs +5 -5
- package/dist/ui/radio-group.cjs +4 -4
- package/dist/ui/radio-group.mjs +4 -4
- package/dist/ui/resizable.cjs +4 -4
- package/dist/ui/resizable.mjs +4 -4
- package/dist/ui/select.cjs +16 -16
- package/dist/ui/select.mjs +5 -5
- package/dist/ui/separator.cjs +4 -4
- package/dist/ui/separator.mjs +4 -4
- package/dist/ui/sheet.cjs +13 -13
- package/dist/ui/sheet.mjs +5 -5
- package/dist/ui/sidebar.cjs +34 -34
- package/dist/ui/sidebar.mjs +10 -10
- package/dist/ui/simple-tree-view.cjs +4 -4
- package/dist/ui/simple-tree-view.mjs +4 -4
- package/dist/ui/skeleton.cjs +4 -4
- package/dist/ui/skeleton.mjs +4 -4
- package/dist/ui/slider.cjs +4 -4
- package/dist/ui/slider.mjs +4 -4
- package/dist/ui/switch.cjs +4 -4
- package/dist/ui/switch.mjs +4 -4
- package/dist/ui/table.cjs +4 -4
- package/dist/ui/table.mjs +4 -4
- package/dist/ui/tabs.cjs +4 -4
- package/dist/ui/tabs.mjs +4 -4
- package/dist/ui/textarea.cjs +4 -4
- package/dist/ui/textarea.mjs +4 -4
- package/dist/ui/theme/ThemeProvider.cjs +16 -20
- package/dist/ui/theme/ThemeProvider.d.cts +3 -10
- package/dist/ui/theme/ThemeProvider.d.ts +3 -10
- package/dist/ui/theme/ThemeProvider.mjs +2 -2
- package/dist/ui/theme/ThemeToggles.cjs +12 -12
- package/dist/ui/theme/ThemeToggles.mjs +9 -9
- package/dist/ui/theme/index.cjs +17 -21
- package/dist/ui/theme/index.d.cts +1 -1
- package/dist/ui/theme/index.d.ts +1 -1
- package/dist/ui/theme/index.mjs +9 -9
- package/dist/ui/theme/themeScript.cjs +2 -2
- package/dist/ui/theme/themeScript.d.cts +1 -2
- package/dist/ui/theme/themeScript.d.ts +1 -2
- package/dist/ui/theme/themeScript.mjs +1 -1
- package/dist/ui/toast.cjs +3 -3
- package/dist/ui/toast.mjs +1 -1
- package/dist/ui/toggle-buttons.cjs +4 -4
- package/dist/ui/toggle-buttons.mjs +4 -4
- package/dist/ui/toggle-group.cjs +4 -4
- package/dist/ui/toggle-group.mjs +4 -4
- package/dist/ui/toggle.cjs +4 -4
- package/dist/ui/toggle.mjs +4 -4
- package/dist/ui/toolbar.cjs +8 -8
- package/dist/ui/toolbar.mjs +5 -5
- package/dist/ui/tooltip.cjs +9 -9
- package/dist/ui/tooltip.mjs +5 -5
- package/dist/ui/tree-view/TreeSearchBar.cjs +8 -8
- package/dist/ui/tree-view/TreeSearchBar.mjs +7 -7
- package/dist/ui/tree-view/TreeView.cjs +4 -4
- package/dist/ui/tree-view/TreeView.mjs +4 -4
- package/dist/ui/tree-view/index.cjs +9 -9
- package/dist/ui/tree-view/index.mjs +8 -8
- package/dist/ui/tree-view-legacy.cjs +11 -11
- package/dist/ui/tree-view-legacy.mjs +7 -7
- package/dist/ui/waterfall/CursorOverlay.cjs +4 -4
- package/dist/ui/waterfall/CursorOverlay.mjs +4 -4
- package/dist/ui/waterfall/NavigationControls.cjs +2 -2
- package/dist/ui/waterfall/NavigationControls.mjs +1 -1
- package/dist/ui/waterfall/Tick.cjs +2 -2
- package/dist/ui/waterfall/Tick.mjs +1 -1
- package/dist/ui/waterfall/TimelineEvent.cjs +4 -4
- package/dist/ui/waterfall/TimelineEvent.mjs +4 -4
- package/dist/ui/waterfall/TimelineProcessBar.cjs +4 -4
- package/dist/ui/waterfall/TimelineProcessBar.mjs +4 -4
- package/dist/ui/waterfall/Wedges.cjs +4 -4
- package/dist/ui/waterfall/Wedges.mjs +4 -4
- package/dist/ui/waterfall/index.cjs +16 -16
- package/dist/ui/waterfall/index.mjs +15 -15
- package/package.json +7 -1
- package/src/auth/context/auth-context.ts +16 -0
- package/src/auth/handler/create-client.ts +23 -0
- package/src/auth/handler/sign-in-handler.ts +66 -0
- package/src/auth/hooks/use-vuer-auth.ts +10 -0
- package/src/auth/hooks/use-vuer-method.ts +35 -0
- package/src/auth/index.ts +6 -0
- package/src/auth/localstorage-key.ts +3 -0
- package/src/auth/types.ts +56 -0
- package/src/auth/vuer-auth-provider.tsx +35 -0
- package/src/dial/DialPanel.tsx +47 -4
- package/src/dial/DialProvider.tsx +1 -0
- package/src/dial/wrapped-inputs/ControlledInputs.tsx +17 -0
- package/src/dial/wrapped-inputs/DialInputs.tsx +77 -0
- package/src/dial/wrapped-inputs/DialPresetsInput.tsx +79 -0
- package/src/dial/wrapped-inputs/index.ts +6 -0
- package/src/styles/theme.css +75 -28
- package/src/ui/DialBadge.tsx +18 -7
- package/src/ui/avatar.tsx +4 -85
- package/src/ui/badge.tsx +1 -1
- package/src/ui/button.tsx +0 -5
- package/src/ui/card.tsx +3 -2
- package/src/ui/drawer.tsx +1 -1
- package/src/ui/dropdown.tsx +25 -368
- package/src/ui/inputs/index.tsx +1 -0
- package/src/ui/inputs/input.tsx +3 -5
- package/src/ui/inputs/number-inputs/EulerRadInput.tsx +46 -5
- package/src/ui/inputs/number-inputs/RadInput.tsx +31 -5
- package/src/ui/inputs/presets-rad-input.tsx +77 -0
- package/src/ui/layouts/dock-layout/DockLayoutView.tsx +6 -82
- package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +2 -2
- package/src/ui/modal.tsx +2 -1
- package/src/ui/panel.tsx +2 -1
- package/src/ui/popover.tsx +4 -2
- package/src/ui/select.tsx +2 -1
- package/src/ui/sheet.tsx +2 -2
- package/src/ui/sidebar.tsx +8 -9
- package/src/ui/theme/ThemeProvider.tsx +69 -52
- package/src/ui/theme/ThemeToggles.tsx +12 -12
- package/src/ui/theme/index.ts +6 -16
- package/src/ui/theme/themeScript.tsx +24 -50
- package/src/ui/toast.tsx +1 -1
- package/src/ui/toolbar.tsx +3 -3
- package/src/ui/tooltip.tsx +5 -13
- package/src/ui/waterfall/NavigationControls.tsx +1 -1
- package/src/ui/waterfall/Tick.tsx +1 -1
- package/src/ui/waterfall/index.tsx +4 -3
- package/dist/chunk-5T7MTIHW.mjs +0 -75
- package/dist/chunk-DVKONMS7.cjs +0 -20
- package/dist/chunk-GPV4XELL.mjs +0 -18
- package/dist/chunk-H2GERFBG.cjs +0 -13
- package/dist/chunk-H4IDSUG5.mjs +0 -643
- package/dist/chunk-KAA4NEHL.cjs +0 -77
- package/dist/chunk-TY47DFGO.mjs +0 -11
- package/dist/{chunk-ADYUCJMQ.mjs → chunk-2KQRWXNO.mjs} +0 -0
- package/dist/{chunk-SQRAUVEP.cjs → chunk-63OJOP6W.cjs} +0 -0
- package/dist/{chunk-LYZJNEOR.cjs → chunk-Q4XH2Z5M.cjs} +1 -1
- package/dist/{chunk-OEIF3JCH.mjs → chunk-U3LN5NB6.mjs} +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { forwardRef, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { Button } from "../button";
|
|
4
|
+
import { RadInput, RadInputProps } from "./number-inputs/RadInput";
|
|
5
|
+
import { cn } from "../../hooks";
|
|
6
|
+
|
|
7
|
+
interface PresetsRadInputProps extends Omit<RadInputProps, "value" | "onChange"> {
|
|
8
|
+
presets: [number, number, number];
|
|
9
|
+
value?: number;
|
|
10
|
+
onChange?: (value: number) => void;
|
|
11
|
+
display?: "deg" | "pi" | "rad";
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const PresetsRadInput = forwardRef<HTMLDivElement, PresetsRadInputProps>(
|
|
16
|
+
function PresetsRadInput({ presets, value = 0, onChange, display = "rad", size, className, ...props }, ref) {
|
|
17
|
+
const [preset, setPreset] = useState(value);
|
|
18
|
+
|
|
19
|
+
const handleValueChange = (newValue: number) => {
|
|
20
|
+
setPreset(newValue);
|
|
21
|
+
onChange?.(newValue);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const handlePresetClick = (presetValue: number) => {
|
|
25
|
+
setPreset(presetValue);
|
|
26
|
+
onChange?.(presetValue);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const getDisplayValue = (radValue: number) => {
|
|
30
|
+
if (display === "deg") {
|
|
31
|
+
return (radValue * 180) / Math.PI;
|
|
32
|
+
} else if (display === "pi") {
|
|
33
|
+
return radValue / Math.PI;
|
|
34
|
+
}
|
|
35
|
+
return radValue;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const formatDisplayValue = (radValue: number) => {
|
|
39
|
+
const displayValue = getDisplayValue(radValue);
|
|
40
|
+
if (display === "pi") {
|
|
41
|
+
return `${displayValue.toFixed(2)}π`;
|
|
42
|
+
} else if (display === "deg") {
|
|
43
|
+
return `${displayValue.toFixed(0)}°`;
|
|
44
|
+
}
|
|
45
|
+
return displayValue.toFixed(2);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<div className={cn("gap-xs grid grid-cols-5", className)}>
|
|
50
|
+
<div className="col-span-full">
|
|
51
|
+
<RadInput
|
|
52
|
+
{...props}
|
|
53
|
+
ref={ref}
|
|
54
|
+
size={size}
|
|
55
|
+
value={preset}
|
|
56
|
+
onChange={handleValueChange}
|
|
57
|
+
display={display}
|
|
58
|
+
/>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
{presets.map((p: number, i: number) => {
|
|
62
|
+
return (
|
|
63
|
+
<Button
|
|
64
|
+
key={i}
|
|
65
|
+
size={size}
|
|
66
|
+
variant="secondary"
|
|
67
|
+
className="h-6"
|
|
68
|
+
onClick={() => handlePresetClick(p)}
|
|
69
|
+
>
|
|
70
|
+
{formatDisplayValue(p)}
|
|
71
|
+
</Button>
|
|
72
|
+
);
|
|
73
|
+
})}
|
|
74
|
+
</div>
|
|
75
|
+
);
|
|
76
|
+
},
|
|
77
|
+
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
DockLayout,
|
|
@@ -36,93 +36,17 @@ export const DockLayoutView = ({
|
|
|
36
36
|
bottomClassName,
|
|
37
37
|
contentClassName,
|
|
38
38
|
}: DockLayoutViewProps) => {
|
|
39
|
-
const containerRef = useRef<HTMLDivElement>(null);
|
|
40
|
-
const leftRef = useRef<HTMLDivElement>(null);
|
|
41
|
-
const rightRef = useRef<HTMLDivElement>(null);
|
|
42
|
-
const bottomRef = useRef<HTMLDivElement>(null);
|
|
43
|
-
const measureRef = useRef<HTMLDivElement>(null);
|
|
44
|
-
const [isBottomFullWidth, setIsBottomFullWidth] = useState(false);
|
|
45
|
-
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
const checkBottomWidth = () => {
|
|
48
|
-
if (!containerRef.current || !bottom || !measureRef.current) return;
|
|
49
|
-
|
|
50
|
-
const containerWidth = containerRef.current.offsetWidth;
|
|
51
|
-
const leftWidth = leftRef.current?.offsetWidth || 0;
|
|
52
|
-
const rightWidth = rightRef.current?.offsetWidth || 0;
|
|
53
|
-
const availableWidth = containerWidth - leftWidth - rightWidth;
|
|
54
|
-
|
|
55
|
-
const bottomActualWidth = measureRef.current.scrollWidth;
|
|
56
|
-
|
|
57
|
-
setIsBottomFullWidth(bottomActualWidth > 0 && availableWidth < bottomActualWidth);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const resizeObserver = new ResizeObserver(checkBottomWidth);
|
|
61
|
-
|
|
62
|
-
if (containerRef.current) {
|
|
63
|
-
resizeObserver.observe(containerRef.current);
|
|
64
|
-
}
|
|
65
|
-
if (leftRef.current) {
|
|
66
|
-
resizeObserver.observe(leftRef.current);
|
|
67
|
-
}
|
|
68
|
-
if (rightRef.current) {
|
|
69
|
-
resizeObserver.observe(rightRef.current);
|
|
70
|
-
}
|
|
71
|
-
if (measureRef.current) {
|
|
72
|
-
resizeObserver.observe(measureRef.current);
|
|
73
|
-
checkBottomWidth();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return () => {
|
|
77
|
-
resizeObserver.disconnect();
|
|
78
|
-
};
|
|
79
|
-
}, [bottom, left, right]);
|
|
80
|
-
|
|
81
39
|
return (
|
|
82
|
-
<DockLayout
|
|
83
|
-
{bottom && (
|
|
84
|
-
<div
|
|
85
|
-
ref={measureRef}
|
|
86
|
-
className="pointer-events-none absolute -top-[9999px] left-0 opacity-0"
|
|
87
|
-
style={{ width: "max-content" }}
|
|
88
|
-
>
|
|
89
|
-
<DockLayoutBottom className={bottomClassName}>{bottom}</DockLayoutBottom>
|
|
90
|
-
</div>
|
|
91
|
-
)}
|
|
92
|
-
|
|
40
|
+
<DockLayout className={className}>
|
|
93
41
|
{top && <DockLayoutTop className={topClassName}>{top}</DockLayoutTop>}
|
|
94
42
|
|
|
95
43
|
<div className="flex flex-1 overflow-hidden">
|
|
96
|
-
{left &&
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
</div>
|
|
100
|
-
)}
|
|
101
|
-
|
|
102
|
-
<div className="flex flex-1 flex-col overflow-hidden">
|
|
103
|
-
<DockLayoutContent className={contentClassName}>{children}</DockLayoutContent>
|
|
104
|
-
|
|
105
|
-
{bottom && !isBottomFullWidth && (
|
|
106
|
-
<div className="flex justify-center">
|
|
107
|
-
<DockLayoutBottom ref={bottomRef} className={bottomClassName}>
|
|
108
|
-
{bottom}
|
|
109
|
-
</DockLayoutBottom>
|
|
110
|
-
</div>
|
|
111
|
-
)}
|
|
112
|
-
</div>
|
|
113
|
-
|
|
114
|
-
{right && (
|
|
115
|
-
<div ref={rightRef}>
|
|
116
|
-
<DockLayoutRight className={rightClassName}>{right}</DockLayoutRight>
|
|
117
|
-
</div>
|
|
118
|
-
)}
|
|
44
|
+
{left && <DockLayoutLeft className={leftClassName}>{left}</DockLayoutLeft>}
|
|
45
|
+
<DockLayoutContent className={contentClassName}>{children}</DockLayoutContent>
|
|
46
|
+
{right && <DockLayoutRight className={rightClassName}>{right}</DockLayoutRight>}
|
|
119
47
|
</div>
|
|
120
48
|
|
|
121
|
-
{bottom &&
|
|
122
|
-
<DockLayoutBottom ref={bottomRef} className={bottomClassName}>
|
|
123
|
-
{bottom}
|
|
124
|
-
</DockLayoutBottom>
|
|
125
|
-
)}
|
|
49
|
+
{bottom && <DockLayoutBottom className={bottomClassName}>{bottom}</DockLayoutBottom>}
|
|
126
50
|
</DockLayout>
|
|
127
51
|
);
|
|
128
52
|
};
|
|
@@ -28,7 +28,7 @@ export function LiquidLayoutLeft({ className, ...props }: Readonly<ComponentProp
|
|
|
28
28
|
<div
|
|
29
29
|
{...props}
|
|
30
30
|
className={cn(
|
|
31
|
-
"order-2 col-start-1 flex flex-col items-start gap-4 [&>*]:pointer-events-auto",
|
|
31
|
+
"order-2 col-start-1 flex flex-col items-start gap-4 overflow-y-auto [&>*]:pointer-events-auto",
|
|
32
32
|
className,
|
|
33
33
|
)}
|
|
34
34
|
/>
|
|
@@ -57,7 +57,7 @@ export function LiquidLayoutRight({
|
|
|
57
57
|
<Comp
|
|
58
58
|
{...props}
|
|
59
59
|
className={cn(
|
|
60
|
-
"order-4 col-start-3 flex flex-col items-end gap-4 [&>*]:pointer-events-auto",
|
|
60
|
+
"order-4 col-start-3 flex flex-col items-end gap-4 overflow-y-auto [&>*]:pointer-events-auto",
|
|
61
61
|
className,
|
|
62
62
|
)}
|
|
63
63
|
/>
|
package/src/ui/modal.tsx
CHANGED
|
@@ -77,7 +77,8 @@ const modalContentVariants = cva([
|
|
|
77
77
|
"data-[state=open]:fade-in-0",
|
|
78
78
|
"data-[state=closed]:zoom-out-95",
|
|
79
79
|
"data-[state=open]:zoom-in-95",
|
|
80
|
-
"liquid:liquid-bg",
|
|
80
|
+
"liquid-dark:liquid-dark-bg",
|
|
81
|
+
"liquid-light:liquid-light-bg",
|
|
81
82
|
]);
|
|
82
83
|
|
|
83
84
|
interface ModalContentProps extends ComponentProps<typeof DialogPrimitive.Content> {
|
package/src/ui/panel.tsx
CHANGED
package/src/ui/popover.tsx
CHANGED
|
@@ -74,7 +74,8 @@ function PopoverContentRoot({
|
|
|
74
74
|
"origin-(--radix-popover-content-transform-origin)",
|
|
75
75
|
"border-none",
|
|
76
76
|
"outline-hidden",
|
|
77
|
-
"liquid:liquid-bg",
|
|
77
|
+
"liquid-dark:liquid-dark-bg",
|
|
78
|
+
"liquid-light:liquid-light-bg",
|
|
78
79
|
className,
|
|
79
80
|
)}
|
|
80
81
|
{...props}
|
|
@@ -95,7 +96,8 @@ function PopoverContentFallback({ className, ...props }: ComponentProps<"div">)
|
|
|
95
96
|
"z-20",
|
|
96
97
|
"border-none",
|
|
97
98
|
"outline-hidden",
|
|
98
|
-
"liquid:liquid-bg",
|
|
99
|
+
"liquid-dark:liquid-dark-bg",
|
|
100
|
+
"liquid-light:liquid-light-bg",
|
|
99
101
|
className,
|
|
100
102
|
)}
|
|
101
103
|
{...props}
|
package/src/ui/select.tsx
CHANGED
|
@@ -175,7 +175,8 @@ export function SelectContent({
|
|
|
175
175
|
"overflow-y-auto",
|
|
176
176
|
"rounded-uk-md",
|
|
177
177
|
"shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
|
|
178
|
-
"liquid:liquid-bg",
|
|
178
|
+
"liquid-dark:liquid-dark-bg",
|
|
179
|
+
"liquid-light:liquid-light-bg",
|
|
179
180
|
font === "standard" ? "font-sans" : "font-number-input",
|
|
180
181
|
],
|
|
181
182
|
{
|
package/src/ui/sheet.tsx
CHANGED
|
@@ -111,7 +111,7 @@ function SheetContentRoot({
|
|
|
111
111
|
<SheetPrimitive.Content
|
|
112
112
|
data-slot="sheet-content"
|
|
113
113
|
className={cn(
|
|
114
|
-
"liquid:liquid-bg bg-bg-primary data-[state=open]:animate-in data-[state=closed]:animate-out p-xl fixed z-50 flex flex-col gap-4 shadow-[0_4px_16px_0_var(--color-shadow-secondary)] transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
114
|
+
"liquid-dark:liquid-dark-bg liquid-light:liquid-light-bg bg-bg-primary data-[state=open]:animate-in data-[state=closed]:animate-out p-xl fixed z-50 flex flex-col gap-4 shadow-[0_4px_16px_0_var(--color-shadow-secondary)] transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
115
115
|
side === "right" &&
|
|
116
116
|
"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-[340px]",
|
|
117
117
|
side === "left" &&
|
|
@@ -146,7 +146,7 @@ function SheetContentFallback({
|
|
|
146
146
|
<div
|
|
147
147
|
data-slot="sheet-content"
|
|
148
148
|
className={cn(
|
|
149
|
-
"liquid:liquid-bg bg-bg-primary p-xl fixed z-50 flex flex-col gap-4 shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
|
|
149
|
+
"liquid-dark:liquid-dark-bg liquid-light:liquid-light-bg bg-bg-primary p-xl fixed z-50 flex flex-col gap-4 shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
|
|
150
150
|
side === "right" && "inset-y-0 right-0 h-full w-[340px]",
|
|
151
151
|
side === "left" && "inset-y-0 left-0 h-full w-[340px]",
|
|
152
152
|
side === "top" && "inset-x-0 top-0 h-auto",
|
package/src/ui/sidebar.tsx
CHANGED
|
@@ -222,7 +222,7 @@ function Sidebar({
|
|
|
222
222
|
<div
|
|
223
223
|
data-sidebar="sidebar"
|
|
224
224
|
data-slot="sidebar-inner"
|
|
225
|
-
className="bg-bg-primary liquid:liquid-bg group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-uk-lg flex h-full w-full flex-col font-normal group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
|
|
225
|
+
className="bg-bg-primary liquid-dark:liquid-dark-bg liquid-light:liquid-light-bg group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-uk-lg flex h-full w-full flex-col font-normal group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
|
|
226
226
|
>
|
|
227
227
|
{children}
|
|
228
228
|
</div>
|
|
@@ -316,7 +316,7 @@ function SidebarHeader({ className, ...props }: ComponentProps<"div">) {
|
|
|
316
316
|
<div
|
|
317
317
|
data-slot="sidebar-header"
|
|
318
318
|
data-sidebar="header"
|
|
319
|
-
className={cn("text-uk-lg leading-uk-lg px-md flex flex-col", className)}
|
|
319
|
+
className={cn("text-uk-lg leading-uk-lg px-md py-lg flex flex-col", className)}
|
|
320
320
|
{...props}
|
|
321
321
|
/>
|
|
322
322
|
);
|
|
@@ -327,7 +327,7 @@ function SidebarFooter({ className, ...props }: ComponentProps<"div">) {
|
|
|
327
327
|
<div
|
|
328
328
|
data-slot="sidebar-footer"
|
|
329
329
|
data-sidebar="footer"
|
|
330
|
-
className={cn("px-lg flex flex-col", className)}
|
|
330
|
+
className={cn("px-md py-lg flex flex-col", className)}
|
|
331
331
|
{...props}
|
|
332
332
|
/>
|
|
333
333
|
);
|
|
@@ -338,10 +338,7 @@ function SidebarSeparator({ className, ...props }: ComponentProps<typeof Separat
|
|
|
338
338
|
<Separator
|
|
339
339
|
data-slot="sidebar-separator"
|
|
340
340
|
data-sidebar="separator"
|
|
341
|
-
className={cn("bg-line-primary
|
|
342
|
-
style={{
|
|
343
|
-
width: "calc(100% + var(--spacing-lg) * 2)",
|
|
344
|
-
}}
|
|
341
|
+
className={cn("bg-line-primary", className)}
|
|
345
342
|
{...props}
|
|
346
343
|
/>
|
|
347
344
|
);
|
|
@@ -431,7 +428,7 @@ function SidebarMenu({ className, ...props }: ComponentProps<"ul">) {
|
|
|
431
428
|
<ul
|
|
432
429
|
data-slot="sidebar-menu"
|
|
433
430
|
data-sidebar="menu"
|
|
434
|
-
className={cn("gap-
|
|
431
|
+
className={cn("py-md gap-sm flex w-full min-w-0 flex-col", className)}
|
|
435
432
|
style={{
|
|
436
433
|
paddingLeft: "0px",
|
|
437
434
|
marginBottom: "0px",
|
|
@@ -656,10 +653,12 @@ function SidebarMenuSubButton({
|
|
|
656
653
|
data-size={size}
|
|
657
654
|
data-active={isActive}
|
|
658
655
|
className={cn(
|
|
659
|
-
"text-text-primary ring-sidebar-ring hover:bg-bg-secondary hover:text-text-primary active:bg-bg-tertiary active:text-text-highlight [&>svg]:text-icon-primary gap-md rounded-uk-md px-lg flex h-[32px] min-w-0 -translate-x-px items-center overflow-hidden outline-hidden
|
|
656
|
+
"text-text-primary ring-sidebar-ring hover:bg-bg-secondary hover:text-text-primary active:bg-bg-tertiary active:text-text-highlight [&>svg]:text-icon-primary gap-md rounded-uk-md px-lg flex h-[32px] min-w-0 -translate-x-px cursor-pointer items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-[16px] [&>svg]:shrink-0",
|
|
660
657
|
size === "sm" && "text-uk-sm leading-uk-sm",
|
|
661
658
|
size === "md" && "text-uk-md leading-uk-md",
|
|
662
659
|
"group-data-[collapsible=icon]:hidden",
|
|
660
|
+
isActive &&
|
|
661
|
+
"bg-bg-tertiary text-text-highlight [&>svg]:text-icon-highlight hover:bg-bg-tertiary hover:text-text-highlight",
|
|
663
662
|
className,
|
|
664
663
|
)}
|
|
665
664
|
{...props}
|
|
@@ -9,7 +9,13 @@ import {
|
|
|
9
9
|
} from "react";
|
|
10
10
|
|
|
11
11
|
import { ThemeScript } from "./themeScript";
|
|
12
|
-
import type {
|
|
12
|
+
import type {
|
|
13
|
+
Attribute,
|
|
14
|
+
BaseTheme,
|
|
15
|
+
ComputedTheme,
|
|
16
|
+
ThemeProviderProps,
|
|
17
|
+
UseThemeProps,
|
|
18
|
+
} from "./types";
|
|
13
19
|
|
|
14
20
|
export const colorSchemes = ["light", "dark"] as const;
|
|
15
21
|
export const MEDIA = "(prefers-color-scheme: dark)";
|
|
@@ -37,47 +43,47 @@ export const getFromLS = (key: string, fallback: string): string => {
|
|
|
37
43
|
/**
|
|
38
44
|
* Calculate the actual theme name
|
|
39
45
|
*/
|
|
40
|
-
export const computeTheme = (
|
|
46
|
+
export const computeTheme = (
|
|
47
|
+
baseTheme: BaseTheme,
|
|
48
|
+
isLiquid: boolean,
|
|
49
|
+
systemIsDark: boolean,
|
|
50
|
+
): ComputedTheme => {
|
|
41
51
|
let resolvedBase: "light" | "dark";
|
|
42
|
-
|
|
52
|
+
|
|
43
53
|
if (baseTheme === "system") {
|
|
44
54
|
resolvedBase = systemIsDark ? "dark" : "light";
|
|
45
55
|
} else {
|
|
46
56
|
resolvedBase = baseTheme;
|
|
47
57
|
}
|
|
48
|
-
|
|
49
|
-
return isLiquid ? `liquid-${resolvedBase}` as ComputedTheme : resolvedBase;
|
|
50
|
-
};
|
|
51
58
|
|
|
52
|
-
|
|
53
|
-
* Parse old theme string to new state structure
|
|
54
|
-
*/
|
|
55
|
-
export const parseOldTheme = (oldTheme: string): { baseTheme: BaseTheme; isLiquid: boolean } => {
|
|
56
|
-
if (oldTheme === "system") {
|
|
57
|
-
return { baseTheme: "system", isLiquid: false };
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (oldTheme.startsWith("liquid-")) {
|
|
61
|
-
const base = oldTheme.replace("liquid-", "") as "light" | "dark";
|
|
62
|
-
return { baseTheme: base, isLiquid: true };
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return { baseTheme: oldTheme as BaseTheme, isLiquid: false };
|
|
59
|
+
return isLiquid ? (`liquid-${resolvedBase}` as ComputedTheme) : resolvedBase;
|
|
66
60
|
};
|
|
67
61
|
|
|
68
|
-
|
|
69
|
-
|
|
70
62
|
/**
|
|
71
|
-
* Hook to read and update theme state from `ThemeProvider`.
|
|
63
|
+
* Hook to read and update the theme state from `ThemeProvider`.
|
|
72
64
|
* Throws if used outside a provider.
|
|
73
65
|
*/
|
|
74
|
-
export
|
|
66
|
+
export function useTheme<T = UseThemeProps>(
|
|
67
|
+
selector?: (v: UseThemeProps) => T,
|
|
68
|
+
): T extends void ? UseThemeProps : T {
|
|
75
69
|
const context = useContext(ThemeContext);
|
|
76
70
|
|
|
77
71
|
if (context === undefined) throw new Error("useTheme must be used within a ThemeProvider");
|
|
78
72
|
|
|
79
|
-
return
|
|
80
|
-
|
|
73
|
+
return useMemo(
|
|
74
|
+
() => {
|
|
75
|
+
if (!selector) {
|
|
76
|
+
return context as any;
|
|
77
|
+
} else if (typeof selector === "function") {
|
|
78
|
+
return selector(context);
|
|
79
|
+
} else {
|
|
80
|
+
return context[selector] as any;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
|
+
[context],
|
|
85
|
+
) as T extends void ? UseThemeProps : T;
|
|
86
|
+
}
|
|
81
87
|
|
|
82
88
|
/**
|
|
83
89
|
* Provides theme context and DOM attribute synchronization for theming.
|
|
@@ -112,7 +118,7 @@ export const Theme = ({
|
|
|
112
118
|
scriptProps,
|
|
113
119
|
}: PropsWithChildren<ThemeProviderProps>) => {
|
|
114
120
|
const themes = defaultThemes;
|
|
115
|
-
|
|
121
|
+
|
|
116
122
|
const initialState = useMemo(() => {
|
|
117
123
|
return { baseTheme: defaultBaseTheme!, isLiquid: defaultIsLiquid! };
|
|
118
124
|
}, [defaultBaseTheme, defaultIsLiquid]);
|
|
@@ -122,9 +128,11 @@ export const Theme = ({
|
|
|
122
128
|
if (!stored) {
|
|
123
129
|
return initialState.baseTheme;
|
|
124
130
|
}
|
|
125
|
-
return (
|
|
131
|
+
return (
|
|
132
|
+
["light", "dark", "system"].includes(stored) ? stored : initialState.baseTheme
|
|
133
|
+
) as BaseTheme;
|
|
126
134
|
});
|
|
127
|
-
|
|
135
|
+
|
|
128
136
|
const [isLiquid, setIsLiquidState] = useState<boolean>(() => {
|
|
129
137
|
const stored = getFromLS(`${storageKey}-liquid`, "");
|
|
130
138
|
if (!stored) {
|
|
@@ -142,15 +150,14 @@ export const Theme = ({
|
|
|
142
150
|
|
|
143
151
|
const attrs = !value ? themes : Object.values(value);
|
|
144
152
|
|
|
145
|
-
const computedTheme = useMemo(
|
|
146
|
-
computeTheme(baseTheme, isLiquid, systemIsDark),
|
|
147
|
-
[baseTheme, isLiquid, systemIsDark]
|
|
153
|
+
const computedTheme = useMemo(
|
|
154
|
+
() => computeTheme(baseTheme, isLiquid, systemIsDark),
|
|
155
|
+
[baseTheme, isLiquid, systemIsDark],
|
|
148
156
|
);
|
|
149
157
|
|
|
150
158
|
const resolvedTheme = useMemo((): ComputedTheme => {
|
|
151
159
|
if (forcedTheme) {
|
|
152
|
-
|
|
153
|
-
return computeTheme(parsed.baseTheme, parsed.isLiquid, systemIsDark);
|
|
160
|
+
return forcedTheme as ComputedTheme;
|
|
154
161
|
}
|
|
155
162
|
return computedTheme;
|
|
156
163
|
}, [forcedTheme, computedTheme, systemIsDark]);
|
|
@@ -190,26 +197,26 @@ export const Theme = ({
|
|
|
190
197
|
[attribute, attrs, disableTransitionOnChange, enableColorScheme, nonce, value],
|
|
191
198
|
);
|
|
192
199
|
|
|
193
|
-
const setBaseTheme = useCallback(
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
200
|
+
const setBaseTheme = useCallback(
|
|
201
|
+
(newBaseTheme: BaseTheme) => {
|
|
202
|
+
setBaseThemeState(newBaseTheme);
|
|
203
|
+
saveToLS(`${storageKey}-base`, newBaseTheme);
|
|
204
|
+
},
|
|
205
|
+
[storageKey],
|
|
206
|
+
);
|
|
197
207
|
|
|
198
208
|
const toggleLiquid = useCallback(() => {
|
|
199
|
-
setIsLiquidState(prev => {
|
|
209
|
+
setIsLiquidState((prev) => {
|
|
200
210
|
const newValue = !prev;
|
|
201
211
|
saveToLS(`${storageKey}-liquid`, String(newValue));
|
|
202
212
|
return newValue;
|
|
203
213
|
});
|
|
204
214
|
}, [storageKey]);
|
|
205
215
|
|
|
206
|
-
const handleMediaQuery = useCallback(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
},
|
|
211
|
-
[],
|
|
212
|
-
);
|
|
216
|
+
const handleMediaQuery = useCallback((e: MediaQueryListEvent | MediaQueryList) => {
|
|
217
|
+
const isDark = e.matches;
|
|
218
|
+
setSystemIsDark(isDark);
|
|
219
|
+
}, []);
|
|
213
220
|
|
|
214
221
|
// Always listen to System preference
|
|
215
222
|
useEffect(() => {
|
|
@@ -249,13 +256,24 @@ export const Theme = ({
|
|
|
249
256
|
toggleLiquid,
|
|
250
257
|
computedTheme,
|
|
251
258
|
resolvedTheme,
|
|
252
|
-
systemTheme: (enableSystem ? (systemIsDark ? "dark" : "light") : undefined) as
|
|
259
|
+
systemTheme: (enableSystem ? (systemIsDark ? "dark" : "light") : undefined) as
|
|
260
|
+
| "light"
|
|
261
|
+
| "dark"
|
|
262
|
+
| undefined,
|
|
253
263
|
forcedTheme,
|
|
254
264
|
storageKey,
|
|
255
265
|
}),
|
|
256
266
|
[
|
|
257
|
-
baseTheme,
|
|
258
|
-
|
|
267
|
+
baseTheme,
|
|
268
|
+
setBaseTheme,
|
|
269
|
+
isLiquid,
|
|
270
|
+
toggleLiquid,
|
|
271
|
+
computedTheme,
|
|
272
|
+
resolvedTheme,
|
|
273
|
+
systemIsDark,
|
|
274
|
+
enableSystem,
|
|
275
|
+
forcedTheme,
|
|
276
|
+
storageKey,
|
|
259
277
|
],
|
|
260
278
|
);
|
|
261
279
|
|
|
@@ -268,9 +286,8 @@ export const Theme = ({
|
|
|
268
286
|
attribute,
|
|
269
287
|
enableSystem,
|
|
270
288
|
enableColorScheme,
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
: (initialState.isLiquid ? `liquid-${initialState.baseTheme}` : initialState.baseTheme),
|
|
289
|
+
defaultBaseTheme: initialState.baseTheme,
|
|
290
|
+
defaultIsLiquid: initialState.isLiquid,
|
|
274
291
|
value,
|
|
275
292
|
themes,
|
|
276
293
|
nonce,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Liquid toggle component
|
|
2
|
-
import {
|
|
2
|
+
import { LayoutTemplate, Moon, PanelsTopLeft, Sun, SunMoon } from "lucide-react";
|
|
3
3
|
import React, { type ComponentProps } from "react";
|
|
4
4
|
|
|
5
5
|
import { Button } from "../button";
|
|
6
6
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../tooltip";
|
|
7
7
|
import { useTheme } from "./ThemeProvider";
|
|
8
|
-
import { cn
|
|
8
|
+
import { cn } from "../../hooks";
|
|
9
9
|
|
|
10
10
|
type LiquidToggleProps = Omit<ComponentProps<typeof Button>, "onClick" | "children">;
|
|
11
11
|
|
|
@@ -18,16 +18,16 @@ export const LiquidToggle: React.FC<LiquidToggleProps> = ({ className, ...props
|
|
|
18
18
|
<Button
|
|
19
19
|
icon
|
|
20
20
|
variant="ghost"
|
|
21
|
-
value={isLiquid}
|
|
21
|
+
// value={isLiquid}
|
|
22
22
|
aria-label={`Toggle liquid theme: ${isLiquid ? "on" : "off"}`}
|
|
23
23
|
{...props}
|
|
24
24
|
onClick={toggleLiquid}
|
|
25
25
|
className={className}
|
|
26
26
|
>
|
|
27
|
-
<
|
|
27
|
+
{isLiquid ? <PanelsTopLeft size={20} /> : <LayoutTemplate size={20} />}
|
|
28
28
|
</Button>
|
|
29
29
|
</TooltipTrigger>
|
|
30
|
-
<TooltipContent>
|
|
30
|
+
<TooltipContent>{isLiquid ? "Dock Menu Panels" : "Floating Menu Panels"}</TooltipContent>
|
|
31
31
|
</Tooltip>
|
|
32
32
|
);
|
|
33
33
|
};
|
|
@@ -48,7 +48,7 @@ export const ThemeColorToggle: React.FC<ThemeColorToggleProps> = (props) => {
|
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
const isDark = resolvedTheme
|
|
51
|
+
const isDark = resolvedTheme?.includes("dark");
|
|
52
52
|
const isSystem = baseTheme === "system";
|
|
53
53
|
|
|
54
54
|
return (
|
|
@@ -70,15 +70,15 @@ type ThemeTogglesProps = {
|
|
|
70
70
|
colorToggleProps?: Omit<ThemeColorToggleProps, "className">;
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
export const ThemeToggles: React.FC<ThemeTogglesProps> = ({
|
|
74
|
-
className,
|
|
75
|
-
liquidToggleProps = {},
|
|
76
|
-
colorToggleProps = {}
|
|
73
|
+
export const ThemeToggles: React.FC<ThemeTogglesProps> = ({
|
|
74
|
+
className,
|
|
75
|
+
liquidToggleProps = {},
|
|
76
|
+
colorToggleProps = {},
|
|
77
77
|
}) => {
|
|
78
78
|
return (
|
|
79
|
-
<div className={cn("flex
|
|
79
|
+
<div className={cn("flex", className)}>
|
|
80
80
|
<LiquidToggle {...liquidToggleProps} />
|
|
81
81
|
<ThemeColorToggle {...colorToggleProps} />
|
|
82
82
|
</div>
|
|
83
83
|
);
|
|
84
|
-
};
|
|
84
|
+
};
|
package/src/ui/theme/index.ts
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
ThemeProvider,
|
|
4
|
-
defaultThemes,
|
|
5
|
-
computeTheme,
|
|
6
|
-
parseOldTheme
|
|
7
|
-
} from "./ThemeProvider";
|
|
8
|
-
export {
|
|
9
|
-
LiquidToggle,
|
|
10
|
-
ThemeColorToggle,
|
|
11
|
-
ThemeToggles,
|
|
12
|
-
} from "./ThemeToggles";
|
|
1
|
+
export { useTheme, ThemeProvider, defaultThemes, computeTheme } from "./ThemeProvider";
|
|
2
|
+
export { LiquidToggle, ThemeColorToggle, ThemeToggles } from "./ThemeToggles";
|
|
13
3
|
export { ThemeScript } from "./themeScript";
|
|
14
4
|
|
|
15
|
-
export type {
|
|
16
|
-
Attribute,
|
|
17
|
-
ThemeProviderProps,
|
|
5
|
+
export type {
|
|
6
|
+
Attribute,
|
|
7
|
+
ThemeProviderProps,
|
|
18
8
|
UseThemeProps,
|
|
19
9
|
BaseTheme,
|
|
20
|
-
ComputedTheme
|
|
10
|
+
ComputedTheme,
|
|
21
11
|
} from "./types";
|