@tanstack/devtools 0.6.7 → 0.6.8

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 (80) hide show
  1. package/dist/chunk/CEHNENNI.js +251 -0
  2. package/dist/{esm/core.js → dev.js} +10 -12
  3. package/dist/devtools/DJF65R3Y.js +1674 -0
  4. package/dist/devtools/ITBBRMTQ.js +1966 -0
  5. package/dist/index.d.ts +168 -0
  6. package/dist/index.js +76 -0
  7. package/dist/server.js +44 -0
  8. package/package.json +21 -12
  9. package/src/core.tsx +3 -0
  10. package/dist/esm/components/content-panel.d.ts +0 -6
  11. package/dist/esm/components/content-panel.js +0 -32
  12. package/dist/esm/components/content-panel.js.map +0 -1
  13. package/dist/esm/components/main-panel.d.ts +0 -6
  14. package/dist/esm/components/main-panel.js +0 -42
  15. package/dist/esm/components/main-panel.js.map +0 -1
  16. package/dist/esm/components/tab-content.d.ts +0 -2
  17. package/dist/esm/components/tab-content.js +0 -23
  18. package/dist/esm/components/tab-content.js.map +0 -1
  19. package/dist/esm/components/tabs.d.ts +0 -5
  20. package/dist/esm/components/tabs.js +0 -75
  21. package/dist/esm/components/tabs.js.map +0 -1
  22. package/dist/esm/components/trigger.d.ts +0 -5
  23. package/dist/esm/components/trigger.js +0 -31
  24. package/dist/esm/components/trigger.js.map +0 -1
  25. package/dist/esm/constants.d.ts +0 -2
  26. package/dist/esm/constants.js +0 -7
  27. package/dist/esm/constants.js.map +0 -1
  28. package/dist/esm/context/devtools-context.d.ts +0 -62
  29. package/dist/esm/context/devtools-context.js +0 -77
  30. package/dist/esm/context/devtools-context.js.map +0 -1
  31. package/dist/esm/context/devtools-store.d.ts +0 -59
  32. package/dist/esm/context/devtools-store.js +0 -29
  33. package/dist/esm/context/devtools-store.js.map +0 -1
  34. package/dist/esm/context/draw-context.d.ts +0 -13
  35. package/dist/esm/context/draw-context.js +0 -55
  36. package/dist/esm/context/draw-context.js.map +0 -1
  37. package/dist/esm/context/pip-context.d.ts +0 -14
  38. package/dist/esm/context/pip-context.js +0 -117
  39. package/dist/esm/context/pip-context.js.map +0 -1
  40. package/dist/esm/context/use-devtools-context.d.ts +0 -40
  41. package/dist/esm/context/use-devtools-context.js +0 -96
  42. package/dist/esm/context/use-devtools-context.js.map +0 -1
  43. package/dist/esm/core.d.ts +0 -39
  44. package/dist/esm/core.js.map +0 -1
  45. package/dist/esm/devtools.d.ts +0 -1
  46. package/dist/esm/devtools.js +0 -200
  47. package/dist/esm/devtools.js.map +0 -1
  48. package/dist/esm/hooks/use-disable-tabbing.d.ts +0 -6
  49. package/dist/esm/hooks/use-disable-tabbing.js +0 -23
  50. package/dist/esm/hooks/use-disable-tabbing.js.map +0 -1
  51. package/dist/esm/hooks/use-head-changes.d.ts +0 -39
  52. package/dist/esm/hooks/use-head-changes.js +0 -65
  53. package/dist/esm/hooks/use-head-changes.js.map +0 -1
  54. package/dist/esm/index.d.ts +0 -4
  55. package/dist/esm/index.js +0 -8
  56. package/dist/esm/index.js.map +0 -1
  57. package/dist/esm/styles/tokens.d.ts +0 -298
  58. package/dist/esm/styles/tokens.js +0 -63
  59. package/dist/esm/styles/tokens.js.map +0 -1
  60. package/dist/esm/styles/use-styles.d.ts +0 -42
  61. package/dist/esm/styles/use-styles.js +0 -422
  62. package/dist/esm/styles/use-styles.js.map +0 -1
  63. package/dist/esm/tabs/index.d.ts +0 -17
  64. package/dist/esm/tabs/index.js +0 -25
  65. package/dist/esm/tabs/index.js.map +0 -1
  66. package/dist/esm/tabs/plugins-tab.d.ts +0 -1
  67. package/dist/esm/tabs/plugins-tab.js +0 -88
  68. package/dist/esm/tabs/plugins-tab.js.map +0 -1
  69. package/dist/esm/tabs/seo-tab.d.ts +0 -1
  70. package/dist/esm/tabs/seo-tab.js +0 -296
  71. package/dist/esm/tabs/seo-tab.js.map +0 -1
  72. package/dist/esm/tabs/settings-tab.d.ts +0 -1
  73. package/dist/esm/tabs/settings-tab.js +0 -308
  74. package/dist/esm/tabs/settings-tab.js.map +0 -1
  75. package/dist/esm/utils/sanitize.d.ts +0 -3
  76. package/dist/esm/utils/sanitize.js +0 -31
  77. package/dist/esm/utils/sanitize.js.map +0 -1
  78. package/dist/esm/utils/storage.d.ts +0 -5
  79. package/dist/esm/utils/storage.js +0 -19
  80. package/dist/esm/utils/storage.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ import { ClientEventBusConfig } from '@tanstack/devtools-event-bus/client';
