@vuer-ai/vuer-uikit 0.0.100 → 0.0.102

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 (389) 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-MDR7WUX6.cjs → chunk-2JV7MJIF.cjs} +10 -11
  44. package/dist/chunk-2WD4ZL27.cjs +26 -0
  45. package/dist/chunk-3IVDCAFM.mjs +10 -0
  46. package/dist/{chunk-U7XH7M5B.mjs → chunk-3NSSQHRK.mjs} +7 -8
  47. package/dist/{chunk-OWEYAVGT.mjs → chunk-3OMGBQ7I.mjs} +8 -5
  48. package/dist/chunk-3PDV3ZKD.cjs +26 -0
  49. package/dist/{chunk-ZZLF2YWP.mjs → chunk-3TUONMQ6.mjs} +1 -1
  50. package/dist/chunk-3VVQWVDE.mjs +24 -0
  51. package/dist/{chunk-JA6XS5KY.cjs → chunk-3XTBLV6T.cjs} +3 -3
  52. package/dist/chunk-4B44SRRP.cjs +12 -0
  53. package/dist/{chunk-NT5ZTF56.mjs → chunk-4JGGLCXT.mjs} +1 -1
  54. package/dist/{chunk-KMCZXNKA.mjs → chunk-4THQPG6Y.mjs} +1 -1
  55. package/dist/{chunk-PQEAXTVY.mjs → chunk-5KJP6A6C.mjs} +12 -26
  56. package/dist/chunk-5XBMFADS.cjs +42 -0
  57. package/dist/{chunk-HKJCPZZG.cjs → chunk-64L2SNKA.cjs} +2 -2
  58. package/dist/chunk-6BD5MQ5R.cjs +8 -0
  59. package/dist/chunk-6DYF6WO6.mjs +24 -0
  60. package/dist/{chunk-2FGRTFK4.mjs → chunk-6XOTWZFC.mjs} +2 -2
  61. package/dist/{chunk-AAWWWYRN.cjs → chunk-7GJVMFKJ.cjs} +4 -4
  62. package/dist/{chunk-C4E2MFZB.mjs → chunk-7HOEFGEO.mjs} +1 -1
  63. package/dist/chunk-7KQXX7QB.mjs +54 -0
  64. package/dist/{chunk-KXKEZ3MH.mjs → chunk-7P563TWH.mjs} +6 -6
  65. package/dist/{chunk-BIUDC66P.mjs → chunk-7UO6NLB6.mjs} +9 -11
  66. package/dist/{chunk-OTR4SFDC.cjs → chunk-A2UZY7Y2.cjs} +2 -2
  67. package/dist/chunk-ACYOVCGH.mjs +30 -0
  68. package/dist/chunk-ACYZOKPT.mjs +64 -0
  69. package/dist/chunk-AJQEHMYV.cjs +47 -0
  70. package/dist/{chunk-7YMH34JL.cjs → chunk-AOV3ADTV.cjs} +2 -2
  71. package/dist/{chunk-A2PCEL5S.mjs → chunk-AYYX3TVN.mjs} +2 -2
  72. package/dist/{chunk-QHPFLC2O.mjs → chunk-BFNETXJK.mjs} +228 -22
  73. package/dist/{chunk-62VCQ2SU.cjs → chunk-BSOJYJ4D.cjs} +1 -1
  74. package/dist/{chunk-QUFZWF4E.cjs → chunk-C7WHIFJZ.cjs} +4 -4
  75. package/dist/chunk-CFOMX6SF.mjs +328 -0
  76. package/dist/{chunk-CZ2YNM7Y.mjs → chunk-CGUQWS2I.mjs} +1 -1
  77. package/dist/chunk-CHYXRETV.cjs +23 -0
  78. package/dist/{chunk-INHZ5D7P.mjs → chunk-CZ4GQOXG.mjs} +1 -6
  79. package/dist/{chunk-CUOGY4FW.mjs → chunk-D4DKSGER.mjs} +1 -1
  80. package/dist/{chunk-MUQYO2G3.cjs → chunk-D5WOPTKY.cjs} +2 -2
  81. package/dist/{chunk-D3IW2NW6.mjs → chunk-E2EMVLII.mjs} +1 -1
  82. package/dist/{chunk-CWAVHHJA.cjs → chunk-EAXBNWXE.cjs} +2 -2
  83. package/dist/{chunk-73VF2W3D.mjs → chunk-EI5ZOFWX.mjs} +1 -1
  84. package/dist/{chunk-MIGXY5PR.mjs → chunk-EXQQRW7T.mjs} +1 -1
  85. package/dist/{chunk-7LLDKYND.mjs → chunk-FK6ZROZE.mjs} +31 -29
  86. package/dist/chunk-G6U2K2GR.cjs +32 -0
  87. package/dist/{chunk-DREOOKO2.cjs → chunk-GOGJVFRN.cjs} +4 -4
  88. package/dist/{chunk-W3J4QTKS.cjs → chunk-H6MFBIRB.cjs} +7 -7
  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-EC4HJUX6.cjs → chunk-IQ5MDNCR.cjs} +4 -4
  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-K4I4YU6N.cjs → chunk-JMFTHHHE.cjs} +7 -7
  98. package/dist/{chunk-7R2ZBAE6.mjs → chunk-JUSFLIU5.mjs} +1 -1
  99. package/dist/chunk-JYIVDUDL.cjs +66 -0
  100. package/dist/{chunk-NTGUD2JN.mjs → chunk-KBC7VNER.mjs} +1 -1
  101. package/dist/{chunk-JM6NBUDT.cjs → chunk-KR7VBV3B.cjs} +31 -30
  102. package/dist/{chunk-VTEWRMGQ.mjs → chunk-KRNKB4FM.mjs} +3 -3
  103. package/dist/{chunk-3UEVUYFQ.cjs → chunk-LQGXG373.cjs} +4 -6
  104. package/dist/{chunk-4XUJBMDE.mjs → chunk-LRSDE62T.mjs} +4 -6
  105. package/dist/chunk-LSKJOUAE.cjs +56 -0
  106. package/dist/{chunk-NO35POZW.mjs → chunk-MHJM7YMG.mjs} +4 -33
  107. package/dist/{chunk-ZAP4EHBO.cjs → chunk-MIT3YWUC.cjs} +2 -2
  108. package/dist/{chunk-GDUVAZDW.cjs → chunk-NSUFTZNC.cjs} +2 -2
  109. package/dist/{chunk-V2IP7UUV.mjs → chunk-PIC2EJWA.mjs} +2 -2
  110. package/dist/chunk-PKSIXQJX.mjs +20 -0
  111. package/dist/{chunk-YUHHUSIO.cjs → chunk-PTCDBU72.cjs} +2 -2
  112. package/dist/{chunk-SQQXY4AY.mjs → chunk-PTGMHZFS.mjs} +1 -1
  113. package/dist/chunk-PZMA33PL.mjs +25 -0
  114. package/dist/{chunk-GWIACOMY.cjs → chunk-Q2HC5ZL4.cjs} +3 -38
  115. package/dist/{chunk-OYNLQTHW.cjs → chunk-RGV3EB3K.cjs} +11 -13
  116. package/dist/{chunk-LG3PNH2P.mjs → chunk-RIJUPORK.mjs} +1 -1
  117. package/dist/{chunk-XBTBTLID.cjs → chunk-RZILHP75.cjs} +2 -2
  118. package/dist/{chunk-UCRLH44Q.cjs → chunk-SPRBKXGP.cjs} +2 -2
  119. package/dist/{chunk-PIXIN3IG.mjs → chunk-SYX6TMCQ.mjs} +1 -1
  120. package/dist/chunk-TC3W4VRO.mjs +6 -0
  121. package/dist/{chunk-L26ULDYM.mjs → chunk-THMYDDZF.mjs} +1 -1
  122. package/dist/{chunk-XGXWOY3U.mjs → chunk-UA3OTLX4.mjs} +2 -2
  123. package/dist/{chunk-6CM4GYJU.mjs → chunk-VEWWUO2N.mjs} +1 -1
  124. package/dist/{chunk-76V4RD4V.cjs → chunk-VLOFKTSL.cjs} +3 -3
  125. package/dist/{chunk-6J7ZVRSY.mjs → chunk-VUMOJPEC.mjs} +1 -1
  126. package/dist/chunk-WGVKFNG6.mjs +5 -0
  127. package/dist/{chunk-JD4J3RDN.cjs → chunk-WHV4VATL.cjs} +12 -26
  128. package/dist/{chunk-55RSKLJ5.cjs → chunk-XG56MLQH.cjs} +4 -4
  129. package/dist/{chunk-TZC4ST5T.cjs → chunk-XOIIYO5J.cjs} +20 -335
  130. package/dist/{chunk-OEI7NCF6.cjs → chunk-Z6KE4XDB.cjs} +256 -45
  131. package/dist/{chunk-AIYM5PFP.cjs → chunk-ZFIEYXJO.cjs} +8 -4
  132. package/dist/{chunk-5TXABUNC.mjs → chunk-ZNM6PNI6.mjs} +1 -1
  133. package/dist/{chunk-EQIEKFCA.cjs → chunk-ZRRCYQ53.cjs} +3 -3
  134. package/dist/chunk-ZULCZ5L6.cjs +8 -0
  135. package/dist/dial/DialPanel.cjs +69 -67
  136. package/dist/dial/DialPanel.mjs +68 -66
  137. package/dist/dial/index.cjs +85 -83
  138. package/dist/dial/index.mjs +68 -66
  139. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +76 -70
  140. package/dist/dial/wrapped-inputs/ControlledInputs.d.cts +2 -1
  141. package/dist/dial/wrapped-inputs/ControlledInputs.d.ts +2 -1
  142. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +68 -66
  143. package/dist/dial/wrapped-inputs/DialInputs.cjs +91 -77
  144. package/dist/dial/wrapped-inputs/DialInputs.d.cts +6 -1
  145. package/dist/dial/wrapped-inputs/DialInputs.d.ts +6 -1
  146. package/dist/dial/wrapped-inputs/DialInputs.mjs +68 -66
  147. package/dist/dial/wrapped-inputs/DialPresetsInput.cjs +124 -0
  148. package/dist/dial/wrapped-inputs/DialPresetsInput.d.cts +16 -0
  149. package/dist/dial/wrapped-inputs/DialPresetsInput.d.ts +16 -0
  150. package/dist/dial/wrapped-inputs/DialPresetsInput.mjs +115 -0
  151. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +69 -67
  152. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +68 -66
  153. package/dist/dial/wrapped-inputs/index.cjs +104 -82
  154. package/dist/dial/wrapped-inputs/index.d.cts +3 -2
  155. package/dist/dial/wrapped-inputs/index.d.ts +3 -2
  156. package/dist/dial/wrapped-inputs/index.mjs +68 -66
  157. package/dist/highlight-cursor/enhanced-components.cjs +12 -12
  158. package/dist/highlight-cursor/enhanced-components.mjs +7 -7
  159. package/dist/highlight-cursor/index.cjs +12 -12
  160. package/dist/highlight-cursor/index.mjs +7 -7
  161. package/dist/hooks/index.cjs +21 -21
  162. package/dist/hooks/index.mjs +4 -4
  163. package/dist/hooks/useQueryParams.cjs +3 -3
  164. package/dist/hooks/useQueryParams.mjs +2 -2
  165. package/dist/index.cjs +412 -426
  166. package/dist/index.css +13 -13
  167. package/dist/index.d.cts +5 -3
  168. package/dist/index.d.ts +5 -3
  169. package/dist/index.mjs +68 -66
  170. package/dist/ui/DialBadge.cjs +12 -8
  171. package/dist/ui/DialBadge.d.cts +11 -6
  172. package/dist/ui/DialBadge.d.ts +11 -6
  173. package/dist/ui/DialBadge.mjs +5 -5
  174. package/dist/ui/UIKitBadge.cjs +9 -9
  175. package/dist/ui/UIKitBadge.mjs +5 -5
  176. package/dist/ui/avatar.cjs +9 -33
  177. package/dist/ui/avatar.d.cts +4 -61
  178. package/dist/ui/avatar.d.ts +4 -61
  179. package/dist/ui/avatar.mjs +5 -5
  180. package/dist/ui/badge.cjs +4 -4
  181. package/dist/ui/badge.mjs +4 -4
  182. package/dist/ui/button.cjs +7 -7
  183. package/dist/ui/button.mjs +5 -5
  184. package/dist/ui/card.cjs +12 -12
  185. package/dist/ui/card.mjs +5 -5
  186. package/dist/ui/checkbox.cjs +4 -4
  187. package/dist/ui/checkbox.mjs +4 -4
  188. package/dist/ui/collapsible.cjs +4 -4
  189. package/dist/ui/collapsible.mjs +4 -4
  190. package/dist/ui/drawer.cjs +4 -4
  191. package/dist/ui/drawer.mjs +4 -4
  192. package/dist/ui/dropdown.cjs +20 -20
  193. package/dist/ui/dropdown.d.cts +18 -27
  194. package/dist/ui/dropdown.d.ts +18 -27
  195. package/dist/ui/dropdown.mjs +5 -5
  196. package/dist/ui/index.cjs +362 -376
  197. package/dist/ui/index.d.cts +5 -3
  198. package/dist/ui/index.d.ts +5 -3
  199. package/dist/ui/index.mjs +65 -63
  200. package/dist/ui/inputs/color-input.cjs +7 -7
  201. package/dist/ui/inputs/color-input.mjs +6 -6
  202. package/dist/ui/inputs/index.cjs +64 -54
  203. package/dist/ui/inputs/index.d.cts +2 -0
  204. package/dist/ui/inputs/index.d.ts +2 -0
  205. package/dist/ui/inputs/index.mjs +25 -23
  206. package/dist/ui/inputs/input-numbers.cjs +7 -7
  207. package/dist/ui/inputs/input-numbers.mjs +6 -6
  208. package/dist/ui/inputs/input.cjs +8 -8
  209. package/dist/ui/inputs/input.mjs +5 -5
  210. package/dist/ui/inputs/number-inputs/CmInput.cjs +8 -8
  211. package/dist/ui/inputs/number-inputs/CmInput.mjs +7 -7
  212. package/dist/ui/inputs/number-inputs/DegInput.cjs +8 -8
  213. package/dist/ui/inputs/number-inputs/DegInput.mjs +7 -7
  214. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +10 -10
  215. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +9 -9
  216. package/dist/ui/inputs/number-inputs/EulerInput.cjs +9 -9
  217. package/dist/ui/inputs/number-inputs/EulerInput.mjs +8 -8
  218. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +9 -10
  219. package/dist/ui/inputs/number-inputs/EulerRadInput.d.cts +6 -3
  220. package/dist/ui/inputs/number-inputs/EulerRadInput.d.ts +6 -3
  221. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +8 -9
  222. package/dist/ui/inputs/number-inputs/InchInput.cjs +8 -8
  223. package/dist/ui/inputs/number-inputs/InchInput.mjs +7 -7
  224. package/dist/ui/inputs/number-inputs/IntInput.cjs +8 -8
  225. package/dist/ui/inputs/number-inputs/IntInput.mjs +7 -7
  226. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +9 -9
  227. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +8 -8
  228. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +9 -9
  229. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +8 -8
  230. package/dist/ui/inputs/number-inputs/RadInput.cjs +8 -8
  231. package/dist/ui/inputs/number-inputs/RadInput.d.cts +1 -0
  232. package/dist/ui/inputs/number-inputs/RadInput.d.ts +1 -0
  233. package/dist/ui/inputs/number-inputs/RadInput.mjs +7 -7
  234. package/dist/ui/inputs/number-inputs/TimeInput.cjs +8 -8
  235. package/dist/ui/inputs/number-inputs/TimeInput.mjs +7 -7
  236. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +9 -9
  237. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +8 -8
  238. package/dist/ui/inputs/number-inputs/VectorInput.cjs +8 -8
  239. package/dist/ui/inputs/number-inputs/VectorInput.mjs +7 -7
  240. package/dist/ui/inputs/number-inputs/index.cjs +44 -44
  241. package/dist/ui/inputs/number-inputs/index.mjs +19 -19
  242. package/dist/ui/inputs/presets-input.cjs +9 -9
  243. package/dist/ui/inputs/presets-input.mjs +8 -8
  244. package/dist/ui/inputs/presets-rad-input.cjs +24 -0
  245. package/dist/ui/inputs/presets-rad-input.d.cts +17 -0
  246. package/dist/ui/inputs/presets-rad-input.d.ts +17 -0
  247. package/dist/ui/inputs/presets-rad-input.mjs +15 -0
  248. package/dist/ui/inputs/text-input.cjs +21 -0
  249. package/dist/ui/inputs/text-input.d.cts +27 -0
  250. package/dist/ui/inputs/text-input.d.ts +27 -0
  251. package/dist/ui/inputs/text-input.mjs +12 -0
  252. package/dist/ui/label.cjs +4 -4
  253. package/dist/ui/label.mjs +4 -4
  254. package/dist/ui/layout.cjs +4 -4
  255. package/dist/ui/layout.mjs +4 -4
  256. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +4 -4
  257. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +4 -4
  258. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +4 -4
  259. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +4 -4
  260. package/dist/ui/layouts/dock-layout/index.cjs +4 -4
  261. package/dist/ui/layouts/dock-layout/index.mjs +4 -4
  262. package/dist/ui/layouts/index.cjs +11 -11
  263. package/dist/ui/layouts/index.mjs +7 -7
  264. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +11 -11
  265. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +5 -5
  266. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +7 -7
  267. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +6 -6
  268. package/dist/ui/layouts/liquid-layout/index.cjs +7 -7
  269. package/dist/ui/layouts/liquid-layout/index.mjs +6 -6
  270. package/dist/ui/modal.cjs +4 -4
  271. package/dist/ui/modal.mjs +4 -4
  272. package/dist/ui/navigation.cjs +7 -7
  273. package/dist/ui/navigation.mjs +6 -6
  274. package/dist/ui/pagination.cjs +13 -13
  275. package/dist/ui/pagination.mjs +6 -6
  276. package/dist/ui/panel.cjs +4 -4
  277. package/dist/ui/panel.mjs +4 -4
  278. package/dist/ui/popover.cjs +4 -4
  279. package/dist/ui/popover.mjs +4 -4
  280. package/dist/ui/radio-group.cjs +4 -4
  281. package/dist/ui/radio-group.mjs +4 -4
  282. package/dist/ui/resizable.cjs +4 -4
  283. package/dist/ui/resizable.mjs +4 -4
  284. package/dist/ui/select.cjs +4 -4
  285. package/dist/ui/select.mjs +4 -4
  286. package/dist/ui/separator.cjs +4 -4
  287. package/dist/ui/separator.mjs +4 -4
  288. package/dist/ui/sheet.cjs +4 -4
  289. package/dist/ui/sheet.mjs +4 -4
  290. package/dist/ui/sidebar.cjs +32 -32
  291. package/dist/ui/sidebar.mjs +8 -8
  292. package/dist/ui/simple-tree-view.cjs +4 -4
  293. package/dist/ui/simple-tree-view.mjs +4 -4
  294. package/dist/ui/skeleton.cjs +4 -4
  295. package/dist/ui/skeleton.mjs +4 -4
  296. package/dist/ui/slider.cjs +4 -4
  297. package/dist/ui/slider.mjs +4 -4
  298. package/dist/ui/switch.cjs +4 -4
  299. package/dist/ui/switch.mjs +4 -4
  300. package/dist/ui/table.cjs +4 -4
  301. package/dist/ui/table.mjs +4 -4
  302. package/dist/ui/tabs.cjs +4 -4
  303. package/dist/ui/tabs.mjs +4 -4
  304. package/dist/ui/textarea.cjs +4 -4
  305. package/dist/ui/textarea.mjs +4 -4
  306. package/dist/ui/theme/ThemeProvider.cjs +16 -20
  307. package/dist/ui/theme/ThemeProvider.d.cts +3 -10
  308. package/dist/ui/theme/ThemeProvider.d.ts +3 -10
  309. package/dist/ui/theme/ThemeProvider.mjs +2 -2
  310. package/dist/ui/theme/ThemeToggles.cjs +11 -11
  311. package/dist/ui/theme/ThemeToggles.mjs +8 -8
  312. package/dist/ui/theme/index.cjs +16 -20
  313. package/dist/ui/theme/index.d.cts +1 -1
  314. package/dist/ui/theme/index.d.ts +1 -1
  315. package/dist/ui/theme/index.mjs +8 -8
  316. package/dist/ui/theme/themeScript.cjs +2 -2
  317. package/dist/ui/theme/themeScript.d.cts +1 -2
  318. package/dist/ui/theme/themeScript.d.ts +1 -2
  319. package/dist/ui/theme/themeScript.mjs +1 -1
  320. package/dist/ui/toggle-buttons.cjs +4 -4
  321. package/dist/ui/toggle-buttons.mjs +4 -4
  322. package/dist/ui/toggle-group.cjs +4 -4
  323. package/dist/ui/toggle-group.mjs +4 -4
  324. package/dist/ui/toggle.cjs +4 -4
  325. package/dist/ui/toggle.mjs +4 -4
  326. package/dist/ui/toolbar.cjs +8 -8
  327. package/dist/ui/toolbar.mjs +5 -5
  328. package/dist/ui/tooltip.cjs +4 -4
  329. package/dist/ui/tooltip.mjs +4 -4
  330. package/dist/ui/tree-view/TreeSearchBar.cjs +7 -7
  331. package/dist/ui/tree-view/TreeSearchBar.mjs +6 -6
  332. package/dist/ui/tree-view/TreeView.cjs +4 -4
  333. package/dist/ui/tree-view/TreeView.mjs +4 -4
  334. package/dist/ui/tree-view/index.cjs +8 -8
  335. package/dist/ui/tree-view/index.mjs +7 -7
  336. package/dist/ui/tree-view-legacy.cjs +10 -10
  337. package/dist/ui/tree-view-legacy.mjs +6 -6
  338. package/dist/ui/waterfall/CursorOverlay.cjs +4 -4
  339. package/dist/ui/waterfall/CursorOverlay.mjs +4 -4
  340. package/dist/ui/waterfall/TimelineEvent.cjs +4 -4
  341. package/dist/ui/waterfall/TimelineEvent.mjs +4 -4
  342. package/dist/ui/waterfall/TimelineProcessBar.cjs +4 -4
  343. package/dist/ui/waterfall/TimelineProcessBar.mjs +4 -4
  344. package/dist/ui/waterfall/Wedges.cjs +4 -4
  345. package/dist/ui/waterfall/Wedges.mjs +4 -4
  346. package/dist/ui/waterfall/index.cjs +15 -15
  347. package/dist/ui/waterfall/index.mjs +14 -14
  348. package/package.json +7 -1
  349. package/src/auth/context/auth-context.ts +16 -0
  350. package/src/auth/handler/create-client.ts +23 -0
  351. package/src/auth/handler/sign-in-handler.ts +66 -0
  352. package/src/auth/hooks/use-vuer-auth.ts +10 -0
  353. package/src/auth/hooks/use-vuer-method.ts +35 -0
  354. package/src/auth/index.ts +6 -0
  355. package/src/auth/localstorage-key.ts +3 -0
  356. package/src/auth/types.ts +56 -0
  357. package/src/auth/vuer-auth-provider.tsx +35 -0
  358. package/src/dial/DialPanel.tsx +58 -5
  359. package/src/dial/wrapped-inputs/ControlledInputs.tsx +17 -0
  360. package/src/dial/wrapped-inputs/DialInputs.tsx +113 -0
  361. package/src/dial/wrapped-inputs/DialPresetsInput.tsx +79 -0
  362. package/src/dial/wrapped-inputs/index.ts +7 -0
  363. package/src/ui/DialBadge.tsx +18 -7
  364. package/src/ui/avatar.tsx +4 -85
  365. package/src/ui/button.tsx +0 -5
  366. package/src/ui/card.tsx +1 -1
  367. package/src/ui/dropdown.tsx +21 -366
  368. package/src/ui/inputs/index.tsx +2 -0
  369. package/src/ui/inputs/input.tsx +3 -5
  370. package/src/ui/inputs/number-inputs/EulerRadInput.tsx +46 -5
  371. package/src/ui/inputs/number-inputs/RadInput.tsx +31 -5
  372. package/src/ui/inputs/presets-rad-input.tsx +77 -0
  373. package/src/ui/inputs/text-input.tsx +43 -0
  374. package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +2 -2
  375. package/src/ui/sidebar.tsx +7 -8
  376. package/src/ui/theme/ThemeProvider.tsx +69 -52
  377. package/src/ui/theme/ThemeToggles.tsx +12 -12
  378. package/src/ui/theme/index.ts +6 -16
  379. package/src/ui/theme/themeScript.tsx +24 -50
  380. package/src/ui/toolbar.tsx +3 -3
  381. package/dist/chunk-DVKONMS7.cjs +0 -20
  382. package/dist/chunk-GPV4XELL.mjs +0 -18
  383. package/dist/chunk-H2GERFBG.cjs +0 -13
  384. package/dist/chunk-H4IDSUG5.mjs +0 -643
  385. package/dist/chunk-TY47DFGO.mjs +0 -11
  386. package/dist/{chunk-FIWBOGQV.mjs → chunk-2KQRWXNO.mjs} +0 -0
  387. package/dist/{chunk-65OSA4MM.cjs → chunk-63OJOP6W.cjs} +0 -0
  388. package/dist/{chunk-LYZJNEOR.cjs → chunk-Q4XH2Z5M.cjs} +1 -1
  389. package/dist/{chunk-OEIF3JCH.mjs → chunk-U3LN5NB6.mjs} +1 -1
