@tanstack/devtools 0.0.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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/components/content-panel.cjs +28 -0
  3. package/dist/cjs/components/content-panel.cjs.map +1 -0
  4. package/dist/cjs/components/content-panel.d.cts +6 -0
  5. package/dist/cjs/components/logo.cjs +95 -0
  6. package/dist/cjs/components/logo.cjs.map +1 -0
  7. package/dist/cjs/components/logo.d.cts +1 -0
  8. package/dist/cjs/components/main-panel.cjs +31 -0
  9. package/dist/cjs/components/main-panel.cjs.map +1 -0
  10. package/dist/cjs/components/main-panel.d.cts +7 -0
  11. package/dist/cjs/components/tab-content.cjs +28 -0
  12. package/dist/cjs/components/tab-content.cjs.map +1 -0
  13. package/dist/cjs/components/tab-content.d.cts +2 -0
  14. package/dist/cjs/components/tabs.cjs +47 -0
  15. package/dist/cjs/components/tabs.cjs.map +1 -0
  16. package/dist/cjs/components/tabs.d.cts +5 -0
  17. package/dist/cjs/components/trigger.cjs +31 -0
  18. package/dist/cjs/components/trigger.cjs.map +1 -0
  19. package/dist/cjs/components/trigger.d.cts +5 -0
  20. package/dist/cjs/context/devtools-context.cjs +62 -0
  21. package/dist/cjs/context/devtools-context.cjs.map +1 -0
  22. package/dist/cjs/context/devtools-context.d.cts +20 -0
  23. package/dist/cjs/context/devtools-store.cjs +21 -0
  24. package/dist/cjs/context/devtools-store.cjs.map +1 -0
  25. package/dist/cjs/context/devtools-store.d.cts +53 -0
  26. package/dist/cjs/context/use-devtools-context.cjs +78 -0
  27. package/dist/cjs/context/use-devtools-context.cjs.map +1 -0
  28. package/dist/cjs/context/use-devtools-context.d.cts +36 -0
  29. package/dist/cjs/core.cjs +81 -0
  30. package/dist/cjs/core.cjs.map +1 -0
  31. package/dist/cjs/core.d.cts +13 -0
  32. package/dist/cjs/devtools.cjs +146 -0
  33. package/dist/cjs/devtools.cjs.map +1 -0
  34. package/dist/cjs/devtools.d.cts +1 -0
  35. package/dist/cjs/hooks/use-disable-tabbing.cjs +23 -0
  36. package/dist/cjs/hooks/use-disable-tabbing.cjs.map +1 -0
  37. package/dist/cjs/hooks/use-disable-tabbing.d.cts +6 -0
  38. package/dist/cjs/index.cjs +5 -0
  39. package/dist/cjs/index.cjs.map +1 -0
  40. package/dist/cjs/index.d.cts +3 -0
  41. package/dist/cjs/styles/tokens.cjs +51 -0
  42. package/dist/cjs/styles/tokens.cjs.map +1 -0
  43. package/dist/cjs/styles/tokens.d.cts +298 -0
  44. package/dist/cjs/styles/use-styles.cjs +256 -0
  45. package/dist/cjs/styles/use-styles.cjs.map +1 -0
  46. package/dist/cjs/styles/use-styles.d.cts +21 -0
  47. package/dist/cjs/tabs/index.cjs +19 -0
  48. package/dist/cjs/tabs/index.cjs.map +1 -0
  49. package/dist/cjs/tabs/index.d.cts +12 -0
  50. package/dist/cjs/tabs/plugins-tab.cjs +73 -0
  51. package/dist/cjs/tabs/plugins-tab.cjs.map +1 -0
  52. package/dist/cjs/tabs/plugins-tab.d.cts +1 -0
  53. package/dist/cjs/tabs/settings-tab.cjs +9 -0
  54. package/dist/cjs/tabs/settings-tab.cjs.map +1 -0
  55. package/dist/cjs/tabs/settings-tab.d.cts +1 -0
  56. package/dist/cjs/utils/sanitize.cjs +12 -0
  57. package/dist/cjs/utils/sanitize.cjs.map +1 -0
  58. package/dist/cjs/utils/sanitize.d.cts +1 -0
  59. package/dist/cjs/utils/storage.cjs +19 -0
  60. package/dist/cjs/utils/storage.cjs.map +1 -0
  61. package/dist/cjs/utils/storage.d.cts +5 -0
  62. package/dist/esm/components/content-panel.d.ts +6 -0
  63. package/dist/esm/components/content-panel.js +28 -0
  64. package/dist/esm/components/content-panel.js.map +1 -0
  65. package/dist/esm/components/logo.d.ts +1 -0
  66. package/dist/esm/components/logo.js +95 -0
  67. package/dist/esm/components/logo.js.map +1 -0
  68. package/dist/esm/components/main-panel.d.ts +7 -0
  69. package/dist/esm/components/main-panel.js +31 -0
  70. package/dist/esm/components/main-panel.js.map +1 -0
  71. package/dist/esm/components/tab-content.d.ts +2 -0
  72. package/dist/esm/components/tab-content.js +28 -0
  73. package/dist/esm/components/tab-content.js.map +1 -0
  74. package/dist/esm/components/tabs.d.ts +5 -0
  75. package/dist/esm/components/tabs.js +47 -0
  76. package/dist/esm/components/tabs.js.map +1 -0
  77. package/dist/esm/components/trigger.d.ts +5 -0
  78. package/dist/esm/components/trigger.js +31 -0
  79. package/dist/esm/components/trigger.js.map +1 -0
  80. package/dist/esm/context/devtools-context.d.ts +20 -0
  81. package/dist/esm/context/devtools-context.js +62 -0
  82. package/dist/esm/context/devtools-context.js.map +1 -0
  83. package/dist/esm/context/devtools-store.d.ts +53 -0
  84. package/dist/esm/context/devtools-store.js +21 -0
  85. package/dist/esm/context/devtools-store.js.map +1 -0
  86. package/dist/esm/context/use-devtools-context.d.ts +36 -0
  87. package/dist/esm/context/use-devtools-context.js +78 -0
  88. package/dist/esm/context/use-devtools-context.js.map +1 -0
  89. package/dist/esm/core.d.ts +13 -0
  90. package/dist/esm/core.js +80 -0
  91. package/dist/esm/core.js.map +1 -0
  92. package/dist/esm/devtools.d.ts +1 -0
  93. package/dist/esm/devtools.js +147 -0
  94. package/dist/esm/devtools.js.map +1 -0
  95. package/dist/esm/hooks/use-disable-tabbing.d.ts +6 -0
  96. package/dist/esm/hooks/use-disable-tabbing.js +23 -0
  97. package/dist/esm/hooks/use-disable-tabbing.js.map +1 -0
  98. package/dist/esm/index.d.ts +3 -0
  99. package/dist/esm/index.js +5 -0
  100. package/dist/esm/index.js.map +1 -0
  101. package/dist/esm/styles/tokens.d.ts +298 -0
  102. package/dist/esm/styles/tokens.js +51 -0
  103. package/dist/esm/styles/tokens.js.map +1 -0
  104. package/dist/esm/styles/use-styles.d.ts +21 -0
  105. package/dist/esm/styles/use-styles.js +239 -0
  106. package/dist/esm/styles/use-styles.js.map +1 -0
  107. package/dist/esm/tabs/index.d.ts +12 -0
  108. package/dist/esm/tabs/index.js +19 -0
  109. package/dist/esm/tabs/index.js.map +1 -0
  110. package/dist/esm/tabs/plugins-tab.d.ts +1 -0
  111. package/dist/esm/tabs/plugins-tab.js +73 -0
  112. package/dist/esm/tabs/plugins-tab.js.map +1 -0
  113. package/dist/esm/tabs/settings-tab.d.ts +1 -0
  114. package/dist/esm/tabs/settings-tab.js +9 -0
  115. package/dist/esm/tabs/settings-tab.js.map +1 -0
  116. package/dist/esm/utils/sanitize.d.ts +1 -0
  117. package/dist/esm/utils/sanitize.js +12 -0
  118. package/dist/esm/utils/sanitize.js.map +1 -0
  119. package/dist/esm/utils/storage.d.ts +5 -0
  120. package/dist/esm/utils/storage.js +19 -0
  121. package/dist/esm/utils/storage.js.map +1 -0
  122. package/package.json +69 -0
  123. package/src/components/content-panel.tsx +21 -0
  124. package/src/components/logo.tsx +820 -0
  125. package/src/components/main-panel.tsx +31 -0
  126. package/src/components/tab-content.tsx +20 -0
  127. package/src/components/tabs.tsx +50 -0
  128. package/src/components/trigger.tsx +34 -0
  129. package/src/context/devtools-context.tsx +93 -0
  130. package/src/context/devtools-store.ts +79 -0
  131. package/src/context/use-devtools-context.ts +95 -0
  132. package/src/core.tsx +71 -0
  133. package/src/devtools.tsx +146 -0
  134. package/src/hooks/use-disable-tabbing.ts +28 -0
  135. package/src/index.ts +3 -0
  136. package/src/styles/tokens.ts +305 -0
  137. package/src/styles/use-styles.ts +252 -0
  138. package/src/tabs/index.tsx +62 -0
  139. package/src/tabs/plugins-tab.tsx +47 -0
  140. package/src/tabs/settings-tab.tsx +3 -0
  141. package/src/utils/sanitize.ts +8 -0
  142. package/src/utils/storage.ts +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-store.cjs","sources":["../../../src/context/devtools-store.ts"],"sourcesContent":["import type { TabName } from '../tabs'\nimport type { DevtoolsPlugin } from './devtools-context'\n\ntype ModifierKey = 'Alt' | 'Control' | 'Meta' | 'Shift'\ntype KeyboardKey = ModifierKey | (string & {})\n\ntype TriggerPosition =\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n | 'middle-left'\n | 'middle-right'\n\nexport type DevtoolsStore = {\n settings: {\n /**\n * Whether the dev tools should be open by default\n * @default false\n */\n defaultOpen: boolean\n /**\n * Whether the dev tools trigger should be hidden until the user hovers over it\n * @default false\n */\n hideUntilHover: boolean\n /**\n * The position of the trigger button\n * @default \"bottom-right\"\n */\n position: TriggerPosition\n\n /**\n * The location of the panel once it is open\n * @default \"bottom\"\n */\n panelLocation: 'top' | 'bottom'\n /**\n * The hotkey to open the dev tools\n * @default \"shift+a\"\n */\n openHotkey: Array<KeyboardKey>\n /**\n * Whether to require the URL flag to open the dev tools\n * @default false\n */\n requireUrlFlag: boolean\n /**\n * The URL flag to open the dev tools, used in conjunction with requireUrlFlag (if set to true)\n * @default \"tanstack-devtools\"\n */\n urlFlag: string\n }\n state: {\n activeTab: TabName\n height: number\n activePlugin?: DevtoolsPlugin | undefined\n persistOpen: boolean\n }\n plugins?: Array<DevtoolsPlugin>\n}\n\nexport const initialState: DevtoolsStore = {\n settings: {\n defaultOpen: false,\n hideUntilHover: false,\n position: 'bottom-right',\n panelLocation: 'bottom',\n openHotkey: ['Shift', 'A'],\n requireUrlFlag: false,\n urlFlag: 'tanstack-devtools',\n },\n state: {\n activeTab: 'plugins',\n height: 400,\n activePlugin: undefined,\n persistOpen: false,\n },\n}\n"],"names":[],"mappings":";;AA8DO,MAAM,eAA8B;AAAA,EACzC,UAAU;AAAA,IACR,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,eAAe;AAAA,IACf,YAAY,CAAC,SAAS,GAAG;AAAA,IACzB,gBAAgB;AAAA,IAChB,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,aAAa;AAAA,EAAA;AAEjB;;"}
