@treelocator/runtime 0.1.0

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 (227) hide show
  1. package/.eslintrc +3 -0
  2. package/.turbo/turbo-build.log +30 -0
  3. package/.turbo/turbo-test.log +18 -0
  4. package/.turbo/turbo-ts.log +4 -0
  5. package/LICENSE +22 -0
  6. package/babel.config.js +14 -0
  7. package/dist/_generated_styles.d.ts +2 -0
  8. package/dist/_generated_styles.js +1734 -0
  9. package/dist/_generated_tree_icon.d.ts +2 -0
  10. package/dist/_generated_tree_icon.js +2 -0
  11. package/dist/adapters/HtmlElementTreeNode.d.ts +16 -0
  12. package/dist/adapters/HtmlElementTreeNode.js +43 -0
  13. package/dist/adapters/adapterApi.d.ts +30 -0
  14. package/dist/adapters/adapterApi.js +1 -0
  15. package/dist/adapters/createTreeNode.d.ts +2 -0
  16. package/dist/adapters/createTreeNode.js +17 -0
  17. package/dist/adapters/getElementInfo.d.ts +2 -0
  18. package/dist/adapters/getElementInfo.js +19 -0
  19. package/dist/adapters/getParentsPath.d.ts +2 -0
  20. package/dist/adapters/getParentsPath.js +35 -0
  21. package/dist/adapters/getTree.d.ts +1 -0
  22. package/dist/adapters/getTree.js +35 -0
  23. package/dist/adapters/goUpByTheTree.d.ts +7 -0
  24. package/dist/adapters/goUpByTheTree.js +22 -0
  25. package/dist/adapters/jsx/getExpressionData.d.ts +2 -0
  26. package/dist/adapters/jsx/getExpressionData.js +44 -0
  27. package/dist/adapters/jsx/getJSXComponentBoundingBox.d.ts +5 -0
  28. package/dist/adapters/jsx/getJSXComponentBoundingBox.js +46 -0
  29. package/dist/adapters/jsx/jsxAdapter.d.ts +11 -0
  30. package/dist/adapters/jsx/jsxAdapter.js +208 -0
  31. package/dist/adapters/jsx/runtimeStore.d.ts +10 -0
  32. package/dist/adapters/jsx/runtimeStore.js +87 -0
  33. package/dist/adapters/react/fiberToSimple.d.ts +3 -0
  34. package/dist/adapters/react/fiberToSimple.js +55 -0
  35. package/dist/adapters/react/findDebugSource.d.ts +5 -0
  36. package/dist/adapters/react/findDebugSource.js +13 -0
  37. package/dist/adapters/react/findFiberByHtmlElement.d.ts +2 -0
  38. package/dist/adapters/react/findFiberByHtmlElement.js +22 -0
  39. package/dist/adapters/react/gatherFiberRoots.d.ts +2 -0
  40. package/dist/adapters/react/gatherFiberRoots.js +29 -0
  41. package/dist/adapters/react/getAllFiberChildren.d.ts +2 -0
  42. package/dist/adapters/react/getAllFiberChildren.js +9 -0
  43. package/dist/adapters/react/getAllParentsElementsAndRootComponent.d.ts +8 -0
  44. package/dist/adapters/react/getAllParentsElementsAndRootComponent.js +34 -0
  45. package/dist/adapters/react/getAllWrappingParents.d.ts +2 -0
  46. package/dist/adapters/react/getAllWrappingParents.js +19 -0
  47. package/dist/adapters/react/getFiberComponentBoundingBox.d.ts +3 -0
  48. package/dist/adapters/react/getFiberComponentBoundingBox.js +27 -0
  49. package/dist/adapters/react/getFiberLabel.d.ts +3 -0
  50. package/dist/adapters/react/getFiberLabel.js +14 -0
  51. package/dist/adapters/react/getFiberOwnBoundingBox.d.ts +3 -0
  52. package/dist/adapters/react/getFiberOwnBoundingBox.js +6 -0
  53. package/dist/adapters/react/isStyled.d.ts +2 -0
  54. package/dist/adapters/react/isStyled.js +3 -0
  55. package/dist/adapters/react/makeFiberId.d.ts +2 -0
  56. package/dist/adapters/react/makeFiberId.js +16 -0
  57. package/dist/adapters/react/reactAdapter.d.ts +11 -0
  58. package/dist/adapters/react/reactAdapter.js +114 -0
  59. package/dist/adapters/react/searchDevtoolsRenderersForClosestTarget.d.ts +1 -0
  60. package/dist/adapters/react/searchDevtoolsRenderersForClosestTarget.js +11 -0
  61. package/dist/adapters/svelte/svelteAdapter.d.ts +22 -0
  62. package/dist/adapters/svelte/svelteAdapter.js +88 -0
  63. package/dist/adapters/vue/getVNodeBoundingBox.d.ts +4 -0
  64. package/dist/adapters/vue/getVNodeBoundingBox.js +31 -0
  65. package/dist/adapters/vue/vueAdapter.d.ts +15 -0
  66. package/dist/adapters/vue/vueAdapter.js +113 -0
  67. package/dist/browserApi.d.ts +103 -0
  68. package/dist/browserApi.js +160 -0
  69. package/dist/components/Button.d.ts +4 -0
  70. package/dist/components/Button.js +17 -0
  71. package/dist/components/ComponentOutline.d.ts +7 -0
  72. package/dist/components/ComponentOutline.js +93 -0
  73. package/dist/components/MaybeOutline.d.ts +7 -0
  74. package/dist/components/MaybeOutline.js +43 -0
  75. package/dist/components/Outline.d.ts +25 -0
  76. package/dist/components/Outline.js +135 -0
  77. package/dist/components/RenderBoxes.d.ts +4 -0
  78. package/dist/components/RenderBoxes.js +73 -0
  79. package/dist/components/Runtime.d.ts +3 -0
  80. package/dist/components/Runtime.js +188 -0
  81. package/dist/components/SimpleNodeOutline.d.ts +4 -0
  82. package/dist/components/SimpleNodeOutline.js +47 -0
  83. package/dist/components/Toast.d.ts +4 -0
  84. package/dist/components/Toast.js +68 -0
  85. package/dist/components/Tooltip.d.ts +5 -0
  86. package/dist/components/Tooltip.js +21 -0
  87. package/dist/consts.d.ts +6 -0
  88. package/dist/consts.js +5 -0
  89. package/dist/functions/cropPath.d.ts +1 -0
  90. package/dist/functions/cropPath.js +9 -0
  91. package/dist/functions/cropPath.test.d.ts +1 -0
  92. package/dist/functions/cropPath.test.js +16 -0
  93. package/dist/functions/deduplicateLabels.d.ts +2 -0
  94. package/dist/functions/deduplicateLabels.js +12 -0
  95. package/dist/functions/evalTemplate.d.ts +3 -0
  96. package/dist/functions/evalTemplate.js +7 -0
  97. package/dist/functions/evalTemplate.test.d.ts +1 -0
  98. package/dist/functions/evalTemplate.test.js +11 -0
  99. package/dist/functions/findNames.d.ts +5 -0
  100. package/dist/functions/findNames.js +15 -0
  101. package/dist/functions/formatAncestryChain.d.ts +9 -0
  102. package/dist/functions/formatAncestryChain.js +56 -0
  103. package/dist/functions/getBoundingRect.d.ts +1 -0
  104. package/dist/functions/getBoundingRect.js +11 -0
  105. package/dist/functions/getComposedBoundingBox.d.ts +2 -0
  106. package/dist/functions/getComposedBoundingBox.js +20 -0
  107. package/dist/functions/getIdsOnPathToRoot.d.ts +3 -0
  108. package/dist/functions/getIdsOnPathToRoot.js +15 -0
  109. package/dist/functions/getMultipleElementsBoundingBox.d.ts +2 -0
  110. package/dist/functions/getMultipleElementsBoundingBox.js +20 -0
  111. package/dist/functions/getPathToParent.d.ts +1 -0
  112. package/dist/functions/getPathToParent.js +15 -0
  113. package/dist/functions/getReferenceId.d.ts +1 -0
  114. package/dist/functions/getReferenceId.js +9 -0
  115. package/dist/functions/getUsableFileName.d.ts +1 -0
  116. package/dist/functions/getUsableFileName.js +17 -0
  117. package/dist/functions/getUsableFileName.test.d.ts +1 -0
  118. package/dist/functions/getUsableFileName.test.js +16 -0
  119. package/dist/functions/getUsableName.d.ts +2 -0
  120. package/dist/functions/getUsableName.js +47 -0
  121. package/dist/functions/isCombinationModifiersPressed.d.ts +4 -0
  122. package/dist/functions/isCombinationModifiersPressed.js +16 -0
  123. package/dist/functions/isLocatorsOwnElement.d.ts +1 -0
  124. package/dist/functions/isLocatorsOwnElement.js +3 -0
  125. package/dist/functions/mergeRects.d.ts +2 -0
  126. package/dist/functions/mergeRects.js +10 -0
  127. package/dist/functions/mergeRects.test.d.ts +1 -0
  128. package/dist/functions/mergeRects.test.js +23 -0
  129. package/dist/functions/nonNullable.d.ts +1 -0
  130. package/dist/functions/nonNullable.js +3 -0
  131. package/dist/functions/parseDataId.d.ts +3 -0
  132. package/dist/functions/parseDataId.js +44 -0
  133. package/dist/functions/transformPath.d.ts +1 -0
  134. package/dist/functions/transformPath.js +7 -0
  135. package/dist/functions/transformPath.test.d.ts +1 -0
  136. package/dist/functions/transformPath.test.js +16 -0
  137. package/dist/global.d.js +1 -0
  138. package/dist/index.d.ts +11 -0
  139. package/dist/index.js +13 -0
  140. package/dist/initRuntime.d.ts +8 -0
  141. package/dist/initRuntime.js +80 -0
  142. package/dist/output.css +1733 -0
  143. package/dist/types/LabelData.d.ts +5 -0
  144. package/dist/types/LabelData.js +1 -0
  145. package/dist/types/TreeNode.d.ts +19 -0
  146. package/dist/types/TreeNode.js +1 -0
  147. package/dist/types/types.d.ts +53 -0
  148. package/dist/types/types.js +1 -0
  149. package/jest.config.ts +195 -0
  150. package/package.json +75 -0
  151. package/scripts/wrapCSS.js +26 -0
  152. package/scripts/wrapImage.js +24 -0
  153. package/src/_generated_styles.ts +1734 -0
  154. package/src/_generated_tree_icon.ts +2 -0
  155. package/src/adapters/HtmlElementTreeNode.ts +51 -0
  156. package/src/adapters/adapterApi.ts +35 -0
  157. package/src/adapters/createTreeNode.ts +25 -0
  158. package/src/adapters/getElementInfo.tsx +27 -0
  159. package/src/adapters/getParentsPath.tsx +49 -0
  160. package/src/adapters/getTree.tsx +45 -0
  161. package/src/adapters/goUpByTheTree.ts +20 -0
  162. package/src/adapters/jsx/getExpressionData.ts +47 -0
  163. package/src/adapters/jsx/getJSXComponentBoundingBox.ts +63 -0
  164. package/src/adapters/jsx/jsxAdapter.ts +276 -0
  165. package/src/adapters/jsx/runtimeStore.ts +94 -0
  166. package/src/adapters/react/fiberToSimple.tsx +72 -0
  167. package/src/adapters/react/findDebugSource.ts +15 -0
  168. package/src/adapters/react/findFiberByHtmlElement.ts +27 -0
  169. package/src/adapters/react/gatherFiberRoots.tsx +36 -0
  170. package/src/adapters/react/getAllFiberChildren.tsx +11 -0
  171. package/src/adapters/react/getAllParentsElementsAndRootComponent.ts +52 -0
  172. package/src/adapters/react/getAllWrappingParents.ts +25 -0
  173. package/src/adapters/react/getFiberComponentBoundingBox.ts +30 -0
  174. package/src/adapters/react/getFiberLabel.ts +20 -0
  175. package/src/adapters/react/getFiberOwnBoundingBox.ts +9 -0
  176. package/src/adapters/react/isStyled.ts +5 -0
  177. package/src/adapters/react/makeFiberId.tsx +19 -0
  178. package/src/adapters/react/reactAdapter.ts +148 -0
  179. package/src/adapters/react/searchDevtoolsRenderersForClosestTarget.ts +15 -0
  180. package/src/adapters/svelte/svelteAdapter.ts +111 -0
  181. package/src/adapters/vue/getVNodeBoundingBox.tsx +42 -0
  182. package/src/adapters/vue/vueAdapter.ts +139 -0
  183. package/src/assets/tree-icon.png +0 -0
  184. package/src/browserApi.ts +288 -0
  185. package/src/components/Button.tsx +14 -0
  186. package/src/components/ComponentOutline.tsx +98 -0
  187. package/src/components/MaybeOutline.tsx +49 -0
  188. package/src/components/Outline.tsx +153 -0
  189. package/src/components/RenderBoxes.tsx +57 -0
  190. package/src/components/Runtime.tsx +246 -0
  191. package/src/components/SimpleNodeOutline.tsx +27 -0
  192. package/src/components/Toast.tsx +83 -0
  193. package/src/components/Tooltip.tsx +28 -0
  194. package/src/consts.ts +7 -0
  195. package/src/functions/cropPath.test.ts +18 -0
  196. package/src/functions/cropPath.ts +12 -0
  197. package/src/functions/deduplicateLabels.ts +16 -0
  198. package/src/functions/evalTemplate.test.ts +12 -0
  199. package/src/functions/evalTemplate.ts +8 -0
  200. package/src/functions/findNames.ts +20 -0
  201. package/src/functions/formatAncestryChain.ts +80 -0
  202. package/src/functions/getBoundingRect.tsx +11 -0
  203. package/src/functions/getComposedBoundingBox.tsx +25 -0
  204. package/src/functions/getIdsOnPathToRoot.tsx +21 -0
  205. package/src/functions/getMultipleElementsBoundingBox.tsx +25 -0
  206. package/src/functions/getPathToParent.tsx +17 -0
  207. package/src/functions/getReferenceId.tsx +10 -0
  208. package/src/functions/getUsableFileName.test.tsx +24 -0
  209. package/src/functions/getUsableFileName.tsx +19 -0
  210. package/src/functions/getUsableName.ts +52 -0
  211. package/src/functions/isCombinationModifiersPressed.ts +32 -0
  212. package/src/functions/isLocatorsOwnElement.tsx +9 -0
  213. package/src/functions/mergeRects.test.ts +15 -0
  214. package/src/functions/mergeRects.tsx +12 -0
  215. package/src/functions/nonNullable.ts +3 -0
  216. package/src/functions/parseDataId.ts +62 -0
  217. package/src/functions/transformPath.test.ts +28 -0
  218. package/src/functions/transformPath.ts +7 -0
  219. package/src/global.d.ts +31 -0
  220. package/src/index.ts +18 -0
  221. package/src/initRuntime.ts +83 -0
  222. package/src/main.css +3 -0
  223. package/src/types/LabelData.ts +6 -0
  224. package/src/types/TreeNode.ts +22 -0
  225. package/src/types/types.ts +55 -0
  226. package/tailwind.config.js +9 -0
  227. package/tsconfig.json +20 -0