@@ -1,12 +1,53 @@
1
- import { forwardRef } from "react";
1
+ import { forwardRef, useMemo } from "react";
2
2
 
3
- import { EulerInput, EulerInputProps } from "./EulerInput";
3
+ import { VectorInput, VectorInputProps } from "./VectorInput";
4
4
 
5
- type EulerRadInputProps = Omit<EulerInputProps, "unit">;
5
+ interface EulerRadInputProps extends Omit<VectorInputProps, "value" | "labels" | "onValuesChange"> {
6
+ value: [number, number, number];
7
+ onValuesChange?: (value: [number, number, number]) => void;
8
+ display?: "deg" | "pi" | "rad";
9
+ }
6
10
 
7
11
  const EulerRadInput = forwardRef<HTMLDivElement, EulerRadInputProps>(
8
- function EulerRadInput(props, ref) {
9
- return <EulerInput ref={ref} unit="rad" {...props} />;
12
+ function EulerRadInput({ value, onValuesChange, display = "rad", ...props }, ref) {
13
+ const displayValues = useMemo(() => {
14
+ if (display === "deg") {
15
+ return value.map((v) => (v * 180) / Math.PI) as [number, number, number];
16
+ } else if (display === "pi") {
17
+ return value.map((v) => v / Math.PI) as [number, number, number];
18
+ }
19
+ return value;
20
+ }, [value, display]);
21
+
22
+ const handleChange = (displayVals: number[]) => {
23
+ let radValues: [number, number, number];
24
+ if (display === "deg") {
25
+ radValues = displayVals.map((v) => (v * Math.PI) / 180) as [number, number, number];
26
+ } else if (display === "pi") {
27
+ radValues = displayVals.map((v) => v * Math.PI) as [number, number, number];
28
+ } else {
29
+ radValues = displayVals as [number, number, number];
30
+ }
31
+ onValuesChange?.(radValues);
32
+ };
33
+
34
+ const unitSymbol = useMemo(() => {
35
+ if (display === "deg") return "°";
36
+ if (display === "pi") return "π";
37
+ return "rad";
38
+ }, [display]);
39
+
40
+ const labels = [`x${unitSymbol}`, `y${unitSymbol}`, `z${unitSymbol}`];
41
+
42
+ return (
43
+ <VectorInput
44
+ ref={ref}
45
+ value={displayValues}
46
+ onValuesChange={handleChange}
47
+ labels={labels}
48
+ {...props}
49
+ />
50
+ );
10
51
  },
11
52
  );
12
53
 
@@ -1,22 +1,48 @@
1
- import { forwardRef } from "react";
1
+ import { forwardRef, useMemo } from "react";
2
2
 
3
3
  import { InputNumbers, InputNumbersProps } from "../input-numbers";
4
4
 
5
5
  interface RadInputProps extends Omit<InputNumbersProps, "value" | "onValuesChange" | "onChange"> {
6
6
  value?: number;
7
7
  onChange?: (value: number) => void;
8
+ display?: "deg" | "pi" | "rad";
8
9
  }
9
10
 
10
11
  const RadInput = forwardRef<HTMLDivElement, RadInputProps>(function RadInput(
11
- { value = 0, onChange, ...props },
12
+ { value = 0, onChange, display = "rad", ...props },
12
13
  ref,
13
14
  ) {
15
+ const displayValue = useMemo(() => {
16
+ if (display === "deg") {
17
+ return (value * 180) / Math.PI;
18
+ } else if (display === "pi") {
19
+ return value / Math.PI;
20
+ }
21
+ return value;
22
+ }, [value, display]);
23
+
24
+ const handleChange = (displayVal: number) => {
25
+ let radValue = displayVal;
26
+ if (display === "deg") {
27
+ radValue = (displayVal * Math.PI) / 180;
28
+ } else if (display === "pi") {
29
+ radValue = displayVal * Math.PI;
30
+ }
31
+ onChange?.(radValue);
32
+ };
33
+
34
+ const suffix = useMemo(() => {
35
+ if (display === "deg") return "°";
36
+ if (display === "pi") return "π";
37
+ return "rad";
38
+ }, [display]);
39
+
14
40
  return (
15
41
  <InputNumbers
16
42
  ref={ref}
17
- value={[value]}
18
- onValuesChange={(values) => onChange?.(values[0])}
19
- suffix={["rad"]}
43
+ value={[displayValue]}
44
+ onValuesChange={(values) => handleChange(values[0])}
45
+ suffix={[suffix]}
20
46
  {...props}
21
47
  />
22
48
  );
@@ -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
+ );
@@ -0,0 +1,43 @@
1
+ import { forwardRef } from "react";
2
+
3
+ import { InputRoot, InputRootProps, InputSlot } from "./input";
4
+
5
+ export interface TextInputProps extends Omit<InputRootProps, "type" | "value" | "onChange"> {
6
+ value?: string;
7
+ onChange?: (value: string) => void;
8
+ placeholder?: string;
9
+ prefix?: string;
10
+ suffix?: string;
11
+ maxLength?: number;
12
+ }
13
+
14
+ /**
15
+ * Text input component for string values.
16
+ * Provides a simple text input with optional prefix/suffix.
17
+ *
18
+ * @param value - The current text value
19
+ * @param onChange - Callback when text changes
20
+ * @param placeholder - Placeholder text
21
+ * @param prefix - Optional prefix text/icon
22
+ * @param suffix - Optional suffix text/icon
23
+ * @param maxLength - Maximum character length
24
+ */
25
+ export const TextInput = forwardRef<HTMLInputElement, TextInputProps>(function TextInput(
26
+ { value = "", onChange, prefix, suffix, placeholder, maxLength, ...props },
27
+ ref,
28
+ ) {
29
+ return (
30
+ <InputRoot
31
+ ref={ref}
32
+ type="text"
33
+ value={value}
34
+ onChange={(e) => onChange?.(e.target.value)}
35
+ placeholder={placeholder}
36
+ maxLength={maxLength}
37
+ {...props}
38
+ >
39
+ {prefix && <InputSlot side="left">{prefix}</InputSlot>}
40
+ {suffix && <InputSlot side="right">{suffix}</InputSlot>}
41
+ </InputRoot>
42
+ );
43
+ });
@@ -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
  />
@@ -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";