@@ -0,0 +1,53 @@
1
+ import { TabName } from '../tabs.cjs';
2
+ import { DevtoolsPlugin } from './devtools-context.cjs';
3
+ type ModifierKey = 'Alt' | 'Control' | 'Meta' | 'Shift';
4
+ type KeyboardKey = ModifierKey | (string & {});
5
+ type TriggerPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle-left' | 'middle-right';
6
+ export type DevtoolsStore = {
7
+ settings: {
8
+ /**
9
+ * Whether the dev tools should be open by default
10
+ * @default false
11
+ */
12
+ defaultOpen: boolean;
13
+ /**
14
+ * Whether the dev tools trigger should be hidden until the user hovers over it
15
+ * @default false
16
+ */
17
+ hideUntilHover: boolean;
18
+ /**
19
+ * The position of the trigger button
20
+ * @default "bottom-right"
21
+ */
22
+ position: TriggerPosition;
23
+ /**
24
+ * The location of the panel once it is open
25
+ * @default "bottom"
26
+ */
27
+ panelLocation: 'top' | 'bottom';
28
+ /**
29
+ * The hotkey to open the dev tools
30
+ * @default "shift+a"
31
+ */
32
+ openHotkey: Array<KeyboardKey>;
33
+ /**
34
+ * Whether to require the URL flag to open the dev tools
35
+ * @default false
36
+ */
37
+ requireUrlFlag: boolean;
38
+ /**
39
+ * The URL flag to open the dev tools, used in conjunction with requireUrlFlag (if set to true)
40
+ * @default "tanstack-devtools"
41
+ */
42
+ urlFlag: string;
43
+ };
44
+ state: {
45
+ activeTab: TabName;
46
+ height: number;
47
+ activePlugin?: DevtoolsPlugin | undefined;
48
+ persistOpen: boolean;
49
+ };
50
+ plugins?: Array<DevtoolsPlugin>;
51
+ };
52
+ export declare const initialState: DevtoolsStore;
53
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const solidJs = require("solid-js");
4
+ const devtoolsContext = require("./devtools-context.cjs");
5
+ const useDevtoolsContext = () => {
6
+ const context = solidJs.useContext(devtoolsContext.DevtoolsContext);
7
+ if (context === void 0) {
8
+ throw new Error(
9
+ "useDevtoolsShellContext must be used within a ShellContextProvider"
10
+ );
11
+ }
12
+ return context;
13
+ };
14
+ const usePlugins = () => {
15
+ const { store, setStore } = useDevtoolsContext();
16
+ const plugins = solidJs.createMemo(() => store.plugins);
17
+ const activePlugin = solidJs.createMemo(() => store.state.activePlugin);
18
+ const setActivePlugin = (plugin) => {
19
+ setStore((prev) => ({
20
+ ...prev,
21
+ state: {
22
+ ...prev.state,
23
+ activePlugin: plugin
24
+ }
25
+ }));
26
+ };
27
+ return { plugins, setActivePlugin, activePlugin };
28
+ };
29
+ const useDevtoolsState = () => {
30
+ const { store, setStore } = useDevtoolsContext();
31
+ const state = solidJs.createMemo(() => store.state);
32
+ const setState = (newState) => {
33
+ setStore((prev) => ({
34
+ ...prev,
35
+ state: {
36
+ ...prev.state,
37
+ ...newState
38
+ }
39
+ }));
40
+ };
41
+ return { state, setState };
42
+ };
43
+ const useDevtoolsSettings = () => {
44
+ const { store, setStore } = useDevtoolsContext();
45
+ const settings = solidJs.createMemo(() => store.settings);
46
+ const setSettings = (newSettings) => {
47
+ setStore((prev) => ({
48
+ ...prev,
49
+ settings: {
50
+ ...prev.settings,
51
+ ...newSettings
52
+ }
53
+ }));
54
+ };
55
+ return { setSettings, settings };
56
+ };
57
+ const usePersistOpen = () => {
58
+ const { state, setState } = useDevtoolsState();
59
+ const persistOpen = solidJs.createMemo(() => state().persistOpen);
60
+ const setPersistOpen = (value) => {
61
+ setState({ persistOpen: value });
62
+ };
63
+ return { persistOpen, setPersistOpen };
64
+ };
65
+ const useHeight = () => {
66
+ const { state, setState } = useDevtoolsState();
67
+ const height = solidJs.createMemo(() => state().height);
68
+ const setHeight = (newHeight) => {
69
+ setState({ height: newHeight });
70
+ };
71
+ return { height, setHeight };
72
+ };
73
+ exports.useDevtoolsSettings = useDevtoolsSettings;
74
+ exports.useDevtoolsState = useDevtoolsState;
75
+ exports.useHeight = useHeight;
76
+ exports.usePersistOpen = usePersistOpen;
77
+ exports.usePlugins = usePlugins;
78
+ //# sourceMappingURL=use-devtools-context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-devtools-context.cjs","sources":["../../../src/context/use-devtools-context.ts"],"sourcesContent":["import { createMemo, useContext } from 'solid-js'\nimport { DevtoolsContext } from './devtools-context.jsx'\nimport type { DevtoolsPlugin } from './devtools-context.jsx'\n/* import type { DevtoolsPlugin } from './devtools-context' */\nimport type { DevtoolsStore } from './devtools-store.js'\n\n/**\n * Returns an object containing the current state and setState function of the ShellContext.\n * Throws an error if used outside of a ShellContextProvider.\n */\nconst useDevtoolsContext = () => {\n const context = useContext(DevtoolsContext)\n if (context === undefined) {\n throw new Error(\n 'useDevtoolsShellContext must be used within a ShellContextProvider',\n )\n }\n return context\n}\n\nexport const usePlugins = () => {\n const { store, setStore } = useDevtoolsContext()\n\n const plugins = createMemo(() => store.plugins)\n const activePlugin = createMemo(() => store.state.activePlugin)\n\n const setActivePlugin = (plugin: DevtoolsPlugin) => {\n setStore((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n activePlugin: plugin,\n },\n }))\n }\n\n return { plugins, setActivePlugin, activePlugin }\n}\n\nexport const useDevtoolsState = () => {\n const { store, setStore } = useDevtoolsContext()\n const state = createMemo(() => store.state)\n const setState = (newState: Partial<DevtoolsStore['state']>) => {\n setStore((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n ...newState,\n },\n }))\n }\n return { state, setState }\n}\n\nexport const useDevtoolsSettings = () => {\n const { store, setStore } = useDevtoolsContext()\n\n const settings = createMemo(() => store.settings)\n\n const setSettings = (newSettings: Partial<DevtoolsStore['settings']>) => {\n setStore((prev) => ({\n ...prev,\n settings: {\n ...prev.settings,\n ...newSettings,\n },\n }))\n }\n\n return { setSettings, settings }\n}\n\nexport const usePersistOpen = () => {\n const { state, setState } = useDevtoolsState()\n\n const persistOpen = createMemo(() => state().persistOpen)\n\n const setPersistOpen = (value: boolean) => {\n setState({ persistOpen: value })\n }\n\n return { persistOpen, setPersistOpen }\n}\n\nexport const useHeight = () => {\n const { state, setState } = useDevtoolsState()\n\n const height = createMemo(() => state().height)\n\n const setHeight = (newHeight: number) => {\n setState({ height: newHeight })\n }\n\n return { height, setHeight }\n}\n"],"names":["useContext","DevtoolsContext","createMemo"],"mappings":";;;;AAUA,MAAM,qBAAqB,MAAM;AACzB,QAAA,UAAUA,mBAAWC,+BAAe;AAC1C,MAAI,YAAY,QAAW;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAEK,SAAA;AACT;AAEO,MAAM,aAAa,MAAM;AAC9B,QAAM,EAAE,OAAO,SAAS,IAAI,mBAAmB;AAE/C,QAAM,UAAUC,QAAAA,WAAW,MAAM,MAAM,OAAO;AAC9C,QAAM,eAAeA,QAAA,WAAW,MAAM,MAAM,MAAM,YAAY;AAExD,QAAA,kBAAkB,CAAC,WAA2B;AAClD,aAAS,CAAC,UAAU;AAAA,MAClB,GAAG;AAAA,MACH,OAAO;AAAA,QACL,GAAG,KAAK;AAAA,QACR,cAAc;AAAA,MAAA;AAAA,IAChB,EACA;AAAA,EACJ;AAEO,SAAA,EAAE,SAAS,iBAAiB,aAAa;AAClD;AAEO,MAAM,mBAAmB,MAAM;AACpC,QAAM,EAAE,OAAO,SAAS,IAAI,mBAAmB;AAC/C,QAAM,QAAQA,QAAAA,WAAW,MAAM,MAAM,KAAK;AACpC,QAAA,WAAW,CAAC,aAA8C;AAC9D,aAAS,CAAC,UAAU;AAAA,MAClB,GAAG;AAAA,MACH,OAAO;AAAA,QACL,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MAAA;AAAA,IACL,EACA;AAAA,EACJ;AACO,SAAA,EAAE,OAAO,SAAS;AAC3B;AAEO,MAAM,sBAAsB,MAAM;AACvC,QAAM,EAAE,OAAO,SAAS,IAAI,mBAAmB;AAE/C,QAAM,WAAWA,QAAAA,WAAW,MAAM,MAAM,QAAQ;AAE1C,QAAA,cAAc,CAAC,gBAAoD;AACvE,aAAS,CAAC,UAAU;AAAA,MAClB,GAAG;AAAA,MACH,UAAU;AAAA,QACR,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MAAA;AAAA,IACL,EACA;AAAA,EACJ;AAEO,SAAA,EAAE,aAAa,SAAS;AACjC;AAEO,MAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,OAAO,SAAS,IAAI,iBAAiB;AAE7C,QAAM,cAAcA,QAAA,WAAW,MAAM,MAAA,EAAQ,WAAW;AAElD,QAAA,iBAAiB,CAAC,UAAmB;AAChC,aAAA,EAAE,aAAa,OAAO;AAAA,EACjC;AAEO,SAAA,EAAE,aAAa,eAAe;AACvC;AAEO,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,OAAO,SAAS,IAAI,iBAAiB;AAE7C,QAAM,SAASA,QAAA,WAAW,MAAM,MAAA,EAAQ,MAAM;AAExC,QAAA,YAAY,CAAC,cAAsB;AAC9B,aAAA,EAAE,QAAQ,WAAW;AAAA,EAChC;AAEO,SAAA,EAAE,QAAQ,UAAU;AAC7B;;;;;;"}
@@ -0,0 +1,36 @@
1
+ import { DevtoolsPlugin } from './devtools-context.jsx';
2
+ import { DevtoolsStore } from './devtools-store.js';
3
+ export declare const usePlugins: () => {
4
+ plugins: import('solid-js').Accessor<DevtoolsPlugin[] | undefined>;
5
+ setActivePlugin: (plugin: DevtoolsPlugin) => void;
6
+ activePlugin: import('solid-js').Accessor<DevtoolsPlugin | undefined>;
7
+ };
8
+ export declare const useDevtoolsState: () => {
9
+ state: import('solid-js').Accessor<{
10
+ activeTab: import('../tabs/index.jsx').TabName;
11
+ height: number;
12
+ activePlugin?: DevtoolsPlugin | undefined;
13
+ persistOpen: boolean;
14
+ }>;
15
+ setState: (newState: Partial<DevtoolsStore["state"]>) => void;
16
+ };
17
+ export declare const useDevtoolsSettings: () => {
18
+ setSettings: (newSettings: Partial<DevtoolsStore["settings"]>) => void;
19
+ settings: import('solid-js').Accessor<{
20
+ defaultOpen: boolean;
21
+ hideUntilHover: boolean;
22
+ position: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle-left" | "middle-right";
23
+ panelLocation: "top" | "bottom";
24
+ openHotkey: Array<(string & {}) | ("Alt" | "Control" | "Meta" | "Shift")>;
25
+ requireUrlFlag: boolean;
26
+ urlFlag: string;
27
+ }>;
28
+ };
29
+ export declare const usePersistOpen: () => {
30
+ persistOpen: import('solid-js').Accessor<boolean>;
31
+ setPersistOpen: (value: boolean) => void;
32
+ };
33
+ export declare const useHeight: () => {
34
+ height: import('solid-js').Accessor<number>;
35
+ setHeight: (newHeight: number) => void;
36
+ };
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
4
+ };
5
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
6
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
7
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
8
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
9
+ var _options, _plugins, _isMounted, _dispose, _Component;
10
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
11
+ const web = require("solid-js/web");
12
+ const solidJs = require("solid-js");
13
+ const devtoolsContext = require("./context/devtools-context.cjs");
14
+ const devtoolsStore = require("./context/devtools-store.cjs");
15
+ const _interopNamespaceDefaultOnly = (e) => Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: "Module" }));
16
+ class TanStackDevtoolsCore {
17
+ constructor(config) {
18
+ __privateAdd(this, _options, {
19
+ ...devtoolsStore.initialState.settings
20
+ });
21
+ __privateAdd(this, _plugins, []);
22
+ __privateAdd(this, _isMounted, false);
23
+ __privateAdd(this, _dispose);
24
+ __privateAdd(this, _Component);
25
+ __privateSet(this, _plugins, config.plugins || []);
26
+ __privateSet(this, _options, {
27
+ ...__privateGet(this, _options),
28
+ ...config.options
29
+ });
30
+ }
31
+ mount(el) {
32
+ if (__privateGet(this, _isMounted)) {
33
+ throw new Error("Devtools is already mounted");
34
+ }
35
+ const mountTo = el;
36
+ const dispose = web.render(() => {
37
+ const _self$ = this;
38
+ __privateSet(this, _Component, solidJs.lazy(() => Promise.resolve().then(() => /* @__PURE__ */ _interopNamespaceDefaultOnly(require("./devtools.cjs")))));
39
+ const Devtools = __privateGet(this, _Component);
40
+ return web.createComponent(devtoolsContext.DevtoolsProvider, {
41
+ get plugins() {
42
+ return __privateGet(_self$, _plugins);
43
+ },
44
+ get config() {
45
+ return __privateGet(_self$, _options);
46
+ },
47
+ get children() {
48
+ return web.createComponent(web.Portal, {
49
+ mount: mountTo,
50
+ get children() {
51
+ return web.createComponent(Devtools, {});
52
+ }
53
+ });
54
+ }
55
+ });
56
+ }, mountTo);
57
+ __privateSet(this, _isMounted, true);
58
+ __privateSet(this, _dispose, dispose);
59
+ }
60
+ unmount() {
61
+ var _a;
62
+ if (!__privateGet(this, _isMounted)) {
63
+ throw new Error("Devtools is not mounted");
64
+ }
65
+ (_a = __privateGet(this, _dispose)) == null ? void 0 : _a.call(this);
66
+ __privateSet(this, _isMounted, false);
67
+ }
68
+ setOptions(options) {
69
+ __privateSet(this, _options, {
70
+ ...__privateGet(this, _options),
71
+ ...options
72
+ });
73
+ }
74
+ }
75
+ _options = new WeakMap();
76
+ _plugins = new WeakMap();
77
+ _isMounted = new WeakMap();
78
+ _dispose = new WeakMap();
79
+ _Component = new WeakMap();
80
+ exports.TanStackRouterDevtoolsCore = TanStackDevtoolsCore;
81
+ //# sourceMappingURL=core.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.cjs","sources":["../../src/core.tsx"],"sourcesContent":["import { lazy } from 'solid-js'\nimport { Portal, render } from 'solid-js/web'\nimport { DevtoolsProvider } from './context/devtools-context'\nimport { initialState } from './context/devtools-store'\nimport type {\n DevtoolsPlugin,\n DevtoolsSettings,\n} from './context/devtools-context'\n\nexport interface DevtoolsOptions {\n options?: Partial<DevtoolsSettings>\n plugins?: Array<DevtoolsPlugin>\n}\n\nclass TanStackDevtoolsCore {\n #options: DevtoolsSettings = {\n ...initialState.settings,\n }\n #plugins: Array<DevtoolsPlugin> = []\n #isMounted = false\n #dispose?: () => void\n #Component: any\n\n constructor(config: DevtoolsOptions) {\n this.#plugins = config.plugins || []\n this.#options = {\n ...this.#options,\n ...config.options,\n }\n }\n\n mount<T extends HTMLElement>(el: T) {\n if (this.#isMounted) {\n throw new Error('Devtools is already mounted')\n }\n const mountTo = el\n const dispose = render(() => {\n this.#Component = lazy(() => import('./devtools'))\n\n const Devtools = this.#Component\n\n return (\n <DevtoolsProvider plugins={this.#plugins} config={this.#options}>\n <Portal mount={mountTo}>\n <Devtools />\n </Portal>\n </DevtoolsProvider>\n )\n }, mountTo)\n\n this.#isMounted = true\n this.#dispose = dispose\n }\n\n unmount() {\n if (!this.#isMounted) {\n throw new Error('Devtools is not mounted')\n }\n this.#dispose?.()\n this.#isMounted = false\n }\n\n setOptions(options: Partial<DevtoolsOptions>) {\n this.#options = {\n ...this.#options,\n ...options,\n }\n }\n}\n\nexport { TanStackDevtoolsCore as TanStackRouterDevtoolsCore }\n"],"names":["TanStackDevtoolsCore","constructor","config","initialState","settings","plugins","options","mount","el","Error","mountTo","dispose","render","_self$","lazy","Devtools","_$createComponent","DevtoolsProvider","children","Portal","unmount","setOptions"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAMA,qBAAqB;AAAA,EASzBC,YAAYC,QAAyB;AARrC,iCAA6B;AAAA,MAC3B,GAAGC,2BAAaC;AAAAA,IAClB;AACA,iCAAkC,CAAE;AACpC,mCAAa;AACb;AACA;AAGO,uBAAA,UAAWF,OAAOG,WAAW,CAAE;AACpC,uBAAK,UAAW;AAAA,MACd,GAAG,mBAAK;AAAA,MACR,GAAGH,OAAOI;AAAAA,IACZ;AAAA,EAAA;AAAA,EAGFC,MAA6BC,IAAO;AAClC,QAAI,mBAAK,aAAY;AACb,YAAA,IAAIC,MAAM,6BAA6B;AAAA,IAAA;AAE/C,UAAMC,UAAUF;AACVG,UAAAA,UAAUC,IAAAA,OAAO,MAAM;AAAA,YAAAC,SAAA;AAC3B,yBAAK,YAAaC,QAAAA,KAAK,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,gBAAY,CAAA,CAAA,CAAC;AAEjD,YAAMC,WAAW,mBAAK;AAEtB,aAAAC,IAAAA,gBACGC,gBAAAA,kBAAgB;AAAA,QAAA,IAACZ,UAAO;AAAA,iBAAEQ,qBAAK;AAAA,QAAQ;AAAA,QAAA,IAAEX,SAAM;AAAA,iBAAEW,qBAAK;AAAA,QAAQ;AAAA,QAAA,IAAAK,WAAA;AAAA,iBAAAF,IAAAA,gBAC5DG,IAAAA,QAAM;AAAA,YAACZ,OAAOG;AAAAA,YAAO,IAAAQ,WAAA;AAAAF,qBAAAA,IAAAA,gBACnBD,UAAQ,EAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,OAIdL,OAAO;AAEV,uBAAK,YAAa;AAClB,uBAAK,UAAWC;AAAAA,EAAAA;AAAAA,EAGlBS,UAAU;;AACJ,QAAA,CAAC,mBAAK,aAAY;AACd,YAAA,IAAIX,MAAM,yBAAyB;AAAA,IAAA;AAE3C,6BAAK,cAAL;AACA,uBAAK,YAAa;AAAA,EAAA;AAAA,EAGpBY,WAAWf,SAAmC;AAC5C,uBAAK,UAAW;AAAA,MACd,GAAG,mBAAK;AAAA,MACR,GAAGA;AAAAA,IACL;AAAA,EAAA;AAEJ;AArDE;AAGA;AACA;AACA;AACA;;"}
@@ -0,0 +1,13 @@
1
+ import { DevtoolsPlugin, DevtoolsSettings } from './context/devtools-context.cjs';
2
+ export interface DevtoolsOptions {
3
+ options?: Partial<DevtoolsSettings>;
4
+ plugins?: Array<DevtoolsPlugin>;
5
+ }
6
+ declare class TanStackDevtoolsCore {
7
+ #private;
8
+ constructor(config: DevtoolsOptions);
9
+ mount<T extends HTMLElement>(el: T): void;
10
+ unmount(): void;
11
+ setOptions(options: Partial<DevtoolsOptions>): void;
12
+ }
13
+ export { TanStackDevtoolsCore as TanStackRouterDevtoolsCore };
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ const web = require("solid-js/web");
3
+ const solidJs = require("solid-js");
4
+ const keyboard = require("@solid-primitives/keyboard");
5
+ const useDevtoolsContext = require("./context/use-devtools-context.cjs");
6
+ const useDisableTabbing = require("./hooks/use-disable-tabbing.cjs");
7
+ const storage = require("./utils/storage.cjs");
8
+ const trigger = require("./components/trigger.cjs");
9
+ const mainPanel = require("./components/main-panel.cjs");
10
+ const contentPanel = require("./components/content-panel.cjs");
11
+ const tabs = require("./components/tabs.cjs");
12
+ const tabContent = require("./components/tab-content.cjs");
13
+ var _tmpl$ = /* @__PURE__ */ web.template(`<div>`);
14
+ function DevTools() {
15
+ const {
16
+ settings
17
+ } = useDevtoolsContext.useDevtoolsSettings();
18
+ const {
19
+ setHeight
20
+ } = useDevtoolsContext.useHeight();
21
+ const {
22
+ persistOpen,
23
+ setPersistOpen
24
+ } = useDevtoolsContext.usePersistOpen();
25
+ const [rootEl, setRootEl] = solidJs.createSignal();
26
+ const [isOpen, setIsOpen] = solidJs.createSignal(settings().defaultOpen || persistOpen());
27
+ let panelRef = void 0;
28
+ const [isResizing, setIsResizing] = solidJs.createSignal(false);
29
+ const toggleOpen = () => {
30
+ const open = isOpen();
31
+ setIsOpen(!open);
32
+ setPersistOpen(!open);
33
+ };
34
+ const handleDragStart = (panelElement, startEvent) => {
35
+ if (startEvent.button !== 0) return;
36
+ setIsResizing(true);
37
+ const dragInfo = {
38
+ originalHeight: (panelElement == null ? void 0 : panelElement.getBoundingClientRect().height) ?? 0,
39
+ pageY: startEvent.pageY
40
+ };
41
+ const run = (moveEvent) => {
42
+ const delta = dragInfo.pageY - moveEvent.pageY;
43
+ const newHeight = dragInfo.originalHeight + delta;
44
+ setHeight(newHeight);
45
+ if (newHeight < 70) {
46
+ setIsOpen(false);
47
+ } else {
48
+ setIsOpen(true);
49
+ }
50
+ };
51
+ const unsub = () => {
52
+ setIsResizing(false);
53
+ document.removeEventListener("mousemove", run);
54
+ document.removeEventListener("mouseUp", unsub);
55
+ };
56
+ document.addEventListener("mousemove", run);
57
+ document.addEventListener("mouseup", unsub);
58
+ };
59
+ solidJs.createEffect(() => {
60
+ var _a, _b, _c;
61
+ if (isOpen()) {
62
+ const previousValue = (_b = (_a = rootEl()) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.style.paddingBottom;
63
+ const run = () => {
64
+ var _a2;
65
+ const containerHeight = panelRef.getBoundingClientRect().height;
66
+ if ((_a2 = rootEl()) == null ? void 0 : _a2.parentElement) {
67
+ setRootEl((prev) => {
68
+ if (prev == null ? void 0 : prev.parentElement) {
69
+ prev.parentElement.style.paddingBottom = `${containerHeight}px`;
70
+ }
71
+ return prev;
72
+ });
73
+ }
74
+ };
75
+ run();
76
+ if (typeof window !== "undefined") {
77
+ window.addEventListener("resize", run);
78
+ return () => {
79
+ var _a2;
80
+ window.removeEventListener("resize", run);
81
+ if (((_a2 = rootEl()) == null ? void 0 : _a2.parentElement) && typeof previousValue === "string") {
82
+ setRootEl((prev) => {
83
+ prev.parentElement.style.paddingBottom = previousValue;
84
+ return prev;
85
+ });
86
+ }
87
+ };
88
+ }
89
+ } else {
90
+ if ((_c = rootEl()) == null ? void 0 : _c.parentElement) {
91
+ setRootEl((prev) => {
92
+ if (prev == null ? void 0 : prev.parentElement) {
93
+ prev.parentElement.removeAttribute("style");
94
+ }
95
+ return prev;
96
+ });
97
+ }
98
+ }
99
+ return;
100
+ });
101
+ solidJs.createEffect(() => {
102
+ window.addEventListener("keydown", (e) => {
103
+ if (e.key === "Escape" && isOpen()) {
104
+ toggleOpen();
105
+ }
106
+ });
107
+ });
108
+ useDisableTabbing.useDisableTabbing(isOpen);
109
+ solidJs.createEffect(() => {
110
+ if (rootEl()) {
111
+ const el = rootEl();
112
+ const fontSize = getComputedStyle(el).fontSize;
113
+ el == null ? void 0 : el.style.setProperty("--tsrd-font-size", fontSize);
114
+ }
115
+ });
116
+ keyboard.createShortcut(settings().openHotkey, () => {
117
+ toggleOpen();
118
+ });
119
+ return (() => {
120
+ var _el$ = _tmpl$();
121
+ web.use(setRootEl, _el$);
122
+ web.setAttribute(_el$, "data-testid", storage.TANSTACK_DEVTOOLS);
123
+ web.insert(_el$, web.createComponent(trigger.Trigger, {
124
+ isOpen,
125
+ setIsOpen: toggleOpen
126
+ }), null);
127
+ web.insert(_el$, web.createComponent(mainPanel.MainPanel, {
128
+ isResizing,
129
+ isOpen,
130
+ get children() {
131
+ return web.createComponent(contentPanel.ContentPanel, {
132
+ ref: (ref) => panelRef = ref,
133
+ handleDragStart: (e) => handleDragStart(panelRef, e),
134
+ get children() {
135
+ return [web.createComponent(tabs.Tabs, {
136
+ toggleOpen
137
+ }), web.createComponent(tabContent.TabContent, {})];
138
+ }
139
+ });
140
+ }
141
+ }), null);
142
+ return _el$;
143
+ })();
144
+ }
145
+ module.exports = DevTools;
146
+ //# sourceMappingURL=devtools.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.cjs","sources":["../../src/devtools.tsx"],"sourcesContent":["import { createEffect, createSignal } from 'solid-js'\nimport { createShortcut } from '@solid-primitives/keyboard'\nimport {\n useDevtoolsSettings,\n useHeight,\n usePersistOpen,\n} from './context/use-devtools-context'\nimport { useDisableTabbing } from './hooks/use-disable-tabbing'\nimport { TANSTACK_DEVTOOLS } from './utils/storage'\nimport { Trigger } from './components/trigger'\nimport { MainPanel } from './components/main-panel'\nimport { ContentPanel } from './components/content-panel'\nimport { Tabs } from './components/tabs'\nimport { TabContent } from './components/tab-content'\n\nexport default function DevTools() {\n const { settings } = useDevtoolsSettings()\n const { setHeight } = useHeight()\n const { persistOpen, setPersistOpen } = usePersistOpen()\n const [rootEl, setRootEl] = createSignal<HTMLDivElement>()\n const [isOpen, setIsOpen] = createSignal(\n settings().defaultOpen || persistOpen(),\n )\n let panelRef: HTMLDivElement | undefined = undefined\n const [isResizing, setIsResizing] = createSignal(false)\n const toggleOpen = () => {\n const open = isOpen()\n setIsOpen(!open)\n setPersistOpen(!open)\n }\n\n // Used to resize the panel\n const handleDragStart = (\n panelElement: HTMLDivElement | undefined,\n startEvent: MouseEvent,\n ) => {\n if (startEvent.button !== 0) return // Only allow left click for drag\n\n setIsResizing(true)\n\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY,\n }\n\n const run = (moveEvent: MouseEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY\n const newHeight = dragInfo.originalHeight + delta\n\n setHeight(newHeight)\n\n if (newHeight < 70) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n setIsResizing(false)\n document.removeEventListener('mousemove', run)\n document.removeEventListener('mouseUp', unsub)\n }\n\n document.addEventListener('mousemove', run)\n document.addEventListener('mouseup', unsub)\n }\n\n // Handle resizing and padding adjustments\n createEffect(() => {\n if (isOpen()) {\n const previousValue = rootEl()?.parentElement?.style.paddingBottom\n\n const run = () => {\n const containerHeight = panelRef!.getBoundingClientRect().height\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.style.paddingBottom = `${containerHeight}px`\n }\n return prev\n })\n }\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n if (rootEl()?.parentElement && typeof previousValue === 'string') {\n setRootEl((prev) => {\n prev!.parentElement!.style.paddingBottom = previousValue\n return prev\n })\n }\n }\n }\n } else {\n // Reset padding when devtools are closed\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.removeAttribute('style')\n }\n return prev\n })\n }\n }\n return\n })\n createEffect(() => {\n window.addEventListener('keydown', (e) => {\n if (e.key === 'Escape' && isOpen()) {\n toggleOpen()\n }\n })\n })\n useDisableTabbing(isOpen)\n createEffect(() => {\n if (rootEl()) {\n const el = rootEl()\n const fontSize = getComputedStyle(el!).fontSize\n el?.style.setProperty('--tsrd-font-size', fontSize)\n }\n })\n createShortcut(settings().openHotkey, () => {\n toggleOpen()\n })\n return (\n <div ref={setRootEl} data-testid={TANSTACK_DEVTOOLS}>\n <Trigger isOpen={isOpen} setIsOpen={toggleOpen} />\n <MainPanel isResizing={isResizing} isOpen={isOpen}>\n <ContentPanel\n ref={(ref) => (panelRef = ref)}\n handleDragStart={(e) => handleDragStart(panelRef, e)}\n >\n <Tabs toggleOpen={toggleOpen} />\n <TabContent />\n </ContentPanel>\n </MainPanel>\n </div>\n )\n}\n"],"names":["DevTools","settings","useDevtoolsSettings","setHeight","useHeight","persistOpen","setPersistOpen","usePersistOpen","rootEl","setRootEl","createSignal","isOpen","setIsOpen","defaultOpen","panelRef","undefined","isResizing","setIsResizing","toggleOpen","open","handleDragStart","panelElement","startEvent","button","dragInfo","originalHeight","getBoundingClientRect","height","pageY","run","moveEvent","delta","newHeight","unsub","removeEventListener","addEventListener","createEffect","previousValue","parentElement","style","paddingBottom","containerHeight","prev","window","removeAttribute","e","key","useDisableTabbing","el","fontSize","getComputedStyle","setProperty","openHotkey","_el$","_tmpl$","_$use","TANSTACK_DEVTOOLS","_$createComponent","Trigger","MainPanel","children","ContentPanel","ref","Tabs","TabContent"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function DevTools(): import("solid-js").JSX.Element;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const solidJs = require("solid-js");
4
+ const storage = require("../utils/storage.cjs");
5
+ const recursivelyChangeTabIndex = (node, remove = true) => {
6
+ if (remove) {
7
+ node.setAttribute("tabIndex", "-1");
8
+ } else {
9
+ node.removeAttribute("tabIndex");
10
+ }
11
+ for (const child of node.children) {
12
+ recursivelyChangeTabIndex(child, remove);
13
+ }
14
+ };
15
+ const useDisableTabbing = (isOpen) => {
16
+ solidJs.createEffect(() => {
17
+ const el = document.getElementById(storage.TANSTACK_DEVTOOLS);
18
+ if (!el) return;
19
+ recursivelyChangeTabIndex(el, !isOpen());
20
+ });
21
+ };
22
+ exports.useDisableTabbing = useDisableTabbing;
23
+ //# sourceMappingURL=use-disable-tabbing.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-disable-tabbing.cjs","sources":["../../../src/hooks/use-disable-tabbing.ts"],"sourcesContent":["import { createEffect } from 'solid-js'\nimport { TANSTACK_DEVTOOLS } from '../utils/storage'\n\nconst recursivelyChangeTabIndex = (\n node: Element | HTMLElement,\n remove = true,\n) => {\n if (remove) {\n node.setAttribute('tabIndex', '-1')\n } else {\n node.removeAttribute('tabIndex')\n }\n for (const child of node.children) {\n recursivelyChangeTabIndex(child, remove)\n }\n}\n/**\n * @param isOpen A function that returns whether the devtools are open or not.\n * This is used to disable tabbing over the main devtools container while\n * the devtools are closed.\n */\nexport const useDisableTabbing = (isOpen: () => boolean) => {\n createEffect(() => {\n const el = document.getElementById(TANSTACK_DEVTOOLS)\n if (!el) return\n recursivelyChangeTabIndex(el, !isOpen())\n })\n}\n"],"names":["createEffect","TANSTACK_DEVTOOLS"],"mappings":";;;;AAGA,MAAM,4BAA4B,CAChC,MACA,SAAS,SACN;AACH,MAAI,QAAQ;AACL,SAAA,aAAa,YAAY,IAAI;AAAA,EAAA,OAC7B;AACL,SAAK,gBAAgB,UAAU;AAAA,EAAA;AAEtB,aAAA,SAAS,KAAK,UAAU;AACjC,8BAA0B,OAAO,MAAM;AAAA,EAAA;AAE3C;AAMa,MAAA,oBAAoB,CAAC,WAA0B;AAC1DA,UAAAA,aAAa,MAAM;AACX,UAAA,KAAK,SAAS,eAAeC,yBAAiB;AACpD,QAAI,CAAC,GAAI;AACiB,8BAAA,IAAI,CAAC,QAAQ;AAAA,EAAA,CACxC;AACH;;"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param isOpen A function that returns whether the devtools are open or not.
3
+ * This is used to disable tabbing over the main devtools container while
4
+ * the devtools are closed.
5
+ */
6
+ export declare const useDisableTabbing: (isOpen: () => boolean) => void;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const core = require("./core.cjs");
4
+ exports.TanStackRouterDevtoolsCore = core.TanStackRouterDevtoolsCore;
5
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,3 @@
1
+ export { TanStackRouterDevtoolsCore } from './core.cjs';
2
+ export type { DevtoolsOptions } from './core.cjs';
3
+ export type { DevtoolsPlugin } from './context/devtools-context.cjs';
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const tokens = {
4
+ colors: {
5
+ darkGray: {
6
+ 700: "#191c24",
7
+ 800: "#111318"
8
+ },
9
+ gray: {
10
+ 100: "#f2f4f7",
11
+ 300: "#d0d5dd",
12
+ 700: "#344054"
13
+ },
14
+ blue: {
15
+ 800: "#1849A9"
16
+ },
17
+ red: {
18
+ 500: "#ef4444"
19
+ },
20
+ purple: {
21
+ 400: "#9B8AFB",
22
+ 500: "#7A5AF8"
23
+ }
24
+ },
25
+ alpha: {
26
+ 90: "e5"
27
+ },
28
+ font: {
29
+ size: {
30
+ xs: "calc(var(--tsrd-font-size) * 0.75)",
31
+ sm: "calc(var(--tsrd-font-size) * 0.875)"
32
+ },
33
+ fontFamily: {
34
+ sans: "ui-sans-serif, Inter, system-ui, sans-serif, sans-serif"
35
+ }
36
+ },
37
+ border: {
38
+ radius: {
39
+ full: "9999px"
40
+ }
41
+ },
42
+ size: {
43
+ 0.5: "calc(var(--tsrd-font-size) * 0.125)",
44
+ 2: "calc(var(--tsrd-font-size) * 0.5)",
45
+ 10: "calc(var(--tsrd-font-size) * 2.5)",
46
+ 12: "calc(var(--tsrd-font-size) * 3)",
47
+ 48: "calc(var(--tsrd-font-size) * 12)"
48
+ }
49
+ };
50
+ exports.tokens = tokens;
51
+ //# sourceMappingURL=tokens.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.cjs","sources":["../../../src/styles/tokens.ts"],"sourcesContent":["export const tokens = {\n colors: {\n inherit: 'inherit',\n current: 'currentColor',\n transparent: 'transparent',\n black: '#000000',\n white: '#ffffff',\n neutral: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n darkGray: {\n 50: '#525c7a',\n 100: '#49536e',\n 200: '#414962',\n 300: '#394056',\n 400: '#313749',\n 500: '#292e3d',\n 600: '#212530',\n 700: '#191c24',\n 800: '#111318',\n 900: '#0b0d10',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185',\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDF89',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E',\n },\n purple: {\n 25: '#FAFAFF',\n 50: '#F4F3FF',\n 100: '#EBE9FE',\n 200: '#D9D6FE',\n 300: '#BDB4FE',\n 400: '#9B8AFB',\n 500: '#7A5AF8',\n 600: '#6938EF',\n 700: '#5925DC',\n 800: '#4A1FB8',\n 900: '#3E1C96',\n },\n teal: {\n 25: '#F6FEFC',\n 50: '#F0FDF9',\n 100: '#CCFBEF',\n 200: '#99F6E0',\n 300: '#5FE9D0',\n 400: '#2ED3B7',\n 500: '#15B79E',\n 600: '#0E9384',\n 700: '#107569',\n 800: '#125D56',\n 900: '#134E48',\n },\n pink: {\n 25: '#fdf2f8',\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#500724',\n },\n cyan: {\n 25: '#ecfeff',\n 50: '#cffafe',\n 100: '#a5f3fc',\n 200: '#67e8f9',\n 300: '#22d3ee',\n 400: '#06b6d4',\n 500: '#0891b2',\n 600: '#0e7490',\n 700: '#155e75',\n 800: '#164e63',\n 900: '#083344',\n },\n },\n alpha: {\n 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': 'calc(var(--tsrd-font-size) * 0.625)',\n xs: 'calc(var(--tsrd-font-size) * 0.75)',\n sm: 'calc(var(--tsrd-font-size) * 0.875)',\n md: 'var(--tsrd-font-size)',\n lg: 'calc(var(--tsrd-font-size) * 1.125)',\n xl: 'calc(var(--tsrd-font-size) * 1.25)',\n '2xl': 'calc(var(--tsrd-font-size) * 1.5)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.875)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '7xl': 'calc(var(--tsrd-font-size) * 4.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 6)',\n '9xl': 'calc(var(--tsrd-font-size) * 8)',\n },\n lineHeight: {\n '3xs': 'calc(var(--tsrd-font-size) * 0.75)',\n '2xs': 'calc(var(--tsrd-font-size) * 0.875)',\n xs: 'calc(var(--tsrd-font-size) * 1)',\n sm: 'calc(var(--tsrd-font-size) * 1.25)',\n md: 'calc(var(--tsrd-font-size) * 1.5)',\n lg: 'calc(var(--tsrd-font-size) * 1.75)',\n xl: 'calc(var(--tsrd-font-size) * 2)',\n '2xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '3xl': 'calc(var(--tsrd-font-size) * 2.5)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.75)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.25)',\n '7xl': 'calc(var(--tsrd-font-size) * 3.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '9xl': 'calc(var(--tsrd-font-size) * 4)',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n fontFamily: {\n sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: 'calc(var(--tsrd-font-size) * 0.125)',\n sm: 'calc(var(--tsrd-font-size) * 0.25)',\n md: 'calc(var(--tsrd-font-size) * 0.375)',\n lg: 'calc(var(--tsrd-font-size) * 0.5)',\n xl: 'calc(var(--tsrd-font-size) * 0.75)',\n '2xl': 'calc(var(--tsrd-font-size) * 1)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.5)',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',\n 0.5: 'calc(var(--tsrd-font-size) * 0.125)',\n 1: 'calc(var(--tsrd-font-size) * 0.25)',\n 1.5: 'calc(var(--tsrd-font-size) * 0.375)',\n 2: 'calc(var(--tsrd-font-size) * 0.5)',\n 2.5: 'calc(var(--tsrd-font-size) * 0.625)',\n 3: 'calc(var(--tsrd-font-size) * 0.75)',\n 3.5: 'calc(var(--tsrd-font-size) * 0.875)',\n 4: 'calc(var(--tsrd-font-size) * 1)',\n 4.5: 'calc(var(--tsrd-font-size) * 1.125)',\n 5: 'calc(var(--tsrd-font-size) * 1.25)',\n 5.5: 'calc(var(--tsrd-font-size) * 1.375)',\n 6: 'calc(var(--tsrd-font-size) * 1.5)',\n 6.5: 'calc(var(--tsrd-font-size) * 1.625)',\n 7: 'calc(var(--tsrd-font-size) * 1.75)',\n 8: 'calc(var(--tsrd-font-size) * 2)',\n 9: 'calc(var(--tsrd-font-size) * 2.25)',\n 10: 'calc(var(--tsrd-font-size) * 2.5)',\n 11: 'calc(var(--tsrd-font-size) * 2.75)',\n 12: 'calc(var(--tsrd-font-size) * 3)',\n 14: 'calc(var(--tsrd-font-size) * 3.5)',\n 16: 'calc(var(--tsrd-font-size) * 4)',\n 20: 'calc(var(--tsrd-font-size) * 5)',\n 24: 'calc(var(--tsrd-font-size) * 6)',\n 28: 'calc(var(--tsrd-font-size) * 7)',\n 32: 'calc(var(--tsrd-font-size) * 8)',\n 36: 'calc(var(--tsrd-font-size) * 9)',\n 40: 'calc(var(--tsrd-font-size) * 10)',\n 44: 'calc(var(--tsrd-font-size) * 11)',\n 48: 'calc(var(--tsrd-font-size) * 12)',\n 52: 'calc(var(--tsrd-font-size) * 13)',\n 56: 'calc(var(--tsrd-font-size) * 14)',\n 60: 'calc(var(--tsrd-font-size) * 15)',\n 64: 'calc(var(--tsrd-font-size) * 16)',\n 72: 'calc(var(--tsrd-font-size) * 18)',\n 80: 'calc(var(--tsrd-font-size) * 20)',\n 96: 'calc(var(--tsrd-font-size) * 24)',\n },\n shadow: {\n xs: (_: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,\n sm: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,\n md: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,\n lg: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,\n xl: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>\n `0 25px 50px -12px ${color}` as const,\n inner: (color: string = 'rgb(0 0 0 / 0.05)') =>\n `inset 0 2px 4px 0 ${color}` as const,\n none: () => `none` as const,\n },\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n} as const\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,IAkBN,UAAU;AAAA,MAQR,KAAK;AAAA,MACL,KAAK;AAAA,IAEP;AAAA,IACA,MAAM;AAAA,MAEJ,KAAK;AAAA,MAEL,KAAK;AAAA,MAIL,KAAK;AAAA,IAGP;AAAA,IACA,MAAM;AAAA,MAUJ,KAAK;AAAA,IAEP;AAAA,IAcA,KAAK;AAAA,MAMH,KAAK;AAAA,IAMP;AAAA,IAcA,QAAQ;AAAA,MAMN,KAAK;AAAA,MACL,KAAK;AAAA,IAKP;AAAA,EAwCF;AAAA,EACA,OAAO;AAAA,IAEL,IAAI;AAAA,EAUN;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MAEJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAYN;AAAA,IA6BA,YAAY;AAAA,MACV,MAAM;AAAA,IAER;AAAA,EACF;AAAA,EASA,QAAQ;AAAA,IACN,QAAQ;AAAA,MASN,MAAM;AAAA,IAAA;AAAA,EAEV;AAAA,EACA,MAAM;AAAA,IAGJ,KAAK;AAAA,IAGL,GAAG;AAAA,IAaH,IAAI;AAAA,IAEJ,IAAI;AAAA,IAUJ,IAAI;AAAA,EAQN;AAiCF;;"}