@@ -0,0 +1,2 @@
1
+ const treeIcon: string = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAGRlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAABJADAAIAAAAUAAAAUKABAAMAAAABAAEAAKACAAQAAAABAAABAKADAAQAAAABAAABAAAAAAAyMDI1OjEyOjE2IDIyOjAwOjQyAPWxJEgAAAMzaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6SXB0YzR4bXBFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iPgogICAgICAgICA8cGhvdG9zaG9wOkNyZWRpdD5NYWRlIHdpdGggR29vZ2xlIEFJPC9waG90b3Nob3A6Q3JlZGl0PgogICAgICAgICA8cGhvdG9zaG9wOkRhdGVDcmVhdGVkPjIwMjUtMTItMTZUMjI6MDA6NDI8L3Bob3Rvc2hvcDpEYXRlQ3JlYXRlZD4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VGaWxlVHlwZT5odHRwOi8vY3YuaXB0Yy5vcmcvbmV3c2NvZGVzL2RpZ2l0YWxzb3VyY2V0eXBlL3RyYWluZWRBbGdvcml0aG1pY01lZGlhPC9JcHRjNHhtcEV4dDpEaWdpdGFsU291cmNlRmlsZVR5cGU+CiAgICAgICAgIDxJcHRjNHhtcEV4dDpEaWdpdGFsU291cmNlVHlwZT5odHRwOi8vY3YuaXB0Yy5vcmcvbmV3c2NvZGVzL2RpZ2l0YWxzb3VyY2V0eXBlL3RyYWluZWRBbGdvcml0aG1pY01lZGlh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";
2
+ export default treeIcon;
@@ -0,0 +1,51 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ import { Source } from "@locator/shared";
3
+ import { getReferenceId } from "../functions/getReferenceId";
4
+ import nonNullable from "../functions/nonNullable";
5
+ import { TreeNode, TreeNodeComponent } from "../types/TreeNode";
6
+ import { SimpleDOMRect } from "../types/types";
7
+
8
+ export class HtmlElementTreeNode implements TreeNode {
9
+ type: "element" = "element";
10
+ element: HTMLElement;
11
+ name: string;
12
+ uniqueId: string;
13
+ constructor(element: HTMLElement) {
14
+ this.element = element;
15
+ this.name = element.nodeName.toLowerCase();
16
+ this.uniqueId = String(getReferenceId(element));
17
+ }
18
+ getBox(): SimpleDOMRect | null {
19
+ return this.element.getBoundingClientRect();
20
+ }
21
+ getElement(): Element | Text {
22
+ return this.element;
23
+ }
24
+ getChildren(): TreeNode[] {
25
+ const children = Array.from(this.element.children);
26
+ return children
27
+ .map((child) => {
28
+ if (child instanceof HTMLElement) {
29
+ // @ts-ignore
30
+ return new this.constructor(child);
31
+ } else {
32
+ return null;
33
+ }
34
+ })
35
+ .filter(nonNullable);
36
+ }
37
+ getParent(): TreeNode | null {
38
+ if (this.element.parentElement) {
39
+ // @ts-ignore
40
+ return new this.constructor(this.element.parentElement);
41
+ } else {
42
+ return null;
43
+ }
44
+ }
45
+ getSource(): Source | null {
46
+ throw new Error("Method not implemented.");
47
+ }
48
+ getComponent(): TreeNodeComponent | null {
49
+ throw new Error("Method not implemented.");
50
+ }
51
+ }
@@ -0,0 +1,35 @@
1
+ import { LabelData } from "../types/LabelData";
2
+ import { TreeNode } from "../types/TreeNode";
3
+ import { LinkProps, SimpleDOMRect } from "../types/types";
4
+
5
+ export type ElementInfo = {
6
+ box: SimpleDOMRect;
7
+ label: string;
8
+ link: LinkProps | null;
9
+ };
10
+
11
+ export type FullElementInfo = {
12
+ thisElement: ElementInfo;
13
+ htmlElement: HTMLElement;
14
+ parentElements: ElementInfo[];
15
+ componentBox: SimpleDOMRect;
16
+ componentsLabels: LabelData[];
17
+ };
18
+
19
+ export type TreeState = {
20
+ root: TreeNode;
21
+ originalNode: TreeNode;
22
+ expandedIds: Set<string>;
23
+ highlightedId: string;
24
+ };
25
+
26
+ export type ParentPathItem = {
27
+ title: string;
28
+ link: LinkProps | null;
29
+ };
30
+
31
+ export interface AdapterObject {
32
+ getElementInfo(element: HTMLElement): FullElementInfo | null;
33
+ getTree?(includeElement: HTMLElement): TreeState | null;
34
+ getParentsPaths(element: HTMLElement): ParentPathItem[];
35
+ }
@@ -0,0 +1,25 @@
1
+ import { TreeNode } from "../types/TreeNode";
2
+ import { ReactTreeNodeElement } from "./react/reactAdapter";
3
+ import { JSXTreeNodeElement } from "./jsx/jsxAdapter";
4
+ import {
5
+ detectJSX,
6
+ detectReact,
7
+ } from "@locator/shared";
8
+
9
+ export function createTreeNode(
10
+ element: HTMLElement,
11
+ adapterId?: string
12
+ ): TreeNode | null {
13
+ // Check for React adapter
14
+ if (adapterId === "react" || detectReact()) {
15
+ return new ReactTreeNodeElement(element);
16
+ }
17
+
18
+ // Check for JSX adapter (babel plugin) - check if element has data-locatorjs-id
19
+ if (adapterId === "jsx" || detectJSX() || element.dataset.locatorjsId) {
20
+ return new JSXTreeNodeElement(element);
21
+ }
22
+
23
+ // Fallback - return null for unsupported frameworks
24
+ return null;
25
+ }
@@ -0,0 +1,27 @@
1
+ import reactAdapter from "./react/reactAdapter";
2
+ import jsxAdapter from "./jsx/jsxAdapter";
3
+ import svelteAdapter from "./svelte/svelteAdapter";
4
+ import vueAdapter from "./vue/vueAdapter";
5
+ import { AdapterId } from "../consts";
6
+
7
+ export function getElementInfo(target: HTMLElement, adapterId?: AdapterId) {
8
+ if (adapterId === "react") {
9
+ return reactAdapter.getElementInfo(target);
10
+ }
11
+ if (adapterId === "svelte") {
12
+ return svelteAdapter.getElementInfo(target);
13
+ }
14
+ if (adapterId === "jsx") {
15
+ return jsxAdapter.getElementInfo(target);
16
+ }
17
+ if (adapterId === "vue") {
18
+ return vueAdapter.getElementInfo(target);
19
+ }
20
+
21
+ return (
22
+ jsxAdapter.getElementInfo(target) ||
23
+ reactAdapter.getElementInfo(target) ||
24
+ svelteAdapter.getElementInfo(target) ||
25
+ vueAdapter.getElementInfo(target)
26
+ );
27
+ }
@@ -0,0 +1,49 @@
1
+ import reactAdapter from "./react/reactAdapter";
2
+ import {
3
+ detectJSX,
4
+ detectReact,
5
+ detectSvelte,
6
+ detectVue,
7
+ } from "@locator/shared";
8
+ import { ParentPathItem } from "./adapterApi";
9
+ import svelteAdapter from "./svelte/svelteAdapter";
10
+ import jsxAdapter from "./jsx/jsxAdapter";
11
+ import vueAdapter from "./vue/vueAdapter";
12
+
13
+ export function getParentsPaths(
14
+ target: HTMLElement,
15
+ adapterId?: string
16
+ ): ParentPathItem[] {
17
+ if (adapterId === "react" && reactAdapter.getParentsPaths) {
18
+ return reactAdapter.getParentsPaths(target);
19
+ }
20
+ if (adapterId === "svelte" && svelteAdapter.getParentsPaths) {
21
+ return svelteAdapter.getParentsPaths(target);
22
+ }
23
+ if (adapterId === "vue" && vueAdapter.getParentsPaths) {
24
+ return vueAdapter.getParentsPaths(target);
25
+ }
26
+ if (adapterId === "jsx" && jsxAdapter.getParentsPaths) {
27
+ return jsxAdapter.getParentsPaths(target);
28
+ }
29
+
30
+ if (detectSvelte() && svelteAdapter.getParentsPaths) {
31
+ return svelteAdapter.getParentsPaths(target);
32
+ }
33
+
34
+ if (detectVue() && vueAdapter.getParentsPaths) {
35
+ return vueAdapter.getParentsPaths(target);
36
+ }
37
+
38
+ if (detectReact() && reactAdapter.getParentsPaths) {
39
+ return reactAdapter.getParentsPaths(target);
40
+ }
41
+
42
+ // // Must be last, because its global data leaks from Locator extension.
43
+ // // Because the extension is in SolidJS and it uses JSX plugin in dev mode.
44
+ if (detectJSX() && jsxAdapter.getParentsPaths) {
45
+ return jsxAdapter.getParentsPaths(target);
46
+ }
47
+
48
+ return [];
49
+ }
@@ -0,0 +1,45 @@
1
+ import reactAdapter from "./react/reactAdapter";
2
+ import jsxAdapter from "./jsx/jsxAdapter";
3
+ import svelteAdapter from "./svelte/svelteAdapter";
4
+ import {
5
+ detectJSX,
6
+ detectReact,
7
+ detectSvelte,
8
+ detectVue,
9
+ } from "@locator/shared";
10
+ import vueAdapter from "./vue/vueAdapter";
11
+
12
+ export function getTree(target: HTMLElement, adapterId?: string) {
13
+ if (adapterId === "react" && reactAdapter.getTree) {
14
+ return reactAdapter.getTree(target);
15
+ }
16
+ if (adapterId === "svelte" && svelteAdapter.getTree) {
17
+ return svelteAdapter.getTree(target);
18
+ }
19
+ if (adapterId === "vue" && vueAdapter.getTree) {
20
+ return vueAdapter.getTree(target);
21
+ }
22
+ if (adapterId === "jsx" && jsxAdapter.getTree) {
23
+ return jsxAdapter.getTree(target);
24
+ }
25
+
26
+ if (detectSvelte() && svelteAdapter.getTree) {
27
+ return svelteAdapter.getTree(target);
28
+ }
29
+
30
+ if (detectVue() && vueAdapter.getTree) {
31
+ return vueAdapter.getTree(target);
32
+ }
33
+
34
+ if (detectReact() && reactAdapter.getTree) {
35
+ return reactAdapter.getTree(target);
36
+ }
37
+
38
+ // Must be last, because its global data leaks from Locator extension.
39
+ // Because the extension is in SolidJS and it uses JSX plugin in dev mode.
40
+ if (detectJSX() && jsxAdapter.getTree) {
41
+ return jsxAdapter.getTree(target);
42
+ }
43
+
44
+ return null;
45
+ }
@@ -0,0 +1,20 @@
1
+ import { TreeNode } from "../types/TreeNode";
2
+
3
+ export function goUpByTheTree(originalNode: TreeNode) {
4
+ let root = originalNode;
5
+ const expandedIds = new Set<string>();
6
+ let current: TreeNode | null = root;
7
+
8
+ const highlightedId = root.uniqueId;
9
+ expandedIds.add(current.uniqueId);
10
+ let limit = 2;
11
+ while (current && limit > 0) {
12
+ limit--;
13
+ current = current.getParent();
14
+ if (current) {
15
+ expandedIds.add(current.uniqueId);
16
+ root = current;
17
+ }
18
+ }
19
+ return { expandedIds, highlightedId, root, originalNode };
20
+ }
@@ -0,0 +1,47 @@
1
+ import type { ExpressionInfo, FileStorage } from "@locator/shared";
2
+ import { parseDataId, parseDataPath } from "../../functions/parseDataId";
3
+
4
+ export function getExpressionData(
5
+ target: HTMLElement,
6
+ fileData: FileStorage | null
7
+ ): ExpressionInfo | null {
8
+ // First check for data-locatorjs (path-based, for server components)
9
+ if (target.dataset.locatorjs) {
10
+ const parsed = parseDataPath(target.dataset.locatorjs);
11
+ if (parsed) {
12
+ const [, line, column] = parsed;
13
+
14
+ // Try to find in fileData if available
15
+ if (fileData) {
16
+ const expData = fileData.expressions.find(
17
+ (exp) =>
18
+ exp.loc.start.line === line && exp.loc.start.column === column
19
+ );
20
+ if (expData) {
21
+ return expData;
22
+ }
23
+ }
24
+
25
+ // If no fileData or not found, create minimal ExpressionInfo from path
26
+ return {
27
+ name: target.tagName.toLowerCase(),
28
+ loc: {
29
+ start: { line, column },
30
+ end: { line, column },
31
+ },
32
+ wrappingComponentId: null,
33
+ };
34
+ }
35
+ }
36
+
37
+ // Fall back to data-locatorjs-id (ID-based, traditional approach)
38
+ if (target.dataset.locatorjsId && fileData) {
39
+ const [, id] = parseDataId(target.dataset.locatorjsId);
40
+ const expData = fileData.expressions[Number(id)];
41
+ if (expData) {
42
+ return expData;
43
+ }
44
+ }
45
+
46
+ return null;
47
+ }
@@ -0,0 +1,63 @@
1
+ import type { FileStorage } from "@locator/shared";
2
+ import { mergeRects } from "../../functions/mergeRects";
3
+ import { parseDataId, parseDataPath } from "../../functions/parseDataId";
4
+ import type { SimpleDOMRect } from "../../types/types";
5
+ import { getExpressionData } from "./getExpressionData";
6
+
7
+ export function getJSXComponentBoundingBox(
8
+ found: HTMLElement,
9
+ locatorData: { [filename: string]: FileStorage },
10
+ componentFolder: string,
11
+ componentId: number
12
+ ): SimpleDOMRect {
13
+ let composedBox: SimpleDOMRect = found.getBoundingClientRect();
14
+ // Currently it works well only for components with one root element, but for components with multiple root elements we would need to track instance ids.
15
+ function goParent(current: HTMLElement) {
16
+ const parent = current.parentNode;
17
+ if (!parent) {
18
+ return;
19
+ }
20
+ if (parent instanceof HTMLElement) {
21
+ // Check for either data-locatorjs (path-based) or data-locatorjs-id (ID-based)
22
+ if (parent.dataset.locatorjs || parent.dataset.locatorjsId) {
23
+ let fileFullPath: string;
24
+
25
+ if (parent.dataset.locatorjs) {
26
+ const parsed = parseDataPath(parent.dataset.locatorjs);
27
+ if (!parsed) {
28
+ goParent(parent);
29
+ return;
30
+ }
31
+ [fileFullPath] = parsed;
32
+ } else if (parent.dataset.locatorjsId) {
33
+ [fileFullPath] = parseDataId(parent.dataset.locatorjsId);
34
+ } else {
35
+ goParent(parent);
36
+ return;
37
+ }
38
+
39
+ const fileData: FileStorage | undefined = locatorData[fileFullPath];
40
+ const expData = getExpressionData(parent, fileData || null);
41
+ if (expData) {
42
+ if (
43
+ expData.wrappingComponentId === componentId &&
44
+ componentFolder === fileFullPath
45
+ ) {
46
+ composedBox = mergeRects(
47
+ composedBox,
48
+ parent.getBoundingClientRect()
49
+ );
50
+ goParent(parent);
51
+ }
52
+ expData.wrappingComponentId;
53
+ }
54
+ } else {
55
+ // If there is no locatorjs-id or locatorjs, we should go to the parent, because it can be some library element
56
+ goParent(parent);
57
+ }
58
+ }
59
+ }
60
+ goParent(found);
61
+
62
+ return composedBox;
63
+ }