@vuer-ai/vuer-uikit 0.0.47 → 0.0.49

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 (176) hide show
  1. package/dist/{chunk-IMIHCOOE.js → chunk-2FCKLHWA.js} +1 -1
  2. package/dist/chunk-53PX4SCN.js +61 -0
  3. package/dist/{chunk-UZFOWGVD.mjs → chunk-5CWWM4L7.mjs} +9 -2
  4. package/dist/chunk-7NHWT7CO.mjs +26 -0
  5. package/dist/{chunk-5VYIGLGB.mjs → chunk-AJKD26TR.mjs} +1 -1
  6. package/dist/{chunk-NSN3O6CZ.mjs → chunk-AQENEOV3.mjs} +2 -2
  7. package/dist/{chunk-NKNUMZJL.mjs → chunk-DDG2W6BX.mjs} +36 -27
  8. package/dist/{chunk-KDRYDUQT.js → chunk-DWK23X7J.js} +1 -0
  9. package/dist/{chunk-R3SHGA4V.js → chunk-EOTROHFU.js} +36 -27
  10. package/dist/chunk-GCIH5IMQ.mjs +118 -0
  11. package/dist/chunk-HOQHWWLY.mjs +37 -0
  12. package/dist/{chunk-AKBWNVRH.js → chunk-HYVF2TGW.js} +2 -2
  13. package/dist/{chunk-QQMHPZFI.js → chunk-JIRSHP3D.js} +9 -2
  14. package/dist/chunk-KYWKRMXK.js +48 -0
  15. package/dist/chunk-N6DZ364I.mjs +15 -0
  16. package/dist/chunk-NXTGTCPA.mjs +19 -0
  17. package/dist/{chunk-3WAI7WDK.mjs → chunk-PDXJXH4A.mjs} +1 -1
  18. package/dist/chunk-PF36CKO7.mjs +599 -0
  19. package/dist/{chunk-I5UCKLLT.mjs → chunk-PZ3FWTMB.mjs} +1 -1
  20. package/dist/chunk-QPQSH53G.js +17 -0
  21. package/dist/chunk-VAEPAW5L.js +126 -0
  22. package/dist/{chunk-M3S7NSGR.mjs → chunk-VSFCQCKQ.mjs} +2 -2
  23. package/dist/{chunk-YGSTPCLB.mjs → chunk-VSYSYSVQ.mjs} +47 -31
  24. package/dist/{chunk-BGXUSJT2.js → chunk-WEHNW5KY.js} +2 -2
  25. package/dist/{chunk-HE63LZKF.js → chunk-XBKQWS7J.js} +3 -3
  26. package/dist/chunk-YFPY5SLS.js +41 -0
  27. package/dist/{chunk-VEUXQSY3.js → chunk-YNKO5FOU.js} +47 -31
  28. package/dist/chunk-YOKGP5F7.js +624 -0
  29. package/dist/highlight-cursor/cursor-provider.js +2 -2
  30. package/dist/highlight-cursor/cursor-provider.mjs +1 -1
  31. package/dist/highlight-cursor/enhanced-components.d.mts +3 -3
  32. package/dist/highlight-cursor/enhanced-components.d.ts +3 -3
  33. package/dist/highlight-cursor/enhanced-components.js +10 -10
  34. package/dist/highlight-cursor/enhanced-components.mjs +5 -5
  35. package/dist/highlight-cursor/index.d.mts +3 -3
  36. package/dist/highlight-cursor/index.d.ts +3 -3
  37. package/dist/highlight-cursor/index.js +12 -12
  38. package/dist/highlight-cursor/index.mjs +6 -6
  39. package/dist/hooks/index.js +7 -7
  40. package/dist/hooks/index.mjs +2 -2
  41. package/dist/hooks/use-mobile.d.mts +3 -0
  42. package/dist/hooks/use-mobile.d.ts +3 -0
  43. package/dist/hooks/use-mobile.js +10 -0
  44. package/dist/hooks/use-mobile.mjs +1 -0
  45. package/dist/hooks/useDragSelect.js +2 -2
  46. package/dist/hooks/useDragSelect.mjs +1 -1
  47. package/dist/index.d.mts +9 -3
  48. package/dist/index.d.ts +9 -3
  49. package/dist/index.js +285 -139
  50. package/dist/index.mjs +28 -22
  51. package/dist/ui/avatar.js +2 -2
  52. package/dist/ui/avatar.mjs +2 -2
  53. package/dist/ui/badge.d.mts +2 -2
  54. package/dist/ui/badge.d.ts +2 -2
  55. package/dist/ui/badge.js +2 -2
  56. package/dist/ui/badge.mjs +2 -2
  57. package/dist/ui/button.d.mts +2 -2
  58. package/dist/ui/button.d.ts +2 -2
  59. package/dist/ui/button.js +8 -4
  60. package/dist/ui/button.mjs +3 -3
  61. package/dist/ui/card.js +2 -2
  62. package/dist/ui/card.mjs +2 -2
  63. package/dist/ui/checkbox.js +2 -2
  64. package/dist/ui/checkbox.mjs +2 -2
  65. package/dist/ui/collapsible.js +2 -2
  66. package/dist/ui/collapsible.mjs +2 -2
  67. package/dist/ui/drawer.js +2 -2
  68. package/dist/ui/drawer.mjs +2 -2
  69. package/dist/ui/dropdown.js +2 -2
  70. package/dist/ui/dropdown.mjs +2 -2
  71. package/dist/ui/form/CmInput.js +2 -2
  72. package/dist/ui/form/CmInput.mjs +2 -2
  73. package/dist/ui/form/DegInput.js +2 -2
  74. package/dist/ui/form/DegInput.mjs +2 -2
  75. package/dist/ui/form/EulerDegInput.js +2 -2
  76. package/dist/ui/form/EulerDegInput.mjs +2 -2
  77. package/dist/ui/form/EulerInput.js +2 -2
  78. package/dist/ui/form/EulerInput.mjs +2 -2
  79. package/dist/ui/form/EulerRadInput.js +2 -2
  80. package/dist/ui/form/EulerRadInput.mjs +2 -2
  81. package/dist/ui/form/InchInput.js +2 -2
  82. package/dist/ui/form/InchInput.mjs +2 -2
  83. package/dist/ui/form/IntInput.js +2 -2
  84. package/dist/ui/form/IntInput.mjs +2 -2
  85. package/dist/ui/form/KVectorInput.js +2 -2
  86. package/dist/ui/form/KVectorInput.mjs +2 -2
  87. package/dist/ui/form/NumberInput.js +2 -2
  88. package/dist/ui/form/NumberInput.mjs +2 -2
  89. package/dist/ui/form/QuaternionInput.js +2 -2
  90. package/dist/ui/form/QuaternionInput.mjs +2 -2
  91. package/dist/ui/form/RadInput.js +2 -2
  92. package/dist/ui/form/RadInput.mjs +2 -2
  93. package/dist/ui/form/TimeInput.js +2 -2
  94. package/dist/ui/form/TimeInput.mjs +2 -2
  95. package/dist/ui/form/Vec3Input.js +2 -2
  96. package/dist/ui/form/Vec3Input.mjs +2 -2
  97. package/dist/ui/form/VectorInput.js +2 -2
  98. package/dist/ui/form/VectorInput.mjs +2 -2
  99. package/dist/ui/form/index.js +17 -17
  100. package/dist/ui/form/index.mjs +5 -5
  101. package/dist/ui/index.d.mts +9 -3
  102. package/dist/ui/index.d.ts +9 -3
  103. package/dist/ui/index.js +270 -124
  104. package/dist/ui/index.mjs +26 -20
  105. package/dist/ui/input-numbers.js +2 -2
  106. package/dist/ui/input-numbers.mjs +2 -2
  107. package/dist/ui/input.d.mts +1 -1
  108. package/dist/ui/input.d.ts +1 -1
  109. package/dist/ui/input.js +2 -2
  110. package/dist/ui/input.mjs +2 -2
  111. package/dist/ui/layout.js +2 -2
  112. package/dist/ui/layout.mjs +2 -2
  113. package/dist/ui/modal.js +2 -2
  114. package/dist/ui/modal.mjs +2 -2
  115. package/dist/ui/pagination.d.mts +18 -0
  116. package/dist/ui/pagination.d.ts +18 -0
  117. package/dist/ui/pagination.js +43 -0
  118. package/dist/ui/pagination.mjs +10 -0
  119. package/dist/ui/popover.js +2 -2
  120. package/dist/ui/popover.mjs +2 -2
  121. package/dist/ui/radio-group.js +2 -2
  122. package/dist/ui/radio-group.mjs +2 -2
  123. package/dist/ui/resizable.d.mts +14 -0
  124. package/dist/ui/resizable.d.ts +14 -0
  125. package/dist/ui/resizable.js +25 -0
  126. package/dist/ui/resizable.mjs +8 -0
  127. package/dist/ui/select.d.mts +1 -1
  128. package/dist/ui/select.d.ts +1 -1
  129. package/dist/ui/select.js +2 -2
  130. package/dist/ui/select.mjs +2 -2
  131. package/dist/ui/separator.d.mts +7 -0
  132. package/dist/ui/separator.d.ts +7 -0
  133. package/dist/ui/separator.js +17 -0
  134. package/dist/ui/separator.mjs +8 -0
  135. package/dist/ui/sheet.js +2 -2
  136. package/dist/ui/sheet.mjs +2 -2
  137. package/dist/ui/sidebar.d.mts +75 -0
  138. package/dist/ui/sidebar.d.ts +75 -0
  139. package/dist/ui/sidebar.js +116 -0
  140. package/dist/ui/sidebar.mjs +15 -0
  141. package/dist/ui/skeleton.d.mts +6 -0
  142. package/dist/ui/skeleton.d.ts +6 -0
  143. package/dist/ui/skeleton.js +17 -0
  144. package/dist/ui/skeleton.mjs +8 -0
  145. package/dist/ui/slider.js +2 -2
  146. package/dist/ui/slider.mjs +2 -2
  147. package/dist/ui/switch.js +2 -2
  148. package/dist/ui/switch.mjs +2 -2
  149. package/dist/ui/tabs.js +2 -2
  150. package/dist/ui/tabs.mjs +2 -2
  151. package/dist/ui/textarea.js +2 -2
  152. package/dist/ui/textarea.mjs +2 -2
  153. package/dist/ui/timeline.js +5 -5
  154. package/dist/ui/timeline.mjs +4 -4
  155. package/dist/ui/toggle-group.js +2 -2
  156. package/dist/ui/toggle-group.mjs +2 -2
  157. package/dist/ui/toggle.js +2 -2
  158. package/dist/ui/toggle.mjs +2 -2
  159. package/dist/ui/tooltip.js +2 -2
  160. package/dist/ui/tooltip.mjs +2 -2
  161. package/dist/ui/tree-view-v2.d.mts +5 -1
  162. package/dist/ui/tree-view-v2.d.ts +5 -1
  163. package/dist/ui/tree-view-v2.js +4 -4
  164. package/dist/ui/tree-view-v2.mjs +3 -3
  165. package/dist/ui/tree-view.js +4 -4
  166. package/dist/ui/tree-view.mjs +3 -3
  167. package/dist/ui/version-badge.js +4 -4
  168. package/dist/ui/version-badge.mjs +3 -3
  169. package/package.json +2 -1
  170. package/src/hooks/useDragSelect.ts +12 -2
  171. package/src/ui/index.ts +1 -0
  172. package/src/ui/resizable.tsx +50 -0
  173. package/src/ui/sidebar.tsx +13 -13
  174. package/src/ui/tree-view-v2.tsx +47 -22
  175. /package/dist/{chunk-YQKZSWI6.js → chunk-GLGYNU3Q.js} +0 -0
  176. /package/dist/{chunk-4IXZRYYD.mjs → chunk-ZFWQLAQA.mjs} +0 -0
