@vuer-ai/vuer-uikit 0.0.96 → 0.0.98

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 (341) hide show
  1. package/README.md +106 -7
  2. package/cli/dial-cli.js +49 -7
  3. package/dist/SyncScroll/SyncScroll.cjs +10 -10
  4. package/dist/SyncScroll/SyncScroll.mjs +3 -3
  5. package/dist/SyncScroll/index.cjs +10 -10
  6. package/dist/SyncScroll/index.mjs +3 -3
  7. package/dist/chunk-3HEZVWRW.mjs +62 -0
  8. package/dist/chunk-4KWGGESI.cjs +494 -0
  9. package/dist/{chunk-CCMKL2OA.cjs → chunk-7GWDO25E.cjs} +2 -2
  10. package/dist/chunk-A5LCX2UQ.cjs +208 -0
  11. package/dist/chunk-BEJIZ56L.mjs +300 -0
  12. package/dist/chunk-C7VGRU3O.mjs +283 -0
  13. package/dist/{chunk-LONOMMFA.cjs → chunk-LJMNHTTG.cjs} +21 -21
  14. package/dist/chunk-O66RESRR.cjs +285 -0
  15. package/dist/{chunk-RINTUFYQ.cjs → chunk-RMK6W774.cjs} +24 -19
  16. package/dist/{chunk-BFQ2WL5U.mjs → chunk-TTYSYGVE.mjs} +2 -2
  17. package/dist/chunk-VA3PEYFM.mjs +489 -0
  18. package/dist/chunk-VBBJSIY7.cjs +308 -0
  19. package/dist/{chunk-AIINOWEH.mjs → chunk-W4JCKCW7.mjs} +5 -5
  20. package/dist/chunk-WWGF6TBZ.mjs +206 -0
  21. package/dist/chunk-ZGN4UEJR.cjs +679 -0
  22. package/dist/chunk-ZQLRMOUW.mjs +661 -0
  23. package/dist/dial/DialPanel.cjs +24 -24
  24. package/dist/dial/DialPanel.mjs +23 -23
  25. package/dist/dial/DialProvider.cjs +3 -3
  26. package/dist/dial/DialProvider.d.cts +1 -0
  27. package/dist/dial/DialProvider.d.ts +1 -0
  28. package/dist/dial/DialProvider.example.cjs +72 -0
  29. package/dist/dial/DialProvider.example.d.cts +7 -0
  30. package/dist/dial/DialProvider.example.d.ts +7 -0
  31. package/dist/dial/DialProvider.example.mjs +68 -0
  32. package/dist/dial/DialProvider.mjs +1 -1
  33. package/dist/dial/index.cjs +42 -42
  34. package/dist/dial/index.mjs +23 -23
  35. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +27 -27
  36. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +23 -23
  37. package/dist/dial/wrapped-inputs/DialInputs.cjs +34 -34
  38. package/dist/dial/wrapped-inputs/DialInputs.mjs +23 -23
  39. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +24 -24
  40. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +23 -23
  41. package/dist/dial/wrapped-inputs/index.cjs +39 -39
  42. package/dist/dial/wrapped-inputs/index.mjs +23 -23
  43. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  44. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  45. package/dist/highlight-cursor/enhanced-components.cjs +10 -10
  46. package/dist/highlight-cursor/enhanced-components.mjs +5 -5
  47. package/dist/highlight-cursor/index.cjs +16 -16
  48. package/dist/highlight-cursor/index.mjs +6 -6
  49. package/dist/hooks/index.cjs +5 -5
  50. package/dist/hooks/index.mjs +1 -1
  51. package/dist/index.cjs +190 -190
  52. package/dist/index.mjs +23 -23
  53. package/dist/ui/UIKitBadge.cjs +6 -6
  54. package/dist/ui/UIKitBadge.mjs +2 -2
  55. package/dist/ui/avatar.cjs +1 -1
  56. package/dist/ui/avatar.mjs +1 -1
  57. package/dist/ui/badge.cjs +1 -1
  58. package/dist/ui/badge.d.cts +1 -1
  59. package/dist/ui/badge.d.ts +1 -1
  60. package/dist/ui/badge.mjs +1 -1
  61. package/dist/ui/button.cjs +1 -1
  62. package/dist/ui/button.mjs +1 -1
  63. package/dist/ui/card.cjs +1 -1
  64. package/dist/ui/card.mjs +1 -1
  65. package/dist/ui/checkbox.cjs +1 -1
  66. package/dist/ui/checkbox.mjs +1 -1
  67. package/dist/ui/collapsible.cjs +1 -1
  68. package/dist/ui/collapsible.mjs +1 -1
  69. package/dist/ui/drawer.cjs +1 -1
  70. package/dist/ui/drawer.mjs +1 -1
  71. package/dist/ui/dropdown.cjs +1 -1
  72. package/dist/ui/dropdown.mjs +1 -1
  73. package/dist/ui/index.cjs +107 -107
  74. package/dist/ui/index.mjs +17 -17
  75. package/dist/ui/inputs/color-input.cjs +1 -1
  76. package/dist/ui/inputs/color-input.mjs +1 -1
  77. package/dist/ui/inputs/index.cjs +11 -11
  78. package/dist/ui/inputs/index.mjs +3 -3
  79. package/dist/ui/inputs/input-numbers.cjs +1 -1
  80. package/dist/ui/inputs/input-numbers.mjs +1 -1
  81. package/dist/ui/inputs/input.cjs +1 -1
  82. package/dist/ui/inputs/input.d.cts +1 -1
  83. package/dist/ui/inputs/input.d.ts +1 -1
  84. package/dist/ui/inputs/input.mjs +1 -1
  85. package/dist/ui/inputs/number-inputs/CmInput.cjs +1 -1
  86. package/dist/ui/inputs/number-inputs/CmInput.mjs +1 -1
  87. package/dist/ui/inputs/number-inputs/DegInput.cjs +1 -1
  88. package/dist/ui/inputs/number-inputs/DegInput.mjs +1 -1
  89. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +1 -1
  90. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +1 -1
  91. package/dist/ui/inputs/number-inputs/EulerInput.cjs +1 -1
  92. package/dist/ui/inputs/number-inputs/EulerInput.mjs +1 -1
  93. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +1 -1
  94. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +1 -1
  95. package/dist/ui/inputs/number-inputs/InchInput.cjs +1 -1
  96. package/dist/ui/inputs/number-inputs/InchInput.mjs +1 -1
  97. package/dist/ui/inputs/number-inputs/IntInput.cjs +1 -1
  98. package/dist/ui/inputs/number-inputs/IntInput.mjs +1 -1
  99. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +1 -1
  100. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +1 -1
  101. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +1 -1
  102. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +1 -1
  103. package/dist/ui/inputs/number-inputs/RadInput.cjs +1 -1
  104. package/dist/ui/inputs/number-inputs/RadInput.mjs +1 -1
  105. package/dist/ui/inputs/number-inputs/TimeInput.cjs +1 -1
  106. package/dist/ui/inputs/number-inputs/TimeInput.mjs +1 -1
  107. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +1 -1
  108. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +1 -1
  109. package/dist/ui/inputs/number-inputs/VectorInput.cjs +1 -1
  110. package/dist/ui/inputs/number-inputs/VectorInput.mjs +1 -1
  111. package/dist/ui/inputs/number-inputs/index.cjs +11 -11
  112. package/dist/ui/inputs/number-inputs/index.mjs +3 -3
  113. package/dist/ui/inputs/presets-input.cjs +1 -1
  114. package/dist/ui/inputs/presets-input.mjs +1 -1
  115. package/dist/ui/label.cjs +1 -1
  116. package/dist/ui/label.mjs +1 -1
  117. package/dist/ui/layout.cjs +1 -1
  118. package/dist/ui/layout.mjs +1 -1
  119. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +1 -1
  120. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +1 -1
  121. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +1 -1
  122. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +1 -1
  123. package/dist/ui/layouts/dock-layout/index.cjs +1 -1
  124. package/dist/ui/layouts/dock-layout/index.mjs +1 -1
  125. package/dist/ui/layouts/index.cjs +2 -2
  126. package/dist/ui/layouts/index.mjs +2 -2
  127. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +1 -1
  128. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +1 -1
  129. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +1 -1
  130. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +1 -1
  131. package/dist/ui/layouts/liquid-layout/index.cjs +1 -1
  132. package/dist/ui/layouts/liquid-layout/index.mjs +1 -1
  133. package/dist/ui/modal.cjs +1 -1
  134. package/dist/ui/modal.mjs +1 -1
  135. package/dist/ui/navigation.cjs +1 -1
  136. package/dist/ui/navigation.mjs +1 -1
  137. package/dist/ui/pagination.cjs +1 -1
  138. package/dist/ui/pagination.mjs +1 -1
  139. package/dist/ui/panel.cjs +1 -1
  140. package/dist/ui/panel.mjs +1 -1
  141. package/dist/ui/popover.cjs +1 -1
  142. package/dist/ui/popover.mjs +1 -1
  143. package/dist/ui/radio-group.cjs +1 -1
  144. package/dist/ui/radio-group.mjs +1 -1
  145. package/dist/ui/resizable.cjs +1 -1
  146. package/dist/ui/resizable.mjs +1 -1
  147. package/dist/ui/select.cjs +1 -1
  148. package/dist/ui/select.d.cts +1 -1
  149. package/dist/ui/select.d.ts +1 -1
  150. package/dist/ui/select.mjs +1 -1
  151. package/dist/ui/separator.cjs +1 -1
  152. package/dist/ui/separator.mjs +1 -1
  153. package/dist/ui/sheet.cjs +1 -1
  154. package/dist/ui/sheet.mjs +1 -1
  155. package/dist/ui/sidebar.cjs +26 -26
  156. package/dist/ui/sidebar.mjs +2 -2
  157. package/dist/ui/simple-tree-view.cjs +1 -1
  158. package/dist/ui/simple-tree-view.mjs +1 -1
  159. package/dist/ui/skeleton.cjs +1 -1
  160. package/dist/ui/skeleton.mjs +1 -1
  161. package/dist/ui/slider.cjs +1 -1
  162. package/dist/ui/slider.mjs +1 -1
  163. package/dist/ui/switch.cjs +1 -1
  164. package/dist/ui/switch.mjs +1 -1
  165. package/dist/ui/table.cjs +1 -1
  166. package/dist/ui/table.mjs +1 -1
  167. package/dist/ui/tabs.cjs +1 -1
  168. package/dist/ui/tabs.mjs +1 -1
  169. package/dist/ui/textarea.cjs +1 -1
  170. package/dist/ui/textarea.d.cts +1 -1
  171. package/dist/ui/textarea.d.ts +1 -1
  172. package/dist/ui/textarea.mjs +1 -1
  173. package/dist/ui/theme/ThemeToggles.cjs +1 -1
  174. package/dist/ui/theme/ThemeToggles.mjs +1 -1
  175. package/dist/ui/theme/index.cjs +1 -1
  176. package/dist/ui/theme/index.mjs +1 -1
  177. package/dist/ui/toggle-buttons.cjs +1 -1
  178. package/dist/ui/toggle-buttons.mjs +1 -1
  179. package/dist/ui/toggle-group.cjs +1 -1
  180. package/dist/ui/toggle-group.mjs +1 -1
  181. package/dist/ui/toggle.cjs +1 -1
  182. package/dist/ui/toggle.mjs +1 -1
  183. package/dist/ui/toolbar.cjs +1 -1
  184. package/dist/ui/toolbar.mjs +1 -1
  185. package/dist/ui/tooltip.cjs +1 -1
  186. package/dist/ui/tooltip.mjs +1 -1
  187. package/dist/ui/tree-view/TreeSearchBar.cjs +1 -1
  188. package/dist/ui/tree-view/TreeSearchBar.mjs +1 -1
  189. package/dist/ui/tree-view/TreeView.cjs +1 -1
  190. package/dist/ui/tree-view/TreeView.mjs +1 -1
  191. package/dist/ui/tree-view/index.cjs +6 -6
  192. package/dist/ui/tree-view/index.mjs +2 -2
  193. package/dist/ui/tree-view-legacy.cjs +9 -9
  194. package/dist/ui/tree-view-legacy.mjs +5 -5
  195. package/dist/ui/waterfall/CursorOverlay.cjs +1 -1
  196. package/dist/ui/waterfall/CursorOverlay.mjs +1 -1
  197. package/dist/ui/waterfall/TimelineEvent.cjs +1 -1
  198. package/dist/ui/waterfall/TimelineEvent.mjs +1 -1
  199. package/dist/ui/waterfall/TimelineProcessBar.cjs +1 -1
  200. package/dist/ui/waterfall/TimelineProcessBar.mjs +1 -1
  201. package/dist/ui/waterfall/Wedges.cjs +1 -1
  202. package/dist/ui/waterfall/Wedges.mjs +1 -1
  203. package/dist/ui/waterfall/index.cjs +8 -8
  204. package/dist/ui/waterfall/index.mjs +7 -7
  205. package/package.json +28 -2
  206. package/src/SyncScroll/README.md +283 -0
  207. package/src/SyncScroll/SyncScroll.tsx +361 -0
  208. package/src/SyncScroll/index.ts +22 -0
  209. package/src/SyncScroll/useSyncScroll.tsx +226 -0
  210. package/src/cli/dial-cli.ts +1133 -0
  211. package/src/dial/DialPanel.tsx +208 -0
  212. package/src/dial/DialProvider.example.tsx +80 -0
  213. package/src/dial/DialProvider.tsx +138 -0
  214. package/src/dial/index.ts +26 -0
  215. package/src/dial/wrapped-inputs/ControlledInputs.tsx +176 -0
  216. package/src/dial/wrapped-inputs/DialInputs.tsx +401 -0
  217. package/src/dial/wrapped-inputs/DialVectorInput.tsx +125 -0
  218. package/src/dial/wrapped-inputs/index.ts +25 -0
  219. package/src/highlight-cursor/cursor-context.tsx +23 -0
  220. package/src/highlight-cursor/cursor-provider.tsx +264 -0
  221. package/src/highlight-cursor/enhanced-components.tsx +16 -0
  222. package/src/highlight-cursor/index.ts +21 -0
  223. package/src/highlight-cursor/tabs-cursor-context.tsx +121 -0
  224. package/src/highlight-cursor/types.ts +40 -0
  225. package/src/highlight-cursor/with-cursor.tsx +144 -0
  226. package/src/hooks/clientOnly.tsx +54 -0
  227. package/src/hooks/cn.ts +33 -0
  228. package/src/hooks/index.ts +9 -0
  229. package/src/hooks/useDocument.tsx +18 -0
  230. package/src/hooks/useDragSelect.ts +116 -0
  231. package/src/hooks/useIsMobile.ts +35 -0
  232. package/src/hooks/useLocalStorage.ts +122 -0
  233. package/src/hooks/useLocation.tsx +95 -0
  234. package/src/hooks/useQueryParams.tsx +31 -0
  235. package/src/hooks/useWindow.tsx +18 -0
  236. package/src/index.css +5 -0
  237. package/src/index.ts +5 -0
  238. package/src/styles/.editorconfig +0 -0
  239. package/src/styles/theme.css +152 -0
  240. package/src/styles/toast.css +67 -0
  241. package/src/styles/variables.css +229 -0
  242. package/src/ui/UIKitBadge.tsx +171 -0
  243. package/src/ui/avatar.tsx +221 -0
  244. package/src/ui/badge.tsx +74 -0
  245. package/src/ui/button.tsx +143 -0
  246. package/src/ui/card.tsx +146 -0
  247. package/src/ui/checkbox.tsx +78 -0
  248. package/src/ui/collapsible.tsx +43 -0
  249. package/src/ui/drag-selectable/DragSelectProvider.tsx +178 -0
  250. package/src/ui/drag-selectable/createSelectable.tsx +43 -0
  251. package/src/ui/drag-selectable/index.ts +2 -0
  252. package/src/ui/drawer.tsx +137 -0
  253. package/src/ui/dropdown.tsx +707 -0
  254. package/src/ui/icons/MouseCursorIcons.tsx +39 -0
  255. package/src/ui/icons/cursor.tsx +38 -0
  256. package/src/ui/icons/index.ts +2 -0
  257. package/src/ui/index.ts +45 -0
  258. package/src/ui/inputs/color-input.tsx +61 -0
  259. package/src/ui/inputs/index.tsx +5 -0
  260. package/src/ui/inputs/input-numbers.tsx +394 -0
  261. package/src/ui/inputs/input.tsx +155 -0
  262. package/src/ui/inputs/number-inputs/CmInput.tsx +26 -0
  263. package/src/ui/inputs/number-inputs/DegInput.tsx +26 -0
  264. package/src/ui/inputs/number-inputs/EulerDegInput.tsx +14 -0
  265. package/src/ui/inputs/number-inputs/EulerInput.tsx +30 -0
  266. package/src/ui/inputs/number-inputs/EulerRadInput.tsx +14 -0
  267. package/src/ui/inputs/number-inputs/InchInput.tsx +26 -0
  268. package/src/ui/inputs/number-inputs/IntInput.tsx +46 -0
  269. package/src/ui/inputs/number-inputs/KVectorInput.tsx +20 -0
  270. package/src/ui/inputs/number-inputs/QuaternionInput.tsx +27 -0
  271. package/src/ui/inputs/number-inputs/RadInput.tsx +26 -0
  272. package/src/ui/inputs/number-inputs/TimeInput.tsx +26 -0
  273. package/src/ui/inputs/number-inputs/Vec3Input.tsx +26 -0
  274. package/src/ui/inputs/number-inputs/VectorInput.tsx +38 -0
  275. package/src/ui/inputs/number-inputs/index.ts +38 -0
  276. package/src/ui/inputs/presets-input.tsx +59 -0
  277. package/src/ui/label.tsx +35 -0
  278. package/src/ui/layout.tsx +43 -0
  279. package/src/ui/layouts/dock-layout/DockLayoutView.tsx +128 -0
  280. package/src/ui/layouts/dock-layout/LayoutSlots.tsx +85 -0
  281. package/src/ui/layouts/dock-layout/index.tsx +2 -0
  282. package/src/ui/layouts/index.ts +2 -0
  283. package/src/ui/layouts/liquid-layout/LayoutSlots.tsx +82 -0
  284. package/src/ui/layouts/liquid-layout/LiquidLayoutView.tsx +76 -0
  285. package/src/ui/layouts/liquid-layout/index.ts +1 -0
  286. package/src/ui/modal.tsx +211 -0
  287. package/src/ui/navigation.tsx +86 -0
  288. package/src/ui/pagination.tsx +129 -0
  289. package/src/ui/panel.tsx +146 -0
  290. package/src/ui/popover.tsx +112 -0
  291. package/src/ui/radio-group.tsx +63 -0
  292. package/src/ui/resizable.tsx +52 -0
  293. package/src/ui/select.tsx +365 -0
  294. package/src/ui/separator.tsx +26 -0
  295. package/src/ui/sheet.tsx +257 -0
  296. package/src/ui/sidebar.tsx +695 -0
  297. package/src/ui/simple-tree-view.tsx +604 -0
  298. package/src/ui/skeleton.tsx +15 -0
  299. package/src/ui/slider.tsx +204 -0
  300. package/src/ui/switch.tsx +45 -0
  301. package/src/ui/table.tsx +99 -0
  302. package/src/ui/tabs.tsx +192 -0
  303. package/src/ui/textarea.tsx +55 -0
  304. package/src/ui/theme/ThemeProvider.tsx +319 -0
  305. package/src/ui/theme/ThemeToggles.tsx +84 -0
  306. package/src/ui/theme/index.ts +21 -0
  307. package/src/ui/theme/themeScript.tsx +179 -0
  308. package/src/ui/theme/types.ts +61 -0
  309. package/src/ui/toast.tsx +30 -0
  310. package/src/ui/toggle-buttons.tsx +290 -0
  311. package/src/ui/toggle-group.tsx +236 -0
  312. package/src/ui/toggle.tsx +94 -0
  313. package/src/ui/toolbar.tsx +54 -0
  314. package/src/ui/tooltip.tsx +171 -0
  315. package/src/ui/tree-view/TreeSearchBar.tsx +88 -0
  316. package/src/ui/tree-view/TreeView.tsx +232 -0
  317. package/src/ui/tree-view/hooks.tsx +289 -0
  318. package/src/ui/tree-view/index.ts +4 -0
  319. package/src/ui/tree-view/types.ts +23 -0
  320. package/src/ui/tree-view-legacy.tsx +644 -0
  321. package/src/ui/version-badge.tsx +0 -0
  322. package/src/ui/waterfall/CursorOverlay.tsx +96 -0
  323. package/src/ui/waterfall/NavigationControls.tsx +42 -0
  324. package/src/ui/waterfall/Tick.tsx +51 -0
  325. package/src/ui/waterfall/TimeRuleEventDot.tsx +19 -0
  326. package/src/ui/waterfall/TimelineEvent.tsx +60 -0
  327. package/src/ui/waterfall/TimelineProcessBar.tsx +207 -0
  328. package/src/ui/waterfall/Wedges.tsx +67 -0
  329. package/src/ui/waterfall/WheelZoomContext.tsx +128 -0
  330. package/src/ui/waterfall/hooks/useTimelineState.tsx +134 -0
  331. package/src/ui/waterfall/hooks/useViewport.tsx +293 -0
  332. package/src/ui/waterfall/index.tsx +326 -0
  333. package/src/ui/waterfall/types.ts +20 -0
  334. package/src/ui/waterfall/utils.ts +91 -0
  335. package/dist/chunk-W2YAQV5N.mjs +0 -57
  336. package/dist/{chunk-QLCEHV4Q.mjs → chunk-2OZK5DY5.mjs} +2 -2
  337. package/dist/{chunk-Z35DNFRZ.cjs → chunk-7IS37C3P.cjs} +2 -2
  338. package/dist/{chunk-4AOAH77D.mjs → chunk-A2PCEL5S.mjs} +2 -2
  339. package/dist/{chunk-K4VD5PPY.mjs → chunk-BIUDC66P.mjs} +1 -1
  340. package/dist/{chunk-RKJR6RZU.cjs → chunk-OYNLQTHW.cjs} +1 -1
  341. package/dist/{chunk-VE3XLQLO.cjs → chunk-QUFZWF4E.cjs} +2 -2
