@tanstack/devtools 0.0.0 → 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 (125) hide show
  1. package/README.md +41 -0
  2. package/dist/cjs/components/checkbox.cjs +55 -0
  3. package/dist/cjs/components/checkbox.cjs.map +1 -0
  4. package/dist/cjs/components/checkbox.d.cts +8 -0
  5. package/dist/cjs/components/content-panel.cjs +5 -1
  6. package/dist/cjs/components/content-panel.cjs.map +1 -1
  7. package/dist/cjs/components/input.cjs +57 -0
  8. package/dist/cjs/components/input.cjs.map +1 -0
  9. package/dist/cjs/components/input.d.cts +10 -0
  10. package/dist/cjs/components/logo.cjs.map +1 -1
  11. package/dist/cjs/components/main-panel.cjs +4 -1
  12. package/dist/cjs/components/main-panel.cjs.map +1 -1
  13. package/dist/cjs/components/select.cjs +59 -0
  14. package/dist/cjs/components/select.cjs.map +1 -0
  15. package/dist/cjs/components/select.d.cts +13 -0
  16. package/dist/cjs/components/tab-content.cjs +2 -4
  17. package/dist/cjs/components/tab-content.cjs.map +1 -1
  18. package/dist/cjs/components/tabs.cjs.map +1 -1
  19. package/dist/cjs/components/trigger.cjs +1 -1
  20. package/dist/cjs/components/trigger.cjs.map +1 -1
  21. package/dist/cjs/constants.cjs +7 -0
  22. package/dist/cjs/constants.cjs.map +1 -0
  23. package/dist/cjs/constants.d.cts +2 -0
  24. package/dist/cjs/context/devtools-context.cjs +16 -1
  25. package/dist/cjs/context/devtools-context.cjs.map +1 -1
  26. package/dist/cjs/context/devtools-context.d.cts +5 -5
  27. package/dist/cjs/context/devtools-store.cjs.map +1 -1
  28. package/dist/cjs/context/devtools-store.d.cts +3 -3
  29. package/dist/cjs/context/use-devtools-context.cjs +2 -2
  30. package/dist/cjs/context/use-devtools-context.cjs.map +1 -1
  31. package/dist/cjs/context/use-devtools-context.d.cts +4 -5
  32. package/dist/cjs/core.cjs +29 -43
  33. package/dist/cjs/core.cjs.map +1 -1
  34. package/dist/cjs/core.d.cts +7 -8
  35. package/dist/cjs/devtools.cjs +40 -29
  36. package/dist/cjs/devtools.cjs.map +1 -1
  37. package/dist/cjs/hooks/use-disable-tabbing.cjs.map +1 -1
  38. package/dist/cjs/index.cjs +4 -1
  39. package/dist/cjs/index.cjs.map +1 -1
  40. package/dist/cjs/index.d.cts +4 -3
  41. package/dist/cjs/styles/tokens.cjs +7 -2
  42. package/dist/cjs/styles/tokens.cjs.map +1 -1
  43. package/dist/cjs/styles/use-styles.cjs +251 -11
  44. package/dist/cjs/styles/use-styles.cjs.map +1 -1
  45. package/dist/cjs/styles/use-styles.d.cts +29 -5
  46. package/dist/cjs/tabs/index.cjs.map +1 -1
  47. package/dist/cjs/tabs/plugins-tab.cjs +8 -12
  48. package/dist/cjs/tabs/plugins-tab.cjs.map +1 -1
  49. package/dist/cjs/tabs/settings-tab.cjs +172 -2
  50. package/dist/cjs/tabs/settings-tab.cjs.map +1 -1
  51. package/dist/cjs/utils/sanitize.cjs +2 -0
  52. package/dist/cjs/utils/sanitize.cjs.map +1 -1
  53. package/dist/cjs/utils/sanitize.d.cts +1 -0
  54. package/dist/cjs/utils/storage.cjs.map +1 -1
  55. package/dist/esm/components/checkbox.d.ts +8 -0
  56. package/dist/esm/components/checkbox.js +55 -0
  57. package/dist/esm/components/checkbox.js.map +1 -0
  58. package/dist/esm/components/content-panel.js +5 -1
  59. package/dist/esm/components/content-panel.js.map +1 -1
  60. package/dist/esm/components/input.d.ts +10 -0
  61. package/dist/esm/components/input.js +57 -0
  62. package/dist/esm/components/input.js.map +1 -0
  63. package/dist/esm/components/logo.js.map +1 -1
  64. package/dist/esm/components/main-panel.js +5 -2
  65. package/dist/esm/components/main-panel.js.map +1 -1
  66. package/dist/esm/components/select.d.ts +13 -0
  67. package/dist/esm/components/select.js +59 -0
  68. package/dist/esm/components/select.js.map +1 -0
  69. package/dist/esm/components/tab-content.js +2 -4
  70. package/dist/esm/components/tab-content.js.map +1 -1
  71. package/dist/esm/components/tabs.js.map +1 -1
  72. package/dist/esm/components/trigger.js +1 -1
  73. package/dist/esm/components/trigger.js.map +1 -1
  74. package/dist/esm/constants.d.ts +2 -0
  75. package/dist/esm/constants.js +7 -0
  76. package/dist/esm/constants.js.map +1 -0
  77. package/dist/esm/context/devtools-context.d.ts +5 -5
  78. package/dist/esm/context/devtools-context.js +16 -1
  79. package/dist/esm/context/devtools-context.js.map +1 -1
  80. package/dist/esm/context/devtools-store.d.ts +3 -3
  81. package/dist/esm/context/devtools-store.js.map +1 -1
  82. package/dist/esm/context/use-devtools-context.d.ts +4 -5
  83. package/dist/esm/context/use-devtools-context.js +2 -2
  84. package/dist/esm/context/use-devtools-context.js.map +1 -1
  85. package/dist/esm/core.d.ts +7 -8
  86. package/dist/esm/core.js +29 -43
  87. package/dist/esm/core.js.map +1 -1
  88. package/dist/esm/devtools.js +42 -31
  89. package/dist/esm/devtools.js.map +1 -1
  90. package/dist/esm/hooks/use-disable-tabbing.js.map +1 -1
  91. package/dist/esm/index.d.ts +4 -3
  92. package/dist/esm/index.js +5 -2
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/styles/tokens.js +7 -2
  95. package/dist/esm/styles/tokens.js.map +1 -1
  96. package/dist/esm/styles/use-styles.d.ts +29 -5
  97. package/dist/esm/styles/use-styles.js +251 -11
  98. package/dist/esm/styles/use-styles.js.map +1 -1
  99. package/dist/esm/tabs/index.js.map +1 -1
  100. package/dist/esm/tabs/plugins-tab.js +9 -13
  101. package/dist/esm/tabs/plugins-tab.js.map +1 -1
  102. package/dist/esm/tabs/settings-tab.js +173 -3
  103. package/dist/esm/tabs/settings-tab.js.map +1 -1
  104. package/dist/esm/utils/sanitize.d.ts +1 -0
  105. package/dist/esm/utils/sanitize.js +3 -1
  106. package/dist/esm/utils/sanitize.js.map +1 -1
  107. package/dist/esm/utils/storage.js.map +1 -1
  108. package/package.json +7 -9
  109. package/src/components/checkbox.tsx +43 -0
  110. package/src/components/content-panel.tsx +3 -1
  111. package/src/components/input.tsx +42 -0
  112. package/src/components/main-panel.tsx +3 -2
  113. package/src/components/select.tsx +50 -0
  114. package/src/components/trigger.tsx +1 -1
  115. package/src/constants.ts +2 -0
  116. package/src/context/devtools-context.tsx +28 -9
  117. package/src/context/devtools-store.ts +3 -3
  118. package/src/context/use-devtools-context.ts +2 -3
  119. package/src/core.tsx +18 -20
  120. package/src/devtools.tsx +34 -18
  121. package/src/index.ts +7 -3
  122. package/src/styles/use-styles.ts +257 -13
  123. package/src/tabs/plugins-tab.tsx +11 -5
  124. package/src/tabs/settings-tab.tsx +217 -1
  125. package/src/utils/sanitize.ts +3 -0