2
+ export { ClientEventBusConfig } from '@tanstack/devtools-event-bus/client';
3
+ import * as solid_js from 'solid-js';
4
+
5
+ declare const PLUGIN_CONTAINER_ID = "plugin-container";
6
+ declare const PLUGIN_TITLE_CONTAINER_ID = "plugin-title-container";
7
+
8
+ declare const tabs: readonly [{
9
+ readonly name: "Plugins";
10
+ readonly id: "plugins";
11
+ readonly component: () => solid_js.JSX.Element;
12
+ readonly icon: () => solid_js.JSX.Element;
13
+ }, {
14
+ readonly name: "SEO";
15
+ readonly id: "seo";
16
+ readonly component: () => solid_js.JSX.Element;
17
+ readonly icon: () => solid_js.JSX.Element;
18
+ }, {
19
+ readonly name: "Settings";
20
+ readonly id: "settings";
21
+ readonly component: () => solid_js.JSX.Element;
22
+ readonly icon: () => solid_js.JSX.Element;
23
+ }];
24
+ type TabName = (typeof tabs)[number]['id'];
25
+
26
+ type ModifierKey = 'Alt' | 'Control' | 'Meta' | 'Shift';
27
+ type KeyboardKey = ModifierKey | (string & {});
28
+ type TriggerPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle-left' | 'middle-right';
29
+ type DevtoolsStore = {
30
+ settings: {
31
+ /**
32
+ * Whether the dev tools should be open by default
33
+ * @default false
34
+ */
35
+ defaultOpen: boolean;
36
+ /**
37
+ * Whether the dev tools trigger should be hidden until the user hovers over it
38
+ * @default false
39
+ */
40
+ hideUntilHover: boolean;
41
+ /**
42
+ * The position of the trigger button
43
+ * @default "bottom-right"
44
+ */
45
+ position: TriggerPosition;
46
+ /**
47
+ * The location of the panel once it is open
48
+ * @default "bottom"
49
+ */
50
+ panelLocation: 'top' | 'bottom';
51
+ /**
52
+ * The hotkey to open the dev tools
53
+ * @default "shift+a"
54
+ */
55
+ openHotkey: Array<KeyboardKey>;
56
+ /**
57
+ * Whether to require the URL flag to open the dev tools
58
+ * @default false
59
+ */
60
+ requireUrlFlag: boolean;
61
+ /**
62
+ * The URL flag to open the dev tools, used in conjunction with requireUrlFlag (if set to true)
63
+ * @default "tanstack-devtools"
64
+ */
65
+ urlFlag: string;
66
+ /**
67
+ * The theme of the dev tools
68
+ * @default "dark"
69
+ */
70
+ theme: 'light' | 'dark';
71
+ };
72
+ state: {
73
+ activeTab: TabName;
74
+ height: number;
75
+ activePlugin?: string | undefined;
76
+ persistOpen: boolean;
77
+ };
78
+ plugins?: Array<TanStackDevtoolsPlugin>;
79
+ };
80
+
81
+ interface TanStackDevtoolsPlugin {
82
+ /**
83
+ * Name to be displayed in the devtools UI.
84
+ * If a string, it will be used as the plugin name.
85
+ * If a function, it will be called with the mount element.
86
+ *
87
+ * Example:
88
+ * ```ts
89
+ * {
90
+ * // If a string, it will be used as the plugin name
91
+ * name: "Your Plugin",
92
+ * render: () => {}
93
+ * }
94
+ * ```
95
+ * or
96
+ *
97
+ * ```ts
98
+ * {
99
+ * // If a function, it will be called with the mount element
100
+ * name: (el) => {
101
+ * el.innerText = "Your Plugin Name"
102
+ * // Your name logic here
103
+ * },
104
+ * render: () => {}
105
+ * }
106
+ * ```
107
+ */
108
+ name: string | ((el: HTMLHeadingElement, theme: DevtoolsStore['settings']['theme']) => void);
109
+ /**
110
+ * Unique identifier for the plugin.
111
+ * If not provided, it will be generated based on the name.
112
+ */
113
+ id?: string;
114
+ /**
115
+ * Render the plugin UI by using the provided element. This function will be called
116
+ * when the plugin tab is clicked and expected to be mounted.
117
+ * @param el The mount element for the plugin.
118
+ * @returns void
119
+ *
120
+ * Example:
121
+ * ```ts
122
+ * render: (el) => {
123
+ * el.innerHTML = "<h1>Your Plugin</h1>"
124
+ * }
125
+ * ```
126
+ */
127
+ render: (el: HTMLDivElement, theme: DevtoolsStore['settings']['theme']) => void;
128
+ }
129
+ type TanStackDevtoolsConfig = DevtoolsStore['settings'];
130
+
131
+ interface TanStackDevtoolsInit {
132
+ /**
133
+ * Configuration for the devtools shell. These configuration options are used to set the
134
+ * initial state of the devtools when it is started for the first time. Afterwards,
135
+ * the settings are persisted in local storage and changed through the settings panel.
136
+ */
137
+ config?: Partial<TanStackDevtoolsConfig>;
138
+ /**
139
+ * Array of plugins to be used in the devtools.
140
+ * Each plugin has a `render` function that gives you the dom node to mount into
141
+ *
142
+ * Example:
143
+ * ```ts
144
+ * const devtools = new TanStackDevtoolsCore({
145
+ * plugins: [
146
+ * {
147
+ * id: "your-plugin-id",
148
+ * name: "Your Plugin",
149
+ * render: (el) => {
150
+ * // Your render logic here
151
+ * },
152
+ * },
153
+ * ],
154
+ * })
155
+ * ```
156
+ */
157
+ plugins?: Array<TanStackDevtoolsPlugin>;
158
+ eventBusConfig?: ClientEventBusConfig;
159
+ }
160
+ declare class TanStackDevtoolsCore {
161
+ #private;
162
+ constructor(init: TanStackDevtoolsInit);
163
+ mount<T extends HTMLElement>(el: T): void;
164
+ unmount(): void;
165
+ setConfig(config: Partial<TanStackDevtoolsInit>): void;
166
+ }
167
+
168
+ export { PLUGIN_CONTAINER_ID, PLUGIN_TITLE_CONTAINER_ID, type TanStackDevtoolsConfig, TanStackDevtoolsCore, type TanStackDevtoolsInit, type TanStackDevtoolsPlugin };
package/dist/index.js ADDED
@@ -0,0 +1,76 @@
1
+ import { initialState, DevtoolsProvider, PiPProvider } from './chunk/CEHNENNI.js';
2
+ export { PLUGIN_CONTAINER_ID, PLUGIN_TITLE_CONTAINER_ID } from './chunk/CEHNENNI.js';
3
+ import { render, createComponent, Portal } from 'solid-js/web';
4
+ import { lazy } from 'solid-js';
5
+ import { ClientEventBus } from '@tanstack/devtools-event-bus/client';
6
+
7
+ var TanStackDevtoolsCore = class {
8
+ #config = {
9
+ ...initialState.settings
10
+ };
11
+ #plugins = [];
12
+ #isMounted = false;
13
+ #dispose;
14
+ #Component;
15
+ #eventBus;
16
+ #eventBusConfig;
17
+ constructor(init) {
18
+ this.#plugins = init.plugins || [];
19
+ this.#eventBusConfig = init.eventBusConfig;
20
+ this.#config = {
21
+ ...this.#config,
22
+ ...init.config
23
+ };
24
+ }
25
+ mount(el) {
26
+ if (this.#isMounted) {
27
+ throw new Error("Devtools is already mounted");
28
+ }
29
+ const mountTo = el;
30
+ const dispose = render(() => {
31
+ const _self$ = this;
32
+ this.#Component = lazy(() => import('./devtools/ITBBRMTQ.js'));
33
+ const Devtools = this.#Component;
34
+ this.#eventBus = new ClientEventBus(this.#eventBusConfig);
35
+ this.#eventBus.start();
36
+ return createComponent(DevtoolsProvider, {
37
+ get plugins() {
38
+ return _self$.#plugins;
39
+ },
40
+ get config() {
41
+ return _self$.#config;
42
+ },
43
+ get children() {
44
+ return createComponent(PiPProvider, {
45
+ get children() {
46
+ return createComponent(Portal, {
47
+ mount: mountTo,
48
+ get children() {
49
+ return createComponent(Devtools, {});
50
+ }
51
+ });
52
+ }
53
+ });
54
+ }
55
+ });
56
+ }, mountTo);
57
+ this.#isMounted = true;
58
+ this.#dispose = dispose;
59
+ }
60
+ unmount() {
61
+ if (!this.#isMounted) {
62
+ throw new Error("Devtools is not mounted");
63
+ }
64
+ this.#eventBus?.stop();
65
+ this.#dispose?.();
66
+ this.#isMounted = false;
67
+ }
68
+ setConfig(config) {
69
+ this.#config = {
70
+ ...this.#config,
71
+ ...config
72
+ };
73
+ }
74
+ };
75
+
76
+ export { TanStackDevtoolsCore };
package/dist/server.js ADDED
@@ -0,0 +1,44 @@
1
+ import { initialState } from './chunk/CEHNENNI.js';
2
+ export { PLUGIN_CONTAINER_ID, PLUGIN_TITLE_CONTAINER_ID } from './chunk/CEHNENNI.js';
3
+ import 'solid-js/web';
4
+ import 'solid-js';
5
+ import '@tanstack/devtools-event-bus/client';
6
+
7
+ var TanStackDevtoolsCore = class {
8
+ #config = {
9
+ ...initialState.settings
10
+ };
11
+ #plugins = [];
12
+ #isMounted = false;
13
+ #dispose;
14
+ #Component;
15
+ #eventBus;
16
+ #eventBusConfig;
17
+ constructor(init) {
18
+ this.#plugins = init.plugins || [];
19
+ this.#eventBusConfig = init.eventBusConfig;
20
+ this.#config = {
21
+ ...this.#config,
22
+ ...init.config
23
+ };
24
+ }
25
+ mount(el) {
26
+ return;
27
+ }
28
+ unmount() {
29
+ if (!this.#isMounted) {
30
+ throw new Error("Devtools is not mounted");
31
+ }
32
+ this.#eventBus?.stop();
33
+ this.#dispose?.();
34
+ this.#isMounted = false;
35
+ }
36
+ setConfig(config) {
37
+ this.#config = {
38
+ ...this.#config,
39
+ ...config
40
+ };
41
+ }
42
+ };
43
+
44
+ export { TanStackDevtoolsCore };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/devtools",
3
- "version": "0.6.7",
3
+ "version": "0.6.8",
4
4
  "description": "TanStack Devtools is a set of tools for building advanced devtools for your application.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -18,16 +18,23 @@