@@ -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.47" ;
6
+ var PACKAGE_VERSION = "0.0.49" ;
7
7
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
8
8
  function VersionBadge({
9
9
  className,
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chunk7KYAICHB_js = require('./chunk-7KYAICHB.js');
4
+ var lucideReact = require('lucide-react');
5
+ var ResizablePrimitive = require('react-resizable-panels');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var ResizablePrimitive__namespace = /*#__PURE__*/_interopNamespace(ResizablePrimitive);
27
+
28
+ function ResizablePanelGroup({ className, ...props }) {
29
+ return /* @__PURE__ */ jsxRuntime.jsx(
30
+ ResizablePrimitive__namespace.PanelGroup,
31
+ {
32
+ "data-slot": "resizable-panel-group",
33
+ className: chunk7KYAICHB_js.cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
34
+ ...props
35
+ }
36
+ );
37
+ }
38
+ function ResizablePanel(props) {
39
+ return /* @__PURE__ */ jsxRuntime.jsx(ResizablePrimitive__namespace.Panel, { "data-slot": "resizable-panel", ...props });
40
+ }
41
+ function ResizableHandle({ withHandle, className, children, ...props }) {
42
+ return /* @__PURE__ */ jsxRuntime.jsxs(
43
+ ResizablePrimitive__namespace.PanelResizeHandle,
44
+ {
45
+ "data-slot": "resizable-handle",
46
+ className: chunk7KYAICHB_js.cn(
47
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
48
+ className
49
+ ),
50
+ ...props,
51
+ children: [
52
+ children,
53
+ !children && withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVerticalIcon, { className: "size-2.5" }) })
54
+ ]
55
+ }
56
+ );
57
+ }
58
+
59
+ exports.ResizableHandle = ResizableHandle;
60
+ exports.ResizablePanel = ResizablePanel;
61
+ exports.ResizablePanelGroup = ResizablePanelGroup;
@@ -5,6 +5,7 @@ function useDragSelect(options = {}) {
5
5
  const [selectedItems, setSelectedItems] = useState(/* @__PURE__ */ new Set());
6
6
  const [isDragging, setIsDragging] = useState(false);
7
7
  const [dragMode, setDragMode] = useState("toggle");
8
+ const [dragStartItem, setDragStartItem] = useState(null);
8
9
  useEffect(() => {
9
10
  var _a;
10
11
  (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, selectedItems);
@@ -12,6 +13,7 @@ function useDragSelect(options = {}) {
12
13
  const handleMouseDown = useCallback((id, e) => {
13
14
  e.preventDefault();
14
15
  setIsDragging(true);
16
+ setDragStartItem(id);
15
17
  const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
16
18
  setDragMode(mode);
17
19
  if (mode === "replace") {
@@ -31,6 +33,7 @@ function useDragSelect(options = {}) {
31
33
  const handleMouseEnter = useCallback(
32
34
  (id) => {
33
35
  if (!isDragging) return;
36
+ if (id === dragStartItem) return;
34
37
  if (dragMode === "replace") {
35
38
  setSelectedItems((prev) => /* @__PURE__ */ new Set([...prev, id]));
36
39
  } else {
@@ -45,10 +48,11 @@ function useDragSelect(options = {}) {
45
48
  });
46
49
  }
47
50
  },
48
- [isDragging, dragMode]
51
+ [isDragging, dragMode, dragStartItem]
49
52
  );
50
53
  useCallback(() => {
51
54
  setIsDragging(false);
55
+ setDragStartItem(null);
52
56
  }, []);
53
57
  const clearSelection = useCallback(() => {
54
58
  setSelectedItems(/* @__PURE__ */ new Set());
@@ -66,7 +70,10 @@ function useDragSelect(options = {}) {
66
70
  [selectedItems, handleMouseDown, handleMouseEnter]
67
71
  );
68
72
  useEffect(() => {
69
- const handleGlobalMouseUp = () => setIsDragging(false);
73
+ const handleGlobalMouseUp = () => {
74
+ setIsDragging(false);
75
+ setDragStartItem(null);
76
+ };
70
77
  const handleEscape = (e) => {
71
78
  if (e.key === "Escape") {
72
79
  clearSelection();
@@ -0,0 +1,26 @@
1
+ import { cn } from './chunk-WM2VP7MI.mjs';
2
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function Separator({
6
+ className,
7
+ orientation = "horizontal",
8
+ decorative = true,
9
+ ...props
10
+ }) {
11
+ return /* @__PURE__ */ jsx(
12
+ SeparatorPrimitive.Root,
13
+ {
14
+ "data-slot": "separator-root",
15
+ decorative,
16
+ orientation,
17
+ className: cn(
18
+ "bg-line-primary shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
19
+ className
20
+ ),
21
+ ...props
22
+ }
23
+ );
24
+ }
25
+
26
+ export { Separator };
@@ -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.47" ;
4
+ var PACKAGE_VERSION = "0.0.49" ;
5
5
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
6
6
  function VersionBadge({
7
7
  className,
@@ -170,9 +170,9 @@ var CursorProvider = ({
170
170
  );
171
171
  let styleClass;
172
172
  if (hoveredElementId) {
173
- styleClass = `opacity-[0.05] rounded-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
173
+ styleClass = `opacity-[0.05] rounded-uk-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
174
174
  } else {
175
- styleClass = `opacity-90 rounded-xl z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
175
+ styleClass = `opacity-90 rounded-full z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
176
176
  }
177
177
  const cursorElement = isClient && isMouseInside && /* @__PURE__ */ jsx(
178
178
  "div",
@@ -69,33 +69,42 @@ var TreeViewRoot = forwardRef(
69
69
  walkTreeItems(data, initialSelectedItemId);
70
70
  return ids;
71
71
  }, [data, expandAll, initialSelectedItemId]);
72
- return /* @__PURE__ */ jsxs("div", { className: cn("px-sm relative w-[300px] overflow-hidden", className), children: [
73
- /* @__PURE__ */ jsx(
74
- TreeItem,
75
- {
76
- data,
77
- ref,
78
- selectedItemId,
79
- handleSelectChange,
80
- expandedItemIds,
81
- defaultLeafIcon,
82
- defaultNodeIcon,
83
- handleDragStart,
84
- handleDrop,
85
- draggedItem,
86
- ...props
87
- }
88
- ),
89
- /* @__PURE__ */ jsx(
90
- "div",
91
- {
92
- className: "h-[48px] w-full",
93
- onDrop: () => {
94
- handleDrop({ id: "", name: "parent_div" });
95
- }
96
- }
97
- )
98
- ] });
72
+ return /* @__PURE__ */ jsxs(
73
+ "div",
74
+ {
75
+ className: cn(
76
+ "px-sm relative w-[300px] w-full overflow-x-auto overflow-y-hidden",
77
+ className
78
+ ),
79
+ children: [
80
+ /* @__PURE__ */ jsx(
81
+ TreeItem,
82
+ {
83
+ data,
84
+ ref,
85
+ selectedItemId,
86
+ handleSelectChange,
87
+ expandedItemIds,
88
+ defaultLeafIcon,
89
+ defaultNodeIcon,
90
+ handleDragStart,
91
+ handleDrop,
92
+ draggedItem,
93
+ ...props
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsx(
97
+ "div",
98
+ {
99
+ className: "h-[0px] w-full",
100
+ onDrop: () => {
101
+ handleDrop({ id: "", name: "parent_div" });
102
+ }
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ );
99
108
  }
100
109
  );
101
110
  TreeViewRoot.displayName = "TreeViewRoot";
@@ -91,3 +91,4 @@ var Button = react.forwardRef(function Button2({ className, variant, size, icon,
91
91
  });
92
92
 
93
93
  exports.Button = Button;
94
+ exports.buttonVariants = buttonVariants;
@@ -91,33 +91,42 @@ var TreeViewRoot = react.forwardRef(
91
91
  walkTreeItems(data, initialSelectedItemId);
92
92
  return ids;
93
93
  }, [data, expandAll, initialSelectedItemId]);
94
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk7KYAICHB_js.cn("px-sm relative w-[300px] overflow-hidden", className), children: [
95
- /* @__PURE__ */ jsxRuntime.jsx(
96
- TreeItem,
97
- {
98
- data,
99
- ref,
100
- selectedItemId,
101
- handleSelectChange,
102
- expandedItemIds,
103
- defaultLeafIcon,
104
- defaultNodeIcon,
105
- handleDragStart,
106
- handleDrop,
107
- draggedItem,
108
- ...props
109
- }
110
- ),
111
- /* @__PURE__ */ jsxRuntime.jsx(
112
- "div",
113
- {
114
- className: "h-[48px] w-full",
115
- onDrop: () => {
116
- handleDrop({ id: "", name: "parent_div" });
117
- }
118
- }
119
- )
120
- ] });
94
+ return /* @__PURE__ */ jsxRuntime.jsxs(
95
+ "div",
96
+ {
97
+ className: chunk7KYAICHB_js.cn(
98
+ "px-sm relative w-[300px] w-full overflow-x-auto overflow-y-hidden",
99
+ className
100
+ ),
101
+ children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx(
103
+ TreeItem,
104
+ {
105
+ data,
106
+ ref,
107
+ selectedItemId,
108
+ handleSelectChange,
109
+ expandedItemIds,
110
+ defaultLeafIcon,
111
+ defaultNodeIcon,
112
+ handleDragStart,
113
+ handleDrop,
114
+ draggedItem,
115
+ ...props
116
+ }
117
+ ),
118
+ /* @__PURE__ */ jsxRuntime.jsx(
119
+ "div",
120
+ {
121
+ className: "h-[0px] w-full",
122
+ onDrop: () => {
123
+ handleDrop({ id: "", name: "parent_div" });
124
+ }
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ );
121
130
  }
122
131
  );
123
132
  TreeViewRoot.displayName = "TreeViewRoot";
@@ -0,0 +1,118 @@
1
+ import { buttonVariants } from './chunk-PZ3FWTMB.mjs';
2
+ import { cn } from './chunk-WM2VP7MI.mjs';
3
+ import { useTabsCursor, TabsCursorProvider } from './chunk-XMG3IVGZ.mjs';
4
+ import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function Pagination({ className, ...props }) {
8
+ return /* @__PURE__ */ jsx(
9
+ "nav",
10
+ {
11
+ role: "navigation",
12
+ "aria-label": "pagination",
13
+ "data-slot": "pagination",
14
+ className: cn("mx-auto flex w-full justify-center", className),
15
+ ...props
16
+ }
17
+ );
18
+ }
19
+ function PaginationContent({ className, ...props }) {
20
+ const { setCursorTarget } = useTabsCursor();
21
+ return /* @__PURE__ */ jsx(TabsCursorProvider, { children: /* @__PURE__ */ jsx(
22
+ "ul",
23
+ {
24
+ onMouseLeave: () => setCursorTarget(null),
25
+ "data-slot": "pagination-content",
26
+ className: cn("gap-xs flex flex-row items-center", className),
27
+ style: {
28
+ marginBottom: "0px"
29
+ },
30
+ ...props
31
+ }
32
+ ) });
33
+ }
34
+ function PaginationItem({ ...props }) {
35
+ const { setCursorTarget } = useTabsCursor();
36
+ return /* @__PURE__ */ jsx(
37
+ "li",
38
+ {
39
+ onMouseEnter: (e) => setCursorTarget(e.currentTarget),
40
+ "data-slot": "pagination-item",
41
+ className: "rounded-uk-sm",
42
+ style: {
43
+ marginBottom: "0px"
44
+ },
45
+ ...props
46
+ }
47
+ );
48
+ }
49
+ function PaginationLink({
50
+ className,
51
+ isActive,
52
+ ...props
53
+ }) {
54
+ return /* @__PURE__ */ jsx(
55
+ "a",
56
+ {
57
+ "aria-current": isActive ? "page" : void 0,
58
+ "data-slot": "pagination-link",
59
+ "data-active": isActive,
60
+ className: cn(
61
+ buttonVariants({
62
+ variant: isActive ? "secondary" : "ghost"
63
+ }),
64
+ "hover:bg-transparent",
65
+ "hover:text-text-primary",
66
+ className
67
+ ),
68
+ ...props
69
+ }
70
+ );
71
+ }
72
+ function PaginationPrevious({ className, ...props }) {
73
+ return /* @__PURE__ */ jsxs(
74
+ PaginationLink,
75
+ {
76
+ "aria-label": "Go to previous page",
77
+ size: "base",
78
+ className: cn("gap-1 px-2.5 sm:pl-2.5", className),
79
+ ...props,
80
+ children: [
81
+ /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
82
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Previous" })
83
+ ]
84
+ }
85
+ );
86
+ }
87
+ function PaginationNext({ className, ...props }) {
88
+ return /* @__PURE__ */ jsxs(
89
+ PaginationLink,
90
+ {
91
+ "aria-label": "Go to next page",
92
+ size: "base",
93
+ className: cn("gap-1 px-2.5 sm:pr-2.5", className),
94
+ ...props,
95
+ children: [
96
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Next" }),
97
+ /* @__PURE__ */ jsx(ChevronRightIcon, {})
98
+ ]
99
+ }
100
+ );
101
+ }
102
+ function PaginationEllipsis({ className, ...props }) {
103
+ return /* @__PURE__ */ jsxs(
104
+ "span",
105
+ {
106
+ "aria-hidden": true,
107
+ "data-slot": "pagination-ellipsis",
108
+ className: cn("text-text-primary flex size-9 items-center justify-center", className),
109
+ ...props,
110
+ children: [
111
+ /* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }),
112
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
113
+ ]
114
+ }
115
+ );
116
+ }
117
+
118
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -0,0 +1,37 @@
1
+ import { cn } from './chunk-WM2VP7MI.mjs';
2
+ import { GripVerticalIcon } from 'lucide-react';
3
+ import * as ResizablePrimitive from 'react-resizable-panels';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ function ResizablePanelGroup({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(
8
+ ResizablePrimitive.PanelGroup,
9
+ {
10
+ "data-slot": "resizable-panel-group",
11
+ className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
12
+ ...props
13
+ }
14
+ );
15
+ }
16
+ function ResizablePanel(props) {
17
+ return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
18
+ }
19
+ function ResizableHandle({ withHandle, className, children, ...props }) {
20
+ return /* @__PURE__ */ jsxs(
21
+ ResizablePrimitive.PanelResizeHandle,
22
+ {
23
+ "data-slot": "resizable-handle",
24
+ className: cn(
25
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
26
+ className
27
+ ),
28
+ ...props,
29
+ children: [
30
+ children,
31
+ !children && withHandle && /* @__PURE__ */ jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx(GripVerticalIcon, { className: "size-2.5" }) })
32
+ ]
33
+ }
34
+ );
35
+ }
36
+
37
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -172,9 +172,9 @@ var CursorProvider = ({
172
172
  );
173
173
  let styleClass;
174
174
  if (hoveredElementId) {
175
- styleClass = `opacity-[0.05] rounded-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
175
+ styleClass = `opacity-[0.05] rounded-uk-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
176
176
  } else {
177
- styleClass = `opacity-90 rounded-xl z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
177
+ styleClass = `opacity-90 rounded-full z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
178
178
  }
179
179
  const cursorElement = isClient && isMouseInside && /* @__PURE__ */ jsxRuntime.jsx(
180
180
  "div",
@@ -7,6 +7,7 @@ function useDragSelect(options = {}) {
7
7
  const [selectedItems, setSelectedItems] = react.useState(/* @__PURE__ */ new Set());
8
8
  const [isDragging, setIsDragging] = react.useState(false);
9
9
  const [dragMode, setDragMode] = react.useState("toggle");
10
+ const [dragStartItem, setDragStartItem] = react.useState(null);
10
11
  react.useEffect(() => {
11
12
  var _a;
12
13
  (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, selectedItems);
@@ -14,6 +15,7 @@ function useDragSelect(options = {}) {
14
15
  const handleMouseDown = react.useCallback((id, e) => {
15
16
  e.preventDefault();
16
17
  setIsDragging(true);
18
+ setDragStartItem(id);
17
19
  const mode = e.ctrlKey || e.metaKey ? "replace" : "toggle";
18
20
  setDragMode(mode);
19
21
  if (mode === "replace") {
@@ -33,6 +35,7 @@ function useDragSelect(options = {}) {
33
35
  const handleMouseEnter = react.useCallback(
34
36
  (id) => {
35
37
  if (!isDragging) return;
38
+ if (id === dragStartItem) return;
36
39
  if (dragMode === "replace") {
37
40
  setSelectedItems((prev) => /* @__PURE__ */ new Set([...prev, id]));
38
41
  } else {
@@ -47,10 +50,11 @@ function useDragSelect(options = {}) {
47
50
  });
48
51
  }
49
52
  },
50
- [isDragging, dragMode]
53
+ [isDragging, dragMode, dragStartItem]
51
54
  );
52
55
  react.useCallback(() => {
53
56
  setIsDragging(false);
57
+ setDragStartItem(null);
54
58
  }, []);
55
59
  const clearSelection = react.useCallback(() => {
56
60
  setSelectedItems(/* @__PURE__ */ new Set());
@@ -68,7 +72,10 @@ function useDragSelect(options = {}) {
68
72
  [selectedItems, handleMouseDown, handleMouseEnter]
69
73
  );
70
74
  react.useEffect(() => {
71
- const handleGlobalMouseUp = () => setIsDragging(false);
75
+ const handleGlobalMouseUp = () => {
76
+ setIsDragging(false);
77
+ setDragStartItem(null);
78
+ };
72
79
  const handleEscape = (e) => {
73
80
  if (e.key === "Escape") {
74
81
  clearSelection();
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var chunk7KYAICHB_js = require('./chunk-7KYAICHB.js');
4
+ var SeparatorPrimitive = require('@radix-ui/react-separator');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
26
+
27
+ function Separator({
28
+ className,
29
+ orientation = "horizontal",
30
+ decorative = true,
31
+ ...props
32
+ }) {
33
+ return /* @__PURE__ */ jsxRuntime.jsx(
34
+ SeparatorPrimitive__namespace.Root,
35
+ {
36
+ "data-slot": "separator-root",
37
+ decorative,
38
+ orientation,
39
+ className: chunk7KYAICHB_js.cn(
40
+ "bg-line-primary shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
41
+ className
42
+ ),
43
+ ...props
44
+ }
45
+ );
46
+ }
47
+
48
+ exports.Separator = Separator;
@@ -0,0 +1,15 @@
1
+ import { cn } from './chunk-WM2VP7MI.mjs';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function Skeleton({ className, ...props }) {
5
+ return /* @__PURE__ */ jsx(
6
+ "div",
7
+ {
8
+ "data-slot": "skeleton",
9
+ className: cn("bg-bg-secondary rounded-uk-sm animate-pulse", className),
10
+ ...props
11
+ }
12
+ );
13
+ }
14
+
15
+ export { Skeleton };
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+
3
+ // src/hooks/use-mobile.ts
4
+ var MOBILE_BREAKPOINT = 768;
5
+ function useIsMobile() {
6
+ const [isMobile, setIsMobile] = React.useState(void 0);
7
+ React.useEffect(() => {
8
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
9
+ const onChange = () => {
10
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
11
+ };
12
+ mql.addEventListener("change", onChange);
13
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
14
+ return () => mql.removeEventListener("change", onChange);
15
+ }, []);
16
+ return !!isMobile;
17
+ }
18
+
19
+ export { useIsMobile };
@@ -1,4 +1,4 @@
1
- import { TreeView } from './chunk-YGSTPCLB.mjs';
1
+ import { TreeView } from './chunk-VSYSYSVQ.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';