@@ -1,9 +1,179 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const web = require("solid-js/web");
4
- var _tmpl$ = /* @__PURE__ */ web.template(`<div>Settings`);
4
+ const solidJs = require("solid-js");
5
+ const input = require("../components/input.cjs");
6
+ const select = require("../components/select.cjs");
7
+ const useDevtoolsContext = require("../context/use-devtools-context.cjs");
8
+ const sanitize = require("../utils/sanitize.cjs");
9
+ const checkbox = require("../components/checkbox.cjs");
10
+ const useStyles = require("../styles/use-styles.cjs");
11
+ var _tmpl$ = /* @__PURE__ */ web.template(`<div>`), _tmpl$2 = /* @__PURE__ */ web.template(`<div><div><h3><svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx=12 cy=12 r=3></circle></svg>General</h3><p>Configure general behavior of the devtools panel.</p><div></div></div><div><h3><svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1=8 x2=16 y1=12 y2=12></line></svg>URL Configuration</h3><p>Control when devtools are available based on URL parameters.</p><div></div></div><div><h3><svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 8h.01"></path><path d="M12 12h.01"></path><path d="M14 8h.01"></path><path d="M16 12h.01"></path><path d="M18 8h.01"></path><path d="M6 8h.01"></path><path d="M7 16h10"></path><path d="M8 12h.01"></path><rect width=20 height=16 x=2 y=4 rx=2></rect></svg>Keyboard</h3><p>Customize keyboard shortcuts for quick access.</p><div></div></div><div><h3><svg xmlns=http://www.w3.org/2000/svg width=20 height=20 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path><circle cx=12 cy=10 r=3></circle></svg>Position</h3><p>Adjust the position of the trigger button and devtools panel.</p><div><div>`);
5
12
  const SettingsTab = () => {
6
- return _tmpl$();
13
+ const {
14
+ setSettings,
15
+ settings
16
+ } = useDevtoolsContext.useDevtoolsSettings();
17
+ const styles = useStyles.useStyles();
18
+ return (() => {
19
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$2.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$10 = _el$8.nextSibling, _el$11 = _el$10.nextSibling, _el$13 = _el$7.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$14.firstChild, _el$16 = _el$14.nextSibling, _el$17 = _el$16.nextSibling, _el$18 = _el$13.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$19.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.firstChild;
20
+ web.insert(_el$6, web.createComponent(checkbox.Checkbox, {
21
+ label: "Default open",
22
+ description: "Automatically open the devtools panel when the page loads",
23
+ onChange: () => setSettings({
24
+ defaultOpen: !settings().defaultOpen
25
+ }),
26
+ get checked() {
27
+ return settings().defaultOpen;
28
+ }
29
+ }), null);
30
+ web.insert(_el$6, web.createComponent(checkbox.Checkbox, {
31
+ label: "Hide trigger until hovered",
32
+ description: "Keep the devtools trigger button hidden until you hover over its area",
33
+ onChange: () => setSettings({
34
+ hideUntilHover: !settings().hideUntilHover
35
+ }),
36
+ get checked() {
37
+ return settings().hideUntilHover;
38
+ }
39
+ }), null);
40
+ web.insert(_el$11, web.createComponent(checkbox.Checkbox, {
41
+ label: "Require URL Flag",
42
+ description: "Only show devtools when a specific URL parameter is present",
43
+ get checked() {
44
+ return settings().requireUrlFlag;
45
+ },
46
+ onChange: (checked) => setSettings({
47
+ requireUrlFlag: checked
48
+ })
49
+ }), null);
50
+ web.insert(_el$11, web.createComponent(solidJs.Show, {
51
+ get when() {
52
+ return settings().requireUrlFlag;
53
+ },
54
+ get children() {
55
+ var _el$12 = _tmpl$();
56
+ web.insert(_el$12, web.createComponent(input.Input, {
57
+ label: "URL flag",
58
+ description: "Enter the URL parameter name (e.g., 'debug' for ?debug=true)",
59
+ placeholder: "debug",
60
+ get value() {
61
+ return settings().urlFlag;
62
+ },
63
+ onChange: (e) => setSettings({
64
+ urlFlag: e
65
+ })
66
+ }));
67
+ web.effect(() => web.className(_el$12, styles().conditionalSetting));
68
+ return _el$12;
69
+ }
70
+ }), null);
71
+ web.insert(_el$17, web.createComponent(input.Input, {
72
+ label: "Hotkey to open/close devtools",
73
+ description: "Use '+' to combine keys (e.g., 'Ctrl+Shift+D' or 'Alt+D')",
74
+ placeholder: "Ctrl+Shift+D",
75
+ get value() {
76
+ return settings().openHotkey.join("+");
77
+ },
78
+ onChange: (e) => setSettings({
79
+ openHotkey: e.split("+").map((key) => sanitize.uppercaseFirstLetter(key)).filter(Boolean)
80
+ })
81
+ }));
82
+ web.insert(_el$23, web.createComponent(select.Select, {
83
+ label: "Trigger Position",
84
+ options: [{
85
+ label: "Bottom Right",
86
+ value: "bottom-right"
87
+ }, {
88
+ label: "Bottom Left",
89
+ value: "bottom-left"
90
+ }, {
91
+ label: "Top Right",
92
+ value: "top-right"
93
+ }, {
94
+ label: "Top Left",
95
+ value: "top-left"
96
+ }, {
97
+ label: "Middle Right",
98
+ value: "middle-right"
99
+ }, {
100
+ label: "Middle Left",
101
+ value: "middle-left"
102
+ }],
103
+ get value() {
104
+ return settings().position;
105
+ },
106
+ onChange: (value) => setSettings({
107
+ position: value
108
+ })
109
+ }), null);
110
+ web.insert(_el$23, web.createComponent(select.Select, {
111
+ label: "Panel Position",
112
+ get value() {
113
+ return settings().panelLocation;
114
+ },
115
+ options: [{
116
+ label: "Top",
117
+ value: "top"
118
+ }, {
119
+ label: "Bottom",
120
+ value: "bottom"
121
+ }],
122
+ onChange: (value) => setSettings({
123
+ panelLocation: value
124
+ })
125
+ }), null);
126
+ web.effect((_p$) => {
127
+ var _v$ = styles().settingsContainer, _v$2 = styles().settingsSection, _v$3 = styles().sectionTitle, _v$4 = styles().sectionIcon, _v$5 = styles().sectionDescription, _v$6 = styles().settingsGroup, _v$7 = styles().settingsSection, _v$8 = styles().sectionTitle, _v$9 = styles().sectionIcon, _v$10 = styles().sectionDescription, _v$11 = styles().settingsGroup, _v$12 = styles().settingsSection, _v$13 = styles().sectionTitle, _v$14 = styles().sectionIcon, _v$15 = styles().sectionDescription, _v$16 = styles().settingsGroup, _v$17 = styles().settingsSection, _v$18 = styles().sectionTitle, _v$19 = styles().sectionIcon, _v$20 = styles().sectionDescription, _v$21 = styles().settingsGroup, _v$22 = styles().settingRow;
128
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
129
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
130
+ _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
131
+ _v$4 !== _p$.o && web.setAttribute(_el$4, "class", _p$.o = _v$4);
132
+ _v$5 !== _p$.i && web.className(_el$5, _p$.i = _v$5);
133
+ _v$6 !== _p$.n && web.className(_el$6, _p$.n = _v$6);
134
+ _v$7 !== _p$.s && web.className(_el$7, _p$.s = _v$7);
135
+ _v$8 !== _p$.h && web.className(_el$8, _p$.h = _v$8);
136
+ _v$9 !== _p$.r && web.setAttribute(_el$9, "class", _p$.r = _v$9);
137
+ _v$10 !== _p$.d && web.className(_el$10, _p$.d = _v$10);
138
+ _v$11 !== _p$.l && web.className(_el$11, _p$.l = _v$11);
139
+ _v$12 !== _p$.u && web.className(_el$13, _p$.u = _v$12);
140
+ _v$13 !== _p$.c && web.className(_el$14, _p$.c = _v$13);
141
+ _v$14 !== _p$.w && web.setAttribute(_el$15, "class", _p$.w = _v$14);
142
+ _v$15 !== _p$.m && web.className(_el$16, _p$.m = _v$15);
143
+ _v$16 !== _p$.f && web.className(_el$17, _p$.f = _v$16);
144
+ _v$17 !== _p$.y && web.className(_el$18, _p$.y = _v$17);
145
+ _v$18 !== _p$.g && web.className(_el$19, _p$.g = _v$18);
146
+ _v$19 !== _p$.p && web.setAttribute(_el$20, "class", _p$.p = _v$19);
147
+ _v$20 !== _p$.b && web.className(_el$21, _p$.b = _v$20);
148
+ _v$21 !== _p$.T && web.className(_el$22, _p$.T = _v$21);
149
+ _v$22 !== _p$.A && web.className(_el$23, _p$.A = _v$22);
150
+ return _p$;
151
+ }, {
152
+ e: void 0,
153
+ t: void 0,
154
+ a: void 0,
155
+ o: void 0,
156
+ i: void 0,
157
+ n: void 0,
158
+ s: void 0,
159
+ h: void 0,
160
+ r: void 0,
161
+ d: void 0,
162
+ l: void 0,
163
+ u: void 0,
164
+ c: void 0,
165
+ w: void 0,
166
+ m: void 0,
167
+ f: void 0,
168
+ y: void 0,
169
+ g: void 0,
170
+ p: void 0,
171
+ b: void 0,
172
+ T: void 0,
173
+ A: void 0
174
+ });
175
+ return _el$;
176
+ })();
7
177
  };
