@vuer-ai/vuer-uikit 0.0.98 → 0.0.99

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 (229) hide show
  1. package/dial-cli/README.md +137 -0
  2. package/{src/cli → dial-cli}/dial-cli.ts +9 -6
  3. package/{cli → dial-cli/dist}/dial-cli.js +10 -5
  4. package/dial-cli/node_modules/.bin/api-extractor +17 -0
  5. package/dial-cli/node_modules/.bin/jiti +17 -0
  6. package/dial-cli/node_modules/.bin/tsc +17 -0
  7. package/dial-cli/node_modules/.bin/tsserver +17 -0
  8. package/dial-cli/node_modules/.bin/tsup +17 -0
  9. package/dial-cli/node_modules/.bin/tsup-node +17 -0
  10. package/dial-cli/node_modules/.bin/tsx +17 -0
  11. package/dial-cli/node_modules/.bin/yaml +17 -0
  12. package/dial-cli/package.json +47 -0
  13. package/dial-cli/tsconfig.json +20 -0
  14. package/dial-cli/tsup.config.ts +18 -0
  15. package/dist/SyncScroll/SyncScroll.cjs +12 -12
  16. package/dist/SyncScroll/SyncScroll.mjs +5 -5
  17. package/dist/SyncScroll/index.cjs +12 -12
  18. package/dist/SyncScroll/index.mjs +5 -5
  19. package/dist/chunk-AIYM5PFP.cjs +66 -0
  20. package/dist/chunk-OWEYAVGT.mjs +62 -0
  21. package/dist/{chunk-7GWDO25E.cjs → chunk-WIGYDOHM.cjs} +2 -2
  22. package/dist/{chunk-TTYSYGVE.mjs → chunk-XMFU7SDD.mjs} +2 -2
  23. package/dist/dial/DialPanel.cjs +28 -27
  24. package/dist/dial/DialPanel.mjs +27 -26
  25. package/dist/dial/index.cjs +44 -43
  26. package/dist/dial/index.mjs +27 -26
  27. package/dist/dial/wrapped-inputs/ControlledInputs.cjs +31 -30
  28. package/dist/dial/wrapped-inputs/ControlledInputs.mjs +27 -26
  29. package/dist/dial/wrapped-inputs/DialInputs.cjs +38 -37
  30. package/dist/dial/wrapped-inputs/DialInputs.mjs +27 -26
  31. package/dist/dial/wrapped-inputs/DialVectorInput.cjs +28 -27
  32. package/dist/dial/wrapped-inputs/DialVectorInput.mjs +27 -26
  33. package/dist/dial/wrapped-inputs/index.cjs +43 -42
  34. package/dist/dial/wrapped-inputs/index.mjs +27 -26
  35. package/dist/highlight-cursor/cursor-provider.cjs +3 -3
  36. package/dist/highlight-cursor/cursor-provider.mjs +2 -2
  37. package/dist/highlight-cursor/enhanced-components.cjs +5 -5
  38. package/dist/highlight-cursor/enhanced-components.mjs +5 -5
  39. package/dist/highlight-cursor/index.cjs +11 -11
  40. package/dist/highlight-cursor/index.mjs +6 -6
  41. package/dist/hooks/index.cjs +12 -12
  42. package/dist/hooks/index.mjs +3 -3
  43. package/dist/hooks/useQueryParams.cjs +3 -3
  44. package/dist/hooks/useQueryParams.mjs +2 -2
  45. package/dist/index.cjs +187 -174
  46. package/dist/index.d.cts +1 -0
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.mjs +27 -26
  49. package/dist/ui/DialBadge.cjs +28 -0
  50. package/dist/ui/DialBadge.d.cts +33 -0
  51. package/dist/ui/DialBadge.d.ts +33 -0
  52. package/dist/ui/DialBadge.mjs +11 -0
  53. package/dist/ui/UIKitBadge.cjs +8 -8
  54. package/dist/ui/UIKitBadge.mjs +4 -4
  55. package/dist/ui/avatar.cjs +3 -3
  56. package/dist/ui/avatar.mjs +3 -3
  57. package/dist/ui/badge.cjs +3 -3
  58. package/dist/ui/badge.d.cts +1 -1
  59. package/dist/ui/badge.d.ts +1 -1
  60. package/dist/ui/badge.mjs +3 -3
  61. package/dist/ui/button.cjs +3 -3
  62. package/dist/ui/button.mjs +3 -3
  63. package/dist/ui/card.cjs +3 -3
  64. package/dist/ui/card.mjs +3 -3
  65. package/dist/ui/checkbox.cjs +3 -3
  66. package/dist/ui/checkbox.mjs +3 -3
  67. package/dist/ui/collapsible.cjs +3 -3
  68. package/dist/ui/collapsible.mjs +3 -3
  69. package/dist/ui/drawer.cjs +3 -3
  70. package/dist/ui/drawer.mjs +3 -3
  71. package/dist/ui/dropdown.cjs +3 -3
  72. package/dist/ui/dropdown.mjs +3 -3
  73. package/dist/ui/index.cjs +105 -92
  74. package/dist/ui/index.d.cts +1 -0
  75. package/dist/ui/index.d.ts +1 -0
  76. package/dist/ui/index.mjs +22 -21
  77. package/dist/ui/inputs/color-input.cjs +3 -3
  78. package/dist/ui/inputs/color-input.mjs +3 -3
  79. package/dist/ui/inputs/index.cjs +18 -18
  80. package/dist/ui/inputs/index.mjs +6 -6
  81. package/dist/ui/inputs/input-numbers.cjs +3 -3
  82. package/dist/ui/inputs/input-numbers.mjs +3 -3
  83. package/dist/ui/inputs/input.cjs +3 -3
  84. package/dist/ui/inputs/input.d.cts +1 -1
  85. package/dist/ui/inputs/input.d.ts +1 -1
  86. package/dist/ui/inputs/input.mjs +3 -3
  87. package/dist/ui/inputs/number-inputs/CmInput.cjs +3 -3
  88. package/dist/ui/inputs/number-inputs/CmInput.mjs +3 -3
  89. package/dist/ui/inputs/number-inputs/DegInput.cjs +3 -3
  90. package/dist/ui/inputs/number-inputs/DegInput.mjs +3 -3
  91. package/dist/ui/inputs/number-inputs/EulerDegInput.cjs +3 -3
  92. package/dist/ui/inputs/number-inputs/EulerDegInput.mjs +3 -3
  93. package/dist/ui/inputs/number-inputs/EulerInput.cjs +3 -3
  94. package/dist/ui/inputs/number-inputs/EulerInput.mjs +3 -3
  95. package/dist/ui/inputs/number-inputs/EulerRadInput.cjs +3 -3
  96. package/dist/ui/inputs/number-inputs/EulerRadInput.mjs +3 -3
  97. package/dist/ui/inputs/number-inputs/InchInput.cjs +3 -3
  98. package/dist/ui/inputs/number-inputs/InchInput.mjs +3 -3
  99. package/dist/ui/inputs/number-inputs/IntInput.cjs +3 -3
  100. package/dist/ui/inputs/number-inputs/IntInput.mjs +3 -3
  101. package/dist/ui/inputs/number-inputs/KVectorInput.cjs +3 -3
  102. package/dist/ui/inputs/number-inputs/KVectorInput.mjs +3 -3
  103. package/dist/ui/inputs/number-inputs/QuaternionInput.cjs +3 -3
  104. package/dist/ui/inputs/number-inputs/QuaternionInput.mjs +3 -3
  105. package/dist/ui/inputs/number-inputs/RadInput.cjs +3 -3
  106. package/dist/ui/inputs/number-inputs/RadInput.mjs +3 -3
  107. package/dist/ui/inputs/number-inputs/TimeInput.cjs +3 -3
  108. package/dist/ui/inputs/number-inputs/TimeInput.mjs +3 -3
  109. package/dist/ui/inputs/number-inputs/Vec3Input.cjs +3 -3
  110. package/dist/ui/inputs/number-inputs/Vec3Input.mjs +3 -3
  111. package/dist/ui/inputs/number-inputs/VectorInput.cjs +3 -3
  112. package/dist/ui/inputs/number-inputs/VectorInput.mjs +3 -3
  113. package/dist/ui/inputs/number-inputs/index.cjs +13 -13
  114. package/dist/ui/inputs/number-inputs/index.mjs +5 -5
  115. package/dist/ui/inputs/presets-input.cjs +3 -3
  116. package/dist/ui/inputs/presets-input.mjs +3 -3
  117. package/dist/ui/label.cjs +3 -3
  118. package/dist/ui/label.mjs +3 -3
  119. package/dist/ui/layout.cjs +3 -3
  120. package/dist/ui/layout.mjs +3 -3
  121. package/dist/ui/layouts/dock-layout/DockLayoutView.cjs +3 -3
  122. package/dist/ui/layouts/dock-layout/DockLayoutView.mjs +3 -3
  123. package/dist/ui/layouts/dock-layout/LayoutSlots.cjs +3 -3
  124. package/dist/ui/layouts/dock-layout/LayoutSlots.mjs +3 -3
  125. package/dist/ui/layouts/dock-layout/index.cjs +3 -3
  126. package/dist/ui/layouts/dock-layout/index.mjs +3 -3
  127. package/dist/ui/layouts/index.cjs +3 -3
  128. package/dist/ui/layouts/index.mjs +3 -3
  129. package/dist/ui/layouts/liquid-layout/LayoutSlots.cjs +3 -3
  130. package/dist/ui/layouts/liquid-layout/LayoutSlots.mjs +3 -3
  131. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.cjs +3 -3
  132. package/dist/ui/layouts/liquid-layout/LiquidLayoutView.mjs +3 -3
  133. package/dist/ui/layouts/liquid-layout/index.cjs +3 -3
  134. package/dist/ui/layouts/liquid-layout/index.mjs +3 -3
  135. package/dist/ui/modal.cjs +3 -3
  136. package/dist/ui/modal.mjs +3 -3
  137. package/dist/ui/navigation.cjs +3 -3
  138. package/dist/ui/navigation.mjs +3 -3
  139. package/dist/ui/pagination.cjs +3 -3
  140. package/dist/ui/pagination.mjs +3 -3
  141. package/dist/ui/panel.cjs +3 -3
  142. package/dist/ui/panel.mjs +3 -3
  143. package/dist/ui/popover.cjs +3 -3
  144. package/dist/ui/popover.mjs +3 -3
  145. package/dist/ui/radio-group.cjs +3 -3
  146. package/dist/ui/radio-group.mjs +3 -3
  147. package/dist/ui/resizable.cjs +3 -3
  148. package/dist/ui/resizable.mjs +3 -3
  149. package/dist/ui/select.cjs +3 -3
  150. package/dist/ui/select.d.cts +1 -1
  151. package/dist/ui/select.d.ts +1 -1
  152. package/dist/ui/select.mjs +3 -3
  153. package/dist/ui/separator.cjs +3 -3
  154. package/dist/ui/separator.mjs +3 -3
  155. package/dist/ui/sheet.cjs +3 -3
  156. package/dist/ui/sheet.mjs +3 -3
  157. package/dist/ui/sidebar.cjs +28 -28
  158. package/dist/ui/sidebar.mjs +4 -4
  159. package/dist/ui/simple-tree-view.cjs +3 -3
  160. package/dist/ui/simple-tree-view.mjs +3 -3
  161. package/dist/ui/skeleton.cjs +3 -3
  162. package/dist/ui/skeleton.mjs +3 -3
  163. package/dist/ui/slider.cjs +3 -3
  164. package/dist/ui/slider.mjs +3 -3
  165. package/dist/ui/switch.cjs +3 -3
  166. package/dist/ui/switch.mjs +3 -3
  167. package/dist/ui/table.cjs +3 -3
  168. package/dist/ui/table.mjs +3 -3
  169. package/dist/ui/tabs.cjs +3 -3
  170. package/dist/ui/tabs.mjs +3 -3
  171. package/dist/ui/textarea.cjs +3 -3
  172. package/dist/ui/textarea.d.cts +1 -1
  173. package/dist/ui/textarea.d.ts +1 -1
  174. package/dist/ui/textarea.mjs +3 -3
  175. package/dist/ui/theme/ThemeToggles.cjs +3 -3
  176. package/dist/ui/theme/ThemeToggles.mjs +3 -3
  177. package/dist/ui/theme/index.cjs +3 -3
  178. package/dist/ui/theme/index.mjs +3 -3
  179. package/dist/ui/toggle-buttons.cjs +3 -3
  180. package/dist/ui/toggle-buttons.mjs +3 -3
  181. package/dist/ui/toggle-group.cjs +3 -3
  182. package/dist/ui/toggle-group.mjs +3 -3
  183. package/dist/ui/toggle.cjs +3 -3
  184. package/dist/ui/toggle.mjs +3 -3
  185. package/dist/ui/toolbar.cjs +3 -3
  186. package/dist/ui/toolbar.mjs +3 -3
  187. package/dist/ui/tooltip.cjs +3 -3
  188. package/dist/ui/tooltip.mjs +3 -3
  189. package/dist/ui/tree-view/TreeSearchBar.cjs +3 -3
  190. package/dist/ui/tree-view/TreeSearchBar.mjs +3 -3
  191. package/dist/ui/tree-view/TreeView.cjs +3 -3
  192. package/dist/ui/tree-view/TreeView.mjs +3 -3
  193. package/dist/ui/tree-view/index.cjs +3 -3
  194. package/dist/ui/tree-view/index.mjs +3 -3
  195. package/dist/ui/tree-view-legacy.cjs +11 -11
  196. package/dist/ui/tree-view-legacy.mjs +7 -7
  197. package/dist/ui/waterfall/CursorOverlay.cjs +3 -3
  198. package/dist/ui/waterfall/CursorOverlay.mjs +3 -3
  199. package/dist/ui/waterfall/TimelineEvent.cjs +3 -3
  200. package/dist/ui/waterfall/TimelineEvent.mjs +3 -3
  201. package/dist/ui/waterfall/TimelineProcessBar.cjs +3 -3
  202. package/dist/ui/waterfall/TimelineProcessBar.mjs +3 -3
  203. package/dist/ui/waterfall/Wedges.cjs +3 -3
  204. package/dist/ui/waterfall/Wedges.mjs +3 -3
  205. package/dist/ui/waterfall/index.cjs +9 -9
  206. package/dist/ui/waterfall/index.mjs +8 -8
  207. package/package.json +4 -5
  208. package/src/ui/DialBadge.tsx +97 -0
  209. package/src/ui/index.ts +1 -0
  210. package/dist/chunk-4KWGGESI.cjs +0 -494
  211. package/dist/chunk-A5LCX2UQ.cjs +0 -208
  212. package/dist/chunk-BEJIZ56L.mjs +0 -300
  213. package/dist/chunk-C7VGRU3O.mjs +0 -283
  214. package/dist/chunk-LJMNHTTG.cjs +0 -679
  215. package/dist/chunk-O66RESRR.cjs +0 -285
  216. package/dist/chunk-VA3PEYFM.mjs +0 -489
  217. package/dist/chunk-VBBJSIY7.cjs +0 -308
  218. package/dist/chunk-W4JCKCW7.mjs +0 -661
  219. package/dist/chunk-WWGF6TBZ.mjs +0 -206
  220. package/dist/{chunk-XMUP5MIM.mjs → chunk-G3EIVAVR.mjs} +0 -0
  221. package/dist/{chunk-7IS37C3P.cjs → chunk-K4I4YU6N.cjs} +1 -1
  222. package/dist/{chunk-BIUDC66P.mjs → chunk-K4VD5PPY.mjs} +1 -1
  223. package/dist/{chunk-OX2U5RAG.cjs → chunk-KFPS5CCR.cjs} +0 -0
  224. package/dist/{chunk-2OZK5DY5.mjs → chunk-KXKEZ3MH.mjs} +1 -1
  225. package/dist/{chunk-ZGN4UEJR.cjs → chunk-OEI7NCF6.cjs} +3 -3
  226. package/dist/{chunk-LYZJNEOR.cjs → chunk-Q4XH2Z5M.cjs} +1 -1
  227. package/dist/{chunk-ZQLRMOUW.mjs → chunk-QHPFLC2O.mjs} +3 -3
  228. package/dist/{chunk-OYNLQTHW.cjs → chunk-RKJR6RZU.cjs} +1 -1
  229. package/dist/{chunk-OEIF3JCH.mjs → chunk-U3LN5NB6.mjs} +1 -1