@@ -0,0 +1,326 @@
1
+ import React, { ReactNode, useEffect, useState } from "react";
2
+
3
+ import { cn } from "../../hooks";
4
+ import { TooltipProvider } from "../tooltip";
5
+ import { CursorOverlay } from "./CursorOverlay";
6
+ import { useTimelineState } from "./hooks/useTimelineState";
7
+ import { useViewport } from "./hooks/useViewport";
8
+ import { NavigationControls } from "./NavigationControls";
9
+ import { Tick } from "./Tick";
10
+ import { TimelineEvent } from "./TimelineEvent";
11
+ import { TimelineProcessBar } from "./TimelineProcessBar";
12
+ import { TimeRuleEventDot } from "./TimeRuleEventDot";
13
+ import { LogItemType, LogItemWithMeta } from "./types";
14
+ import { leftWedgeClasses, rightWedgeClasses, TOTAL_DURATION } from "./utils";
15
+ import { LeftWedge, RightWedge } from "./Wedges";
16
+ import { WheelZoomContext } from "./WheelZoomContext";
17
+ import { SyncDragY, SyncScroll, SyncScrollProvider, SyncScrollSlave } from "../../SyncScroll";
18
+ import { TreeSearchBar, TreeView, useTreeSearch, useTreeState } from "../tree-view";
19
+
20
+ export * from "./types";
21
+ export * from "./utils";
22
+
23
+ export interface WaterfallProps {
24
+ logData: LogItemType[];
25
+ temporalCursor?: number;
26
+ /** Width of the list view */
27
+ panelWidth?: number;
28
+ onTemporalCursorChange?: (time: number) => void;
29
+ getIcon: (item: LogItemType) => ReactNode;
30
+ /** External hover state (optional - will use internal state if not provided) */
31
+ hoveredId?: string | null;
32
+ /** External hover setter (optional - will use internal state if not provided) */
33
+ onItemHover?: (id: string | null) => void;
34
+ /** Minimum zoom viewWindow duration in seconds (default: 0.01) */
35
+ minWindow?: number;
36
+ /** Maximum zoom viewWindow duration in seconds (default: event duration * 10) */
37
+ maxWindow?: number;
38
+ /** Zoom factor for mouse wheel zoom (default: 1.1) */
39
+ zoomFactor?: number;
40
+ /** Enable wheel handling for pan and zoom (default: true) */
41
+ enabled?: boolean;
42
+ /** Children elements to render within the timeline */
43
+ children?: React.ReactNode;
44
+ /** Additional CSS classes for the wrapper */
45
+ className?: string;
46
+ }
47
+
48
+ /**
49
+ * Waterfall component that accepts external render functions but manages its own state.
50
+ * Provides internal state management with external rendering control.
51
+ */
52
+ export function Waterfall({
53
+ logData,
54
+ temporalCursor,
55
+ onTemporalCursorChange,
56
+ getIcon,
57
+ panelWidth = 300,
58
+ className,
59
+ hoveredId: externalHoveredId,
60
+ onItemHover: externalOnItemHover,
61
+ minWindow = 0.01,
62
+ maxWindow,
63
+ zoomFactor = 1.1,
64
+ enabled = true,
65
+ children,
66
+ }: WaterfallProps) {
67
+ const [visibleLogData, setVisibleLogData] = useState<LogItemWithMeta[]>([]);
68
+ const [temporalMarkers, setTemporalMarkers] = useState<number[]>([]);
69
+
70
+ // Search state
71
+ const [searchQuery, setSearchQuery] = useState("");
72
+ const [isCaseSensitive, setIsCaseSensitive] = useState(false);
73
+ const [isRegex, setIsRegex] = useState(false);
74
+
75
+ // Use external state if provided, otherwise use internal state
76
+ const internalTimelineState = useTimelineState(logData);
77
+
78
+ const hoveredId = externalHoveredId ?? internalTimelineState.hoveredId;
79
+ const setHoveredId = externalOnItemHover ?? internalTimelineState.setHoveredId;
80
+
81
+ // Use the new tree hooks
82
+ const { visibleData, expandedItems, toggleItem, hasDescendants, dataWithMeta } = useTreeState({
83
+ data: logData,
84
+ defaultExpanded: true,
85
+ });
86
+
87
+ const { filteredData, searchResultsCount, isRegexValid, renderLabel, hasActiveSearch } =
88
+ useTreeSearch({
89
+ data: logData,
90
+ searchQuery,
91
+ isCaseSensitive,
92
+ isRegex,
93
+ });
94
+
95
+ // Update visible log data when filtered data changes
96
+ useEffect(() => {
97
+ // If there's an active search, use filtered data, otherwise use visible data
98
+ const dataToUse = hasActiveSearch
99
+ ? dataWithMeta.filter((item) => filteredData.some((f) => f.id === item.id))
100
+ : visibleData;
101
+ setVisibleLogData(dataToUse as LogItemWithMeta[]);
102
+ }, [filteredData, visibleData, dataWithMeta, hasActiveSearch]);
103
+
104
+ const {
105
+ viewStart,
106
+ viewDuration,
107
+ timelineContainerRef,
108
+ timeToPercent,
109
+ ticks,
110
+ eventDots,
111
+ handlePan,
112
+ handleZoomDragStart,
113
+ setViewStart,
114
+ setViewDuration,
115
+ cursorVisible,
116
+ cursorPosition,
117
+ cursorLabel,
118
+ showMagnet,
119
+ } = useViewport({
120
+ visibleLogData,
121
+ onTemporalCursorChange,
122
+ temporalCursor,
123
+ });
124
+
125
+ return (
126
+ <TooltipProvider>
127
+ <SyncScrollProvider>
128
+ <div
129
+ className={cn(
130
+ "bg-bg-primary text-text-primary rounded-uk-md border-line-primary/50",
131
+ "mx-auto flex w-full flex-col overflow-hidden border font-sans",
132
+ "shadow-[0_4px_16px_0_var(--color-shadow-secondary)]",
133
+ className,
134
+ )}
135
+ >
136
+ {/* Header Section with Search and Timeline Ruler */}
137
+ <div className="relative flex h-full flex-row items-stretch">
138
+ {/* Search Bar and Tree View */}
139
+ <div
140
+ className="border-line-primary/50 relative flex h-full flex-none flex-col border-r"
141
+ style={{ width: panelWidth }}
142
+ >
143
+ <TreeSearchBar
144
+ className="p-1"
145
+ searchQuery={searchQuery}
146
+ setSearchQuery={setSearchQuery}
147
+ isCaseSensitive={isCaseSensitive}
148
+ setIsCaseSensitive={setIsCaseSensitive}
149
+ isRegex={isRegex}
150
+ setIsRegex={setIsRegex}
151
+ isRegexValid={isRegexValid}
152
+ searchResultsCount={searchResultsCount}
153
+ />
154
+ <SyncScroll className="flex-1 overflow-y-auto">
155
+ <TreeView
156
+ data={
157
+ hasActiveSearch
158
+ ? dataWithMeta.filter((item) => filteredData.some((f) => f.id === item.id))
159
+ : visibleData
160
+ }
161
+ getIcon={getIcon}
162
+ expandedItems={expandedItems}
163
+ onToggleItem={toggleItem}
164
+ onItemHover={setHoveredId}
165
+ hoveredId={hoveredId}
166
+ hasDescendants={hasDescendants}
167
+ renderLabel={renderLabel}
168
+ />
169
+ </SyncScroll>
170
+ </div>
171
+ <div
172
+ ref={timelineContainerRef}
173
+ className="overflow-y-none scrollbar-hide relative flex h-full w-full flex-auto cursor-crosshair flex-col overflow-x-hidden pl-px active:cursor-grabbing"
174
+ >
175
+ {/* Timeline Ruler */}
176
+ <div className="bg-bg-primary sticky top-0">
177
+ <div className="border-line-primary/50 relative h-8 border-b">
178
+ {/* Timeline markers */}
179
+ {ticks.map((marker, ind) => (
180
+ <Tick
181
+ key={marker.time}
182
+ time={marker.time}
183
+ label={marker.label}
184
+ timeToPercent={timeToPercent}
185
+ zIndex={ind < ticks.length - 1 ? 10 : 0}
186
+ />
187
+ ))}
188
+ {/* Key event dots */}
189
+ {eventDots.map(({ time }, tickIndex) => (
190
+ <TimeRuleEventDot
191
+ key={`snap-${time}-${tickIndex}`}
192
+ percent={timeToPercent(time)}
193
+ />
194
+ ))}
195
+ </div>
196
+ </div>
197
+ {/* Timeline Content */}
198
+ <WheelZoomContext
199
+ className="scrollbar-hide relative h-full max-h-full overflow-auto"
200
+ viewStart={viewStart}
201
+ viewDuration={viewDuration}
202
+ onViewStartChange={setViewStart}
203
+ onWindowChange={setViewDuration}
204
+ minWindow={minWindow}
205
+ maxWindow={maxWindow ?? TOTAL_DURATION * 10}
206
+ zoomFactor={zoomFactor}
207
+ enabled={enabled}
208
+ >
209
+ {/* Timeline Events */}
210
+ <SyncDragY className="scrollbar-hide hide-scrollbar relative h-full w-full">
211
+ {visibleLogData.map((item, index) =>
212
+ item.time === undefined ? (
213
+ // Render TimelineProcessBar for duration events
214
+ <TimelineProcessBar
215
+ index={index}
216
+ key={item.id}
217
+ item={item}
218
+ isHovered={hoveredId === item.id}
219
+ onMouseEnter={() => setHoveredId(item.id)}
220
+ onMouseLeave={() => setHoveredId(null)}
221
+ onClick={(time: number) => {
222
+ setTemporalMarkers((prev) => [...prev, time]);
223
+ }}
224
+ viewStart={viewStart}
225
+ viewWindow={viewDuration}
226
+ timeToPercent={timeToPercent}
227
+ />
228
+ ) : (
229
+ // Render TimelineEvent for instant events (with time property)
230
+ <TimelineEvent
231
+ key={item.id}
232
+ item={item}
233
+ isHovered={hoveredId === item.id}
234
+ onMouseEnter={() => setHoveredId(item.id)}
235
+ onMouseLeave={() => setHoveredId(null)}
236
+ onClick={(time: number) => {
237
+ setTemporalMarkers((prev) => [...prev, time]);
238
+ }}
239
+ timeToPercent={timeToPercent}
240
+ index={index}
241
+ />
242
+ ),
243
+ )}
244
+ </SyncDragY>
245
+
246
+ {/* Out of range wedges (left) */}
247
+ <SyncScrollSlave className="scrollbar-hide pointer-events-none absolute top-0 left-0 z-10 h-full w-2">
248
+ {visibleLogData.map((item, index) => (
249
+ <LeftWedge
250
+ key={`left-wedge-${item.id}`}
251
+ item={item}
252
+ classes={rightWedgeClasses}
253
+ viewStart={viewStart}
254
+ index={index}
255
+ />
256
+ ))}
257
+ </SyncScrollSlave>
258
+
259
+ {/* Out of range wedges (right) */}
260
+ <SyncScrollSlave className="scrollbar-hide pointer-events-none absolute top-0 right-0 z-10 h-full w-2">
261
+ {visibleLogData.map((item, index) => (
262
+ <RightWedge
263
+ key={`right-wedge-${item.id}`}
264
+ item={item}
265
+ classes={leftWedgeClasses}
266
+ viewEnd={viewStart + viewDuration}
267
+ index={index}
268
+ />
269
+ ))}
270
+ </SyncScrollSlave>
271
+
272
+ {/* Custom children content */}
273
+ {children}
274
+ <div className="absolute bottom-1 left-1/2 -translate-x-1/2 justify-center pb-4">
275
+ <NavigationControls
276
+ viewDuration={viewDuration}
277
+ handlePan={handlePan}
278
+ handleZoomDragStart={handleZoomDragStart}
279
+ />
280
+ </div>
281
+ </WheelZoomContext>
282
+
283
+ {temporalMarkers.map((time, index) => (
284
+ <div
285
+ key={`marker-${time}-${index}`}
286
+ className="pointer-events-none absolute top-0 h-8 w-20 cursor-pointer"
287
+ style={{
288
+ zIndex: 110,
289
+ left: `calc(${timeToPercent(time)}% - 2.5rem)`,
290
+ }}
291
+ onClick={() => {
292
+ setTemporalMarkers((prev) => prev.filter((_, i) => i !== index));
293
+ }}
294
+ title="Click to remove marker"
295
+ >
296
+ <div className="pointer-events-auto relative h-full w-full" />
297
+ <CursorOverlay
298
+ left={50}
299
+ label={`T${index + 1}`}
300
+ color="#3b82f6" // blue-500
301
+ showReadout={true}
302
+ variant="static"
303
+ zIndex={110}
304
+ />
305
+ </div>
306
+ ))}
307
+
308
+ {/*Interactive cursor with readout */}
309
+ {cursorVisible && (
310
+ <CursorOverlay
311
+ left={cursorPosition}
312
+ label={cursorLabel}
313
+ color="#ef4444"
314
+ showReadout
315
+ showMagnet={showMagnet}
316
+ className="transition-opacity duration-150"
317
+ zIndex={100}
318
+ />
319
+ )}
320
+ </div>
321
+ </div>
322
+ </div>
323
+ </SyncScrollProvider>
324
+ </TooltipProvider>
325
+ );
326
+ }
@@ -0,0 +1,20 @@
1
+ import { TreeDataItem } from "../tree-view";
2
+
3
+ // Shared data types
4
+ export type LogItemType = TreeDataItem & {
5
+ etype: "task" | "attempt" | "info" | "step";
6
+ icon?: "history" | "file-code" | "bot" | "check-circle" | "pause-circle";
7
+ createTime?: number;
8
+ startTime?: number;
9
+ duration?: number;
10
+ time?: number;
11
+ color?: "blue" | "green" | "orange" | "gray-light" | "gray-medium" | "purple";
12
+ isCollapsible?: boolean;
13
+ hasStripes?: boolean;
14
+ isHaltedStep?: boolean;
15
+ };
16
+
17
+ export interface LogItemWithMeta extends LogItemType {
18
+ isLast: boolean;
19
+ ancestors: LogItemType[];
20
+ }
@@ -0,0 +1,91 @@
1
+ // Mock data constants
2
+ export const TOTAL_DURATION = 22;
3
+
4
+ // Utility functions
5
+ export const formatDuration = (seconds: number): string => {
6
+ const sign = seconds < 0 ? "-" : "";
7
+ const absSeconds = Math.abs(seconds);
8
+
9
+ if (absSeconds < 1) {
10
+ if (absSeconds < 0.0005) return "0s";
11
+ return `${sign}${Math.round(absSeconds * 1000)}ms`;
12
+ }
13
+ if (absSeconds < 60) {
14
+ return `${sign}${absSeconds.toFixed(3)}s`;
15
+ }
16
+
17
+ const SECONDS_IN_MINUTE = 60;
18
+ const SECONDS_IN_HOUR = 3600;
19
+ const SECONDS_IN_DAY = 86400;
20
+ const SECONDS_IN_MONTH = 2592000; // 30 days
21
+ const SECONDS_IN_YEAR = 31536000; // 365 days
22
+
23
+ if (absSeconds < SECONDS_IN_HOUR) {
24
+ const m = Math.floor(absSeconds / SECONDS_IN_MINUTE);
25
+ const s = absSeconds % SECONDS_IN_MINUTE;
26
+ return `${sign}${m}m ${s.toFixed(2).padStart(5, "0")}s`;
27
+ }
28
+
29
+ if (absSeconds < SECONDS_IN_DAY) {
30
+ const h = Math.floor(absSeconds / SECONDS_IN_HOUR);
31
+ const m = Math.floor((absSeconds % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE);
32
+ const s = Math.floor(absSeconds % SECONDS_IN_MINUTE);
33
+ return `${sign}${h}h ${String(m).padStart(2, "0")}m ${String(s).padStart(2, "0")}s`;
34
+ }
35
+
36
+ if (absSeconds < SECONDS_IN_MONTH) {
37
+ const d = Math.floor(absSeconds / SECONDS_IN_DAY);
38
+ const h = Math.floor((absSeconds % SECONDS_IN_DAY) / SECONDS_IN_HOUR);
39
+ const m = Math.floor((absSeconds % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE);
40
+ return `${sign}${d}d ${String(h).padStart(2, "0")}h ${String(m).padStart(2, "0")}m`;
41
+ }
42
+
43
+ if (absSeconds < SECONDS_IN_YEAR) {
44
+ const mo = Math.floor(absSeconds / SECONDS_IN_MONTH);
45
+ const d = Math.floor((absSeconds % SECONDS_IN_MONTH) / SECONDS_IN_DAY);
46
+ const h = Math.floor((absSeconds % SECONDS_IN_DAY) / SECONDS_IN_HOUR);
47
+ return `${sign}${mo}mo ${String(d).padStart(3, "0")}d ${String(h).padStart(2, "0")}h`;
48
+ }
49
+
50
+ const y = Math.floor(absSeconds / SECONDS_IN_YEAR);
51
+ const mo = Math.floor((absSeconds % SECONDS_IN_YEAR) / SECONDS_IN_MONTH);
52
+ const d = Math.floor((absSeconds % SECONDS_IN_MONTH) / SECONDS_IN_DAY);
53
+ return `${sign}${y}y ${String(mo).padStart(2, "0")}mo ${String(d).padStart(3, "0")}d`;
54
+ };
55
+
56
+ // Color class mappings
57
+ export const borderColorClasses = {
58
+ blue: "border-blue-500",
59
+ green: "border-green-500",
60
+ orange: "border-orange-500",
61
+ purple: "border-purple-500",
62
+ "gray-light": "border-muted",
63
+ "gray-medium": "border-slate-400 dark:border-slate-600",
64
+ };
65
+
66
+ export const colorClasses = {
67
+ blue: "bg-blue-500",
68
+ green: "bg-green-500",
69
+ orange: "bg-orange-500",
70
+ purple: "bg-purple-500",
71
+ "gray-light": "bg-muted",
72
+ "gray-medium": "bg-slate-400 dark:bg-slate-700",
73
+ };
74
+
75
+ export const leftWedgeClasses = {
76
+ blue: "border-l-blue-500",
77
+ green: "border-l-green-500",
78
+ orange: "border-l-orange-500",
79
+ purple: "border-l-purple-500",
80
+ "gray-light": "border-l-slate-300 dark:border-l-slate-600",
81
+ "gray-medium": "border-l-slate-400 dark:border-l-slate-500",
82
+ };
83
+
84
+ export const rightWedgeClasses = {
85
+ blue: "border-r-blue-500",
86
+ green: "border-r-green-500",
87
+ orange: "border-r-orange-500",
88
+ purple: "border-r-purple-500",
89
+ "gray-light": "border-r-slate-300 dark:border-r-slate-600",
90
+ "gray-medium": "border-r-slate-400 dark:border-r-slate-500",
91
+ };
@@ -1,57 +0,0 @@
1
- import { createContext, useContext, useState, useCallback } from 'react';
2
- import { jsx } from 'react/jsx-runtime';
3
-
4
- // src/dial/DialProvider.tsx
5
- var DialSchemaContext = createContext(void 0);
6
- var useDialSchema = () => {
7
- const context = useContext(DialSchemaContext);
8
- if (!context) {
9
- throw new Error("useDialSchema must be used within a DialSchemaProvider");
10
- }
11
- return context;
12
- };
13
- var DialProvider = ({
14
- children,
15
- schemas,
16
- initialValues = {},
17
- onValueChange
18
- }) => {
19
- const [values, setValues] = useState(() => {
20
- const defaultValues = {};
21
- schemas.forEach((schema) => {
22
- defaultValues[schema.name] = initialValues[schema.name] ?? schema.value;
23
- });
24
- return defaultValues;
25
- });
26
- const getValue = useCallback(
27
- (name) => {
28
- return values[name];
29
- },
30
- [values]
31
- );
32
- const setValue = useCallback(
33
- (name, value) => {
34
- setValues((prev) => ({
35
- ...prev,
36
- [name]: value
37
- }));
38
- onValueChange?.(name, value);
39
- },
40
- [onValueChange]
41
- );
42
- return /* @__PURE__ */ jsx(
43
- DialSchemaContext.Provider,
44
- {
45
- value: {
46
- values,
47
- schemas,
48
- getValue,
49
- setValue,
50
- onValueChange
51
- },
52
- children
53
- }
54
- );
55
- };
56
-
57
- export { DialProvider, useDialSchema };
@@ -1,17 +1,17 @@
1
1
  import { useTimelineState } from './chunk-JWKOW2OV.mjs';
2
2
  import { useViewport } from './chunk-VPQ5SSY3.mjs';
3
+ import { TimeRuleEventDot } from './chunk-OC4HRPZU.mjs';
3
4
  import { TimelineEvent } from './chunk-N6DSPSMM.mjs';
4
5
  import { TimelineProcessBar } from './chunk-CO6EASQO.mjs';
5
6
  import { LeftWedge, RightWedge } from './chunk-IR334P7F.mjs';
6
7
  import { WheelZoomContext } from './chunk-CIPI2V54.mjs';
8
+ import { TreeSearchBar } from './chunk-73VF2W3D.mjs';
7
9
  import { TreeView } from './chunk-VQPJ7TLB.mjs';
8
10
  import { useTreeState, useTreeSearch } from './chunk-PC5DHSC4.mjs';
9
11
  import { CursorOverlay } from './chunk-SA5WKLYB.mjs';
10
12
  import { NavigationControls } from './chunk-5EXV5EWF.mjs';
11
13
  import { rightWedgeClasses, leftWedgeClasses, TOTAL_DURATION } from './chunk-4U232QAX.mjs';
12
14
  import { Tick } from './chunk-K22BEXUA.mjs';
13
- import { TimeRuleEventDot } from './chunk-OC4HRPZU.mjs';
14
- import { TreeSearchBar } from './chunk-73VF2W3D.mjs';
15
15
  import { TooltipProvider } from './chunk-ZNPI2TYG.mjs';
16
16
  import { SyncScroll, SyncDragY, SyncScrollSlave } from './chunk-PDOFOJ4P.mjs';
17
17
  import { cn } from './chunk-HMN4IKTG.mjs';
@@ -2,18 +2,18 @@
2
2
 
3
3
  var chunkWJL5HMO6_cjs = require('./chunk-WJL5HMO6.cjs');
4
4
  var chunkRJ7I6ZQK_cjs = require('./chunk-RJ7I6ZQK.cjs');
5
+ var chunkMVAFOQ67_cjs = require('./chunk-MVAFOQ67.cjs');
5
6
  var chunkTUYG6BYZ_cjs = require('./chunk-TUYG6BYZ.cjs');
6
7
  var chunkYXFHJKNW_cjs = require('./chunk-YXFHJKNW.cjs');
7
8
  var chunk5MNZYCN2_cjs = require('./chunk-5MNZYCN2.cjs');
8
9
  var chunkZ6UDRPC2_cjs = require('./chunk-Z6UDRPC2.cjs');
10
+ var chunk55RSKLJ5_cjs = require('./chunk-55RSKLJ5.cjs');
9
11
  var chunkHAVTMZR3_cjs = require('./chunk-HAVTMZR3.cjs');
10
12
  var chunkEEGQLTSQ_cjs = require('./chunk-EEGQLTSQ.cjs');
11
13
  var chunk2J75MYQA_cjs = require('./chunk-2J75MYQA.cjs');
12
14
  var chunkLP3AGGRK_cjs = require('./chunk-LP3AGGRK.cjs');
13
15
  var chunkG2ZYONQO_cjs = require('./chunk-G2ZYONQO.cjs');
14
16
  var chunk6TSA7KXX_cjs = require('./chunk-6TSA7KXX.cjs');
15
- var chunkMVAFOQ67_cjs = require('./chunk-MVAFOQ67.cjs');
16
- var chunk55RSKLJ5_cjs = require('./chunk-55RSKLJ5.cjs');
17
17
  var chunk2CZEFXEW_cjs = require('./chunk-2CZEFXEW.cjs');
18
18
  var chunkG5JZGNKY_cjs = require('./chunk-G5JZGNKY.cjs');
19
19
  var chunkOHIB3TEN_cjs = require('./chunk-OHIB3TEN.cjs');
@@ -1,9 +1,9 @@
1
1
  import { Tabs } from './chunk-B53A4WNW.mjs';
2
2
  import { Textarea } from './chunk-25RDJXX7.mjs';
3
- import { InputRoot } from './chunk-4XUJBMDE.mjs';
4
3
  import { SelectTrigger } from './chunk-CX6OFX5Z.mjs';
5
- import { withCursor } from './chunk-RAHKRYQJ.mjs';
4
+ import { InputRoot } from './chunk-4XUJBMDE.mjs';
6
5
  import { Button } from './chunk-INHZ5D7P.mjs';
6
+ import { withCursor } from './chunk-RAHKRYQJ.mjs';
7
7
 
8
8
  // src/highlight-cursor/enhanced-components.tsx
9
9
  var CursorButton = withCursor(Button);
@@ -4,8 +4,8 @@ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '
4
4
  import { Skeleton } from './chunk-DWWM2TV3.mjs';
5
5
  import { InputRoot } from './chunk-4XUJBMDE.mjs';
6
6
  import { Button } from './chunk-INHZ5D7P.mjs';
7
- import { cn } from './chunk-HMN4IKTG.mjs';
8
7
  import { useIsMobile } from './chunk-XHJDRQD7.mjs';
8
+ import { cn } from './chunk-HMN4IKTG.mjs';
9
9
  import { Slot } from '@radix-ui/react-slot';
10
10
  import { cva } from 'class-variance-authority';
11
11
  import { PanelLeftIcon } from 'lucide-react';
@@ -6,8 +6,8 @@ var chunkXGGAJUY3_cjs = require('./chunk-XGGAJUY3.cjs');
6
6
  var chunkYO6X755G_cjs = require('./chunk-YO6X755G.cjs');
7
7
  var chunk3UEVUYFQ_cjs = require('./chunk-3UEVUYFQ.cjs');
8
8
  var chunkNSQOQD43_cjs = require('./chunk-NSQOQD43.cjs');
9
- var chunkOHIB3TEN_cjs = require('./chunk-OHIB3TEN.cjs');
10
9
  var chunkJR4TVE43_cjs = require('./chunk-JR4TVE43.cjs');
10
+ var chunkOHIB3TEN_cjs = require('./chunk-OHIB3TEN.cjs');
11
11
  var reactSlot = require('@radix-ui/react-slot');
12
12
  var classVarianceAuthority = require('class-variance-authority');
13
13
  var lucideReact = require('lucide-react');
@@ -2,10 +2,10 @@
2
2
 
3
3
  var chunkL6LCOLOV_cjs = require('./chunk-L6LCOLOV.cjs');
4
4
  var chunk7DFI7CUK_cjs = require('./chunk-7DFI7CUK.cjs');
5
- var chunk3UEVUYFQ_cjs = require('./chunk-3UEVUYFQ.cjs');
6
5
  var chunkYMSWUGHW_cjs = require('./chunk-YMSWUGHW.cjs');
7
- var chunkWJY6BMVR_cjs = require('./chunk-WJY6BMVR.cjs');
6
+ var chunk3UEVUYFQ_cjs = require('./chunk-3UEVUYFQ.cjs');
8
7
  var chunkNSQOQD43_cjs = require('./chunk-NSQOQD43.cjs');
8
+ var chunkWJY6BMVR_cjs = require('./chunk-WJY6BMVR.cjs');
9
9
 
10
10
  // src/highlight-cursor/enhanced-components.tsx
11
11
  var CursorButton = chunkWJY6BMVR_cjs.withCursor(chunkNSQOQD43_cjs.Button);