18
18
  "devtools"
19
19
  ],
20
20
  "type": "module",
21
- "types": "dist/esm/index.d.ts",
22
- "module": "dist/esm/index.js",
21
+ "types": "dist/index.d.ts",
22
+ "module": "dist/index.js",
23
23
  "exports": {
24
- ".": {
25
- "import": {
26
- "types": "./dist/esm/index.d.ts",
27
- "default": "./dist/esm/index.js"
28
- }
24
+ "browser": {
25
+ "development": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/dev.js"
28
+ },
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
29
31
  },
30
- "./package.json": "./package.json"
32
+ "node": {
33
+ "types": "./dist/index.d.ts",
34
+ "import": "./dist/server.js"
35
+ },
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js"
31
38
  },
32
39
  "sideEffects": false,
33
40
  "engines": {
@@ -42,14 +49,16 @@
42
49
  "clsx": "^2.1.1",
43
50
  "goober": "^2.1.16",
44
51
  "solid-js": "^1.9.7",
45
- "@tanstack/devtools-event-bus": "0.3.2",
46
- "@tanstack/devtools-ui": "0.3.4"
52
+ "@tanstack/devtools-ui": "0.3.4",
53
+ "@tanstack/devtools-event-bus": "0.3.2"
47
54
  },
48
55
  "peerDependencies": {
49
56
  "solid-js": ">=1.9.7",
50
57
  "@tanstack/devtools-ui": "0.3.4"
51
58
  },
52
59
  "devDependencies": {
60
+ "tsup": "^8.5.0",
61
+ "tsup-preset-solid": "^2.2.0",
53
62
  "vite-plugin-solid": "^2.11.6"
54
63
  },