@@ -1,494 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk2CZEFXEW_cjs = require('./chunk-2CZEFXEW.cjs');
4
- var chunkVBBJSIY7_cjs = require('./chunk-VBBJSIY7.cjs');
5
- var chunk3UEVUYFQ_cjs = require('./chunk-3UEVUYFQ.cjs');
6
- var chunkOHIB3TEN_cjs = require('./chunk-OHIB3TEN.cjs');
7
- var lucideReact = require('lucide-react');
8
- var react = require('react');
9
- var jsxRuntime = require('react/jsx-runtime');
10
-
11
- function TreeView({
12
- data,
13
- getIcon,
14
- onVisibleDataChange,
15
- onItemHover,
16
- className,
17
- hoveredId,
18
- isSelectable = false,
19
- selectedItemId,
20
- onSelectChange,
21
- isSearchable = true,
22
- alwaysShowExpand = false,
23
- useSyncScroll = false,
24
- // External search state props
25
- searchQuery: externalSearchQuery,
26
- onSearchQueryChange: externalOnSearchQueryChange,
27
- isCaseSensitive: externalIsCaseSensitive,
28
- onIsCaseSensitiveChange: externalOnIsCaseSensitiveChange,
29
- isRegex: externalIsRegex,
30
- onIsRegexChange: externalOnIsRegexChange
31
- }) {
32
- const [expandedItems, setExpandedItems] = react.useState(() => {
33
- const initial = /* @__PURE__ */ new Set();
34
- data.forEach((item) => {
35
- if (item.isCollapsible) initial.add(item.id);
36
- });
37
- return initial;
38
- });
39
- const [internalSearchQuery, setInternalSearchQuery] = react.useState("");
40
- const [internalIsCaseSensitive, setInternalIsCaseSensitive] = react.useState(false);
41
- const [internalIsRegex, setInternalIsRegex] = react.useState(false);
42
- const [isRegexValid, setIsRegexValid] = react.useState(true);
43
- const searchQuery = externalSearchQuery ?? internalSearchQuery;
44
- const setSearchQuery = externalOnSearchQueryChange ?? setInternalSearchQuery;
45
- const isCaseSensitive = externalIsCaseSensitive ?? internalIsCaseSensitive;
46
- const isRegex = externalIsRegex ?? internalIsRegex;
47
- const setIsCaseSensitive = (value) => {
48
- if (externalOnIsCaseSensitiveChange) {
49
- externalOnIsCaseSensitiveChange(value);
50
- } else {
51
- setInternalIsCaseSensitive(value);
52
- }
53
- };
54
- const setIsRegex = (value) => {
55
- if (externalOnIsRegexChange) {
56
- externalOnIsRegexChange(value);
57
- } else {
58
- setInternalIsRegex(value);
59
- }
60
- };
61
- const toggleItem = (id) => {
62
- setExpandedItems((prev) => {
63
- const newSet = new Set(prev);
64
- if (newSet.has(id)) {
65
- newSet.delete(id);
66
- } else {
67
- newSet.add(id);
68
- }
69
- return newSet;
70
- });
71
- };
72
- const handleItemSelect = (id) => {
73
- if (isSelectable && onSelectChange) {
74
- onSelectChange(selectedItemId === id ? null : id);
75
- }
76
- };
77
- const hasDescendants = (itemId) => {
78
- return (childrenMap.get(itemId) || []).length > 0;
79
- };
80
- const childrenMap = react.useMemo(() => {
81
- const map = /* @__PURE__ */ new Map();
82
- data.forEach((item) => {
83
- if (!map.has(item.parentId)) {
84
- map.set(item.parentId, []);
85
- }
86
- map.get(item.parentId).push(item);
87
- });
88
- return map;
89
- }, [data]);
90
- const dataWithMeta = react.useMemo(() => {
91
- const dataMap = new Map(data.map((item) => [item.id, item]));
92
- const getAncestors = (item) => {
93
- const ancestors = [];
94
- let current = item.parentId;
95
- while (current) {
96
- const parent = dataMap.get(current);
97
- if (parent) {
98
- ancestors.unshift(parent);
99
- current = parent.parentId;
100
- } else {
101
- break;
102
- }
103
- }
104
- return ancestors;
105
- };
106
- const sortedData = [];
107
- const visited = /* @__PURE__ */ new Set();
108
- const traverseNode = (nodeId, depth = 0) => {
109
- const children = childrenMap.get(nodeId) || [];
110
- children.forEach((child) => {
111
- if (!visited.has(child.id)) {
112
- visited.add(child.id);
113
- sortedData.push(child);
114
- traverseNode(child.id, depth + 1);
115
- }
116
- });
117
- };
118
- traverseNode(null);
119
- return sortedData.map((item) => {
120
- const siblings = childrenMap.get(item.parentId) || [];
121
- const isLast = siblings.length > 0 && siblings[siblings.length - 1].id === item.id;
122
- const ancestors = getAncestors(item);
123
- const indent = ancestors.length;
124
- return { ...item, indent, isLast, ancestors };
125
- });
126
- }, [data, childrenMap]);
127
- const visibleData = react.useMemo(() => {
128
- const dataMap = new Map(data.map((item) => [item.id, item]));
129
- if (!searchQuery) {
130
- const isVisible = (item) => {
131
- return item.ancestors.every((ancestor) => expandedItems.has(ancestor.id));
132
- };
133
- return dataWithMeta.filter(isVisible);
134
- }
135
- const matchingAndAncestorIds = /* @__PURE__ */ new Set();
136
- let regex = null;
137
- if (isRegex) {
138
- try {
139
- regex = new RegExp(searchQuery, isCaseSensitive ? "" : "i");
140
- if (!isRegexValid) setIsRegexValid(true);
141
- } catch {
142
- if (isRegexValid) setIsRegexValid(false);
143
- return [];
144
- }
145
- }
146
- data.forEach((item) => {
147
- let labelMatches = false;
148
- if (regex) {
149
- labelMatches = regex.test(item.label);
150
- } else {
151
- const source = isCaseSensitive ? item.label : item.label.toLowerCase();
152
- const query = isCaseSensitive ? searchQuery : searchQuery.toLowerCase();
153
- labelMatches = source.includes(query);
154
- }
155
- if (labelMatches) {
156
- matchingAndAncestorIds.add(item.id);
157
- let current = item.parentId;
158
- while (current) {
159
- const parent = dataMap.get(current);
160
- if (parent) {
161
- matchingAndAncestorIds.add(parent.id);
162
- current = parent.parentId;
163
- } else {
164
- break;
165
- }
166
- }
167
- }
168
- });
169
- return dataWithMeta.filter((item) => matchingAndAncestorIds.has(item.id));
170
- }, [searchQuery, dataWithMeta, expandedItems, isCaseSensitive, isRegex, isRegexValid, data]);
171
- const searchResultsCount = react.useMemo(() => {
172
- if (!searchQuery || !isRegexValid) return 0;
173
- let count = 0;
174
- let regex = null;
175
- if (isRegex) {
176
- try {
177
- regex = new RegExp(searchQuery, isCaseSensitive ? "" : "i");
178
- } catch {
179
- return 0;
180
- }
181
- }
182
- data.forEach((item) => {
183
- let labelMatches = false;
184
- if (regex) {
185
- labelMatches = regex.test(item.label);
186
- } else {
187
- const source = isCaseSensitive ? item.label : item.label.toLowerCase();
188
- const query = isCaseSensitive ? searchQuery : searchQuery.toLowerCase();
189
- labelMatches = source.includes(query);
190
- }
191
- if (labelMatches) {
192
- count++;
193
- }
194
- });
195
- return count;
196
- }, [searchQuery, data, isCaseSensitive, isRegex, isRegexValid]);
197
- react.useEffect(() => {
198
- onVisibleDataChange?.(visibleData);
199
- }, [visibleData, onVisibleDataChange]);
200
- const renderLabel = (label) => {
201
- if (!searchQuery || !isRegexValid) {
202
- return label;
203
- }
204
- let regex;
205
- try {
206
- regex = new RegExp(`(${searchQuery})`, isCaseSensitive ? "g" : "gi");
207
- } catch {
208
- return label;
209
- }
210
- const parts = label.split(regex);
211
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: parts.map(
212
- (part, i) => i % 2 === 1 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-uk-xs bg-accent-warning", children: part }, i) : part
213
- ) });
214
- };
215
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOHIB3TEN_cjs.cn("flex flex-col", className), children: [
216
- isSearchable && /* @__PURE__ */ jsxRuntime.jsx(
217
- TreeSearchBar,
218
- {
219
- searchQuery,
220
- setSearchQuery,
221
- isCaseSensitive,
222
- setIsCaseSensitive,
223
- isRegex,
224
- setIsRegex,
225
- isRegexValid,
226
- searchResultsCount
227
- }
228
- ),
229
- /* @__PURE__ */ jsxRuntime.jsx(
230
- TreeEntries,
231
- {
232
- visibleData,
233
- hoveredId,
234
- onItemHover,
235
- isSelectable,
236
- selectedItemId,
237
- handleItemSelect,
238
- expandedItems,
239
- toggleItem,
240
- alwaysShowExpand,
241
- hasDescendants,
242
- getIcon,
243
- renderLabel,
244
- dataWithMeta,
245
- useSyncScroll
246
- }
247
- )
248
- ] });
249
- }
250
- function TreeSearchBar({
251
- searchQuery,
252
- setSearchQuery,
253
- isCaseSensitive,
254
- setIsCaseSensitive,
255
- isRegex,
256
- setIsRegex,
257
- isRegexValid,
258
- searchResultsCount
259
- }) {
260
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0", children: [
261
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1 py-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
262
- chunk3UEVUYFQ_cjs.InputRoot,
263
- {
264
- type: "text",
265
- placeholder: "Search...",
266
- size: "md",
267
- className: "flex-1",
268
- inputClassName: chunkOHIB3TEN_cjs.cn(!isRegexValid && "text-red-500"),
269
- value: searchQuery,
270
- onChange: (e) => setSearchQuery(e.target.value),
271
- children: [
272
- /* @__PURE__ */ jsxRuntime.jsx(chunk3UEVUYFQ_cjs.InputSlot, { side: "left", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "text-text-secondary size-4 stroke-1" }) }),
273
- /* @__PURE__ */ jsxRuntime.jsx(chunk3UEVUYFQ_cjs.InputSlot, { side: "right", children: /* @__PURE__ */ jsxRuntime.jsxs(chunk2CZEFXEW_cjs.TooltipProvider, { delayDuration: 200, children: [
274
- /* @__PURE__ */ jsxRuntime.jsxs(chunk2CZEFXEW_cjs.Tooltip, { children: [
275
- /* @__PURE__ */ jsxRuntime.jsx(chunk2CZEFXEW_cjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
276
- "button",
277
- {
278
- onClick: () => setIsCaseSensitive((prev) => !prev),
279
- className: chunkOHIB3TEN_cjs.cn(
280
- "rounded-uk-sm mr-1 p-1",
281
- isCaseSensitive ? "bg-shadow-secondary" : ""
282
- ),
283
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CaseSensitive, { className: "size-4" })
284
- }
285
- ) }),
286
- /* @__PURE__ */ jsxRuntime.jsx(chunk2CZEFXEW_cjs.TooltipContent, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Case Sensitive" }) })
287
- ] }),
288
- /* @__PURE__ */ jsxRuntime.jsxs(chunk2CZEFXEW_cjs.Tooltip, { children: [
289
- /* @__PURE__ */ jsxRuntime.jsx(chunk2CZEFXEW_cjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
290
- "button",
291
- {
292
- onClick: () => setIsRegex((prev) => !prev),
293
- className: chunkOHIB3TEN_cjs.cn("rounded-uk-sm p-1", isRegex && "bg-shadow-secondary"),
294
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Regex, { className: "size-4" })
295
- }
296
- ) }),
297
- /* @__PURE__ */ jsxRuntime.jsx(chunk2CZEFXEW_cjs.TooltipContent, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Use Regular Expression" }) })
298
- ] })
299
- ] }) })
300
- ]
301
- }
302
- ) }),
303
- searchQuery && isRegexValid && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end px-2 pb-1", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-uk-xs text-text-secondary", children: [
304
- searchResultsCount,
305
- " result",
306
- searchResultsCount !== 1 ? "s" : ""
307
- ] }) })
308
- ] });
309
- }
310
- function TreeEntryItem({
311
- item,
312
- hoveredId,
313
- onItemHover,
314
- isSelectable,
315
- selectedItemId,
316
- handleItemSelect,
317
- expandedItems,
318
- toggleItem,
319
- alwaysShowExpand,
320
- hasDescendants,
321
- getIcon,
322
- renderLabel,
323
- dataWithMeta
324
- }) {
325
- return /* @__PURE__ */ jsxRuntime.jsxs(
326
- "div",
327
- {
328
- className: chunkOHIB3TEN_cjs.cn(
329
- "group relative flex h-[32px] items-center",
330
- isSelectable && "rounded-uk-md",
331
- !item.disable && "cursor-pointer",
332
- hoveredId === item.id && !item.disable && "bg-bg-secondary",
333
- isSelectable && selectedItemId === item.id && "bg-brand-primary text-text-withbg"
334
- ),
335
- onMouseEnter: () => onItemHover?.(item.id),
336
- onMouseLeave: () => onItemHover?.(null),
337
- onClick: () => !item.disable && handleItemSelect(item.id),
338
- children: [
339
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 left-[-0.28rem] z-0 flex h-full items-center", children: [
340
- item.ancestors.map((ancestor, index) => {
341
- const parentIsLast = dataWithMeta.find((d) => d.id === ancestor.id)?.isLast;
342
- return /* @__PURE__ */ jsxRuntime.jsx(
343
- "div",
344
- {
345
- className: chunkOHIB3TEN_cjs.cn(
346
- "h-full w-[1.25rem]",
347
- parentIsLast ? "" : "border-l",
348
- "border-line-primary"
349
- )
350
- },
351
- index
352
- );
353
- }),
354
- item.indent > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-full w-[1.24rem]", children: [
355
- /* @__PURE__ */ jsxRuntime.jsx(
356
- "div",
357
- {
358
- className: chunkOHIB3TEN_cjs.cn(
359
- "absolute top-0 left-0 h-1/2 w-1/2 border-b border-l",
360
- item.isLast ? "rounded-bl-md" : "",
361
- "border-line-primary"
362
- )
363
- }
364
- ),
365
- !item.isLast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-line-primary absolute top-1/2 left-0 h-1/2 w-1/2 border-l" })
366
- ] })
367
- ] }),
368
- /* @__PURE__ */ jsxRuntime.jsxs(
369
- "div",
370
- {
371
- className: "text-uk-md z-10 flex w-full items-center justify-between gap-2 px-2 whitespace-nowrap",
372
- style: { paddingLeft: `${item.indent * 1.25 + 0.5}rem` },
373
- children: [
374
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
375
- alwaysShowExpand && hasDescendants(item.id) && !expandedItems.has(item.id) ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
376
- /* @__PURE__ */ jsxRuntime.jsx(
377
- "button",
378
- {
379
- onClick: (e) => {
380
- e.stopPropagation();
381
- toggleItem(item.id);
382
- },
383
- className: "flex size-4 cursor-pointer items-center justify-center",
384
- children: /* @__PURE__ */ jsxRuntime.jsx(
385
- lucideReact.ChevronDown,
386
- {
387
- className: chunkOHIB3TEN_cjs.cn(
388
- "size-4 -rotate-90 transition-transform",
389
- item.disable && "text-icon-tertiary"
390
- )
391
- }
392
- )
393
- }
394
- ),
395
- /* @__PURE__ */ jsxRuntime.jsx(
396
- "div",
397
- {
398
- className: chunkOHIB3TEN_cjs.cn(
399
- "flex size-4 items-center justify-center",
400
- item.disable && "text-icon-tertiary"
401
- ),
402
- children: getIcon(item)
403
- }
404
- )
405
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex size-4 items-center justify-center", children: [
406
- item.isCollapsible && /* @__PURE__ */ jsxRuntime.jsx(
407
- "button",
408
- {
409
- onClick: (e) => {
410
- e.stopPropagation();
411
- toggleItem(item.id);
412
- },
413
- className: "absolute z-20 flex cursor-pointer items-center justify-center opacity-0 transition-opacity group-hover:opacity-100",
414
- children: /* @__PURE__ */ jsxRuntime.jsx(
415
- lucideReact.ChevronDown,
416
- {
417
- className: chunkOHIB3TEN_cjs.cn(
418
- "size-4 transition-transform",
419
- !expandedItems.has(item.id) && "-rotate-90",
420
- item.disable && "text-icon-tertiary"
421
- )
422
- }
423
- )
424
- }
425
- ),
426
- /* @__PURE__ */ jsxRuntime.jsx(
427
- "div",
428
- {
429
- className: chunkOHIB3TEN_cjs.cn(
430
- "cursor-pointer transition-opacity",
431
- item.isCollapsible && "group-hover:opacity-0",
432
- item.disable && "text-icon-tertiary"
433
- ),
434
- children: getIcon(item)
435
- }
436
- )
437
- ] }),
438
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkOHIB3TEN_cjs.cn("truncate", item.disable && "text-text-tertiary"), children: renderLabel(item.label) })
439
- ] }),
440
- item.actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", onClick: (e) => e.stopPropagation(), children: item.actions })
441
- ]
442
- }
443
- )
444
- ]
445
- },
446
- item.id
447
- );
448
- }
449
- function TreeEntries({
450
- visibleData,
451
- hoveredId,
452
- onItemHover,
453
- isSelectable,
454
- selectedItemId,
455
- handleItemSelect,
456
- expandedItems,
457
- toggleItem,
458
- alwaysShowExpand,
459
- hasDescendants,
460
- getIcon,
461
- renderLabel,
462
- dataWithMeta,
463
- useSyncScroll = false,
464
- className
465
- }) {
466
- const content = visibleData.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
467
- TreeEntryItem,
468
- {
469
- item,
470
- hoveredId,
471
- onItemHover,
472
- isSelectable,
473
- selectedItemId,
474
- handleItemSelect,
475
- expandedItems,
476
- toggleItem,
477
- alwaysShowExpand,
478
- hasDescendants,
479
- getIcon,
480
- renderLabel,
481
- dataWithMeta
482
- },
483
- item.id
484
- ));
485
- if (useSyncScroll) {
486
- return /* @__PURE__ */ jsxRuntime.jsx(chunkVBBJSIY7_cjs.SyncScroll, { className: chunkOHIB3TEN_cjs.cn("scrollbar-track-transparent flex-1", className), children: content });
487
- }
488
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkOHIB3TEN_cjs.cn("flex-1 overflow-y-auto", className), children: content });
489
- }
490
-
491
- exports.TreeEntries = TreeEntries;
492
- exports.TreeEntryItem = TreeEntryItem;
493
- exports.TreeSearchBar = TreeSearchBar;
494
- exports.TreeView = TreeView;
@@ -1,208 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkOHIB3TEN_cjs = require('./chunk-OHIB3TEN.cjs');
4
- var chunkP6DICGAV_cjs = require('./chunk-P6DICGAV.cjs');
5
- var react = require('react');
6
- var reactDom = require('react-dom');
7
- var jsxRuntime = require('react/jsx-runtime');
8
-
9
- var CursorProvider = ({
10
- children,
11
- maxOffsetX = 5,
12
- maxOffsetY = 20,
13
- cursorSize = 20,
14
- transitionDuration = 100,
15
- cursorClassName,
16
- className,
17
- as: Component = "div",
18
- ...props
19
- }) => {
20
- const [isClient, setIsClient] = react.useState(false);
21
- const [isMouseInside, setIsMouseInside] = react.useState(false);
22
- const [mousePosition, setMousePosition] = react.useState({ x: 0, y: 0 });
23
- const [hoveredElementId, setHoveredElementId] = react.useState(null);
24
- const [elementDimensions, setElementDimensions] = react.useState({
25
- width: 0,
26
- height: 0,
27
- x: 0,
28
- y: 0,
29
- right: 0,
30
- bottom: 0
31
- });
32
- const hoveredElementRef = react.useRef(null);
33
- react.useEffect(() => {
34
- setIsClient(true);
35
- }, []);
36
- react.useEffect(() => {
37
- if (!isClient) return;
38
- const handleMouseMove = (e) => {
39
- setMousePosition({ x: e.clientX, y: e.clientY });
40
- };
41
- document.addEventListener("mousemove", handleMouseMove);
42
- return () => document.removeEventListener("mousemove", handleMouseMove);
43
- }, [isClient]);
44
- const handleMouseEnter = react.useCallback(() => {
45
- setIsMouseInside(true);
46
- }, []);
47
- const handleMouseLeave = react.useCallback(() => {
48
- setIsMouseInside(false);
49
- setHoveredElementId(null);
50
- hoveredElementRef.current = null;
51
- }, []);
52
- const checkMouseInElement = react.useCallback(() => {
53
- if (!hoveredElementRef.current || !hoveredElementId) {
54
- return;
55
- }
56
- const rect = hoveredElementRef.current.getBoundingClientRect();
57
- setElementDimensions({
58
- width: rect.width,
59
- height: rect.height,
60
- x: rect.left,
61
- y: rect.top,
62
- right: rect.right,
63
- bottom: rect.bottom
64
- });
65
- const isInside = mousePosition.x >= rect.left && mousePosition.x <= rect.right && mousePosition.y >= rect.top && mousePosition.y <= rect.bottom;
66
- if (!isInside) {
67
- setHoveredElementId(null);
68
- hoveredElementRef.current = null;
69
- }
70
- }, [mousePosition, hoveredElementId]);
71
- react.useEffect(() => {
72
- if (!isClient) return;
73
- const handleScroll = () => {
74
- checkMouseInElement();
75
- };
76
- document.addEventListener("scroll", handleScroll, { passive: true, capture: true });
77
- return () => {
78
- document.removeEventListener("scroll", handleScroll, { capture: true });
79
- };
80
- }, [checkMouseInElement, isClient]);
81
- const registerHoveredElement = react.useCallback(
82
- (id, dimensions, element) => {
83
- setHoveredElementId(id);
84
- setElementDimensions({
85
- width: dimensions.width,
86
- height: dimensions.height,
87
- x: dimensions.left,
88
- y: dimensions.top,
89
- right: dimensions.right,
90
- bottom: dimensions.bottom
91
- });
92
- if (element) {
93
- hoveredElementRef.current = element;
94
- }
95
- },
96
- []
97
- );
98
- const unregisterHoveredElement = react.useCallback(() => {
99
- setHoveredElementId(null);
100
- hoveredElementRef.current = null;
101
- }, []);
102
- const updateElementDimensions = react.useCallback(
103
- (dimensions) => {
104
- if (hoveredElementId) {
105
- setElementDimensions({
106
- width: dimensions.width,
107
- height: dimensions.height,
108
- x: dimensions.left,
109
- y: dimensions.top,
110
- right: dimensions.right,
111
- bottom: dimensions.bottom
112
- });
113
- }
114
- },
115
- [hoveredElementId]
116
- );
117
- const getCursorPosition = () => {
118
- if (!hoveredElementId) {
119
- return {
120
- x: mousePosition.x - cursorSize / 2,
121
- y: mousePosition.y - cursorSize / 2
122
- };
123
- }
124
- const elementCenterX = elementDimensions.x + elementDimensions.width / 2;
125
- const elementCenterY = elementDimensions.y + elementDimensions.height / 2;
126
- const offsetX = (mousePosition.x - elementCenterX) * 0.1;
127
- const offsetY = (mousePosition.y - elementCenterY) * 0.1;
128
- const boundedOffsetX = Math.max(-maxOffsetX, Math.min(maxOffsetX, offsetX));
129
- const boundedOffsetY = Math.max(-maxOffsetY, Math.min(maxOffsetY, offsetY));
130
- return {
131
- x: elementDimensions.x + boundedOffsetX,
132
- y: elementDimensions.y + boundedOffsetY
133
- };
134
- };
135
- const contextValue = react.useMemo(
136
- () => ({
137
- // State values that change during component lifecycle
138
- mousePosition,
139
- hoveredElementId,
140
- elementDimensions,
141
- // Callbacks that should be stable references
142
- registerHoveredElement,
143
- unregisterHoveredElement,
144
- updateElementDimensions
145
- }),
146
- [
147
- mousePosition,
148
- hoveredElementId,
149
- elementDimensions,
150
- registerHoveredElement,
151
- unregisterHoveredElement,
152
- updateElementDimensions
153
- ]
154
- );
155
- const cursorPosition = getCursorPosition();
156
- const cursorStyleObject = react.useMemo(
157
- () => ({
158
- left: cursorPosition.x,
159
- top: cursorPosition.y,
160
- width: hoveredElementId ? elementDimensions.width > 0 ? elementDimensions.width : cursorSize : cursorSize,
161
- height: hoveredElementId ? elementDimensions.height > 0 ? elementDimensions.height : cursorSize : cursorSize,
162
- willChange: "transform, width, height"
163
- }),
164
- [
165
- cursorPosition.x,
166
- cursorPosition.y,
167
- hoveredElementId,
168
- elementDimensions.width,
169
- elementDimensions.height,
170
- cursorSize
171
- ]
172
- );
173
- let styleClass;
174
- if (hoveredElementId) {
175
- styleClass = `opacity-[0.05] rounded-uk-md transition-[width,height,left,top] duration-${transitionDuration} ease-out`;
176
- } else {
177
- styleClass = `opacity-90 rounded-full z-10 transition-[width,height,left,top] duration-${transitionDuration} ease-out transition-opacity duration-${transitionDuration}`;
178
- }
179
- const cursorElement = isClient && isMouseInside && /* @__PURE__ */ jsxRuntime.jsx(
180
- "div",
181
- {
182
- className: `pointer-events-none fixed ${styleClass} ${hoveredElementId ? "" : cursorClassName || ""}`,
183
- style: {
184
- ...cursorStyleObject,
185
- backgroundColor: "var(--shadow-tertiary)"
186
- }
187
- }
188
- );
189
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
190
- isClient && typeof document !== "undefined" && document.body && cursorElement && reactDom.createPortal(cursorElement, document.body),
191
- /* @__PURE__ */ jsxRuntime.jsx(chunkP6DICGAV_cjs.CursorContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
192
- Component,
193
- {
194
- ...props,
195
- className: chunkOHIB3TEN_cjs.cn(className),
196
- style: {
197
- cursor: isMouseInside && !hoveredElementId ? "none" : "auto",
198
- ...props.style
199
- },
200
- onMouseEnter: handleMouseEnter,
201
- onMouseLeave: handleMouseLeave,
202
- children
203
- }
204
- ) })
205
- ] });
206
- };
207
-
208
- exports.CursorProvider = CursorProvider;