@vuer-ai/vuer-uikit 0.0.44 → 0.0.47

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 (279) hide show
  1. package/dist/{chunk-MFXAWZIK.mjs → chunk-3WAI7WDK.mjs} +1 -1
  2. package/dist/chunk-4HJQPZQ2.js +139 -0
  3. package/dist/{chunk-33WI2JQ4.mjs → chunk-5VYIGLGB.mjs} +1 -1
  4. package/dist/{chunk-NC6NIC5C.js → chunk-BGXUSJT2.js} +2 -2
  5. package/dist/{chunk-FQ5PLOQ6.js → chunk-IMIHCOOE.js} +1 -1
  6. package/dist/chunk-JBQP2CBI.mjs +136 -0
  7. package/dist/chunk-KHROZRRE.mjs +1 -0
  8. package/dist/chunk-QQMHPZFI.js +92 -0
  9. package/dist/chunk-TVKPO5VK.mjs +32 -0
  10. package/dist/chunk-UZFOWGVD.mjs +90 -0
  11. package/dist/{chunk-XWC6N2UQ.js → chunk-VEUXQSY3.js} +2 -2
  12. package/dist/chunk-WRF3C24J.js +34 -0
  13. package/dist/{chunk-LD654LL2.mjs → chunk-YGSTPCLB.mjs} +2 -2
  14. package/dist/chunk-YQKZSWI6.js +2 -0
  15. package/dist/highlight-cursor/cursor-context.d.mts +7 -0
  16. package/dist/highlight-cursor/cursor-context.d.ts +7 -0
  17. package/dist/highlight-cursor/cursor-provider.d.mts +7 -0
  18. package/dist/highlight-cursor/cursor-provider.d.ts +7 -0
  19. package/dist/highlight-cursor/enhanced-components.d.mts +20 -0
  20. package/dist/highlight-cursor/enhanced-components.d.ts +20 -0
  21. package/dist/highlight-cursor/enhanced-components.js +2 -1
  22. package/dist/highlight-cursor/enhanced-components.mjs +2 -1
  23. package/dist/highlight-cursor/index.d.mts +16 -0
  24. package/dist/highlight-cursor/index.d.ts +16 -0
  25. package/dist/highlight-cursor/index.js +2 -1
  26. package/dist/highlight-cursor/index.mjs +2 -1
  27. package/dist/highlight-cursor/tabs-cursor-context.d.mts +14 -0
  28. package/dist/highlight-cursor/tabs-cursor-context.d.ts +14 -0
  29. package/dist/highlight-cursor/types.d.mts +39 -0
  30. package/dist/highlight-cursor/types.d.ts +39 -0
  31. package/dist/highlight-cursor/with-cursor.d.mts +7 -0
  32. package/dist/highlight-cursor/with-cursor.d.ts +7 -0
  33. package/dist/hooks/clientOnly.d.mts +27 -0
  34. package/dist/hooks/clientOnly.d.ts +27 -0
  35. package/dist/hooks/cn.d.mts +5 -0
  36. package/dist/hooks/cn.d.ts +5 -0
  37. package/dist/hooks/index.d.mts +8 -0
  38. package/dist/hooks/index.d.ts +8 -0
  39. package/dist/hooks/index.js +6 -1
  40. package/dist/hooks/index.mjs +2 -1
  41. package/dist/hooks/useDocument.d.mts +3 -0
  42. package/dist/hooks/useDocument.d.ts +3 -0
  43. package/dist/hooks/useDragSelect.d.mts +15 -0
  44. package/dist/hooks/useDragSelect.d.ts +15 -0
  45. package/dist/hooks/useDragSelect.js +10 -0
  46. package/dist/hooks/useDragSelect.mjs +1 -0
  47. package/dist/hooks/useLocalStorage.d.mts +3 -0
  48. package/dist/hooks/useLocalStorage.d.ts +3 -0
  49. package/dist/hooks/useWindow.d.mts +3 -0
  50. package/dist/hooks/useWindow.d.ts +3 -0
  51. package/dist/index.d.mts +79 -0
  52. package/dist/index.d.ts +79 -0
  53. package/dist/index.js +105 -85
  54. package/dist/index.mjs +20 -16
  55. package/dist/styles/theme.d.mts +2 -0
  56. package/dist/styles/theme.d.ts +2 -0
  57. package/dist/styles/toast.d.mts +2 -0
  58. package/dist/styles/toast.d.ts +2 -0
  59. package/dist/styles/variables.d.mts +2 -0
  60. package/dist/styles/variables.d.ts +2 -0
  61. package/dist/ui/avatar.d.mts +126 -0
  62. package/dist/ui/avatar.d.ts +126 -0
  63. package/dist/ui/avatar.js +2 -1
  64. package/dist/ui/avatar.mjs +2 -1
  65. package/dist/ui/badge.d.mts +14 -0
  66. package/dist/ui/badge.d.ts +14 -0
  67. package/dist/ui/badge.js +2 -1
  68. package/dist/ui/badge.mjs +2 -1
  69. package/dist/ui/button.d.mts +25 -0
  70. package/dist/ui/button.d.ts +25 -0
  71. package/dist/ui/button.js +2 -1
  72. package/dist/ui/button.mjs +2 -1
  73. package/dist/ui/card.d.mts +33 -0
  74. package/dist/ui/card.d.ts +33 -0
  75. package/dist/ui/card.js +2 -1
  76. package/dist/ui/card.mjs +2 -1
  77. package/dist/ui/checkbox.d.mts +11 -0
  78. package/dist/ui/checkbox.d.ts +11 -0
  79. package/dist/ui/checkbox.js +2 -1
  80. package/dist/ui/checkbox.mjs +2 -1
  81. package/dist/ui/collapsible.d.mts +8 -0
  82. package/dist/ui/collapsible.d.ts +8 -0
  83. package/dist/ui/collapsible.js +2 -1
  84. package/dist/ui/collapsible.mjs +2 -1
  85. package/dist/ui/drag-selectable/DragSelectProvider.d.mts +22 -0
  86. package/dist/ui/drag-selectable/DragSelectProvider.d.ts +22 -0
  87. package/dist/ui/drag-selectable/DragSelectProvider.js +14 -0
  88. package/dist/ui/drag-selectable/DragSelectProvider.mjs +1 -0
  89. package/dist/ui/drag-selectable/createSelectable.d.mts +16 -0
  90. package/dist/ui/drag-selectable/createSelectable.d.ts +16 -0
  91. package/dist/ui/drag-selectable/createSelectable.js +11 -0
  92. package/dist/ui/drag-selectable/createSelectable.mjs +2 -0
  93. package/dist/ui/drag-selectable/index.d.mts +4 -0
  94. package/dist/ui/drag-selectable/index.d.ts +4 -0
  95. package/dist/ui/drag-selectable/index.js +20 -0
  96. package/dist/ui/drag-selectable/index.mjs +3 -0
  97. package/dist/ui/drawer.d.mts +34 -0
  98. package/dist/ui/drawer.d.ts +34 -0
  99. package/dist/ui/drawer.js +2 -1
  100. package/dist/ui/drawer.mjs +2 -1
  101. package/dist/ui/dropdown.d.mts +29 -0
  102. package/dist/ui/dropdown.d.ts +29 -0
  103. package/dist/ui/dropdown.js +2 -1
  104. package/dist/ui/dropdown.mjs +2 -1
  105. package/dist/ui/form/CmInput.d.mts +11 -0
  106. package/dist/ui/form/CmInput.d.ts +11 -0
  107. package/dist/ui/form/CmInput.js +2 -1
  108. package/dist/ui/form/CmInput.mjs +2 -1
  109. package/dist/ui/form/DegInput.d.mts +11 -0
  110. package/dist/ui/form/DegInput.d.ts +11 -0
  111. package/dist/ui/form/DegInput.js +2 -1
  112. package/dist/ui/form/DegInput.mjs +2 -1
  113. package/dist/ui/form/EulerDegInput.d.mts +13 -0
  114. package/dist/ui/form/EulerDegInput.d.ts +13 -0
  115. package/dist/ui/form/EulerDegInput.js +2 -1
  116. package/dist/ui/form/EulerDegInput.mjs +2 -1
  117. package/dist/ui/form/EulerInput.d.mts +15 -0
  118. package/dist/ui/form/EulerInput.d.ts +15 -0
  119. package/dist/ui/form/EulerInput.js +2 -1
  120. package/dist/ui/form/EulerInput.mjs +2 -1
  121. package/dist/ui/form/EulerRadInput.d.mts +13 -0
  122. package/dist/ui/form/EulerRadInput.d.ts +13 -0
  123. package/dist/ui/form/EulerRadInput.js +2 -1
  124. package/dist/ui/form/EulerRadInput.mjs +2 -1
  125. package/dist/ui/form/InchInput.d.mts +11 -0
  126. package/dist/ui/form/InchInput.d.ts +11 -0
  127. package/dist/ui/form/InchInput.js +2 -1
  128. package/dist/ui/form/InchInput.mjs +2 -1
  129. package/dist/ui/form/IntInput.d.mts +11 -0
  130. package/dist/ui/form/IntInput.d.ts +11 -0
  131. package/dist/ui/form/IntInput.js +2 -1
  132. package/dist/ui/form/IntInput.mjs +2 -1
  133. package/dist/ui/form/KVectorInput.d.mts +13 -0
  134. package/dist/ui/form/KVectorInput.d.ts +13 -0
  135. package/dist/ui/form/KVectorInput.js +2 -1
  136. package/dist/ui/form/KVectorInput.mjs +2 -1
  137. package/dist/ui/form/NumberInput.d.mts +11 -0
  138. package/dist/ui/form/NumberInput.d.ts +11 -0
  139. package/dist/ui/form/NumberInput.js +2 -1
  140. package/dist/ui/form/NumberInput.mjs +2 -1
  141. package/dist/ui/form/QuaternionInput.d.mts +14 -0
  142. package/dist/ui/form/QuaternionInput.d.ts +14 -0
  143. package/dist/ui/form/QuaternionInput.js +2 -1
  144. package/dist/ui/form/QuaternionInput.mjs +2 -1
  145. package/dist/ui/form/RadInput.d.mts +11 -0
  146. package/dist/ui/form/RadInput.d.ts +11 -0
  147. package/dist/ui/form/RadInput.js +2 -1
  148. package/dist/ui/form/RadInput.mjs +2 -1
  149. package/dist/ui/form/TimeInput.d.mts +11 -0
  150. package/dist/ui/form/TimeInput.d.ts +11 -0
  151. package/dist/ui/form/TimeInput.js +2 -1
  152. package/dist/ui/form/TimeInput.mjs +2 -1
  153. package/dist/ui/form/Vec3Input.d.mts +14 -0
  154. package/dist/ui/form/Vec3Input.d.ts +14 -0
  155. package/dist/ui/form/Vec3Input.js +2 -1
  156. package/dist/ui/form/Vec3Input.mjs +2 -1
  157. package/dist/ui/form/VectorInput.d.mts +14 -0
  158. package/dist/ui/form/VectorInput.d.ts +14 -0
  159. package/dist/ui/form/VectorInput.js +2 -1
  160. package/dist/ui/form/VectorInput.mjs +2 -1
  161. package/dist/ui/form/index.d.mts +19 -0
  162. package/dist/ui/form/index.d.ts +19 -0
  163. package/dist/ui/form/index.js +27 -26
  164. package/dist/ui/form/index.mjs +7 -6
  165. package/dist/ui/index.d.mts +67 -0
  166. package/dist/ui/index.d.ts +67 -0
  167. package/dist/ui/index.js +101 -85
  168. package/dist/ui/index.mjs +20 -16
  169. package/dist/ui/input-numbers.d.mts +14 -0
  170. package/dist/ui/input-numbers.d.ts +14 -0
  171. package/dist/ui/input-numbers.js +2 -1
  172. package/dist/ui/input-numbers.mjs +2 -1
  173. package/dist/ui/input.d.mts +37 -0
  174. package/dist/ui/input.d.ts +37 -0
  175. package/dist/ui/input.js +2 -1
  176. package/dist/ui/input.mjs +2 -1
  177. package/dist/ui/layout.d.mts +15 -0
  178. package/dist/ui/layout.d.ts +15 -0
  179. package/dist/ui/layout.js +2 -1
  180. package/dist/ui/layout.mjs +2 -1
  181. package/dist/ui/modal.d.mts +32 -0
  182. package/dist/ui/modal.d.ts +32 -0
  183. package/dist/ui/modal.js +2 -1
  184. package/dist/ui/modal.mjs +2 -1
  185. package/dist/ui/popover.d.mts +11 -0
  186. package/dist/ui/popover.d.ts +11 -0
  187. package/dist/ui/popover.js +2 -1
  188. package/dist/ui/popover.mjs +2 -1
  189. package/dist/ui/radio-group.d.mts +14 -0
  190. package/dist/ui/radio-group.d.ts +14 -0
  191. package/dist/ui/radio-group.js +2 -1
  192. package/dist/ui/radio-group.mjs +2 -1
  193. package/dist/ui/select.d.mts +78 -0
  194. package/dist/ui/select.d.ts +78 -0
  195. package/dist/ui/select.js +2 -1
  196. package/dist/ui/select.mjs +2 -1
  197. package/dist/ui/sheet.d.mts +23 -0
  198. package/dist/ui/sheet.d.ts +23 -0
  199. package/dist/ui/sheet.js +2 -1
  200. package/dist/ui/sheet.mjs +2 -1
  201. package/dist/ui/slider.d.mts +10 -0
  202. package/dist/ui/slider.d.ts +10 -0
  203. package/dist/ui/slider.js +2 -1
  204. package/dist/ui/slider.mjs +2 -1
  205. package/dist/ui/switch.d.mts +6 -0
  206. package/dist/ui/switch.d.ts +6 -0
  207. package/dist/ui/switch.js +2 -1
  208. package/dist/ui/switch.mjs +2 -1
  209. package/dist/ui/tabs.d.mts +16 -0
  210. package/dist/ui/tabs.d.ts +16 -0
  211. package/dist/ui/tabs.js +2 -1
  212. package/dist/ui/tabs.mjs +2 -1
  213. package/dist/ui/textarea.d.mts +19 -0
  214. package/dist/ui/textarea.d.ts +19 -0
  215. package/dist/ui/textarea.js +2 -1
  216. package/dist/ui/textarea.mjs +2 -1
  217. package/dist/ui/theme/ThemeProvider.d.mts +16 -0
  218. package/dist/ui/theme/ThemeProvider.d.ts +16 -0
  219. package/dist/ui/theme/index.d.mts +5 -0
  220. package/dist/ui/theme/index.d.ts +5 -0
  221. package/dist/ui/theme/themeScript.d.mts +19 -0
  222. package/dist/ui/theme/themeScript.d.ts +19 -0
  223. package/dist/ui/theme/types.d.mts +47 -0
  224. package/dist/ui/theme/types.d.ts +47 -0
  225. package/dist/ui/timeline.d.mts +42 -0
  226. package/dist/ui/timeline.d.ts +42 -0
  227. package/dist/ui/timeline.js +5 -4
  228. package/dist/ui/timeline.mjs +4 -3
  229. package/dist/ui/toast.d.mts +10 -0
  230. package/dist/ui/toast.d.ts +10 -0
  231. package/dist/ui/toggle-group.d.mts +15 -0
  232. package/dist/ui/toggle-group.d.ts +15 -0
  233. package/dist/ui/toggle-group.js +2 -1
  234. package/dist/ui/toggle-group.mjs +2 -1
  235. package/dist/ui/toggle.d.mts +18 -0
  236. package/dist/ui/toggle.d.ts +18 -0
  237. package/dist/ui/toggle.js +2 -1
  238. package/dist/ui/toggle.mjs +2 -1
  239. package/dist/ui/tooltip.d.mts +22 -0
  240. package/dist/ui/tooltip.d.ts +22 -0
  241. package/dist/ui/tooltip.js +2 -1
  242. package/dist/ui/tooltip.mjs +2 -1
  243. package/dist/ui/tree-view-v2.d.mts +35 -0
  244. package/dist/ui/tree-view-v2.d.ts +35 -0
  245. package/dist/ui/tree-view-v2.js +4 -3
  246. package/dist/ui/tree-view-v2.mjs +3 -2
  247. package/dist/ui/tree-view.d.mts +31 -0
  248. package/dist/ui/tree-view.d.ts +31 -0
  249. package/dist/ui/tree-view.js +2 -1
  250. package/dist/ui/tree-view.mjs +2 -1
  251. package/dist/ui/version-badge.d.mts +26 -0
  252. package/dist/ui/version-badge.d.ts +26 -0
  253. package/dist/ui/version-badge.js +4 -3
  254. package/dist/ui/version-badge.mjs +3 -2
  255. package/package.json +7 -5
  256. package/src/highlight-cursor/cursor-provider.tsx +2 -2
  257. package/src/hooks/clientOnly.tsx +5 -5
  258. package/src/hooks/index.ts +1 -0
  259. package/src/hooks/use-mobile.ts +19 -0
  260. package/src/hooks/useDragSelect.ts +107 -0
  261. package/src/ui/button.tsx +1 -1
  262. package/src/ui/drag-selectable/DragSelectProvider.tsx +178 -0
  263. package/src/ui/drag-selectable/createSelectable.tsx +42 -0
  264. package/src/ui/drag-selectable/index.ts +2 -0
  265. package/src/ui/form/EulerInput.tsx +1 -1
  266. package/src/ui/form/QuaternionInput.tsx +1 -1
  267. package/src/ui/form/Vec3Input.tsx +1 -1
  268. package/src/ui/index.ts +3 -0
  269. package/src/ui/pagination.tsx +130 -0
  270. package/src/ui/select.tsx +0 -1
  271. package/src/ui/separator.tsx +26 -0
  272. package/src/ui/sidebar.tsx +694 -0
  273. package/src/ui/skeleton.tsx +15 -0
  274. package/src/ui/tree-view-v2.tsx +3 -3
  275. package/src/ui/tree-view.tsx +7 -2
  276. /package/dist/{chunk-LXDQ4KMN.mjs → chunk-4IXZRYYD.mjs} +0 -0
  277. /package/dist/{chunk-YRM45Z7N.mjs → chunk-AYKQVWMR.mjs} +0 -0
  278. /package/dist/{chunk-NACWD4CC.js → chunk-JFSQNIDX.js} +0 -0
  279. /package/dist/{chunk-T4N7UHZ7.js → chunk-UBVYEZI3.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { TreeView } from './chunk-LD654LL2.mjs';
1
+ import { TreeView } from './chunk-YGSTPCLB.mjs';
2
2
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-TCN3UDQE.mjs';
3
3
  import { cn } from './chunk-WM2VP7MI.mjs';
4
4
  import { Magnet, ChevronLeft, ChevronRight } from 'lucide-react';
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+
6
+ // src/ui/drag-selectable/DragSelectProvider.tsx
7
+ var DragSelectContext = react.createContext(void 0);
8
+ var DragSelectProvider = ({ children }) => {
9
+ const [selectedItems, setSelectedItems] = react.useState(/* @__PURE__ */ new Set());
10
+ const [isDragging, setIsDragging] = react.useState(false);
11
+ const dragStartId = react.useRef(null);
12
+ const dragMode = react.useRef("replace");
13
+ const dragStartSelection = react.useRef(/* @__PURE__ */ new Set());
14
+ const registeredItems = react.useRef(/* @__PURE__ */ new Map());
15
+ const registerItem = react.useCallback((id, index) => {
16
+ registeredItems.current.set(id, index);
17
+ }, []);
18
+ const unregisterItem = react.useCallback((id) => {
19
+ registeredItems.current.delete(id);
20
+ }, []);
21
+ const startDrag = react.useCallback(
22
+ (startId, mode = "replace") => {
23
+ setIsDragging(true);
24
+ dragStartId.current = startId;
25
+ dragMode.current = mode;
26
+ dragStartSelection.current = new Set(selectedItems);
27
+ if (mode === "replace") {
28
+ setSelectedItems(/* @__PURE__ */ new Set([startId]));
29
+ } else if (mode === "add") {
30
+ setSelectedItems((prev) => new Set(Array.from(prev).concat([startId])));
31
+ } else if (mode === "toggle") {
32
+ setSelectedItems((prev) => {
33
+ const newSelection = new Set(prev);
34
+ if (newSelection.has(startId)) {
35
+ newSelection.delete(startId);
36
+ } else {
37
+ newSelection.add(startId);
38
+ }
39
+ return newSelection;
40
+ });
41
+ }
42
+ },
43
+ [selectedItems]
44
+ );
45
+ const updateSelection = react.useCallback(
46
+ (currentId) => {
47
+ if (!isDragging || !dragStartId.current) return;
48
+ const startIndex = registeredItems.current.get(dragStartId.current);
49
+ const currentIndex = registeredItems.current.get(currentId);
50
+ if (startIndex === void 0 || currentIndex === void 0) return;
51
+ const minIndex = Math.min(startIndex, currentIndex);
52
+ const maxIndex = Math.max(startIndex, currentIndex);
53
+ const dragSelection = /* @__PURE__ */ new Set();
54
+ Array.from(registeredItems.current.entries()).forEach(([itemId, itemIndex]) => {
55
+ if (itemIndex >= minIndex && itemIndex <= maxIndex) {
56
+ dragSelection.add(itemId);
57
+ }
58
+ });
59
+ if (dragMode.current === "replace") {
60
+ setSelectedItems(dragSelection);
61
+ } else if (dragMode.current === "add") {
62
+ setSelectedItems(
63
+ () => new Set(Array.from(dragStartSelection.current).concat(Array.from(dragSelection)))
64
+ );
65
+ } else if (dragMode.current === "toggle") {
66
+ setSelectedItems(() => {
67
+ const newSelection = new Set(dragStartSelection.current);
68
+ Array.from(dragSelection).forEach((itemId) => {
69
+ if (newSelection.has(itemId)) {
70
+ newSelection.delete(itemId);
71
+ } else {
72
+ newSelection.add(itemId);
73
+ }
74
+ });
75
+ return newSelection;
76
+ });
77
+ }
78
+ },
79
+ [isDragging]
80
+ );
81
+ const endDrag = react.useCallback(() => {
82
+ setIsDragging(false);
83
+ dragStartId.current = null;
84
+ }, []);
85
+ const clearSelection = react.useCallback(() => {
86
+ setSelectedItems(/* @__PURE__ */ new Set());
87
+ }, []);
88
+ const isSelected = react.useCallback(
89
+ (id) => {
90
+ return selectedItems.has(id);
91
+ },
92
+ [selectedItems]
93
+ );
94
+ react.useEffect(() => {
95
+ const handleMouseUp = () => {
96
+ if (isDragging) {
97
+ endDrag();
98
+ }
99
+ };
100
+ const handleKeyDown = (e) => {
101
+ if (e.key === "Escape") {
102
+ clearSelection();
103
+ }
104
+ };
105
+ document.addEventListener("mouseup", handleMouseUp);
106
+ document.addEventListener("keydown", handleKeyDown);
107
+ return () => {
108
+ document.removeEventListener("mouseup", handleMouseUp);
109
+ document.removeEventListener("keydown", handleKeyDown);
110
+ };
111
+ }, [isDragging, endDrag, clearSelection]);
112
+ return /* @__PURE__ */ jsxRuntime.jsx(
113
+ DragSelectContext.Provider,
114
+ {
115
+ value: {
116
+ selectedItems,
117
+ isDragging,
118
+ registerItem,
119
+ unregisterItem,
120
+ startDrag,
121
+ updateSelection,
122
+ endDrag,
123
+ clearSelection,
124
+ isSelected
125
+ },
126
+ children
127
+ }
128
+ );
129
+ };
130
+ var useDragSelectContext = () => {
131
+ const context = react.useContext(DragSelectContext);
132
+ if (context === void 0) {
133
+ throw new Error("useDragSelectContext must be used within a DragSelectProvider");
134
+ }
135
+ return context;
136
+ };
137
+
138
+ exports.DragSelectProvider = DragSelectProvider;
139
+ exports.useDragSelectContext = useDragSelectContext;
@@ -1,7 +1,7 @@
1
1
  import { Badge } from './chunk-IZCHLZ4H.mjs';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
- var PACKAGE_VERSION = "0.0.44" ;
4
+ var PACKAGE_VERSION = "0.0.47" ;
5
5
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
6
6
  function VersionBadge({
7
7
  className,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXWC6N2UQ_js = require('./chunk-XWC6N2UQ.js');
3
+ var chunkVEUXQSY3_js = require('./chunk-VEUXQSY3.js');
4
4
  var chunkER6XHUS7_js = require('./chunk-ER6XHUS7.js');
5
5
  var chunk7KYAICHB_js = require('./chunk-7KYAICHB.js');
6
6
  var lucideReact = require('lucide-react');
@@ -510,7 +510,7 @@ function Timeline({
510
510
  }, [viewStart, viewDuration, updateCursor]);
511
511
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-bg-primary text-text-primary border-line-secondary/20 rounded-uk-md mx-auto w-full max-w-7xl overflow-hidden border font-sans shadow-[0_4px_16px_0_var(--color-shadow-secondary)]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[minmax(300px,30%)_1fr]", children: [
512
512
  /* @__PURE__ */ jsxRuntime.jsx(
513
- chunkXWC6N2UQ_js.TreeView,
513
+ chunkVEUXQSY3_js.TreeView,
514
514
  {
515
515
  data,
516
516
  getIcon,
@@ -3,7 +3,7 @@
3
3
  var chunkILJK43VJ_js = require('./chunk-ILJK43VJ.js');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
 
6
- var PACKAGE_VERSION = "0.0.44" ;
6
+ var PACKAGE_VERSION = "0.0.47" ;
7
7
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
8
8
  function VersionBadge({
9
9
  className,
@@ -0,0 +1,136 @@
1
+ import { createContext, useState, useRef, useCallback, useEffect, useContext } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // src/ui/drag-selectable/DragSelectProvider.tsx
5
+ var DragSelectContext = createContext(void 0);
6
+ var DragSelectProvider = ({ children }) => {
7
+ const [selectedItems, setSelectedItems] = useState(/* @__PURE__ */ new Set());
8
+ const [isDragging, setIsDragging] = useState(false);
9
+ const dragStartId = useRef(null);
10
+ const dragMode = useRef("replace");
11
+ const dragStartSelection = useRef(/* @__PURE__ */ new Set());
12
+ const registeredItems = useRef(/* @__PURE__ */ new Map());
13
+ const registerItem = useCallback((id, index) => {
14
+ registeredItems.current.set(id, index);
15
+ }, []);
16
+ const unregisterItem = useCallback((id) => {
17
+ registeredItems.current.delete(id);
18
+ }, []);
19
+ const startDrag = useCallback(
20
+ (startId, mode = "replace") => {
21
+ setIsDragging(true);
22
+ dragStartId.current = startId;
23
+ dragMode.current = mode;
24
+ dragStartSelection.current = new Set(selectedItems);
25
+ if (mode === "replace") {
26
+ setSelectedItems(/* @__PURE__ */ new Set([startId]));
27
+ } else if (mode === "add") {
28
+ setSelectedItems((prev) => new Set(Array.from(prev).concat([startId])));
29
+ } else if (mode === "toggle") {
30
+ setSelectedItems((prev) => {
31
+ const newSelection = new Set(prev);
32
+ if (newSelection.has(startId)) {
33
+ newSelection.delete(startId);
34
+ } else {
35
+ newSelection.add(startId);
36
+ }
37
+ return newSelection;
38
+ });
39
+ }
40
+ },
41
+ [selectedItems]
42
+ );
43
+ const updateSelection = useCallback(
44
+ (currentId) => {
45
+ if (!isDragging || !dragStartId.current) return;
46
+ const startIndex = registeredItems.current.get(dragStartId.current);
47
+ const currentIndex = registeredItems.current.get(currentId);
48
+ if (startIndex === void 0 || currentIndex === void 0) return;
49
+ const minIndex = Math.min(startIndex, currentIndex);
50
+ const maxIndex = Math.max(startIndex, currentIndex);
51
+ const dragSelection = /* @__PURE__ */ new Set();
52
+ Array.from(registeredItems.current.entries()).forEach(([itemId, itemIndex]) => {
53
+ if (itemIndex >= minIndex && itemIndex <= maxIndex) {
54
+ dragSelection.add(itemId);
55
+ }
56
+ });
57
+ if (dragMode.current === "replace") {
58
+ setSelectedItems(dragSelection);
59
+ } else if (dragMode.current === "add") {
60
+ setSelectedItems(
61
+ () => new Set(Array.from(dragStartSelection.current).concat(Array.from(dragSelection)))
62
+ );
63
+ } else if (dragMode.current === "toggle") {
64
+ setSelectedItems(() => {
65
+ const newSelection = new Set(dragStartSelection.current);
66
+ Array.from(dragSelection).forEach((itemId) => {
67
+ if (newSelection.has(itemId)) {
68
+ newSelection.delete(itemId);
69
+ } else {
70
+ newSelection.add(itemId);
71
+ }
72
+ });
73
+ return newSelection;
74
+ });
75
+ }
76
+ },
77
+ [isDragging]
78
+ );
79
+ const endDrag = useCallback(() => {
80
+ setIsDragging(false);
81
+ dragStartId.current = null;
82
+ }, []);
83
+ const clearSelection = useCallback(() => {
84
+ setSelectedItems(/* @__PURE__ */ new Set());
85
+ }, []);
86
+ const isSelected = useCallback(
87
+ (id) => {
88
+ return selectedItems.has(id);
89
+ },
90
+ [selectedItems]
91
+ );
92
+ useEffect(() => {
93
+ const handleMouseUp = () => {
94
+ if (isDragging) {
95
+ endDrag();
96
+ }
97
+ };
98
+ const handleKeyDown = (e) => {
99
+ if (e.key === "Escape") {
100
+ clearSelection();
101
+ }
102
+ };
103
+ document.addEventListener("mouseup", handleMouseUp);
104
+ document.addEventListener("keydown", handleKeyDown);
105
+ return () => {
106
+ document.removeEventListener("mouseup", handleMouseUp);
107
+ document.removeEventListener("keydown", handleKeyDown);
108
+ };
109
+ }, [isDragging, endDrag, clearSelection]);
110
+ return /* @__PURE__ */ jsx(
111
+ DragSelectContext.Provider,
112
+ {
113
+ value: {
114
+ selectedItems,
115
+ isDragging,
116
+ registerItem,
117
+ unregisterItem,
118
+ startDrag,
119
+ updateSelection,
120
+ endDrag,
121
+ clearSelection,
122
+ isSelected
123
+ },
124
+ children
125
+ }
126
+ );
127
+ };
128
+ var useDragSelectContext = () => {
129
+ const context = useContext(DragSelectContext);
130
+ if (context === void 0) {
131
+ throw new Error("useDragSelectContext must be used within a DragSelectProvider");
132
+ }
133
+ return context;
134
+ };
135
+
136
+ export { DragSelectProvider, useDragSelectContext };
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ // src/hooks/useDragSelect.ts
6
+ function useDragSelect(options = {}) {
7
+ const [selectedItems, setSelectedItems] = react.useState(/* @__PURE__ */ new Set());
8
+ const [isDragging, setIsDragging] = react.useState(false);
9
+ const [dragMode, setDragMode] = react.useState("toggle");
10
+ react.useEffect(() => {
11
+ var _a;
12
+ (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, selectedItems);
13
+ }, [selectedItems, options.onSelectionChange]);
14
+ const handleMouseDown = react.useCallback((id, e) => {
15
+ e.preventDefault();
16
+ setIsDragging(true);
17
+ const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
18
+ setDragMode(mode);
19
+ if (mode === "replace") {
20
+ setSelectedItems(/* @__PURE__ */ new Set([id]));
21
+ } else {
22
+ setSelectedItems((prev) => {
23
+ const newSet = new Set(prev);
24
+ if (newSet.has(id)) {
25
+ newSet.delete(id);
26
+ } else {
27
+ newSet.add(id);
28
+ }
29
+ return newSet;
30
+ });
31
+ }
32
+ }, []);
33
+ const handleMouseEnter = react.useCallback(
34
+ (id) => {
35
+ if (!isDragging) return;
36
+ if (dragMode === "replace") {
37
+ setSelectedItems((prev) => /* @__PURE__ */ new Set([...prev, id]));
38
+ } else {
39
+ setSelectedItems((prev) => {
40
+ const newSet = new Set(prev);
41
+ if (newSet.has(id)) {
42
+ newSet.delete(id);
43
+ } else {
44
+ newSet.add(id);
45
+ }
46
+ return newSet;
47
+ });
48
+ }
49
+ },
50
+ [isDragging, dragMode]
51
+ );
52
+ react.useCallback(() => {
53
+ setIsDragging(false);
54
+ }, []);
55
+ const clearSelection = react.useCallback(() => {
56
+ setSelectedItems(/* @__PURE__ */ new Set());
57
+ }, []);
58
+ const isSelected = react.useCallback(
59
+ (id) => selectedItems.has(id),
60
+ [selectedItems]
61
+ );
62
+ const getItemProps = react.useCallback(
63
+ (id) => ({
64
+ "data-selected": selectedItems.has(id),
65
+ onMouseDown: (e) => handleMouseDown(id, e),
66
+ onMouseEnter: () => handleMouseEnter(id)
67
+ }),
68
+ [selectedItems, handleMouseDown, handleMouseEnter]
69
+ );
70
+ react.useEffect(() => {
71
+ const handleGlobalMouseUp = () => setIsDragging(false);
72
+ const handleEscape = (e) => {
73
+ if (e.key === "Escape") {
74
+ clearSelection();
75
+ }
76
+ };
77
+ document.addEventListener("mouseup", handleGlobalMouseUp);
78
+ document.addEventListener("keydown", handleEscape);
79
+ return () => {
80
+ document.removeEventListener("mouseup", handleGlobalMouseUp);
81
+ document.removeEventListener("keydown", handleEscape);
82
+ };
83
+ }, [clearSelection]);
84
+ return {
85
+ selectedItems,
86
+ isSelected,
87
+ clearSelection,
88
+ getItemProps
89
+ };
90
+ }
91
+
92
+ exports.useDragSelect = useDragSelect;
@@ -0,0 +1,32 @@
1
+ import { useDragSelectContext } from './chunk-JBQP2CBI.mjs';
2
+ import { useEffect } from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function createSelectable(Component) {
6
+ return function SelectableComponent(props) {
7
+ const { registerItem, unregisterItem, startDrag, updateSelection, isSelected } = useDragSelectContext();
8
+ const { id, index } = props;
9
+ useEffect(() => {
10
+ registerItem(id, index);
11
+ return () => unregisterItem(id);
12
+ }, [id, index, registerItem, unregisterItem]);
13
+ const handleMouseDown = (e) => {
14
+ const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
15
+ startDrag(id, mode);
16
+ };
17
+ const handleMouseEnter = () => {
18
+ updateSelection(id);
19
+ };
20
+ return /* @__PURE__ */ jsx(
21
+ Component,
22
+ {
23
+ ...props,
24
+ isSelected: isSelected(id),
25
+ onMouseDown: handleMouseDown,
26
+ onMouseEnter: handleMouseEnter
27
+ }
28
+ );
29
+ };
30
+ }
31
+
32
+ export { createSelectable };
@@ -0,0 +1,90 @@
1
+ import { useState, useEffect, useCallback } from 'react';
2
+
3
+ // src/hooks/useDragSelect.ts
4
+ function useDragSelect(options = {}) {
5
+ const [selectedItems, setSelectedItems] = useState(/* @__PURE__ */ new Set());
6
+ const [isDragging, setIsDragging] = useState(false);
7
+ const [dragMode, setDragMode] = useState("toggle");
8
+ useEffect(() => {
9
+ var _a;
10
+ (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, selectedItems);
11
+ }, [selectedItems, options.onSelectionChange]);
12
+ const handleMouseDown = useCallback((id, e) => {
13
+ e.preventDefault();
14
+ setIsDragging(true);
15
+ const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
16
+ setDragMode(mode);
17
+ if (mode === "replace") {
18
+ setSelectedItems(/* @__PURE__ */ new Set([id]));
19
+ } else {
20
+ setSelectedItems((prev) => {
21
+ const newSet = new Set(prev);
22
+ if (newSet.has(id)) {
23
+ newSet.delete(id);
24
+ } else {
25
+ newSet.add(id);
26
+ }
27
+ return newSet;
28
+ });
29
+ }
30
+ }, []);
31
+ const handleMouseEnter = useCallback(
32
+ (id) => {
33
+ if (!isDragging) return;
34
+ if (dragMode === "replace") {
35
+ setSelectedItems((prev) => /* @__PURE__ */ new Set([...prev, id]));
36
+ } else {
37
+ setSelectedItems((prev) => {
38
+ const newSet = new Set(prev);
39
+ if (newSet.has(id)) {
40
+ newSet.delete(id);
41
+ } else {
42
+ newSet.add(id);
43
+ }
44
+ return newSet;
45
+ });
46
+ }
47
+ },
48
+ [isDragging, dragMode]
49
+ );
50
+ useCallback(() => {
51
+ setIsDragging(false);
52
+ }, []);
53
+ const clearSelection = useCallback(() => {
54
+ setSelectedItems(/* @__PURE__ */ new Set());
55
+ }, []);
56
+ const isSelected = useCallback(
57
+ (id) => selectedItems.has(id),
58
+ [selectedItems]
59
+ );
60
+ const getItemProps = useCallback(
61
+ (id) => ({
62
+ "data-selected": selectedItems.has(id),
63
+ onMouseDown: (e) => handleMouseDown(id, e),
64
+ onMouseEnter: () => handleMouseEnter(id)
65
+ }),
66
+ [selectedItems, handleMouseDown, handleMouseEnter]
67
+ );
68
+ useEffect(() => {
69
+ const handleGlobalMouseUp = () => setIsDragging(false);
70
+ const handleEscape = (e) => {
71
+ if (e.key === "Escape") {
72
+ clearSelection();
73
+ }
74
+ };
75
+ document.addEventListener("mouseup", handleGlobalMouseUp);
76
+ document.addEventListener("keydown", handleEscape);
77
+ return () => {
78
+ document.removeEventListener("mouseup", handleGlobalMouseUp);
79
+ document.removeEventListener("keydown", handleEscape);
80
+ };
81
+ }, [clearSelection]);
82
+ return {
83
+ selectedItems,
84
+ isSelected,
85
+ clearSelection,
86
+ getItemProps
87
+ };
88
+ }
89
+
90
+ export { useDragSelect };
@@ -224,7 +224,7 @@ function TreeView({
224
224
  "button",
225
225
  {
226
226
  onClick: () => toggleItem(item.id),
227
- className: "absolute z-20 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
227
+ className: "absolute z-20 flex cursor-pointer items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
228
228
  children: /* @__PURE__ */ jsxRuntime.jsx(
229
229
  lucideReact.ChevronDown,
230
230
  {
@@ -240,7 +240,7 @@ function TreeView({
240
240
  "div",
241
241
  {
242
242
  className: chunk7KYAICHB_js.cn(
243
- "transition-opacity",
243
+ "cursor-pointer transition-opacity",
244
244
  item.isCollapsible && "group-hover:opacity-0"
245
245
  ),
246
246
  children: getIcon(item)
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var chunk4HJQPZQ2_js = require('./chunk-4HJQPZQ2.js');
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function createSelectable(Component) {
8
+ return function SelectableComponent(props) {
9
+ const { registerItem, unregisterItem, startDrag, updateSelection, isSelected } = chunk4HJQPZQ2_js.useDragSelectContext();
10
+ const { id, index } = props;
11
+ react.useEffect(() => {
12
+ registerItem(id, index);
13
+ return () => unregisterItem(id);
14
+ }, [id, index, registerItem, unregisterItem]);
15
+ const handleMouseDown = (e) => {
16
+ const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
17
+ startDrag(id, mode);
18
+ };
19
+ const handleMouseEnter = () => {
20
+ updateSelection(id);
21
+ };
22
+ return /* @__PURE__ */ jsxRuntime.jsx(
23
+ Component,
24
+ {
25
+ ...props,
26
+ isSelected: isSelected(id),
27
+ onMouseDown: handleMouseDown,
28
+ onMouseEnter: handleMouseEnter
29
+ }
30
+ );
31
+ };
32
+ }
33
+
34
+ exports.createSelectable = createSelectable;
@@ -222,7 +222,7 @@ function TreeView({
222
222
  "button",
223
223
  {
224
224
  onClick: () => toggleItem(item.id),
225
- className: "absolute z-20 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
225
+ className: "absolute z-20 flex cursor-pointer items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
226
226
  children: /* @__PURE__ */ jsx(
227
227
  ChevronDown,
228
228
  {
@@ -238,7 +238,7 @@ function TreeView({
238
238
  "div",
239
239
  {
240
240
  className: cn(
241
- "transition-opacity",
241
+ "cursor-pointer transition-opacity",
242
242
  item.isCollapsible && "group-hover:opacity-0"
243
243
  ),
244
244
  children: getIcon(item)
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,7 @@
1
+ import * as react from 'react';
2
+ import { CursorContextType } from './types.mjs';
3
+
4
+ declare const CursorContext: react.Context<CursorContextType>;
5
+ declare const useCursor: () => CursorContextType;
6
+
7
+ export { CursorContext, useCursor };
@@ -0,0 +1,7 @@
1
+ import * as react from 'react';
2
+ import { CursorContextType } from './types.js';
3
+
4
+ declare const CursorContext: react.Context<CursorContextType>;
5
+ declare const useCursor: () => CursorContextType;
6
+
7
+ export { CursorContext, useCursor };
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { CursorProviderProps } from './types.mjs';
3
+ import 'react';
4
+
5
+ declare const CursorProvider: ({ children, maxOffsetX, maxOffsetY, cursorSize, transitionDuration, cursorClassName, className, as: Component, ...props }: CursorProviderProps) => react_jsx_runtime.JSX.Element;
6
+
7
+ export { CursorProvider };
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { CursorProviderProps } from './types.js';
3
+ import 'react';
4
+
5
+ declare const CursorProvider: ({ children, maxOffsetX, maxOffsetY, cursorSize, transitionDuration, cursorClassName, className, as: Component, ...props }: CursorProviderProps) => react_jsx_runtime.JSX.Element;
6
+
7
+ export { CursorProvider };
@@ -0,0 +1,20 @@
1
+ import { EnhancedComponentProps } from './types.mjs';
2
+ import * as react from 'react';
3
+ import { Textarea } from '../ui/textarea.mjs';
4
+ import { TabsProps } from '../ui/tabs.mjs';
5
+ import { ButtonProps } from '../ui/button.mjs';
6
+ import { InputRootProps } from '../ui/input.mjs';
7
+ import { SelectTrigger } from '../ui/select.mjs';
8
+ import 'react/jsx-runtime';
9
+ import 'class-variance-authority/types';
10
+ import 'class-variance-authority';
11
+ import '@radix-ui/react-tabs';
12
+ import '@radix-ui/react-select';
13
+
14
+ declare const CursorButton: react.ForwardRefExoticComponent<Omit<EnhancedComponentProps<Omit<ButtonProps, "ref"> & react.RefAttributes<HTMLButtonElement>>, "ref"> & react.RefAttributes<HTMLElement>>;
15
+ declare const CursorTabs: react.ForwardRefExoticComponent<Omit<EnhancedComponentProps<TabsProps>, "ref"> & react.RefAttributes<HTMLElement>>;
16
+ declare const CursorInputRoot: react.ForwardRefExoticComponent<Omit<EnhancedComponentProps<Omit<InputRootProps, "ref"> & react.RefAttributes<HTMLInputElement>>, "ref"> & react.RefAttributes<HTMLElement>>;
17
+ declare const CursorSelectTrigger: typeof SelectTrigger;
18
+ declare const CursorTextarea: typeof Textarea;
19
+
20
+ export { CursorButton, CursorInputRoot, CursorSelectTrigger, CursorTabs, CursorTextarea };