55
64
  "scripts": {
@@ -60,6 +69,6 @@
60
69
  "test:lib:dev": "pnpm test:lib --watch",
61
70
  "test:types": "tsc",
62
71
  "test:build": "publint --strict",
63
- "build": "vite build"
72
+ "build": "tsup"
64
73
  }
65
74
  }
package/src/core.tsx CHANGED
@@ -61,6 +61,9 @@ export class TanStackDevtoolsCore {
61
61
  }
62
62
 
63
63
  mount<T extends HTMLElement>(el: T) {
64
+ // tsup-preset-solid statically replaces this variable during build, which eliminates this code from server bundle
65
+ if (import.meta.env.SSR) return
66
+
64
67
  if (this.#isMounted) {
65
68
  throw new Error('Devtools is already mounted')
66
69
  }
@@ -1,6 +0,0 @@
1
- import { JSX } from 'solid-js/jsx-runtime';
2
- export declare const ContentPanel: (props: {
3
- ref: (el: HTMLDivElement | undefined) => void;
4
- children: JSX.Element;
5
- handleDragStart?: (e: any) => void;
6
- }) => JSX.Element;
@@ -1,32 +0,0 @@
1
- import { template, use, insert, memo, addEventListener, effect, className, delegateEvents } from "solid-js/web";
2
- import { useDevtoolsSettings } from "../context/use-devtools-context.js";
3
- import { useStyles } from "../styles/use-styles.js";
4
- var _tmpl$ = /* @__PURE__ */ template(`<div>`);
5
- const ContentPanel = (props) => {
6
- const styles = useStyles();
7
- const {
8
- settings
9
- } = useDevtoolsSettings();
10
- return (() => {
11
- var _el$ = _tmpl$();
12
- var _ref$ = props.ref;
13
- typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
14
- insert(_el$, (() => {
15
- var _c$ = memo(() => !!props.handleDragStart);
16
- return () => _c$() ? (() => {
17
- var _el$2 = _tmpl$();
18
- addEventListener(_el$2, "mousedown", props.handleDragStart, true);
19
- effect(() => className(_el$2, styles().dragHandle(settings().panelLocation)));
20
- return _el$2;
21
- })() : null;
22
- })(), null);
23
- insert(_el$, () => props.children, null);
24
- effect(() => className(_el$, styles().devtoolsPanel));
25
- return _el$;
26
- })();
27
- };
28
- delegateEvents(["mousedown"]);
29
- export {
30
- ContentPanel
31
- };
32
- //# sourceMappingURL=content-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-panel.js","sources":["../../../src/components/content-panel.tsx"],"sourcesContent":["import { useDevtoolsSettings } from '../context/use-devtools-context'\nimport { useStyles } from '../styles/use-styles'\nimport type { JSX } from 'solid-js/jsx-runtime'\n\nexport const ContentPanel = (props: {\n ref: (el: HTMLDivElement | undefined) => void\n children: JSX.Element\n handleDragStart?: (e: any) => void\n}) => {\n const styles = useStyles()\n const { settings } = useDevtoolsSettings()\n return (\n <div ref={props.ref} class={styles().devtoolsPanel}>\n {props.handleDragStart ? (\n <div\n class={styles().dragHandle(settings().panelLocation)}\n onMouseDown={props.handleDragStart}\n ></div>\n ) : null}\n {props.children}\n </div>\n )\n}\n"],"names":["ContentPanel","props","styles","useStyles","settings","useDevtoolsSettings","_el$","_tmpl$","_ref$","ref","_$use","_$insert","_c$","_$memo","handleDragStart","_el$2","_$addEventListener","_$effect","_$className","dragHandle","panelLocation","children","devtoolsPanel","_$delegateEvents"],"mappings":";;;;AAIO,MAAMA,eAAeA,CAACC,UAIvB;AACJ,QAAMC,SAASC,UAAAA;AACf,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAaC,oBAAAA;AACrB,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAA,QAAAC,QACYP,MAAMQ;AAAG,WAAAD,UAAA,aAAAE,IAAAF,OAAAF,IAAA,IAATL,MAAMQ,MAAGH;AAAAK,WAAAL,OAAA,MAAA;AAAA,UAAAM,MAAAC,KAAA,MAAA,CAAA,CAChBZ,MAAMa,eAAe;AAAA,aAAA,MAArBF,IAAAA,KAAA,MAAA;AAAA,YAAAG,QAAAR,OAAAA;AAAAS,yBAAAD,OAAA,aAGgBd,MAAMa,iBAAe,IAAA;AAAAG,qBAAAC,UAAAH,OAD3Bb,OAAAA,EAASiB,WAAWf,SAAAA,EAAWgB,aAAa,CAAC,CAAA;AAAA,eAAAL;AAAAA,MAAA,OAGpD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAJ,WAAAL,MAAA,MACPL,MAAMoB,UAAQ,IAAA;AAAAJ,WAAA,MAAAC,UAAAZ,MAPWJ,OAAAA,EAASoB,aAAa,CAAA;AAAA,WAAAhB;AAAAA,EAAA,GAAA;AAUtD;AAACiB,eAAA,CAAA,WAAA,CAAA;"}
@@ -1,6 +0,0 @@
1
- import { Accessor, JSX } from 'solid-js';
2
- export declare const MainPanel: (props: {
3
- isOpen: Accessor<boolean>;
4
- children: JSX.Element;
5
- isResizing: Accessor<boolean>;
6
- }) => JSX.Element;
@@ -1,42 +0,0 @@
1
- import { template, setAttribute, insert, createComponent, effect, className } from "solid-js/web";
2
- import clsx from "clsx";
3
- import { DrawClientProvider } from "../context/draw-context.js";
4
- import { useHeight, useDevtoolsSettings } from "../context/use-devtools-context.js";
5
- import { useStyles } from "../styles/use-styles.js";
6
- import { TANSTACK_DEVTOOLS } from "../utils/storage.js";
7
- import { usePiPWindow } from "../context/pip-context.js";
8
- var _tmpl$ = /* @__PURE__ */ template(`<div>`);
9
- const MainPanel = (props) => {
10
- const styles = useStyles();
11
- const {
12
- height
13
- } = useHeight();
14
- const {
15
- settings
16
- } = useDevtoolsSettings();
17
- const pip = usePiPWindow();
18
- return (() => {
19
- var _el$ = _tmpl$();
20
- setAttribute(_el$, "id", TANSTACK_DEVTOOLS);
21
- insert(_el$, createComponent(DrawClientProvider, {
22
- animationMs: 400,
23
- get children() {
24
- return props.children;
25
- }
26
- }));
27
- effect((_p$) => {
28
- var _v$ = pip().pipWindow ? "100vh" : height() + "px", _v$2 = clsx(styles().devtoolsPanelContainer(settings().panelLocation, Boolean(pip().pipWindow)), styles().devtoolsPanelContainerAnimation(props.isOpen(), height()), styles().devtoolsPanelContainerVisibility(props.isOpen()), styles().devtoolsPanelContainerResizing(props.isResizing));
29
- _v$ !== _p$.e && ((_p$.e = _v$) != null ? _el$.style.setProperty("height", _v$) : _el$.style.removeProperty("height"));
30
- _v$2 !== _p$.t && className(_el$, _p$.t = _v$2);
31
- return _p$;
32
- }, {
33
- e: void 0,
34
- t: void 0
35
- });
36
- return _el$;
37
- })();
38
- };
39
- export {
40
- MainPanel
41
- };
42
- //# sourceMappingURL=main-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main-panel.js","sources":["../../../src/components/main-panel.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { DrawClientProvider } from '../context/draw-context'\nimport { useDevtoolsSettings, useHeight } from '../context/use-devtools-context'\nimport { useStyles } from '../styles/use-styles'\nimport { TANSTACK_DEVTOOLS } from '../utils/storage'\nimport { usePiPWindow } from '../context/pip-context'\n\nimport type { Accessor, JSX } from 'solid-js'\n\nexport const MainPanel = (props: {\n isOpen: Accessor<boolean>\n children: JSX.Element\n isResizing: Accessor<boolean>\n}) => {\n const styles = useStyles()\n const { height } = useHeight()\n const { settings } = useDevtoolsSettings()\n const pip = usePiPWindow()\n return (\n <div\n id={TANSTACK_DEVTOOLS}\n style={{\n height: pip().pipWindow ? '100vh' : height() + 'px',\n }}\n class={clsx(\n styles().devtoolsPanelContainer(\n settings().panelLocation,\n Boolean(pip().pipWindow),\n ),\n styles().devtoolsPanelContainerAnimation(props.isOpen(), height()),\n styles().devtoolsPanelContainerVisibility(props.isOpen()),\n styles().devtoolsPanelContainerResizing(props.isResizing),\n )}\n >\n <DrawClientProvider animationMs={400}>\n {props.children}\n </DrawClientProvider>\n </div>\n )\n}\n"],"names":["MainPanel","props","styles","useStyles","height","useHeight","settings","useDevtoolsSettings","pip","usePiPWindow","_el$","_tmpl$","_$setAttribute","TANSTACK_DEVTOOLS","_$insert","_$createComponent","DrawClientProvider","animationMs","children","_$effect","_p$","_v$","pipWindow","_v$2","clsx","devtoolsPanelContainer","panelLocation","Boolean","devtoolsPanelContainerAnimation","isOpen","devtoolsPanelContainerVisibility","devtoolsPanelContainerResizing","isResizing","e","style","setProperty","removeProperty","t","_$className","undefined"],"mappings":";;;;;;;;AASO,MAAMA,YAAYA,CAACC,UAIpB;AACJ,QAAMC,SAASC,UAAAA;AACf,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAWC,UAAAA;AACnB,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAaC,oBAAAA;AACrB,QAAMC,MAAMC,aAAAA;AACZ,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAC,iBAAAF,MAAA,MAEQG,iBAAiB;AAAAC,WAAAJ,MAAAK,gBAcpBC,oBAAkB;AAAA,MAACC,aAAa;AAAA,MAAG,IAAAC,WAAA;AAAA,eACjCjB,MAAMiB;AAAAA,MAAQ;AAAA,IAAA,CAAA,CAAA;AAAAC,WAAAC,CAAAA,QAAA;AAAA,UAAAC,MAbPb,MAAMc,YAAY,UAAUlB,OAAAA,IAAW,MAAImB,OAE9CC,KACLtB,OAAAA,EAASuB,uBACPnB,SAAAA,EAAWoB,eACXC,QAAQnB,IAAAA,EAAMc,SAAS,CACzB,GACApB,OAAAA,EAAS0B,gCAAgC3B,MAAM4B,OAAAA,GAAUzB,OAAAA,CAAQ,GACjEF,OAAAA,EAAS4B,iCAAiC7B,MAAM4B,OAAAA,CAAQ,GACxD3B,OAAAA,EAAS6B,+BAA+B9B,MAAM+B,UAAU,CAC1D;AAACX,cAAAD,IAAAa,OAAAb,IAAAa,IAAAZ,QAAA,OAAAX,KAAAwB,MAAAC,YAAA,UAAAd,GAAA,IAAAX,KAAAwB,MAAAE,eAAA,QAAA;AAAAb,eAAAH,IAAAiB,KAAAC,UAAA5B,MAAAU,IAAAiB,IAAAd,IAAA;AAAA,aAAAH;AAAAA,IAAA,GAAA;AAAA,MAAAa,GAAAM;AAAAA,MAAAF,GAAAE;AAAAA,IAAAA,CAAA;AAAA,WAAA7B;AAAAA,EAAA,GAAA;AAOP;"}
@@ -1,2 +0,0 @@
1
- import { JSX } from 'solid-js';
2
- export declare const TabContent: () => JSX.Element;
@@ -1,23 +0,0 @@
1
- import { template, insert, effect, className } from "solid-js/web";
2
- import { createMemo } from "solid-js";
3
- import { useDevtoolsState } from "../context/use-devtools-context.js";
4
- import { tabs } from "../tabs/index.js";
5
- import { useStyles } from "../styles/use-styles.js";
6
- var _tmpl$ = /* @__PURE__ */ template(`<div>`);
7
- const TabContent = () => {
8
- const {
9
- state
10
- } = useDevtoolsState();
11
- const styles = useStyles();
12
- const component = createMemo(() => tabs.find((t) => t.id === state().activeTab)?.component || null);
13
- return (() => {
14
- var _el$ = _tmpl$();
15
- insert(_el$, () => component()?.());
16
- effect(() => className(_el$, styles().tabContent));
17
- return _el$;
18
- })();
19
- };
20
- export {
21
- TabContent
22
- };
23
- //# sourceMappingURL=tab-content.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-content.js","sources":["../../../src/components/tab-content.tsx"],"sourcesContent":["import { createMemo } from 'solid-js'\nimport { useDevtoolsState } from '../context/use-devtools-context'\nimport { tabs } from '../tabs'\nimport { useStyles } from '../styles/use-styles'\nimport type { JSX } from 'solid-js'\n\nexport const TabContent = () => {\n const { state } = useDevtoolsState()\n const styles = useStyles()\n const component = createMemo<(() => JSX.Element) | null>(\n () => tabs.find((t) => t.id === state().activeTab)?.component || null,\n )\n\n return <div class={styles().tabContent}>{component()?.()}</div>\n}\n"],"names":["TabContent","state","useDevtoolsState","styles","useStyles","component","createMemo","tabs","find","t","id","activeTab","_el$","_tmpl$","_$insert","_$effect","_$className","tabContent"],"mappings":";;;;;;AAMO,MAAMA,aAAaA,MAAM;AAC9B,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAUC,iBAAAA;AAClB,QAAMC,SAASC,UAAAA;AACf,QAAMC,YAAYC,WAChB,MAAMC,KAAKC,KAAMC,CAAAA,MAAMA,EAAEC,OAAOT,MAAAA,EAAQU,SAAS,GAAGN,aAAa,IACnE;AAEA,UAAA,MAAA;AAAA,QAAAO,OAAAC,OAAAA;AAAAC,WAAAF,MAAA,MAAyCP,UAAAA,KAAe;AAAAU,WAAA,MAAAC,UAAAJ,MAArCT,OAAAA,EAASc,UAAU,CAAA;AAAA,WAAAL;AAAAA,EAAA,GAAA;AACxC;"}
@@ -1,5 +0,0 @@
1
- interface TabsProps {
2
- toggleOpen: () => void;
3
- }
4
- export declare const Tabs: (props: TabsProps) => import("solid-js").JSX.Element;
5
- export {};
@@ -1,75 +0,0 @@
1
- import { template, insert, createComponent, effect, className, memo, delegateEvents } from "solid-js/web";
2
- import clsx from "clsx";
3
- import { For } from "solid-js";
4
- import { PiP, X } from "@tanstack/devtools-ui/icons";
5
- import { useStyles } from "../styles/use-styles.js";
6
- import { useDevtoolsState } from "../context/use-devtools-context.js";
7
- import { useDrawContext } from "../context/draw-context.js";
8
- import { tabs } from "../tabs/index.js";
9
- import { usePiPWindow } from "../context/pip-context.js";
10
- var _tmpl$ = /* @__PURE__ */ template(`<div>`), _tmpl$2 = /* @__PURE__ */ template(`<button type=button>`), _tmpl$3 = /* @__PURE__ */ template(`<div><button type=button></button><button type=button>`);
11
- const Tabs = (props) => {
12
- const styles = useStyles();
13
- const {
14
- state,
15
- setState
16
- } = useDevtoolsState();
17
- const pipWindow = usePiPWindow();
18
- const handleDetachment = () => {
19
- pipWindow().requestPipWindow(`width=${window.innerWidth},height=${state().height},top=${window.screen.height},left=${window.screenLeft}}`);
20
- };
21
- const {
22
- hoverUtils
23
- } = useDrawContext();
24
- return (() => {
25
- var _el$ = _tmpl$();
26
- insert(_el$, createComponent(For, {
27
- each: tabs,
28
- children: (tab) => (() => {
29
- var _el$2 = _tmpl$2();
30
- _el$2.addEventListener("mouseleave", () => {
31
- if (tab.id === "plugins") hoverUtils.leave();
32
- });
33
- _el$2.addEventListener("mouseenter", () => {
34
- if (tab.id === "plugins") hoverUtils.enter();
35
- });
36
- _el$2.$$click = () => setState({
37
- activeTab: tab.id
38
- });
39
- insert(_el$2, () => tab.icon());
40
- effect(() => className(_el$2, clsx(styles().tab, {
41
- active: state().activeTab === tab.id
42
- })));
43
- return _el$2;
44
- })()
45
- }), null);
46
- insert(_el$, (() => {
47
- var _c$ = memo(() => pipWindow().pipWindow !== null);
48
- return () => _c$() ? null : (() => {
49
- var _el$3 = _tmpl$3(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
50
- _el$3.style.setProperty("margin-top", "auto");
51
- _el$4.$$click = handleDetachment;
52
- insert(_el$4, createComponent(PiP, {}));
53
- _el$5.$$click = () => props.toggleOpen();
54
- insert(_el$5, createComponent(X, {}));
55
- effect((_p$) => {
56
- var _v$ = clsx(styles().tab, "detach"), _v$2 = clsx(styles().tab, "close");
57
- _v$ !== _p$.e && className(_el$4, _p$.e = _v$);
58
- _v$2 !== _p$.t && className(_el$5, _p$.t = _v$2);
59
- return _p$;
60
- }, {
61
- e: void 0,
62
- t: void 0
63
- });
64
- return _el$3;
65
- })();
66
- })(), null);
67
- effect(() => className(_el$, styles().tabContainer));
68
- return _el$;
69
- })();
70
- };
71
- delegateEvents(["click"]);
72
- export {
73
- Tabs
74
- };
75
- //# sourceMappingURL=tabs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../src/components/tabs.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { For } from 'solid-js'\nimport { PiP, X } from '@tanstack/devtools-ui/icons'\nimport { useStyles } from '../styles/use-styles'\nimport { useDevtoolsState } from '../context/use-devtools-context'\nimport { useDrawContext } from '../context/draw-context'\nimport { tabs } from '../tabs'\nimport { usePiPWindow } from '../context/pip-context'\n\ninterface TabsProps {\n toggleOpen: () => void\n}\n\nexport const Tabs = (props: TabsProps) => {\n const styles = useStyles()\n const { state, setState } = useDevtoolsState()\n const pipWindow = usePiPWindow()\n const handleDetachment = () => {\n pipWindow().requestPipWindow(\n `width=${window.innerWidth},height=${state().height},top=${window.screen.height},left=${window.screenLeft}}`,\n )\n }\n const { hoverUtils } = useDrawContext()\n\n return (\n <div class={styles().tabContainer}>\n <For each={tabs}>\n {(tab) => (\n <button\n type=\"button\"\n onClick={() => setState({ activeTab: tab.id })}\n class={clsx(styles().tab, { active: state().activeTab === tab.id })}\n onMouseEnter={() => {\n if (tab.id === 'plugins') hoverUtils.enter()\n }}\n onMouseLeave={() => {\n if (tab.id === 'plugins') hoverUtils.leave()\n }}\n >\n {tab.icon()}\n </button>\n )}\n </For>\n {pipWindow().pipWindow !== null ? null : (\n <div\n style={{\n 'margin-top': 'auto',\n }}\n >\n <button\n type=\"button\"\n class={clsx(styles().tab, 'detach')}\n onClick={handleDetachment}\n >\n <PiP />\n </button>\n <button\n type=\"button\"\n class={clsx(styles().tab, 'close')}\n onClick={() => props.toggleOpen()}\n >\n <X />\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["Tabs","props","styles","useStyles","state","setState","useDevtoolsState","pipWindow","usePiPWindow","handleDetachment","requestPipWindow","window","innerWidth","height","screen","screenLeft","hoverUtils","useDrawContext","_el$","_tmpl$","_$insert","_$createComponent","For","each","tabs","children","tab","_el$2","_tmpl$2","addEventListener","id","leave","enter","$$click","activeTab","icon","_$effect","_$className","clsx","active","_c$","_$memo","_el$3","_tmpl$3","_el$4","firstChild","_el$5","nextSibling","style","setProperty","PiP","toggleOpen","X","_p$","_v$","_v$2","e","t","undefined","tabContainer","_$delegateEvents"],"mappings":";;;;;;;;;;AAaO,MAAMA,OAAOA,CAACC,UAAqB;AACxC,QAAMC,SAASC,UAAAA;AACf,QAAM;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,EAAAA,IAAaC,iBAAAA;AAC5B,QAAMC,YAAYC,aAAAA;AAClB,QAAMC,mBAAmBA,MAAM;AAC7BF,cAAAA,EAAYG,iBACV,SAASC,OAAOC,UAAU,WAAWR,MAAAA,EAAQS,MAAM,QAAQF,OAAOG,OAAOD,MAAM,SAASF,OAAOI,UAAU,GAC3G;AAAA,EACF;AACA,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAeC,eAAAA;AAEvB,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAC,WAAAF,MAAAG,gBAEKC,KAAG;AAAA,MAACC,MAAMC;AAAAA,MAAIC,UACXC,UAAG,MAAA;AAAA,YAAAC,QAAAC,QAAAA;AAAAD,cAAAE,iBAAA,cAQa,MAAM;AAClB,cAAIH,IAAII,OAAO,UAAWd,YAAWe,MAAAA;AAAAA,QACvC,CAAC;AAAAJ,cAAAE,iBAAA,cALa,MAAM;AAClB,cAAIH,IAAII,OAAO,UAAWd,YAAWgB,MAAAA;AAAAA,QACvC,CAAC;AAAAL,cAAAM,UAJQ,MAAM5B,SAAS;AAAA,UAAE6B,WAAWR,IAAII;AAAAA,QAAAA,CAAI;AAACV,eAAAO,OAAA,MAS7CD,IAAIS,KAAAA,CAAM;AAAAC,eAAA,MAAAC,UAAAV,OARJW,KAAKpC,OAAAA,EAASwB,KAAK;AAAA,UAAEa,QAAQnC,MAAAA,EAAQ8B,cAAcR,IAAII;AAAAA,QAAAA,CAAI,CAAC,CAAA;AAAA,eAAAH;AAAAA,MAAA,GAAA;AAAA,IAAA,CAUtE,GAAA,IAAA;AAAAP,WAAAF,OAAA,MAAA;AAAA,UAAAsB,MAAAC,KAAA,MAEFlC,UAAAA,EAAYA,cAAc,IAAI;AAAA,aAAA,MAA9BiC,IAAAA,IAAiC,QAAI,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAG,YAAAC,QAAAF,MAAAG;AAAAL,cAAAM,MAAAC,YAAA,cAAA,MAAA;AAAAL,cAAAX,UASvBxB;AAAgBW,eAAAwB,OAAAvB,gBAExB6B,KAAG,CAAA,CAAA,CAAA;AAAAJ,cAAAb,UAKK,MAAMhC,MAAMkD,WAAAA;AAAY/B,eAAA0B,OAAAzB,gBAEhC+B,GAAC,CAAA,CAAA,CAAA;AAAAhB,eAAAiB,CAAAA,QAAA;AAAA,cAAAC,MAVKhB,KAAKpC,OAAAA,EAASwB,KAAK,QAAQ,GAAC6B,OAO5BjB,KAAKpC,SAASwB,KAAK,OAAO;AAAC4B,kBAAAD,IAAAG,KAAAnB,UAAAO,OAAAS,IAAAG,IAAAF,GAAA;AAAAC,mBAAAF,IAAAI,KAAApB,UAAAS,OAAAO,IAAAI,IAAAF,IAAA;AAAA,iBAAAF;AAAAA,QAAA,GAAA;AAAA,UAAAG,GAAAE;AAAAA,UAAAD,GAAAC;AAAAA,QAAAA,CAAA;AAAA,eAAAhB;AAAAA,MAAA,GAAA;AAAA,IAMvC,GAAA,GAAA,IAAA;AAAAN,WAAA,MAAAC,UAAAnB,MAvCShB,OAAAA,EAASyD,YAAY,CAAA;AAAA,WAAAzC;AAAAA,EAAA,GAAA;AA0CrC;AAAC0C,eAAA,CAAA,OAAA,CAAA;"}
@@ -1,5 +0,0 @@
1
- import { Accessor } from 'solid-js';
2
- export declare const Trigger: ({ isOpen, setIsOpen, }: {
3
- isOpen: Accessor<boolean>;
4
- setIsOpen: (isOpen: boolean) => void;
5
- }) => import("solid-js").JSX.Element;
@@ -1,31 +0,0 @@
1
- import { template, insert, createComponent, effect, className, delegateEvents } from "solid-js/web";
2
- import { createMemo } from "solid-js";
3
- import clsx from "clsx";
4
- import { TanStackLogo } from "@tanstack/devtools-ui";
5
- import { useDevtoolsSettings } from "../context/use-devtools-context.js";
6
- import { useStyles } from "../styles/use-styles.js";
7
- var _tmpl$ = /* @__PURE__ */ template(`<button type=button aria-label="Open TanStack Devtools">`);
8
- const Trigger = ({
9
- isOpen,
10
- setIsOpen
11
- }) => {
12
- const {
13
- settings
14
- } = useDevtoolsSettings();
15
- const styles = useStyles();
16
- const buttonStyle = createMemo(() => {
17
- return clsx(styles().mainCloseBtn, styles().mainCloseBtnPosition(settings().position), styles().mainCloseBtnAnimation(isOpen(), settings().hideUntilHover));
18
- });
19
- return (() => {
20
- var _el$ = _tmpl$();
21
- _el$.$$click = () => setIsOpen(!isOpen());
22
- insert(_el$, createComponent(TanStackLogo, {}));
23
- effect(() => className(_el$, buttonStyle()));
24
- return _el$;
25
- })();
26
- };
27
- delegateEvents(["click"]);
28
- export {
29
- Trigger
30
- };
31
- //# sourceMappingURL=trigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.js","sources":["../../../src/components/trigger.tsx"],"sourcesContent":["import { createMemo } from 'solid-js'\nimport clsx from 'clsx'\nimport { TanStackLogo } from '@tanstack/devtools-ui'\nimport { useDevtoolsSettings } from '../context/use-devtools-context'\nimport { useStyles } from '../styles/use-styles'\nimport type { Accessor } from 'solid-js'\n\nexport const Trigger = ({\n isOpen,\n setIsOpen,\n}: {\n isOpen: Accessor<boolean>\n setIsOpen: (isOpen: boolean) => void\n}) => {\n const { settings } = useDevtoolsSettings()\n const styles = useStyles()\n const buttonStyle = createMemo(() => {\n return clsx(\n styles().mainCloseBtn,\n styles().mainCloseBtnPosition(settings().position),\n styles().mainCloseBtnAnimation(isOpen(), settings().hideUntilHover),\n )\n })\n return (\n <button\n type=\"button\"\n aria-label=\"Open TanStack Devtools\"\n class={buttonStyle()}\n onClick={() => setIsOpen(!isOpen())}\n >\n <TanStackLogo />\n </button>\n )\n}\n"],"names":["Trigger","isOpen","setIsOpen","settings","useDevtoolsSettings","styles","useStyles","buttonStyle","createMemo","clsx","mainCloseBtn","mainCloseBtnPosition","position","mainCloseBtnAnimation","hideUntilHover","_el$","_tmpl$","$$click","_$insert","_$createComponent","TanStackLogo","_$effect","_$className","_$delegateEvents"],"mappings":";;;;;;;AAOO,MAAMA,UAAUA,CAAC;AAAA,EACtBC;AAAAA,EACAC;AAIF,MAAM;AACJ,QAAM;AAAA,IAAEC;AAAAA,EAAAA,IAAaC,oBAAAA;AACrB,QAAMC,SAASC,UAAAA;AACf,QAAMC,cAAcC,WAAW,MAAM;AACnC,WAAOC,KACLJ,SAASK,cACTL,OAAAA,EAASM,qBAAqBR,SAAAA,EAAWS,QAAQ,GACjDP,OAAAA,EAASQ,sBAAsBZ,OAAAA,GAAUE,SAAAA,EAAWW,cAAc,CACpE;AAAA,EACF,CAAC;AACD,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAD,SAAAE,UAKa,MAAMf,UAAU,CAACD,QAAQ;AAACiB,WAAAH,MAAAI,gBAElCC,cAAY,CAAA,CAAA,CAAA;AAAAC,iBAAAC,UAAAP,MAHNR,YAAAA,CAAa,CAAA;AAAA,WAAAQ;AAAAA,EAAA,GAAA;AAM1B;AAACQ,eAAA,CAAA,OAAA,CAAA;"}
@@ -1,2 +0,0 @@
1
- export declare const PLUGIN_CONTAINER_ID = "plugin-container";
2
- export declare const PLUGIN_TITLE_CONTAINER_ID = "plugin-title-container";
@@ -1,7 +0,0 @@
1
- const PLUGIN_CONTAINER_ID = "plugin-container";
2
- const PLUGIN_TITLE_CONTAINER_ID = "plugin-title-container";
3
- export {
4
- PLUGIN_CONTAINER_ID,
5
- PLUGIN_TITLE_CONTAINER_ID
6
- };
7
- //# sourceMappingURL=constants.js.map