@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.
Files changed (436) hide show
  1. package/dist/SyncScroll/SyncScroll.cjs +4 -4
  2. package/dist/SyncScroll/SyncScroll.mjs +4 -4
  3. package/dist/SyncScroll/index.cjs +4 -4
  4. package/dist/SyncScroll/index.mjs +4 -4
  5. package/dist/auth/context/auth-context.cjs +10 -0
  6. package/dist/auth/context/auth-context.d.cts +15 -0
  7. package/dist/auth/context/auth-context.d.ts +15 -0
  8. package/dist/auth/context/auth-context.mjs +1 -0
  9. package/dist/auth/handler/create-client.cjs +12 -0
  10. package/dist/auth/handler/create-client.d.cts +7 -0
  11. package/dist/auth/handler/create-client.d.ts +7 -0
  12. package/dist/auth/handler/create-client.mjs +3 -0
  13. package/dist/auth/handler/sign-in-handler.cjs +11 -0
  14. package/dist/auth/handler/sign-in-handler.d.cts +7 -0
  15. package/dist/auth/handler/sign-in-handler.d.ts +7 -0
  16. package/dist/auth/handler/sign-in-handler.mjs +2 -0
  17. package/dist/auth/hooks/use-vuer-auth.cjs +11 -0
  18. package/dist/auth/hooks/use-vuer-auth.d.cts +9 -0
  19. package/dist/auth/hooks/use-vuer-auth.d.ts +9 -0
  20. package/dist/auth/hooks/use-vuer-auth.mjs +2 -0
  21. package/dist/auth/hooks/use-vuer-method.cjs +14 -0
  22. package/dist/auth/hooks/use-vuer-method.d.cts +11 -0
  23. package/dist/auth/hooks/use-vuer-method.d.ts +11 -0
  24. package/dist/auth/hooks/use-vuer-method.mjs +5 -0
  25. package/dist/auth/index.cjs +33 -0
  26. package/dist/auth/index.d.cts +10 -0
  27. package/dist/auth/index.d.ts +10 -0
  28. package/dist/auth/index.mjs +8 -0
  29. package/dist/auth/localstorage-key.cjs +14 -0
  30. package/dist/auth/localstorage-key.d.cts +4 -0
  31. package/dist/auth/localstorage-key.d.ts +4 -0
  32. package/dist/auth/localstorage-key.mjs +1 -0
  33. package/dist/auth/types.cjs +14 -0
  34. package/dist/auth/types.d.cts +3481 -0
  35. package/dist/auth/types.d.ts +3481 -0
  36. package/dist/auth/types.mjs +1 -0
  37. package/dist/auth/vuer-auth-provider.cjs +14 -0
  38. package/dist/auth/vuer-auth-provider.d.cts +9 -0
  39. package/dist/auth/vuer-auth-provider.d.ts +9 -0
  40. package/dist/auth/vuer-auth-provider.mjs +5 -0
  41. package/dist/{chunk-OJUK6WJ5.mjs → chunk-24IUD6Q3.mjs} +1 -1
  42. package/dist/{chunk-BMJX3SEO.cjs → chunk-2EG65KGO.cjs} +2 -2
  43. package/dist/{chunk-EC4HJUX6.cjs → chunk-2PJO5UJL.cjs} +11 -11
  44. package/dist/{chunk-LPA6WYFD.cjs → chunk-2WD4ZL27.cjs} +4 -4
  45. package/dist/chunk-3IVDCAFM.mjs +10 -0
  46. package/dist/{chunk-ZZLF2YWP.mjs → chunk-3TUONMQ6.mjs} +1 -1
  47. package/dist/{chunk-TPPM276W.mjs → chunk-3VVQWVDE.mjs} +1 -1
  48. package/dist/chunk-4B44SRRP.cjs +12 -0
  49. package/dist/{chunk-NT5ZTF56.mjs → chunk-4JGGLCXT.mjs} +1 -1
  50. package/dist/{chunk-YMSWUGHW.cjs → chunk-4PKPCOAF.cjs} +2 -1
  51. package/dist/{chunk-KMCZXNKA.mjs → chunk-4THQPG6Y.mjs} +1 -1
  52. package/dist/{chunk-62VCQ2SU.cjs → chunk-4WRTIOGZ.cjs} +3 -2
  53. package/dist/{chunk-55RSKLJ5.cjs → chunk-5JPYU5A6.cjs} +11 -11
  54. package/dist/{chunk-PQEAXTVY.mjs → chunk-5KJP6A6C.mjs} +12 -26
  55. package/dist/{chunk-ZNPI2TYG.mjs → chunk-5MBEK77I.mjs} +5 -13
  56. package/dist/{chunk-G7FYBSFO.cjs → chunk-5SP25SO3.cjs} +15 -14
  57. package/dist/chunk-5XBMFADS.cjs +42 -0
  58. package/dist/{chunk-HKJCPZZG.cjs → chunk-64L2SNKA.cjs} +2 -2
  59. package/dist/chunk-6BD5MQ5R.cjs +8 -0
  60. package/dist/{chunk-ZPH5LMEM.mjs → chunk-6NSQLHKC.mjs} +1 -1
  61. package/dist/{chunk-OYNLQTHW.cjs → chunk-6QU4J3HY.cjs} +23 -25
  62. package/dist/{chunk-2FGRTFK4.mjs → chunk-6XOTWZFC.mjs} +2 -2
  63. package/dist/{chunk-AAWWWYRN.cjs → chunk-7GJVMFKJ.cjs} +4 -4
  64. package/dist/{chunk-C4E2MFZB.mjs → chunk-7HOEFGEO.mjs} +1 -1
  65. package/dist/chunk-7KQXX7QB.mjs +54 -0
  66. package/dist/{chunk-W3RJNSWQ.mjs → chunk-7NOBQH7O.mjs} +2 -2
  67. package/dist/{chunk-OTR4SFDC.cjs → chunk-A2UZY7Y2.cjs} +2 -2
  68. package/dist/chunk-ACYOVCGH.mjs +30 -0
  69. package/dist/chunk-ACYZOKPT.mjs +64 -0
  70. package/dist/chunk-AJQEHMYV.cjs +47 -0
  71. package/dist/{chunk-7YMH34JL.cjs → chunk-AOV3ADTV.cjs} +2 -2
  72. package/dist/{chunk-AIYM5PFP.cjs → chunk-BXBSZOBU.cjs} +8 -4
  73. package/dist/{chunk-5WDPNBQW.cjs → chunk-C6L7YIGW.cjs} +2 -1
  74. package/dist/{chunk-CZ2YNM7Y.mjs → chunk-CGUQWS2I.mjs} +1 -1
  75. package/dist/chunk-CHYXRETV.cjs +23 -0
  76. package/dist/{chunk-INHZ5D7P.mjs → chunk-CZ4GQOXG.mjs} +1 -6
  77. package/dist/{chunk-5EXV5EWF.mjs → chunk-D5H4XX6Q.mjs} +1 -1
  78. package/dist/{chunk-MUQYO2G3.cjs → chunk-D5WOPTKY.cjs} +2 -2
  79. package/dist/{chunk-CWAVHHJA.cjs → chunk-EAXBNWXE.cjs} +2 -2
  80. package/dist/{chunk-EAZQH4IX.mjs → chunk-EOSYXHEH.mjs} +1 -1
  81. package/dist/{chunk-MIGXY5PR.mjs → chunk-EXQQRW7T.mjs} +1 -1
  82. package/dist/chunk-FBAOEFDU.mjs +24 -0
  83. package/dist/{chunk-7LLDKYND.mjs → chunk-FK6ZROZE.mjs} +31 -29
  84. package/dist/{chunk-EBBHJLUX.mjs → chunk-G4Q5ALRW.mjs} +2 -1
  85. package/dist/chunk-G6U2K2GR.cjs +32 -0
  86. package/dist/{chunk-DREOOKO2.cjs → chunk-GOGJVFRN.cjs} +4 -4
  87. package/dist/{chunk-W3J4QTKS.cjs → chunk-H6MFBIRB.cjs} +7 -7
  88. package/dist/{chunk-TZC4ST5T.cjs → chunk-HA6M4XKT.cjs} +24 -337
  89. package/dist/{chunk-NSQOQD43.cjs → chunk-HBIZQDDS.cjs} +1 -6
  90. package/dist/{chunk-7RIGSS5X.cjs → chunk-HN3AMWUM.cjs} +2 -2
  91. package/dist/chunk-HPK4YEVK.cjs +27 -0
  92. package/dist/{chunk-M5UZ3SBY.cjs → chunk-I2BVWNRP.cjs} +218 -51
  93. package/dist/chunk-IXNXSECD.mjs +45 -0
  94. package/dist/chunk-IY36FZ5R.mjs +40 -0
  95. package/dist/{chunk-FFCQKAQA.cjs → chunk-JFIAWTRH.cjs} +2 -2
  96. package/dist/{chunk-AEVZSYGJ.cjs → chunk-JFJRNNPQ.cjs} +2 -2
  97. package/dist/chunk-JLWAIMUZ.cjs +26 -0
  98. package/dist/{chunk-7R2ZBAE6.mjs → chunk-JUSFLIU5.mjs} +1 -1
  99. package/dist/{chunk-K22BEXUA.mjs → chunk-JVV7W3TP.mjs} +1 -1
  100. package/dist/{chunk-VO3C6RE2.mjs → chunk-JWUIZX35.mjs} +2 -2
  101. package/dist/{chunk-6TSA7KXX.cjs → chunk-JWVH6R35.cjs} +1 -1
  102. package/dist/chunk-JYIVDUDL.cjs +66 -0
  103. package/dist/{chunk-NTGUD2JN.mjs → chunk-KBC7VNER.mjs} +1 -1
  104. package/dist/{chunk-CX6OFX5Z.mjs → chunk-KJH46JR3.mjs} +2 -1
  105. package/dist/{chunk-JM6NBUDT.cjs → chunk-KR7VBV3B.cjs} +31 -30
  106. package/dist/chunk-LBGZKACW.cjs +30 -0
  107. package/dist/{chunk-2CZEFXEW.cjs → chunk-LFSCJLL2.cjs} +5 -13
  108. package/dist/{chunk-3UEVUYFQ.cjs → chunk-LQGXG373.cjs} +4 -6
  109. package/dist/{chunk-4XUJBMDE.mjs → chunk-LRSDE62T.mjs} +4 -6
  110. package/dist/chunk-LSKJOUAE.cjs +56 -0
  111. package/dist/chunk-M6JLGVJ7.mjs +28 -0
  112. package/dist/{chunk-D3IW2NW6.mjs → chunk-MG5TTPA7.mjs} +3 -2
  113. package/dist/{chunk-NO35POZW.mjs → chunk-MHJM7YMG.mjs} +4 -33
  114. package/dist/{chunk-ZAP4EHBO.cjs → chunk-MIT3YWUC.cjs} +2 -2
  115. package/dist/{chunk-3THWK3HB.mjs → chunk-NHG2ROYB.mjs} +2 -1
  116. package/dist/{chunk-GDUVAZDW.cjs → chunk-NSUFTZNC.cjs} +2 -2
  117. package/dist/{chunk-BIUDC66P.mjs → chunk-OLVOIUCE.mjs} +12 -14
  118. package/dist/{chunk-VTEWRMGQ.mjs → chunk-OPYMZDEZ.mjs} +3 -3
  119. package/dist/{chunk-V2IP7UUV.mjs → chunk-PIC2EJWA.mjs} +2 -2
  120. package/dist/chunk-PKSIXQJX.mjs +20 -0
  121. package/dist/{chunk-YUHHUSIO.cjs → chunk-PTCDBU72.cjs} +2 -2
  122. package/dist/{chunk-SQQXY4AY.mjs → chunk-PTGMHZFS.mjs} +1 -1
  123. package/dist/chunk-PZMA33PL.mjs +25 -0
  124. package/dist/{chunk-GWIACOMY.cjs → chunk-Q2HC5ZL4.cjs} +3 -38
  125. package/dist/{chunk-IJGCH57E.cjs → chunk-QHAGQCVF.cjs} +1 -1
  126. package/dist/{chunk-CUOGY4FW.mjs → chunk-QZUTRJSP.mjs} +2 -2
  127. package/dist/{chunk-LG3PNH2P.mjs → chunk-RIJUPORK.mjs} +1 -1
  128. package/dist/{chunk-SUSABE24.mjs → chunk-S6PSU47F.mjs} +1 -1
  129. package/dist/{chunk-A2PCEL5S.mjs → chunk-S7SGB2FD.mjs} +3 -3
  130. package/dist/{chunk-QBFOBDBC.cjs → chunk-SHHQDSSI.cjs} +2 -2
  131. package/dist/chunk-SMIACO56.mjs +330 -0
  132. package/dist/{chunk-UCRLH44Q.cjs → chunk-SPRBKXGP.cjs} +2 -2
  133. package/dist/{chunk-73VF2W3D.mjs → chunk-SUEFWFPX.mjs} +2 -2
  134. package/dist/{chunk-PIXIN3IG.mjs → chunk-SYX6TMCQ.mjs} +1 -1
  135. package/dist/chunk-TC3W4VRO.mjs +6 -0
  136. package/dist/{chunk-L26ULDYM.mjs → chunk-THMYDDZF.mjs} +1 -1
  137. package/dist/{chunk-OWEYAVGT.mjs → chunk-TYXRHZZG.mjs} +8 -5
  138. package/dist/{chunk-LP3AGGRK.cjs → chunk-UTS56UA5.cjs} +1 -1
  139. package/dist/{chunk-OMZHB2FB.cjs → chunk-V3VUFIG3.cjs} +4 -2
  140. package/dist/{chunk-6CM4GYJU.mjs → chunk-VEWWUO2N.mjs} +1 -1
  141. package/dist/{chunk-76V4RD4V.cjs → chunk-VLOFKTSL.cjs} +3 -3
  142. package/dist/{chunk-RU423LFT.cjs → chunk-VQP3QBC6.cjs} +1 -1
  143. package/dist/{chunk-6J7ZVRSY.mjs → chunk-VUMOJPEC.mjs} +1 -1
  144. package/dist/chunk-WGVKFNG6.mjs +5 -0
  145. package/dist/{chunk-JD4J3RDN.cjs → chunk-WHV4VATL.cjs} +12 -26
  146. package/dist/{chunk-QUFZWF4E.cjs → chunk-WRKB3W2J.cjs} +6 -6
  147. package/dist/{chunk-JA6XS5KY.cjs → chunk-WZGZX3S2.cjs} +3 -3
  148. package/dist/{chunk-XGGAJUY3.cjs → chunk-XURKXOZK.cjs} +2 -2
  149. package/dist/{chunk-U7XH7M5B.mjs → chunk-Y2H4A5AC.mjs} +8 -9
  150. package/dist/{chunk-MDR7WUX6.cjs → chunk-Y5SVZCPQ.cjs} +13 -14
  151. package/dist/{chunk-AJYO5W6O.mjs → chunk-YHY6SXVJ.mjs} +11 -10
  152. package/dist/{chunk-PO2LYHDO.mjs → chunk-YKHK6C4Q.mjs} +4 -2
  153. package/dist/{chunk-MEE3IHTT.mjs → chunk-YLDDI6SZ.mjs} +186 -23
  154. package/dist/{chunk-LPVBUX2J.cjs → chunk-YQ5KKJQ3.cjs} +2 -1
  155. package/dist/{chunk-5TXABUNC.mjs → chunk-ZNM6PNI6.mjs} +1 -1
  156. package/dist/{chunk-EQIEKFCA.cjs → chunk-ZRRCYQ53.cjs} +3 -3
  157. package/dist/{chunk-MCYFLR4F.cjs → chunk-ZS7ESTKH.cjs} +1 -1
  158. package/dist/chunk-ZULCZ5L6.cjs +8 -0
  159. package/dist/dial/DialPanel.cjs +71 -70
  160. package/dist/dial/DialPanel.mjs +70 -69
  161. package/dist/dial/DialProvider.d.cts +1 -0
  162. package/dist/dial/DialProvider.d.ts +1 -0
  163. package/dist/dial/index.cjs +87 -86
  164. package/dist/dial/index.mjs +70 -69
  165. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +78 -73
  166. package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +2 -1
  167. package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +2 -1
  168. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +70 -69
  169. package/dist/dial/wrapped-inputs/DialInputs.cjs +90 -81
  170. package/dist/dial/wrapped-inputs/DialInputs.d.cts +3 -1
  171. package/dist/dial/wrapped-inputs/DialInputs.d.ts +3 -1
  172. package/dist/dial/wrapped-inputs/DialInputs.mjs +70 -69
  173. package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +124 -0
  174. package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +16 -0
  175. package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +16 -0
  176. package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +115 -0
  177. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +71 -70
  178. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +70 -69
  179. package/dist/dial/wrapped-inputs/index.cjs +103 -86
  180. package/dist/dial/wrapped-inputs/index.d.cts +3 -2
  181. package/dist/dial/wrapped-inputs/index.d.ts +3 -2
  182. package/dist/dial/wrapped-inputs/index.mjs +70 -69
  183. package/dist/highlight-cursor/enhanced-components.cjs +13 -13
  184. package/dist/highlight-cursor/enhanced-components.mjs +8 -8
  185. package/dist/highlight-cursor/index.cjs +13 -13
  186. package/dist/highlight-cursor/index.mjs +8 -8
  187. package/dist/hooks/index.cjs +21 -21
  188. package/dist/hooks/index.mjs +4 -4
  189. package/dist/hooks/useQueryParams.cjs +3 -3
  190. package/dist/hooks/useQueryParams.mjs +2 -2
  191. package/dist/index.cjs +437 -456
  192. package/dist/index.css +28 -21
  193. package/dist/index.d.cts +4 -3
  194. package/dist/index.d.ts +4 -3
  195. package/dist/index.mjs +70 -69
  196. package/dist/styles/theme.css +15 -8
  197. package/dist/ui/DialBadge.cjs +12 -8
  198. package/dist/ui/DialBadge.d.cts +11 -6
  199. package/dist/ui/DialBadge.d.ts +11 -6
  200. package/dist/ui/DialBadge.mjs +5 -5
  201. package/dist/ui/UIKitBadge.cjs +9 -9
  202. package/dist/ui/UIKitBadge.mjs +5 -5
  203. package/dist/ui/avatar.cjs +9 -33
  204. package/dist/ui/avatar.d.cts +4 -61
  205. package/dist/ui/avatar.d.ts +4 -61
  206. package/dist/ui/avatar.mjs +5 -5
  207. package/dist/ui/badge.cjs +7 -7
  208. package/dist/ui/badge.mjs +5 -5
  209. package/dist/ui/button.cjs +7 -7
  210. package/dist/ui/button.mjs +5 -5
  211. package/dist/ui/card.cjs +12 -12
  212. package/dist/ui/card.mjs +5 -5
  213. package/dist/ui/checkbox.cjs +4 -4
  214. package/dist/ui/checkbox.mjs +4 -4
  215. package/dist/ui/collapsible.cjs +4 -4
  216. package/dist/ui/collapsible.mjs +4 -4
  217. package/dist/ui/drawer.cjs +15 -15
  218. package/dist/ui/drawer.mjs +5 -5
  219. package/dist/ui/dropdown.cjs +20 -20
  220. package/dist/ui/dropdown.d.cts +18 -27
  221. package/dist/ui/dropdown.d.ts +18 -27
  222. package/dist/ui/dropdown.mjs +5 -5
  223. package/dist/ui/index.cjs +396 -415
  224. package/dist/ui/index.d.cts +4 -3
  225. package/dist/ui/index.d.ts +4 -3
  226. package/dist/ui/index.mjs +68 -67
  227. package/dist/ui/inputs/color-input.cjs +7 -7
  228. package/dist/ui/inputs/color-input.mjs +6 -6
  229. package/dist/ui/inputs/index.cjs +62 -57
  230. package/dist/ui/inputs/index.d.cts +1 -0
  231. package/dist/ui/inputs/index.d.ts +1 -0
  232. package/dist/ui/inputs/index.mjs +25 -24
  233. package/dist/ui/inputs/input-numbers.cjs +7 -7
  234. package/dist/ui/inputs/input-numbers.mjs +6 -6
  235. package/dist/ui/inputs/input.cjs +8 -8
  236. package/dist/ui/inputs/input.mjs +5 -5
  237. package/dist/ui/inputs/number-inputs/CmInput.cjs +8 -8
  238. package/dist/ui/inputs/number-inputs/CmInput.mjs +7 -7
  239. package/dist/ui/inputs/number-inputs/DegInput.cjs +8 -8
  240. package/dist/ui/inputs/number-inputs/DegInput.mjs +7 -7
  241. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +10 -10
  242. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +9 -9
  243. package/dist/ui/inputs/number-inputs/EulerInput.cjs +9 -9
  244. package/dist/ui/inputs/number-inputs/EulerInput.mjs +8 -8
  245. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +9 -10
  246. package/dist/ui/inputs/number-inputs/EulerRadInput.d.cts +6 -3
  247. package/dist/ui/inputs/number-inputs/EulerRadInput.d.ts +6 -3
  248. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +8 -9
  249. package/dist/ui/inputs/number-inputs/InchInput.cjs +8 -8
  250. package/dist/ui/inputs/number-inputs/InchInput.mjs +7 -7
  251. package/dist/ui/inputs/number-inputs/IntInput.cjs +8 -8
  252. package/dist/ui/inputs/number-inputs/IntInput.mjs +7 -7
  253. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +9 -9
  254. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +8 -8
  255. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +9 -9
  256. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +8 -8
  257. package/dist/ui/inputs/number-inputs/RadInput.cjs +8 -8
  258. package/dist/ui/inputs/number-inputs/RadInput.d.cts +1 -0
  259. package/dist/ui/inputs/number-inputs/RadInput.d.ts +1 -0
  260. package/dist/ui/inputs/number-inputs/RadInput.mjs +7 -7
  261. package/dist/ui/inputs/number-inputs/TimeInput.cjs +8 -8
  262. package/dist/ui/inputs/number-inputs/TimeInput.mjs +7 -7
  263. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +9 -9
  264. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +8 -8
  265. package/dist/ui/inputs/number-inputs/VectorInput.cjs +8 -8
  266. package/dist/ui/inputs/number-inputs/VectorInput.mjs +7 -7
  267. package/dist/ui/inputs/number-inputs/index.cjs +42 -42
  268. package/dist/ui/inputs/number-inputs/index.mjs +19 -19
  269. package/dist/ui/inputs/presets-input.cjs +9 -9
  270. package/dist/ui/inputs/presets-input.mjs +8 -8
  271. package/dist/ui/inputs/presets-rad-input.cjs +24 -0
  272. package/dist/ui/inputs/presets-rad-input.d.cts +17 -0
  273. package/dist/ui/inputs/presets-rad-input.d.ts +17 -0
  274. package/dist/ui/inputs/presets-rad-input.mjs +15 -0
  275. package/dist/ui/inputs/text-input.cjs +7 -7
  276. package/dist/ui/inputs/text-input.mjs +6 -6
  277. package/dist/ui/label.cjs +4 -4
  278. package/dist/ui/label.mjs +4 -4
  279. package/dist/ui/layout.cjs +4 -4
  280. package/dist/ui/layout.mjs +4 -4
  281. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +6 -6
  282. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +5 -5
  283. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +4 -4
  284. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +4 -4
  285. package/dist/ui/layouts/dock-layout/index.cjs +6 -6
  286. package/dist/ui/layouts/dock-layout/index.mjs +5 -5
  287. package/dist/ui/layouts/index.cjs +10 -10
  288. package/dist/ui/layouts/index.mjs +8 -8
  289. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +11 -11
  290. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +5 -5
  291. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +7 -7
  292. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +6 -6
  293. package/dist/ui/layouts/liquid-layout/index.cjs +7 -7
  294. package/dist/ui/layouts/liquid-layout/index.mjs +6 -6
  295. package/dist/ui/modal.cjs +15 -15
  296. package/dist/ui/modal.mjs +5 -5
  297. package/dist/ui/navigation.cjs +7 -7
  298. package/dist/ui/navigation.mjs +6 -6
  299. package/dist/ui/pagination.cjs +13 -13
  300. package/dist/ui/pagination.mjs +6 -6
  301. package/dist/ui/panel.cjs +12 -12
  302. package/dist/ui/panel.mjs +5 -5
  303. package/dist/ui/popover.cjs +9 -9
  304. package/dist/ui/popover.mjs +5 -5
  305. package/dist/ui/radio-group.cjs +4 -4
  306. package/dist/ui/radio-group.mjs +4 -4
  307. package/dist/ui/resizable.cjs +4 -4
  308. package/dist/ui/resizable.mjs +4 -4
  309. package/dist/ui/select.cjs +16 -16
  310. package/dist/ui/select.mjs +5 -5
  311. package/dist/ui/separator.cjs +4 -4
  312. package/dist/ui/separator.mjs +4 -4
  313. package/dist/ui/sheet.cjs +13 -13
  314. package/dist/ui/sheet.mjs +5 -5
  315. package/dist/ui/sidebar.cjs +34 -34
  316. package/dist/ui/sidebar.mjs +10 -10
  317. package/dist/ui/simple-tree-view.cjs +4 -4
  318. package/dist/ui/simple-tree-view.mjs +4 -4
  319. package/dist/ui/skeleton.cjs +4 -4
  320. package/dist/ui/skeleton.mjs +4 -4
  321. package/dist/ui/slider.cjs +4 -4
  322. package/dist/ui/slider.mjs +4 -4
  323. package/dist/ui/switch.cjs +4 -4
  324. package/dist/ui/switch.mjs +4 -4
  325. package/dist/ui/table.cjs +4 -4
  326. package/dist/ui/table.mjs +4 -4
  327. package/dist/ui/tabs.cjs +4 -4
  328. package/dist/ui/tabs.mjs +4 -4
  329. package/dist/ui/textarea.cjs +4 -4
  330. package/dist/ui/textarea.mjs +4 -4
  331. package/dist/ui/theme/ThemeProvider.cjs +16 -20
  332. package/dist/ui/theme/ThemeProvider.d.cts +3 -10
  333. package/dist/ui/theme/ThemeProvider.d.ts +3 -10
  334. package/dist/ui/theme/ThemeProvider.mjs +2 -2
  335. package/dist/ui/theme/ThemeToggles.cjs +12 -12
  336. package/dist/ui/theme/ThemeToggles.mjs +9 -9
  337. package/dist/ui/theme/index.cjs +17 -21
  338. package/dist/ui/theme/index.d.cts +1 -1
  339. package/dist/ui/theme/index.d.ts +1 -1
  340. package/dist/ui/theme/index.mjs +9 -9
  341. package/dist/ui/theme/themeScript.cjs +2 -2
  342. package/dist/ui/theme/themeScript.d.cts +1 -2
  343. package/dist/ui/theme/themeScript.d.ts +1 -2
  344. package/dist/ui/theme/themeScript.mjs +1 -1
  345. package/dist/ui/toast.cjs +3 -3
  346. package/dist/ui/toast.mjs +1 -1
  347. package/dist/ui/toggle-buttons.cjs +4 -4
  348. package/dist/ui/toggle-buttons.mjs +4 -4
  349. package/dist/ui/toggle-group.cjs +4 -4
  350. package/dist/ui/toggle-group.mjs +4 -4
  351. package/dist/ui/toggle.cjs +4 -4
  352. package/dist/ui/toggle.mjs +4 -4
  353. package/dist/ui/toolbar.cjs +8 -8
  354. package/dist/ui/toolbar.mjs +5 -5
  355. package/dist/ui/tooltip.cjs +9 -9
  356. package/dist/ui/tooltip.mjs +5 -5
  357. package/dist/ui/tree-view/TreeSearchBar.cjs +8 -8
  358. package/dist/ui/tree-view/TreeSearchBar.mjs +7 -7
  359. package/dist/ui/tree-view/TreeView.cjs +4 -4
  360. package/dist/ui/tree-view/TreeView.mjs +4 -4
  361. package/dist/ui/tree-view/index.cjs +9 -9
  362. package/dist/ui/tree-view/index.mjs +8 -8
  363. package/dist/ui/tree-view-legacy.cjs +11 -11
  364. package/dist/ui/tree-view-legacy.mjs +7 -7
  365. package/dist/ui/waterfall/CursorOverlay.cjs +4 -4
  366. package/dist/ui/waterfall/CursorOverlay.mjs +4 -4
  367. package/dist/ui/waterfall/NavigationControls.cjs +2 -2
  368. package/dist/ui/waterfall/NavigationControls.mjs +1 -1
  369. package/dist/ui/waterfall/Tick.cjs +2 -2
  370. package/dist/ui/waterfall/Tick.mjs +1 -1
  371. package/dist/ui/waterfall/TimelineEvent.cjs +4 -4
  372. package/dist/ui/waterfall/TimelineEvent.mjs +4 -4
  373. package/dist/ui/waterfall/TimelineProcessBar.cjs +4 -4
  374. package/dist/ui/waterfall/TimelineProcessBar.mjs +4 -4
  375. package/dist/ui/waterfall/Wedges.cjs +4 -4
  376. package/dist/ui/waterfall/Wedges.mjs +4 -4
  377. package/dist/ui/waterfall/index.cjs +16 -16
  378. package/dist/ui/waterfall/index.mjs +15 -15
  379. package/package.json +7 -1
  380. package/src/auth/context/auth-context.ts +16 -0
  381. package/src/auth/handler/create-client.ts +23 -0
  382. package/src/auth/handler/sign-in-handler.ts +66 -0
  383. package/src/auth/hooks/use-vuer-auth.ts +10 -0
  384. package/src/auth/hooks/use-vuer-method.ts +35 -0
  385. package/src/auth/index.ts +6 -0
  386. package/src/auth/localstorage-key.ts +3 -0
  387. package/src/auth/types.ts +56 -0
  388. package/src/auth/vuer-auth-provider.tsx +35 -0
  389. package/src/dial/DialPanel.tsx +47 -4
  390. package/src/dial/DialProvider.tsx +1 -0
  391. package/src/dial/wrapped-inputs/ControlledInputs.tsx +17 -0
  392. package/src/dial/wrapped-inputs/DialInputs.tsx +77 -0
  393. package/src/dial/wrapped-inputs/DialPresetsInput.tsx +79 -0
  394. package/src/dial/wrapped-inputs/index.ts +6 -0
  395. package/src/styles/theme.css +75 -28
  396. package/src/ui/DialBadge.tsx +18 -7
  397. package/src/ui/avatar.tsx +4 -85
  398. package/src/ui/badge.tsx +1 -1
  399. package/src/ui/button.tsx +0 -5
  400. package/src/ui/card.tsx +3 -2
  401. package/src/ui/drawer.tsx +1 -1
  402. package/src/ui/dropdown.tsx +25 -368
  403. package/src/ui/inputs/index.tsx +1 -0
  404. package/src/ui/inputs/input.tsx +3 -5
  405. package/src/ui/inputs/number-inputs/EulerRadInput.tsx +46 -5
  406. package/src/ui/inputs/number-inputs/RadInput.tsx +31 -5
  407. package/src/ui/inputs/presets-rad-input.tsx +77 -0
  408. package/src/ui/layouts/dock-layout/DockLayoutView.tsx +6 -82
  409. package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +2 -2
  410. package/src/ui/modal.tsx +2 -1
  411. package/src/ui/panel.tsx +2 -1
  412. package/src/ui/popover.tsx +4 -2
  413. package/src/ui/select.tsx +2 -1
  414. package/src/ui/sheet.tsx +2 -2
  415. package/src/ui/sidebar.tsx +8 -9
  416. package/src/ui/theme/ThemeProvider.tsx +69 -52
  417. package/src/ui/theme/ThemeToggles.tsx +12 -12
  418. package/src/ui/theme/index.ts +6 -16
  419. package/src/ui/theme/themeScript.tsx +24 -50
  420. package/src/ui/toast.tsx +1 -1
  421. package/src/ui/toolbar.tsx +3 -3
  422. package/src/ui/tooltip.tsx +5 -13
  423. package/src/ui/waterfall/NavigationControls.tsx +1 -1
  424. package/src/ui/waterfall/Tick.tsx +1 -1
  425. package/src/ui/waterfall/index.tsx +4 -3
  426. package/dist/chunk-5T7MTIHW.mjs +0 -75
  427. package/dist/chunk-DVKONMS7.cjs +0 -20
  428. package/dist/chunk-GPV4XELL.mjs +0 -18
  429. package/dist/chunk-H2GERFBG.cjs +0 -13
  430. package/dist/chunk-H4IDSUG5.mjs +0 -643
  431. package/dist/chunk-KAA4NEHL.cjs +0 -77
  432. package/dist/chunk-TY47DFGO.mjs +0 -11
  433. package/dist/{chunk-ADYUCJMQ.mjs → chunk-2KQRWXNO.mjs} +0 -0
  434. package/dist/{chunk-SQRAUVEP.cjs → chunk-63OJOP6W.cjs} +0 -0
  435. package/dist/{chunk-LYZJNEOR.cjs → chunk-Q4XH2Z5M.cjs} +1 -1
  436. 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, useEffect, useRef, useState } from "react";
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 ref={containerRef} className={className}>
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
- <div ref={leftRef}>
98
- <DockLayoutLeft className={leftClassName}>{left}</DockLayoutLeft>
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 && isBottomFullWidth && (
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
@@ -13,7 +13,8 @@ const panelVariants = cva(
13
13
  "rounded-uk-lg",
14
14
  "bg-bg-primary",
15
15
  "shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
16
- "liquid:liquid-bg",
16
+ "liquid-dark:liquid-dark-bg",
17
+ "liquid-light:liquid-light-bg",
17
18
  ],
18
19
  {
19
20
  variants: {
@@ -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",
@@ -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 -ml-lg", className)}
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-lg flex w-full min-w-0 flex-col", className)}
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 focus-visible:ring-2 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",
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 { Attribute, ThemeProviderProps, UseThemeProps, BaseTheme, ComputedTheme } from "./types";
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 = (baseTheme: BaseTheme, isLiquid: boolean, systemIsDark: boolean): ComputedTheme => {
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 const useTheme = () => {
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 context;
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 (["light", "dark", "system"].includes(stored) ? stored : initialState.baseTheme) as BaseTheme;
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
- const parsed = parseOldTheme(forcedTheme);
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((newBaseTheme: BaseTheme) => {
194
- setBaseThemeState(newBaseTheme);
195
- saveToLS(`${storageKey}-base`, newBaseTheme);
196
- }, [storageKey]);
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
- (e: MediaQueryListEvent | MediaQueryList) => {
208
- const isDark = e.matches;
209
- setSystemIsDark(isDark);
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 "light" | "dark" | undefined,
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, setBaseTheme, isLiquid, toggleLiquid, computedTheme, resolvedTheme,
258
- systemIsDark, enableSystem, forcedTheme, storageKey
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
- defaultTheme: initialState.baseTheme === "system"
272
- ? "system"
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 { Droplet, Moon, Sun, SunMoon } from "lucide-react";
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, createClientOnlyComponent, useDocument } from "../../hooks";
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
- <Droplet size={20} />
27
+ {isLiquid ? <PanelsTopLeft size={20} /> : <LayoutTemplate size={20} />}
28
28
  </Button>
29
29
  </TooltipTrigger>
30
- <TooltipContent>Toggle liquid theme</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.includes("dark");
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 gap-1", className)}>
79
+ <div className={cn("flex", className)}>
80
80
  <LiquidToggle {...liquidToggleProps} />
81
81
  <ThemeColorToggle {...colorToggleProps} />
82
82
  </div>
83
83
  );
84
- };
84
+ };
@@ -1,21 +1,11 @@
1
- export {
2
- useTheme,
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";