8
178
  exports.SettingsTab = SettingsTab;
9
179
  //# sourceMappingURL=settings-tab.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-tab.cjs","sources":["../../../src/tabs/settings-tab.tsx"],"sourcesContent":["export const SettingsTab = () => {\n return <div>Settings</div>\n}\n"],"names":["SettingsTab","_tmpl$"],"mappings":";;;;AAAO,MAAMA,cAAcA,MAAM;AAC/B,SAAAC,OAAA;AACF;;"}
1
+ {"version":3,"file":"settings-tab.cjs","sources":["../../../src/tabs/settings-tab.tsx"],"sourcesContent":["import { Show } from 'solid-js'\nimport { Input } from '../components/input'\nimport { Select } from '../components/select'\nimport { useDevtoolsSettings } from '../context/use-devtools-context'\nimport { uppercaseFirstLetter } from '../utils/sanitize'\nimport { Checkbox } from '../components/checkbox'\nimport { useStyles } from '../styles/use-styles'\n\nexport const SettingsTab = () => {\n const { setSettings, settings } = useDevtoolsSettings()\n const styles = useStyles()\n\n return (\n <div class={styles().settingsContainer}>\n {/* General Settings */}\n <div class={styles().settingsSection}>\n <h3 class={styles().sectionTitle}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={styles().sectionIcon}\n >\n <path d=\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n General\n </h3>\n <p class={styles().sectionDescription}>\n Configure general behavior of the devtools panel.\n </p>\n <div class={styles().settingsGroup}>\n <Checkbox\n label=\"Default open\"\n description=\"Automatically open the devtools panel when the page loads\"\n onChange={() =>\n setSettings({ defaultOpen: !settings().defaultOpen })\n }\n checked={settings().defaultOpen}\n />\n <Checkbox\n label=\"Hide trigger until hovered\"\n description=\"Keep the devtools trigger button hidden until you hover over its area\"\n onChange={() =>\n setSettings({ hideUntilHover: !settings().hideUntilHover })\n }\n checked={settings().hideUntilHover}\n />\n </div>\n </div>\n\n {/* URL Flag Settings */}\n <div class={styles().settingsSection}>\n <h3 class={styles().sectionTitle}>\n <svg\n class={styles().sectionIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M9 17H7A5 5 0 0 1 7 7h2\" />\n <path d=\"M15 7h2a5 5 0 1 1 0 10h-2\" />\n <line x1=\"8\" x2=\"16\" y1=\"12\" y2=\"12\" />\n </svg>\n URL Configuration\n </h3>\n <p class={styles().sectionDescription}>\n Control when devtools are available based on URL parameters.\n </p>\n <div class={styles().settingsGroup}>\n <Checkbox\n label=\"Require URL Flag\"\n description=\"Only show devtools when a specific URL parameter is present\"\n checked={settings().requireUrlFlag}\n onChange={(checked) =>\n setSettings({\n requireUrlFlag: checked,\n })\n }\n />\n <Show when={settings().requireUrlFlag}>\n <div class={styles().conditionalSetting}>\n <Input\n label=\"URL flag\"\n description=\"Enter the URL parameter name (e.g., 'debug' for ?debug=true)\"\n placeholder=\"debug\"\n value={settings().urlFlag}\n onChange={(e) =>\n setSettings({\n urlFlag: e,\n })\n }\n />\n </div>\n </Show>\n </div>\n </div>\n\n {/* Keyboard Settings */}\n <div class={styles().settingsSection}>\n <h3 class={styles().sectionTitle}>\n <svg\n class={styles().sectionIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M10 8h.01\" />\n <path d=\"M12 12h.01\" />\n <path d=\"M14 8h.01\" />\n <path d=\"M16 12h.01\" />\n <path d=\"M18 8h.01\" />\n <path d=\"M6 8h.01\" />\n <path d=\"M7 16h10\" />\n <path d=\"M8 12h.01\" />\n <rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\" />\n </svg>\n Keyboard\n </h3>\n <p class={styles().sectionDescription}>\n Customize keyboard shortcuts for quick access.\n </p>\n <div class={styles().settingsGroup}>\n <Input\n label=\"Hotkey to open/close devtools\"\n description=\"Use '+' to combine keys (e.g., 'Ctrl+Shift+D' or 'Alt+D')\"\n placeholder=\"Ctrl+Shift+D\"\n value={settings().openHotkey.join('+')}\n onChange={(e) =>\n setSettings({\n openHotkey: e\n .split('+')\n .map((key) => uppercaseFirstLetter(key))\n .filter(Boolean),\n })\n }\n />\n </div>\n </div>\n\n {/* Position Settings */}\n <div class={styles().settingsSection}>\n <h3 class={styles().sectionTitle}>\n <svg\n class={styles().sectionIcon}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\" />\n <circle cx=\"12\" cy=\"10\" r=\"3\" />\n </svg>\n Position\n </h3>\n <p class={styles().sectionDescription}>\n Adjust the position of the trigger button and devtools panel.\n </p>\n <div class={styles().settingsGroup}>\n <div class={styles().settingRow}>\n <Select\n label=\"Trigger Position\"\n options={[\n { label: 'Bottom Right', value: 'bottom-right' },\n { label: 'Bottom Left', value: 'bottom-left' },\n { label: 'Top Right', value: 'top-right' },\n { label: 'Top Left', value: 'top-left' },\n { label: 'Middle Right', value: 'middle-right' },\n { label: 'Middle Left', value: 'middle-left' },\n ]}\n value={settings().position}\n onChange={(value) =>\n setSettings({\n position: value,\n })\n }\n />\n <Select\n label=\"Panel Position\"\n value={settings().panelLocation}\n options={[\n { label: 'Top', value: 'top' },\n { label: 'Bottom', value: 'bottom' },\n ]}\n onChange={(value) =>\n setSettings({\n panelLocation: value,\n })\n }\n />\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["SettingsTab","setSettings","settings","useDevtoolsSettings","styles","useStyles","_el$","_tmpl$2","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$10","_el$11","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$23","_$insert","_$createComponent","Checkbox","label","description","onChange","defaultOpen","checked","hideUntilHover","requireUrlFlag","Show","when","children","_el$12","_tmpl$","Input","placeholder","value","urlFlag","e","_$effect","_$className","conditionalSetting","openHotkey","join","split","map","key","uppercaseFirstLetter","filter","Boolean","Select","options","position","panelLocation","_p$","_v$","settingsContainer","_v$2","settingsSection","_v$3","sectionTitle","_v$4","sectionIcon","_v$5","sectionDescription","_v$6","settingsGroup","_v$7","_v$8","_v$9","_v$10","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","_v$22","settingRow","t","a","o","_$setAttribute","i","n","s","h","r","d","l","u","c","w","m","f","y","g","p","b","T","A","undefined"],"mappings":";;;;;;;;;;;AAQO,MAAMA,cAAcA,MAAM;AAC/B,QAAM;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,EAAAA,IAAaC,uCAAAA;AAClC,QAAMC,SAASC,UAAAA,UAAAA;AAEf,UAAA,MAAA;AAAA,QAAAC,OAAAC,QAAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAD,YAAAG,QAAAF,MAAAG,aAAAC,QAAAF,MAAAC,aAAAE,QAAAP,MAAAK,aAAAG,QAAAD,MAAAN,YAAAQ,QAAAD,MAAAP,YAAAS,SAAAF,MAAAH,aAAAM,SAAAD,OAAAL,aAAAO,SAAAL,MAAAF,aAAAQ,SAAAD,OAAAX,YAAAa,SAAAD,OAAAZ,YAAAc,SAAAF,OAAAR,aAAAW,SAAAD,OAAAV,aAAAY,SAAAL,OAAAP,aAAAa,SAAAD,OAAAhB,YAAAkB,SAAAD,OAAAjB,YAAAmB,SAAAF,OAAAb,aAAAgB,SAAAD,OAAAf,aAAAiB,SAAAD,OAAApB;AAAAsB,eAAAjB,OAAAkB,IAAAA,gBA0BSC,mBAAQ;AAAA,MACPC,OAAK;AAAA,MACLC,aAAW;AAAA,MACXC,UAAUA,MACRnC,YAAY;AAAA,QAAEoC,aAAa,CAACnC,WAAWmC;AAAAA,MAAAA,CAAa;AAAA,MAAC,IAEvDC,UAAO;AAAA,eAAEpC,WAAWmC;AAAAA,MAAW;AAAA,IAAA,CAAA,GAAA,IAAA;AAAAN,eAAAjB,OAAAkB,IAAAA,gBAEhCC,mBAAQ;AAAA,MACPC,OAAK;AAAA,MACLC,aAAW;AAAA,MACXC,UAAUA,MACRnC,YAAY;AAAA,QAAEsC,gBAAgB,CAACrC,WAAWqC;AAAAA,MAAAA,CAAgB;AAAA,MAAC,IAE7DD,UAAO;AAAA,eAAEpC,WAAWqC;AAAAA,MAAc;AAAA,IAAA,CAAA,GAAA,IAAA;AAAAR,eAAAZ,QAAAa,IAAAA,gBA8BnCC,mBAAQ;AAAA,MACPC,OAAK;AAAA,MACLC,aAAW;AAAA,MAAA,IACXG,UAAO;AAAA,eAAEpC,WAAWsC;AAAAA,MAAc;AAAA,MAClCJ,UAAWE,aACTrC,YAAY;AAAA,QACVuC,gBAAgBF;AAAAA,MAAAA,CACjB;AAAA,IAAA,CAAC,GAAA,IAAA;AAAAP,eAAAZ,QAAAa,IAAAA,gBAGLS,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAExC,WAAWsC;AAAAA,MAAc;AAAA,MAAA,IAAAG,WAAA;AAAA,YAAAC,SAAAC,OAAAA;AAAAd,mBAAAa,QAAAZ,IAAAA,gBAEhCc,aAAK;AAAA,UACJZ,OAAK;AAAA,UACLC,aAAW;AAAA,UACXY,aAAW;AAAA,UAAA,IACXC,QAAK;AAAA,mBAAE9C,WAAW+C;AAAAA,UAAO;AAAA,UACzBb,UAAWc,OACTjD,YAAY;AAAA,YACVgD,SAASC;AAAAA,UAAAA,CACV;AAAA,QAAA,CAAC,CAAA;AAAAC,YAAAA,OAAA,MAAAC,IAAAA,UAAAR,QATIxC,OAAAA,EAASiD,kBAAkB,CAAA;AAAA,eAAAT;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA,IAAA;AAAAb,eAAAP,QAAAQ,IAAAA,gBAgDxCc,aAAK;AAAA,MACJZ,OAAK;AAAA,MACLC,aAAW;AAAA,MACXY,aAAW;AAAA,MAAA,IACXC,QAAK;AAAA,eAAE9C,SAAAA,EAAWoD,WAAWC,KAAK,GAAG;AAAA,MAAC;AAAA,MACtCnB,UAAWc,OACTjD,YAAY;AAAA,QACVqD,YAAYJ,EACTM,MAAM,GAAG,EACTC,IAAKC,CAAAA,QAAQC,8BAAqBD,GAAG,CAAC,EACtCE,OAAOC,OAAO;AAAA,MAAA,CAClB;AAAA,IAAA,CAAC,CAAA;AAAA9B,eAAAD,QAAAE,IAAAA,gBA+BH8B,eAAM;AAAA,MACL5B,OAAK;AAAA,MACL6B,SAAS,CACP;AAAA,QAAE7B,OAAO;AAAA,QAAgBc,OAAO;AAAA,MAAA,GAChC;AAAA,QAAEd,OAAO;AAAA,QAAec,OAAO;AAAA,MAAA,GAC/B;AAAA,QAAEd,OAAO;AAAA,QAAac,OAAO;AAAA,MAAA,GAC7B;AAAA,QAAEd,OAAO;AAAA,QAAYc,OAAO;AAAA,MAAA,GAC5B;AAAA,QAAEd,OAAO;AAAA,QAAgBc,OAAO;AAAA,MAAA,GAChC;AAAA,QAAEd,OAAO;AAAA,QAAec,OAAO;AAAA,MAAA,CAAe;AAAA,MAC/C,IACDA,QAAK;AAAA,eAAE9C,WAAW8D;AAAAA,MAAQ;AAAA,MAC1B5B,UAAWY,WACT/C,YAAY;AAAA,QACV+D,UAAUhB;AAAAA,MAAAA,CACX;AAAA,IAAA,CAAC,GAAA,IAAA;AAAAjB,eAAAD,QAAAE,IAAAA,gBAGL8B,eAAM;AAAA,MACL5B,OAAK;AAAA,MAAA,IACLc,QAAK;AAAA,eAAE9C,WAAW+D;AAAAA,MAAa;AAAA,MAC/BF,SAAS,CACP;AAAA,QAAE7B,OAAO;AAAA,QAAOc,OAAO;AAAA,MAAA,GACvB;AAAA,QAAEd,OAAO;AAAA,QAAUc,OAAO;AAAA,MAAA,CAAU;AAAA,MAEtCZ,UAAWY,WACT/C,YAAY;AAAA,QACVgE,eAAejB;AAAAA,MAAAA,CAChB;AAAA,IAAA,CAAC,GAAA,IAAA;AAAAG,QAAAA,OAAAe,CAAAA,QAAA;AAAA,UAAAC,MArMF/D,SAASgE,mBAAiBC,OAExBjE,OAAAA,EAASkE,iBAAeC,OACvBnE,OAAAA,EAASoE,cAAYC,OAWrBrE,OAAAA,EAASsE,aAAWC,OAOrBvE,SAASwE,oBAAkBC,OAGzBzE,OAAAA,EAAS0E,eAAaC,OAqBxB3E,SAASkE,iBAAeU,OACvB5E,SAASoE,cAAYS,OAErB7E,OAAAA,EAASsE,aAAWQ,QAiBrB9E,SAASwE,oBAAkBO,QAGzB/E,OAAAA,EAAS0E,eAAaM,QA8BxBhF,SAASkE,iBAAee,QACvBjF,OAAAA,EAASoE,cAAYc,QAErBlF,OAAAA,EAASsE,aAAWa,QAuBrBnF,SAASwE,oBAAkBY,QAGzBpF,OAAAA,EAAS0E,eAAaW,QAmBxBrF,OAAAA,EAASkE,iBAAeoB,QACvBtF,OAAAA,EAASoE,cAAYmB,QAErBvF,SAASsE,aAAWkB,QAgBrBxF,SAASwE,oBAAkBiB,QAGzBzF,OAAAA,EAAS0E,eAAagB,QACpB1F,SAAS2F;AAAU5B,cAAAD,IAAAhB,KAAAE,IAAAA,UAAA9C,MAAA4D,IAAAhB,IAAAiB,GAAA;AAAAE,eAAAH,IAAA8B,KAAA5C,IAAAA,UAAA5C,OAAA0D,IAAA8B,IAAA3B,IAAA;AAAAE,eAAAL,IAAA+B,KAAA7C,IAAAA,UAAA1C,OAAAwD,IAAA+B,IAAA1B,IAAA;AAAAE,eAAAP,IAAAgC,KAAAC,IAAAA,aAAAxF,OAAA,SAAAuD,IAAAgC,IAAAzB,IAAA;AAAAE,eAAAT,IAAAkC,KAAAhD,IAAAA,UAAAxC,OAAAsD,IAAAkC,IAAAzB,IAAA;AAAAE,eAAAX,IAAAmC,KAAAjD,IAAAA,UAAAtC,OAAAoD,IAAAmC,IAAAxB,IAAA;AAAAE,eAAAb,IAAAoC,KAAAlD,IAAAA,UAAArC,OAAAmD,IAAAoC,IAAAvB,IAAA;AAAAC,eAAAd,IAAAqC,KAAAnD,IAAAA,UAAApC,OAAAkD,IAAAqC,IAAAvB,IAAA;AAAAC,eAAAf,IAAAsC,KAAAL,IAAAA,aAAAlF,OAAA,SAAAiD,IAAAsC,IAAAvB,IAAA;AAAAC,gBAAAhB,IAAAuC,KAAArD,IAAAA,UAAAlC,QAAAgD,IAAAuC,IAAAvB,KAAA;AAAAC,gBAAAjB,IAAAwC,KAAAtD,IAAAA,UAAAjC,QAAA+C,IAAAwC,IAAAvB,KAAA;AAAAC,gBAAAlB,IAAAyC,KAAAvD,IAAAA,UAAAhC,QAAA8C,IAAAyC,IAAAvB,KAAA;AAAAC,gBAAAnB,IAAA0C,KAAAxD,IAAAA,UAAA/B,QAAA6C,IAAA0C,IAAAvB,KAAA;AAAAC,gBAAApB,IAAA2C,KAAAV,IAAAA,aAAA7E,QAAA,SAAA4C,IAAA2C,IAAAvB,KAAA;AAAAC,gBAAArB,IAAA4C,KAAA1D,IAAAA,UAAA7B,QAAA2C,IAAA4C,IAAAvB,KAAA;AAAAC,gBAAAtB,IAAA6C,KAAA3D,IAAAA,UAAA5B,QAAA0C,IAAA6C,IAAAvB,KAAA;AAAAC,gBAAAvB,IAAA8C,KAAA5D,IAAAA,UAAA3B,QAAAyC,IAAA8C,IAAAvB,KAAA;AAAAC,gBAAAxB,IAAA+C,KAAA7D,IAAAA,UAAA1B,QAAAwC,IAAA+C,IAAAvB,KAAA;AAAAC,gBAAAzB,IAAAgD,KAAAf,IAAAA,aAAAxE,QAAA,SAAAuC,IAAAgD,IAAAvB,KAAA;AAAAC,gBAAA1B,IAAAiD,KAAA/D,IAAAA,UAAAxB,QAAAsC,IAAAiD,IAAAvB,KAAA;AAAAC,gBAAA3B,IAAAkD,KAAAhE,IAAAA,UAAAvB,QAAAqC,IAAAkD,IAAAvB,KAAA;AAAAC,gBAAA5B,IAAAmD,KAAAjE,IAAAA,UAAAtB,QAAAoC,IAAAmD,IAAAvB,KAAA;AAAA,aAAA5B;AAAAA,IAAA,GAAA;AAAA,MAAAhB,GAAAoE;AAAAA,MAAAtB,GAAAsB;AAAAA,MAAArB,GAAAqB;AAAAA,MAAApB,GAAAoB;AAAAA,MAAAlB,GAAAkB;AAAAA,MAAAjB,GAAAiB;AAAAA,MAAAhB,GAAAgB;AAAAA,MAAAf,GAAAe;AAAAA,MAAAd,GAAAc;AAAAA,MAAAb,GAAAa;AAAAA,MAAAZ,GAAAY;AAAAA,MAAAX,GAAAW;AAAAA,MAAAV,GAAAU;AAAAA,MAAAT,GAAAS;AAAAA,MAAAR,GAAAQ;AAAAA,MAAAP,GAAAO;AAAAA,MAAAN,GAAAM;AAAAA,MAAAL,GAAAK;AAAAA,MAAAJ,GAAAI;AAAAA,MAAAH,GAAAG;AAAAA,MAAAF,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA;AAAA,WAAAhH;AAAAA,EAAA,GAAA;AAoCzC;;"}
@@ -8,5 +8,7 @@ const tryParseJson = (json) => {
8
8
  return void 0;
9
9
  }
10
10
  };
11
+ const uppercaseFirstLetter = (value) => value.charAt(0).toUpperCase() + value.slice(1);
11
12
  exports.tryParseJson = tryParseJson;
13
+ exports.uppercaseFirstLetter = uppercaseFirstLetter;
12
14
  //# sourceMappingURL=sanitize.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.cjs","sources":["../../../src/utils/sanitize.ts"],"sourcesContent":["export const tryParseJson = <T>(json: string | null): T | undefined => {\n if (!json) return undefined\n try {\n return JSON.parse(json)\n } catch (_e) {\n return undefined\n }\n}\n"],"names":[],"mappings":";;AAAa,MAAA,eAAe,CAAI,SAAuC;AACjE,MAAA,CAAC,KAAa,QAAA;AACd,MAAA;AACK,WAAA,KAAK,MAAM,IAAI;AAAA,WACf,IAAI;AACJ,WAAA;AAAA,EAAA;AAEX;;"}
1
+ {"version":3,"file":"sanitize.cjs","sources":["../../../src/utils/sanitize.ts"],"sourcesContent":["export const tryParseJson = <T>(json: string | null): T | undefined => {\n if (!json) return undefined\n try {\n return JSON.parse(json)\n } catch (_e) {\n return undefined\n }\n}\n\nexport const uppercaseFirstLetter = (value: string) =>\n value.charAt(0).toUpperCase() + value.slice(1)\n"],"names":[],"mappings":";;AAAO,MAAM,eAAe,CAAI,SAAuC;AACrE,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAS,IAAI;AACX,WAAO;AAAA,EACT;AACF;AAEO,MAAM,uBAAuB,CAAC,UACnC,MAAM,OAAO,CAAC,EAAE,YAAA,IAAgB,MAAM,MAAM,CAAC;;;"}
@@ -1 +1,2 @@
1
1
  export declare const tryParseJson: <T>(json: string | null) => T | undefined;
2
+ export declare const uppercaseFirstLetter: (value: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.cjs","sources":["../../../src/utils/storage.ts"],"sourcesContent":["export const getStorageItem = (key: string) => localStorage.getItem(key)\nexport const setStorageItem = (key: string, value: string) => {\n try {\n localStorage.setItem(key, value)\n } catch (_e) {\n return\n }\n}\n\nexport const TANSTACK_DEVTOOLS = 'tanstack_devtools'\nexport const TANSTACK_DEVTOOLS_STATE = 'tanstack_devtools_state'\nexport const TANSTACK_DEVTOOLS_SETTINGS = 'tanstack_devtools_settings'\n"],"names":[],"mappings":";;AAAO,MAAM,iBAAiB,CAAC,QAAgB,aAAa,QAAQ,GAAG;AAC1D,MAAA,iBAAiB,CAAC,KAAa,UAAkB;AACxD,MAAA;AACW,iBAAA,QAAQ,KAAK,KAAK;AAAA,WACxB,IAAI;AACX;AAAA,EAAA;AAEJ;AAEO,MAAM,oBAAoB;AAC1B,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;;;;;;"}
1
+ {"version":3,"file":"storage.cjs","sources":["../../../src/utils/storage.ts"],"sourcesContent":["export const getStorageItem = (key: string) => localStorage.getItem(key)\nexport const setStorageItem = (key: string, value: string) => {\n try {\n localStorage.setItem(key, value)\n } catch (_e) {\n return\n }\n}\n\nexport const TANSTACK_DEVTOOLS = 'tanstack_devtools'\nexport const TANSTACK_DEVTOOLS_STATE = 'tanstack_devtools_state'\nexport const TANSTACK_DEVTOOLS_SETTINGS = 'tanstack_devtools_settings'\n"],"names":[],"mappings":";;AAAO,MAAM,iBAAiB,CAAC,QAAgB,aAAa,QAAQ,GAAG;AAChE,MAAM,iBAAiB,CAAC,KAAa,UAAkB;AAC5D,MAAI;AACF,iBAAa,QAAQ,KAAK,KAAK;AAAA,EACjC,SAAS,IAAI;AACX;AAAA,EACF;AACF;AAEO,MAAM,oBAAoB;AAC1B,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;;;;;;"}
@@ -0,0 +1,8 @@
1
+ interface CheckboxProps {
2
+ label?: string;
3
+ checked?: boolean;
4
+ onChange?: (checked: boolean) => void;
5
+ description?: string;
6
+ }
7
+ export declare function Checkbox(props: CheckboxProps): import("solid-js").JSX.Element;
8
+ export {};
@@ -0,0 +1,55 @@
1
+ import { template, insert, memo, effect, className, delegateEvents } from "solid-js/web";
2
+ import { createSignal } from "solid-js";
3
+ import { useStyles } from "../styles/use-styles.js";
4
+ var _tmpl$ = /* @__PURE__ */ template(`<div><label><input type=checkbox><div>`), _tmpl$2 = /* @__PURE__ */ template(`<span>`);
5
+ function Checkbox(props) {
6
+ const styles = useStyles();
7
+ const [isChecked, setIsChecked] = createSignal(props.checked || false);
8
+ const handleChange = (e) => {
9
+ const checked = e.target.checked;
10
+ setIsChecked(checked);
11
+ props.onChange?.(checked);
12
+ };
13
+ return (() => {
14
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
15
+ _el$3.$$input = handleChange;
16
+ insert(_el$4, (() => {
17
+ var _c$ = memo(() => !!props.label);
18
+ return () => _c$() && (() => {
19
+ var _el$5 = _tmpl$2();
20
+ insert(_el$5, () => props.label);
21
+ effect(() => className(_el$5, styles().checkboxLabel));
22
+ return _el$5;
23
+ })();
24
+ })(), null);
25
+ insert(_el$4, (() => {
26
+ var _c$2 = memo(() => !!props.description);
27
+ return () => _c$2() && (() => {
28
+ var _el$6 = _tmpl$2();
29
+ insert(_el$6, () => props.description);
30
+ effect(() => className(_el$6, styles().checkboxDescription));
31
+ return _el$6;
32
+ })();
33
+ })(), null);
34
+ effect((_p$) => {
35
+ var _v$ = styles().checkboxContainer, _v$2 = styles().checkboxWrapper, _v$3 = styles().checkbox, _v$4 = styles().checkboxLabelContainer;
36
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
37
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
38
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
39
+ _v$4 !== _p$.o && className(_el$4, _p$.o = _v$4);
40
+ return _p$;
41
+ }, {
42
+ e: void 0,
43
+ t: void 0,
44
+ a: void 0,
45
+ o: void 0
46
+ });
47
+ effect(() => _el$3.checked = isChecked());
48
+ return _el$;
49
+ })();
50
+ }
51
+ delegateEvents(["input"]);
52
+ export {
53
+ Checkbox
54
+ };
55
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/components/checkbox.tsx"],"sourcesContent":["import { createSignal } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\n\ninterface CheckboxProps {\n label?: string\n checked?: boolean\n onChange?: (checked: boolean) => void\n description?: string\n}\n\nexport function Checkbox(props: CheckboxProps) {\n const styles = useStyles()\n const [isChecked, setIsChecked] = createSignal(props.checked || false)\n\n const handleChange = (e: Event) => {\n const checked = (e.target as HTMLInputElement).checked\n setIsChecked(checked)\n props.onChange?.(checked)\n }\n\n return (\n <div class={styles().checkboxContainer}>\n <label class={styles().checkboxWrapper}>\n <input\n type=\"checkbox\"\n checked={isChecked()}\n class={styles().checkbox}\n onInput={handleChange}\n />\n <div class={styles().checkboxLabelContainer}>\n {props.label && (\n <span class={styles().checkboxLabel}>{props.label}</span>\n )}\n {props.description && (\n <span class={styles().checkboxDescription}>\n {props.description}\n </span>\n )}\n </div>\n </label>\n </div>\n )\n}\n"],"names":["Checkbox","props","styles","useStyles","isChecked","setIsChecked","createSignal","checked","handleChange","e","target","onChange","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","$$input","_$insert","_c$","_$memo","label","_el$5","_tmpl$2","_$effect","_$className","checkboxLabel","_c$2","description","_el$6","checkboxDescription","_p$","_v$","checkboxContainer","_v$2","checkboxWrapper","_v$3","checkbox","_v$4","checkboxLabelContainer","t","a","o","undefined","_$delegateEvents"],"mappings":";;;;AAUO,SAASA,SAASC,OAAsB;AAC7C,QAAMC,SAASC,UAAAA;AACf,QAAM,CAACC,WAAWC,YAAY,IAAIC,aAAaL,MAAMM,WAAW,KAAK;AAErE,QAAMC,eAAeA,CAACC,MAAa;AACjC,UAAMF,UAAWE,EAAEC,OAA4BH;AAC/CF,iBAAaE,OAAO;AACpBN,UAAMU,WAAWJ,OAAO;AAAA,EAC1B;AAEA,UAAA,MAAA;AAAA,QAAAK,OAAAC,UAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE;AAAAF,UAAAG,UAOiBX;AAAYY,WAAAH,QAAA,MAAA;AAAA,UAAAI,MAAAC,KAAA,MAAA,CAAA,CAGpBrB,MAAMsB,KAAK;AAAA,aAAA,MAAXF,IAAAA,MAAA,MAAA;AAAA,YAAAG,QAAAC,QAAAA;AAAAL,eAAAI,OAAA,MACuCvB,MAAMsB,KAAK;AAAAG,eAAA,MAAAC,UAAAH,OAApCtB,OAAAA,EAAS0B,aAAa,CAAA;AAAA,eAAAJ;AAAAA,MAAA,GAAA;AAAA,IACpC,GAAA,GAAA,IAAA;AAAAJ,WAAAH,QAAA,MAAA;AAAA,UAAAY,OAAAP,KAAA,MAAA,CAAA,CACArB,MAAM6B,WAAW;AAAA,aAAA,MAAjBD,KAAAA,MAAA,MAAA;AAAA,YAAAE,QAAAN,QAAAA;AAAAL,eAAAW,OAAA,MAEI9B,MAAM6B,WAAW;AAAAJ,eAAA,MAAAC,UAAAI,OADP7B,OAAAA,EAAS8B,mBAAmB,CAAA;AAAA,eAAAD;AAAAA,MAAA,GAAA;AAAA,IAG1C,GAAA,GAAA,IAAA;AAAAL,WAAAO,CAAAA,QAAA;AAAA,UAAAC,MAhBKhC,OAAAA,EAASiC,mBAAiBC,OACtBlC,OAAAA,EAASmC,iBAAeC,OAI3BpC,OAAAA,EAASqC,UAAQC,OAGdtC,SAASuC;AAAsBP,cAAAD,IAAAxB,KAAAkB,UAAAf,MAAAqB,IAAAxB,IAAAyB,GAAA;AAAAE,eAAAH,IAAAS,KAAAf,UAAAb,OAAAmB,IAAAS,IAAAN,IAAA;AAAAE,eAAAL,IAAAU,KAAAhB,UAAAX,OAAAiB,IAAAU,IAAAL,IAAA;AAAAE,eAAAP,IAAAW,KAAAjB,UAAAV,OAAAgB,IAAAW,IAAAJ,IAAA;AAAA,aAAAP;AAAAA,IAAA,GAAA;AAAA,MAAAxB,GAAAoC;AAAAA,MAAAH,GAAAG;AAAAA,MAAAF,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA;AAAAnB,iBAAAV,MAAAT,UAJhCH,UAAAA,CAAW;AAAA,WAAAQ;AAAAA,EAAA,GAAA;AAiB9B;AAACkC,eAAA,CAAA,OAAA,CAAA;"}
@@ -1,8 +1,12 @@
1
1
  import { template, use, insert, memo, addEventListener, effect, className, delegateEvents } from "solid-js/web";
2
+ import { useDevtoolsSettings } from "../context/use-devtools-context.js";
2
3
  import { useStyles } from "../styles/use-styles.js";
3
4
  var _tmpl$ = /* @__PURE__ */ template(`<div>`);
4
5
  const ContentPanel = (props) => {
5
6
  const styles = useStyles();
7
+ const {
8
+ settings
9
+ } = useDevtoolsSettings();
6
10
  return (() => {
7
11
  var _el$ = _tmpl$();
8
12
  var _ref$ = props.ref;
@@ -12,7 +16,7 @@ const ContentPanel = (props) => {
12
16
  return () => _c$() ? (() => {
13
17
  var _el$2 = _tmpl$();
14
18
  addEventListener(_el$2, "mousedown", props.handleDragStart, true);
15
- effect(() => className(_el$2, styles().dragHandle));
19
+ effect(() => className(_el$2, styles().dragHandle(settings().panelLocation)));
16
20
  return _el$2;
17
21
  })() : null;
18
22
  })(), null);
@@ -1 +1 @@
1
- {"version":3,"file":"content-panel.js","sources":["../../../src/components/content-panel.tsx"],"sourcesContent":["import { 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 return (\n <div ref={props.ref} class={styles().devtoolsPanel}>\n {props.handleDragStart ? (\n <div\n class={styles().dragHandle}\n onMouseDown={props.handleDragStart}\n ></div>\n ) : null}\n {props.children}\n </div>\n )\n}\n"],"names":["ContentPanel","props","styles","useStyles","_el$","_tmpl$","_ref$","ref","_$use","_$insert","_c$","_$memo","handleDragStart","_el$2","_$addEventListener","_$effect","_$className","dragHandle","children","devtoolsPanel","_$delegateEvents"],"mappings":";;;AAGaA,MAAAA,eAAeA,CAACC,UAIvB;AACJ,QAAMC,SAASC,UAAU;AACzB,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAA;AAAA,QAAAC,QACYL,MAAMM;AAAG,WAAAD,UAAA,aAAAE,IAAAF,OAAAF,IAAA,IAATH,MAAMM,MAAGH;AAAAK,WAAAL,OAAA,MAAA;AAAA,UAAAM,MAAAC,KAChBV,MAAAA,CAAAA,CAAAA,MAAMW,eAAe;AAAA,aAAA,MAArBF,IAAA,KAAA,MAAA;AAAA,YAAAG,QAAAR,OAAA;AAAAS,yBAAAD,OAGgBZ,aAAAA,MAAMW,iBAAe,IAAA;AAAAG,eAAA,MAAAC,UAAAH,OAD3BX,OAAO,EAAEe,UAAU,CAAA;AAAAJ,eAAAA;AAAAA,aAG1B;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAJ,WAAAL,MACPH,MAAAA,MAAMiB,UAAQ,IAAA;AAAAH,WAAA,MAAAC,UAAAZ,MAPWF,OAAO,EAAEiB,aAAa,CAAA;AAAAf,WAAAA;AAAAA,EAAAA,GAAA;AAUtD;AAACgB,eAAA,CAAA,WAAA,CAAA;"}
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;"}
@@ -0,0 +1,10 @@
1
+ interface InputProps {
2
+ label?: string;
3
+ type?: 'text' | 'number' | 'password' | 'email';
4
+ value?: string;
5
+ placeholder?: string;
6
+ onChange?: (value: string) => void;
7
+ description?: string;
8
+ }
9
+ export declare function Input(props: InputProps): import("solid-js").JSX.Element;
10
+ export {};
@@ -0,0 +1,57 @@
1
+ import { template, insert, memo, effect, className, setAttribute, delegateEvents } from "solid-js/web";
2
+ import { createSignal } from "solid-js";
3
+ import { useStyles } from "../styles/use-styles.js";
4
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div><input>`), _tmpl$2 = /* @__PURE__ */ template(`<label>`), _tmpl$3 = /* @__PURE__ */ template(`<p>`);
5
+ function Input(props) {
6
+ const styles = useStyles();
7
+ const [val, setVal] = createSignal(props.value || "");
8
+ const handleChange = (e) => {
9
+ const value = e.target.value;
10
+ setVal((prev) => prev !== value ? value : prev);
11
+ props.onChange?.(value);
12
+ };
13
+ return (() => {
14
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
15
+ insert(_el$2, (() => {
16
+ var _c$ = memo(() => !!props.label);
17
+ return () => _c$() && (() => {
18
+ var _el$4 = _tmpl$2();
19
+ insert(_el$4, () => props.label);
20
+ effect(() => className(_el$4, styles().inputLabel));
21
+ return _el$4;
22
+ })();
23
+ })(), _el$3);
24
+ insert(_el$2, (() => {
25
+ var _c$2 = memo(() => !!props.description);
26
+ return () => _c$2() && (() => {
27
+ var _el$5 = _tmpl$3();
28
+ insert(_el$5, () => props.description);
29
+ effect(() => className(_el$5, styles().inputDescription));
30
+ return _el$5;
31
+ })();
32
+ })(), _el$3);
33
+ _el$3.$$input = handleChange;
34
+ effect((_p$) => {
35
+ var _v$ = styles().inputContainer, _v$2 = styles().inputWrapper, _v$3 = props.type || "text", _v$4 = styles().input, _v$5 = props.placeholder;
36
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
37
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
38
+ _v$3 !== _p$.a && setAttribute(_el$3, "type", _p$.a = _v$3);
39
+ _v$4 !== _p$.o && className(_el$3, _p$.o = _v$4);
40
+ _v$5 !== _p$.i && setAttribute(_el$3, "placeholder", _p$.i = _v$5);
41
+ return _p$;
42
+ }, {
43
+ e: void 0,
44
+ t: void 0,
45
+ a: void 0,
46
+ o: void 0,
47
+ i: void 0
48
+ });
49
+ effect(() => _el$3.value = val());
50
+ return _el$;
51
+ })();
52
+ }
53
+ delegateEvents(["input"]);
54
+ export {
55
+ Input
56
+ };
57
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sources":["../../../src/components/input.tsx"],"sourcesContent":["import { createSignal } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\n\ninterface InputProps {\n label?: string\n type?: 'text' | 'number' | 'password' | 'email'\n value?: string\n placeholder?: string\n onChange?: (value: string) => void\n description?: string\n}\n\nexport function Input(props: InputProps) {\n const styles = useStyles()\n const [val, setVal] = createSignal(props.value || '')\n\n const handleChange = (e: Event) => {\n const value = (e.target as HTMLInputElement).value\n setVal((prev) => (prev !== value ? value : prev))\n props.onChange?.(value)\n }\n\n return (\n <div class={styles().inputContainer}>\n <div class={styles().inputWrapper}>\n {props.label && (\n <label class={styles().inputLabel}>{props.label}</label>\n )}\n {props.description && (\n <p class={styles().inputDescription}>{props.description}</p>\n )}\n <input\n type={props.type || 'text'}\n class={styles().input}\n value={val()}\n placeholder={props.placeholder}\n onInput={handleChange}\n />\n </div>\n </div>\n )\n}\n"],"names":["Input","props","styles","useStyles","val","setVal","createSignal","value","handleChange","e","target","prev","onChange","_el$","_tmpl$","_el$2","firstChild","_el$3","_$insert","_c$","_$memo","label","_el$4","_tmpl$2","_$effect","_$className","inputLabel","_c$2","description","_el$5","_tmpl$3","inputDescription","$$input","_p$","_v$","inputContainer","_v$2","inputWrapper","_v$3","type","_v$4","input","_v$5","placeholder","t","a","_$setAttribute","o","i","undefined","_$delegateEvents"],"mappings":";;;;AAYO,SAASA,MAAMC,OAAmB;AACvC,QAAMC,SAASC,UAAAA;AACf,QAAM,CAACC,KAAKC,MAAM,IAAIC,aAAaL,MAAMM,SAAS,EAAE;AAEpD,QAAMC,eAAeA,CAACC,MAAa;AACjC,UAAMF,QAASE,EAAEC,OAA4BH;AAC7CF,WAAQM,CAAAA,SAAUA,SAASJ,QAAQA,QAAQI,IAAK;AAChDV,UAAMW,WAAWL,KAAK;AAAA,EACxB;AAEA,UAAA,MAAA;AAAA,QAAAM,OAAAC,OAAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC;AAAAE,WAAAH,QAAA,MAAA;AAAA,UAAAI,MAAAC,KAAA,MAAA,CAAA,CAGOnB,MAAMoB,KAAK;AAAA,aAAA,MAAXF,IAAAA,MAAA,MAAA;AAAA,YAAAG,QAAAC,QAAAA;AAAAL,eAAAI,OAAA,MACqCrB,MAAMoB,KAAK;AAAAG,eAAA,MAAAC,UAAAH,OAAjCpB,OAAAA,EAASwB,UAAU,CAAA;AAAA,eAAAJ;AAAAA,MAAA,GAAA;AAAA,IAClC,GAAA,GAAAL,KAAA;AAAAC,WAAAH,QAAA,MAAA;AAAA,UAAAY,OAAAP,KAAA,MAAA,CAAA,CACAnB,MAAM2B,WAAW;AAAA,aAAA,MAAjBD,KAAAA,MAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA;AAAAZ,eAAAW,OAAA,MACuC5B,MAAM2B,WAAW;AAAAJ,eAAA,MAAAC,UAAAI,OAA7C3B,OAAAA,EAAS6B,gBAAgB,CAAA;AAAA,eAAAF;AAAAA,MAAA,GAAA;AAAA,IACpC,GAAA,GAAAZ,KAAA;AAAAA,UAAAe,UAMUxB;AAAYgB,WAAAS,CAAAA,QAAA;AAAA,UAAAC,MAbfhC,SAASiC,gBAAcC,OACrBlC,SAASmC,cAAYC,OAQvBrC,MAAMsC,QAAQ,QAAMC,OACnBtC,SAASuC,OAAKC,OAERzC,MAAM0C;AAAWT,cAAAD,IAAAxB,KAAAgB,UAAAZ,MAAAoB,IAAAxB,IAAAyB,GAAA;AAAAE,eAAAH,IAAAW,KAAAnB,UAAAV,OAAAkB,IAAAW,IAAAR,IAAA;AAAAE,eAAAL,IAAAY,KAAAC,aAAA7B,OAAA,QAAAgB,IAAAY,IAAAP,IAAA;AAAAE,eAAAP,IAAAc,KAAAtB,UAAAR,OAAAgB,IAAAc,IAAAP,IAAA;AAAAE,eAAAT,IAAAe,KAAAF,aAAA7B,OAAA,eAAAgB,IAAAe,IAAAN,IAAA;AAAA,aAAAT;AAAAA,IAAA,GAAA;AAAA,MAAAxB,GAAAwC;AAAAA,MAAAL,GAAAK;AAAAA,MAAAJ,GAAAI;AAAAA,MAAAF,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA;AAAAzB,iBAAAP,MAAAV,QADvBH,IAAAA,CAAK;AAAA,WAAAS;AAAAA,EAAA,GAAA;AAOtB;AAACqC,eAAA,CAAA,OAAA,CAAA;"}