@tanstack/hotkeys-devtools 0.0.1 → 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.
- package/LICENSE +21 -0
- package/README.md +121 -45
- package/dist/HotkeysContextProvider.js +47 -0
- package/dist/HotkeysContextProvider.js.map +1 -0
- package/dist/HotkeysDevtools.js +14 -0
- package/dist/HotkeysDevtools.js.map +1 -0
- package/dist/components/ActionButtons.js +33 -0
- package/dist/components/ActionButtons.js.map +1 -0
- package/dist/components/DetailsPanel.js +268 -0
- package/dist/components/DetailsPanel.js.map +1 -0
- package/dist/components/HeldKeysTopbar.js +75 -0
- package/dist/components/HeldKeysTopbar.js.map +1 -0
- package/dist/components/HotkeyList.js +188 -0
- package/dist/components/HotkeyList.js.map +1 -0
- package/dist/components/Shell.js +98 -0
- package/dist/components/Shell.js.map +1 -0
- package/dist/core.d.ts +24 -0
- package/dist/core.js +9 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/production.d.ts +2 -0
- package/dist/production.js +5 -0
- package/dist/styles/tokens.js +301 -0
- package/dist/styles/tokens.js.map +1 -0
- package/dist/styles/use-styles.js +496 -0
- package/dist/styles/use-styles.js.map +1 -0
- package/package.json +59 -7
- package/src/HotkeysContextProvider.tsx +67 -0
- package/src/HotkeysDevtools.tsx +10 -0
- package/src/components/ActionButtons.tsx +25 -0
- package/src/components/DetailsPanel.tsx +298 -0
- package/src/components/HeldKeysTopbar.tsx +42 -0
- package/src/components/HotkeyList.tsx +248 -0
- package/src/components/Shell.tsx +101 -0
- package/src/core.tsx +11 -0
- package/src/index.ts +10 -0
- package/src/production.ts +5 -0
- package/src/styles/tokens.ts +305 -0
- package/src/styles/use-styles.ts +493 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailsPanel.js","names":["For","Show","createMemo","formatForDisplay","useStyles","useHotkeysDevtoolsState","ActionButtons","ConflictBehavior","HotkeyRegistration","DetailsPanelProps","selectedRegistration","getTargetDescription","target","HTMLElement","Document","Window","document","window","tag","tagName","toLowerCase","id","cls","className","split","join","findTargetConflicts","registration","all","Array","filter","other","hotkey","options","eventType","findScopeConflicts","getConflictItemStyle","behavior","isSameTarget","getConflictLabel","DetailsPanel","props","styles","state","_el$","_tmpl$","_$insert","_$createComponent","when","fallback","_el$2","_tmpl$2","_$effect","_$className","noSelection","children","reg","parsed","parsedHotkey","targetConflicts","registrations","scopeConflicts","allConflicts","conflictBehavior","keyParts","parts","p","ctrl","push","shift","alt","meta","key","_el$3","_tmpl$3","_el$4","firstChild","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","_v$9","e","t","a","o","i","n","s","h","r","undefined","_el$10","_tmpl$5","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","_el$41","_el$42","each","part","_el$49","_tmpl$6","keyBreakdownPlus","_el$50","_tmpl$7","keyCapLarge","String","enabled","preventDefault","stopPropagation","ignoreInputs","requireReset","hasFired","length","_el$43","_tmpl$4","_el$44","_el$45","_el$47","_el$46","_el$48","conflict","itemStyle","label","_el$51","_tmpl$8","_el$52","_el$53","_el$59","_el$54","_el$60","_el$56","_el$61","_el$57","_el$62","_tmpl$9","_el$63","_el$64","_el$70","_el$65","_el$71","_el$67","_el$72","_el$68","conflictItemScope","_v$0","detailSection","_v$1","detailSectionHeader","_v$10","conflictList","_v$11","detailsGrid","_v$12","_v$13","_v$14","keyBreakdown","_v$15","_v$16","_v$17","_v$18","_v$19","optionRow","_v$20","optionLabel","_v$21","optionValueTrue","optionValueFalse","_v$22","_v$23","_v$24","optionValue","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","_v$37","_v$38","_v$39","_v$40","_v$41","_v$42","d","l","u","c","w","m","f","y","g","b","T","A","O","I","S","W","C","B","v","k","x","j","stateDetails"],"sources":["../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { For, Show, createMemo } from 'solid-js'\nimport { formatForDisplay } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport { ActionButtons } from './ActionButtons'\nimport type { ConflictBehavior, HotkeyRegistration } from '@tanstack/hotkeys'\n\ntype DetailsPanelProps = {\n selectedRegistration: () => HotkeyRegistration | null\n}\n\nfunction getTargetDescription(target: HTMLElement | Document | Window): string {\n if (typeof document !== 'undefined' && target === document) {\n return 'document'\n }\n if (typeof window !== 'undefined' && target === window) {\n return 'window'\n }\n if (target instanceof HTMLElement) {\n const tag = target.tagName.toLowerCase()\n const id = target.id ? `#${target.id}` : ''\n const cls = target.className\n ? `.${target.className.split(' ').join('.')}`\n : ''\n return `${tag}${id}${cls}`\n }\n return 'element'\n}\n\nfunction findTargetConflicts(\n registration: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n): Array<HotkeyRegistration> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n other.hotkey === registration.hotkey &&\n other.options.eventType === registration.options.eventType &&\n other.target === registration.target,\n )\n}\n\nfunction findScopeConflicts(\n registration: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n): Array<HotkeyRegistration> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n other.hotkey === registration.hotkey &&\n other.options.eventType === registration.options.eventType &&\n other.target !== registration.target,\n )\n}\n\nfunction getConflictItemStyle(\n behavior: ConflictBehavior,\n isSameTarget: boolean,\n):\n | 'conflictItem'\n | 'conflictItemAllow'\n | 'conflictItemError'\n | 'conflictItemScope' {\n if (!isSameTarget) return 'conflictItemScope'\n if (behavior === 'allow') return 'conflictItemAllow'\n if (behavior === 'error') return 'conflictItemError'\n return 'conflictItem'\n}\n\nfunction getConflictLabel(\n behavior: ConflictBehavior,\n isSameTarget: boolean,\n): string {\n if (!isSameTarget) return 'scope'\n if (behavior === 'allow') return 'allowed'\n if (behavior === 'error') return 'error'\n if (behavior === 'replace') return 'replaced'\n return 'warning'\n}\n\nexport function DetailsPanel(props: DetailsPanelProps) {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n\n return (\n <div class={styles().stateDetails}>\n <Show\n when={props.selectedRegistration()}\n fallback={\n <div class={styles().noSelection}>\n Select a hotkey from the list to view its details\n </div>\n }\n >\n {(reg) => {\n const parsed = () => reg().parsedHotkey\n const targetConflicts = createMemo(() =>\n findTargetConflicts(reg(), state.registrations()),\n )\n const scopeConflicts = createMemo(() =>\n findScopeConflicts(reg(), state.registrations()),\n )\n const allConflicts = createMemo(() => [\n ...targetConflicts(),\n ...scopeConflicts(),\n ])\n const conflictBehavior = (): ConflictBehavior =>\n reg().options.conflictBehavior ?? 'warn'\n\n // Build key parts for visual breakdown\n const keyParts = createMemo(() => {\n const parts: Array<string> = []\n const p = parsed()\n if (p.ctrl) parts.push('Ctrl')\n if (p.shift) parts.push('Shift')\n if (p.alt) parts.push('Alt')\n if (p.meta) parts.push('Meta')\n parts.push(p.key)\n return parts\n })\n\n return (\n <>\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>\n {formatForDisplay(reg().hotkey)}\n </div>\n <div class={styles().infoGrid}>\n <div class={styles().infoLabel}>ID</div>\n <div class={styles().infoValueMono}>{reg().id}</div>\n <div class={styles().infoLabel}>Raw</div>\n <div class={styles().infoValueMono}>{reg().hotkey}</div>\n <div class={styles().infoLabel}>Target</div>\n <div class={styles().infoValueMono}>\n {getTargetDescription(reg().target)}\n </div>\n </div>\n </div>\n\n <div class={styles().detailsGrid}>\n {/* Key Breakdown */}\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Key Breakdown</div>\n <div class={styles().keyBreakdown}>\n <For each={keyParts()}>\n {(part, i) => (\n <>\n <Show when={i() > 0}>\n <span class={styles().keyBreakdownPlus}>+</span>\n </Show>\n <span class={styles().keyCapLarge}>{part}</span>\n </>\n )}\n </For>\n </div>\n </div>\n\n {/* Actions */}\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons registration={reg()} />\n </div>\n\n {/* Options */}\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Options</div>\n <div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>enabled</span>\n <span\n class={\n reg().options.enabled !== false\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(reg().options.enabled !== false)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>eventType</span>\n <span class={styles().optionValue}>\n {reg().options.eventType ?? 'keydown'}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>preventDefault</span>\n <span\n class={\n reg().options.preventDefault\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(!!reg().options.preventDefault)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>stopPropagation</span>\n <span\n class={\n reg().options.stopPropagation\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(!!reg().options.stopPropagation)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>ignoreInputs</span>\n <span\n class={\n reg().options.ignoreInputs !== false\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(reg().options.ignoreInputs !== false)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>requireReset</span>\n <span\n class={\n reg().options.requireReset\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(!!reg().options.requireReset)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>conflictBehavior</span>\n <span class={styles().optionValue}>\n {conflictBehavior()}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>hasFired</span>\n <span\n class={\n reg().hasFired\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(reg().hasFired)}\n </span>\n </div>\n </div>\n </div>\n\n {/* Conflicts */}\n <Show when={allConflicts().length > 0}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>\n Conflicts ({allConflicts().length})\n </div>\n <div class={styles().conflictList}>\n <For each={targetConflicts()}>\n {(conflict) => {\n const itemStyle = () =>\n getConflictItemStyle(conflictBehavior(), true)\n const label = () =>\n getConflictLabel(conflictBehavior(), true)\n return (\n <div class={styles()[itemStyle()]}>\n <span>{label()}</span> {conflict.id}:{' '}\n {formatForDisplay(conflict.hotkey)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {getTargetDescription(conflict.target)}\n </div>\n )\n }}\n </For>\n <For each={scopeConflicts()}>\n {(conflict) => (\n <div class={styles().conflictItemScope}>\n <span>scope</span> {conflict.id}:{' '}\n {formatForDisplay(conflict.hotkey)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {getTargetDescription(conflict.target)}\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </>\n )\n }}\n </Show>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { useHotkeysDevtoolsState } from "../HotkeysContextProvider.js";
|
|
2
|
+
import { useStyles } from "../styles/use-styles.js";
|
|
3
|
+
import { For, Show } from "solid-js";
|
|
4
|
+
import { className, createComponent, effect, insert, memo, template } from "solid-js/web";
|
|
5
|
+
import { formatKeyForDebuggingDisplay } from "@tanstack/hotkeys";
|
|
6
|
+
|
|
7
|
+
//#region src/components/HeldKeysTopbar.tsx
|
|
8
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div><span>Held</span><div>`), _tmpl$2 = /* @__PURE__ */ template(`<span>--`), _tmpl$3 = /* @__PURE__ */ template(`<span>`), _tmpl$4 = /* @__PURE__ */ template(`<span><span>`);
|
|
9
|
+
function HeldKeysBar() {
|
|
10
|
+
const styles = useStyles();
|
|
11
|
+
const state = useHotkeysDevtoolsState();
|
|
12
|
+
return (() => {
|
|
13
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
14
|
+
insert(_el$3, createComponent(Show, {
|
|
15
|
+
get when() {
|
|
16
|
+
return state.heldKeys().length > 0;
|
|
17
|
+
},
|
|
18
|
+
get fallback() {
|
|
19
|
+
return (() => {
|
|
20
|
+
var _el$4 = _tmpl$2();
|
|
21
|
+
effect(() => className(_el$4, styles().noKeysHeld));
|
|
22
|
+
return _el$4;
|
|
23
|
+
})();
|
|
24
|
+
},
|
|
25
|
+
get children() {
|
|
26
|
+
return createComponent(For, {
|
|
27
|
+
get each() {
|
|
28
|
+
return state.heldKeys();
|
|
29
|
+
},
|
|
30
|
+
children: (key) => {
|
|
31
|
+
const code = () => state.heldCodes()[key];
|
|
32
|
+
const label = () => formatKeyForDebuggingDisplay(key);
|
|
33
|
+
const codeLabel = () => {
|
|
34
|
+
const c = code();
|
|
35
|
+
return c ? formatKeyForDebuggingDisplay(c, { source: "code" }) : void 0;
|
|
36
|
+
};
|
|
37
|
+
return (() => {
|
|
38
|
+
var _el$5 = _tmpl$4(), _el$6 = _el$5.firstChild;
|
|
39
|
+
insert(_el$6, label);
|
|
40
|
+
insert(_el$5, createComponent(Show, {
|
|
41
|
+
get when() {
|
|
42
|
+
return memo(() => !!codeLabel())() && codeLabel() !== key;
|
|
43
|
+
},
|
|
44
|
+
get children() {
|
|
45
|
+
var _el$7 = _tmpl$3();
|
|
46
|
+
insert(_el$7, codeLabel);
|
|
47
|
+
effect(() => className(_el$7, styles().keyCapCode));
|
|
48
|
+
return _el$7;
|
|
49
|
+
}
|
|
50
|
+
}), null);
|
|
51
|
+
effect(() => className(_el$5, styles().keyCap));
|
|
52
|
+
return _el$5;
|
|
53
|
+
})();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
58
|
+
effect((_p$) => {
|
|
59
|
+
var _v$ = styles().heldKeysBar, _v$2 = styles().heldKeysBarHeader, _v$3 = styles().heldKeysBarList;
|
|
60
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
61
|
+
_v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
|
|
62
|
+
_v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
|
|
63
|
+
return _p$;
|
|
64
|
+
}, {
|
|
65
|
+
e: void 0,
|
|
66
|
+
t: void 0,
|
|
67
|
+
a: void 0
|
|
68
|
+
});
|
|
69
|
+
return _el$;
|
|
70
|
+
})();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { HeldKeysBar };
|
|
75
|
+
//# sourceMappingURL=HeldKeysTopbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeldKeysTopbar.js","names":["For","Show","formatKeyForDebuggingDisplay","useStyles","useHotkeysDevtoolsState","HeldKeysBar","styles","state","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$insert","_$createComponent","when","heldKeys","length","fallback","_el$4","_tmpl$2","_$effect","_$className","noKeysHeld","children","each","key","code","heldCodes","label","codeLabel","c","source","undefined","_el$5","_tmpl$4","_el$6","_$memo","_el$7","_tmpl$3","keyCapCode","keyCap","_p$","_v$","heldKeysBar","_v$2","heldKeysBarHeader","_v$3","heldKeysBarList","e","t","a"],"sources":["../../src/components/HeldKeysTopbar.tsx"],"sourcesContent":["import { For, Show } from 'solid-js'\nimport { formatKeyForDebuggingDisplay } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\n\nexport function HeldKeysBar() {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n\n return (\n <div class={styles().heldKeysBar}>\n <span class={styles().heldKeysBarHeader}>Held</span>\n <div class={styles().heldKeysBarList}>\n <Show\n when={state.heldKeys().length > 0}\n fallback={<span class={styles().noKeysHeld}>--</span>}\n >\n <For each={state.heldKeys()}>\n {(key) => {\n const code = () => state.heldCodes()[key]\n const label = () => formatKeyForDebuggingDisplay(key)\n const codeLabel = () => {\n const c = code()\n return c\n ? formatKeyForDebuggingDisplay(c, { source: 'code' })\n : undefined\n }\n return (\n <span class={styles().keyCap}>\n <span>{label()}</span>\n <Show when={codeLabel() && codeLabel() !== key}>\n <span class={styles().keyCapCode}>{codeLabel()}</span>\n </Show>\n </span>\n )\n }}\n </For>\n </Show>\n </div>\n </div>\n )\n}\n"],"mappings":";;;;;;;;AAKA,SAAgBK,cAAc;CAC5B,MAAMC,SAASH,WAAW;CAC1B,MAAMI,QAAQH,yBAAyB;AAEvC,eAAA;EAAA,IAAAI,OAAAC,QAAA,EAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAG;AAAAC,SAAAF,OAAAG,gBAIOd,MAAI;GAAA,IACHe,OAAI;AAAA,WAAET,MAAMU,UAAU,CAACC,SAAS;;GAAC,IACjCC,WAAQ;AAAA,kBAAA;KAAA,IAAAC,QAAAC,SAAA;AAAAC,kBAAAC,UAAAH,OAAed,QAAQ,CAACkB,WAAU,CAAA;AAAA,YAAAJ;QAAA;;GAAA,IAAAK,WAAA;AAAA,WAAAV,gBAEzCf,KAAG;KAAA,IAAC0B,OAAI;AAAA,aAAEnB,MAAMU,UAAU;;KAAAQ,WACvBE,QAAQ;MACR,MAAMC,aAAarB,MAAMsB,WAAW,CAACF;MACrC,MAAMG,cAAc5B,6BAA6ByB,IAAI;MACrD,MAAMI,kBAAkB;OACtB,MAAMC,IAAIJ,MAAM;AAChB,cAAOI,IACH9B,6BAA6B8B,GAAG,EAAEC,QAAQ,QAAQ,CAAC,GACnDC;;AAEN,oBAAA;OAAA,IAAAC,QAAAC,SAAA,EAAAC,QAAAF,MAAAxB;AAAAG,cAAAuB,OAEWP,MAAK;AAAAhB,cAAAqB,OAAApB,gBACXd,MAAI;QAAA,IAACe,OAAI;AAAA,gBAAEsB,WAAA,CAAA,CAAAP,WAAW,CAAA,EAAA,IAAIA,WAAW,KAAKJ;;QAAG,IAAAF,WAAA;SAAA,IAAAc,QAAAC,SAAA;AAAA1B,gBAAAyB,OACTR,UAAS;AAAAT,sBAAAC,UAAAgB,OAA/BjC,QAAQ,CAACmC,WAAU,CAAA;AAAA,gBAAAF;;QAAA,CAAA,EAAA,KAAA;AAAAjB,oBAAAC,UAAAY,OAHvB7B,QAAQ,CAACoC,OAAM,CAAA;AAAA,cAAAP;UAAA;;KAO/B,CAAA;;GAAA,CAAA,CAAA;AAAAb,UAAAqB,QAAA;GAAA,IAAAC,MAzBGtC,QAAQ,CAACuC,aAAWC,OACjBxC,QAAQ,CAACyC,mBAAiBC,OAC3B1C,QAAQ,CAAC2C;AAAeL,WAAAD,IAAAO,KAAA3B,UAAAf,MAAAmC,IAAAO,IAAAN,IAAA;AAAAE,YAAAH,IAAAQ,KAAA5B,UAAAb,OAAAiC,IAAAQ,IAAAL,KAAA;AAAAE,YAAAL,IAAAS,KAAA7B,UAAAX,OAAA+B,IAAAS,IAAAJ,KAAA;AAAA,UAAAL;KAAA;GAAAO,GAAAhB;GAAAiB,GAAAjB;GAAAkB,GAAAlB;GAAA,CAAA;AAAA,SAAA1B;KAAA"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { useHotkeysDevtoolsState } from "../HotkeysContextProvider.js";
|
|
2
|
+
import { useStyles } from "../styles/use-styles.js";
|
|
3
|
+
import { For, Show, createEffect, createMemo, createSignal, on } from "solid-js";
|
|
4
|
+
import { className, createComponent, delegateEvents, effect, insert, memo, template } from "solid-js/web";
|
|
5
|
+
import { formatForDisplay } from "@tanstack/hotkeys";
|
|
6
|
+
import clsx from "clsx";
|
|
7
|
+
|
|
8
|
+
//#region src/components/HotkeyList.tsx
|
|
9
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>Hotkeys (<!>)`), _tmpl$2 = /* @__PURE__ */ template(`<div>`), _tmpl$3 = /* @__PURE__ */ template(`<span>x`), _tmpl$4 = /* @__PURE__ */ template(`<div><span></span><div><span><span data-tooltip></span></span><span><span data-tooltip>Fires on <!> event</span></span><span><span data-tooltip>`), _tmpl$5 = /* @__PURE__ */ template(`<span><span data-tooltip>`), _tmpl$6 = /* @__PURE__ */ template(`<span>i<span data-tooltip>`);
|
|
10
|
+
function getTargetLabel(target) {
|
|
11
|
+
if (typeof document !== "undefined" && target === document) return "document";
|
|
12
|
+
if (typeof window !== "undefined" && target === window) return "window";
|
|
13
|
+
if (target instanceof HTMLElement) return target.tagName.toLowerCase();
|
|
14
|
+
return "element";
|
|
15
|
+
}
|
|
16
|
+
function getTargetTooltip(target) {
|
|
17
|
+
if (typeof document !== "undefined" && target === document) return "Listening on document";
|
|
18
|
+
if (typeof window !== "undefined" && target === window) return "Listening on window";
|
|
19
|
+
if (target instanceof HTMLElement) {
|
|
20
|
+
const parts = [target.tagName.toLowerCase()];
|
|
21
|
+
if (target.id) parts.push(`id="${target.id}"`);
|
|
22
|
+
if (target.className) {
|
|
23
|
+
const classes = target.className.split(/\s+/).filter(Boolean).join(", ");
|
|
24
|
+
parts.push(`class="${classes}"`);
|
|
25
|
+
}
|
|
26
|
+
const dataAttrs = Array.from(target.attributes).filter((attr) => attr.name.startsWith("data-")).map((attr) => `${attr.name}="${attr.value}"`);
|
|
27
|
+
if (dataAttrs.length > 0) parts.push(...dataAttrs);
|
|
28
|
+
return `Listening on ${parts.join(" ")}`;
|
|
29
|
+
}
|
|
30
|
+
return "Listening on element";
|
|
31
|
+
}
|
|
32
|
+
function findTargetConflicts(registration, all) {
|
|
33
|
+
return all.filter((other) => other.id !== registration.id && other.hotkey === registration.hotkey && other.options.eventType === registration.options.eventType && other.target === registration.target);
|
|
34
|
+
}
|
|
35
|
+
function findScopeConflicts(registration, all) {
|
|
36
|
+
return all.filter((other) => other.id !== registration.id && other.hotkey === registration.hotkey && other.options.eventType === registration.options.eventType && other.target !== registration.target);
|
|
37
|
+
}
|
|
38
|
+
function HotkeyList(props) {
|
|
39
|
+
const styles = useStyles();
|
|
40
|
+
const state = useHotkeysDevtoolsState();
|
|
41
|
+
const registrations = createMemo(() => state.registrations());
|
|
42
|
+
return [(() => {
|
|
43
|
+
var _el$ = _tmpl$(), _el$4 = _el$.firstChild.nextSibling;
|
|
44
|
+
_el$4.nextSibling;
|
|
45
|
+
insert(_el$, () => registrations().length, _el$4);
|
|
46
|
+
effect(() => className(_el$, styles().panelHeader));
|
|
47
|
+
return _el$;
|
|
48
|
+
})(), (() => {
|
|
49
|
+
var _el$5 = _tmpl$2();
|
|
50
|
+
insert(_el$5, createComponent(For, {
|
|
51
|
+
get each() {
|
|
52
|
+
return registrations();
|
|
53
|
+
},
|
|
54
|
+
children: (reg) => {
|
|
55
|
+
const targetConflicts = () => findTargetConflicts(reg, registrations());
|
|
56
|
+
const scopeConflicts = () => findScopeConflicts(reg, registrations());
|
|
57
|
+
const hasTargetConflict = () => targetConflicts().length > 0;
|
|
58
|
+
const hasScopeConflict = () => scopeConflicts().length > 0;
|
|
59
|
+
const conflictBehavior = () => reg.options.conflictBehavior ?? "warn";
|
|
60
|
+
const targetConflictBadge = () => {
|
|
61
|
+
const behavior = conflictBehavior();
|
|
62
|
+
const c = targetConflicts();
|
|
63
|
+
if (behavior === "allow") return {
|
|
64
|
+
style: "badgeAllow",
|
|
65
|
+
label: "~",
|
|
66
|
+
tooltip: `Allowed: ${c.length} other binding${c.length > 1 ? "s" : ""} on same key and target (conflictBehavior: allow)`
|
|
67
|
+
};
|
|
68
|
+
if (behavior === "error") return {
|
|
69
|
+
style: "badgeError",
|
|
70
|
+
label: "!",
|
|
71
|
+
tooltip: `Error: ${c.length} conflicting binding${c.length > 1 ? "s" : ""} on same key and target (conflictBehavior: error)`
|
|
72
|
+
};
|
|
73
|
+
return {
|
|
74
|
+
style: "badgeConflict",
|
|
75
|
+
label: "!",
|
|
76
|
+
tooltip: `Warning: ${c.length} other binding${c.length > 1 ? "s" : ""} on same key and target`
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
const scopeConflictTooltip = () => {
|
|
80
|
+
const c = scopeConflicts();
|
|
81
|
+
return `Info: ${c.length} binding${c.length > 1 ? "s" : ""} with same key on different target${c.length > 1 ? "s" : ""}`;
|
|
82
|
+
};
|
|
83
|
+
const enabled = () => reg.options.enabled !== false;
|
|
84
|
+
const triggerCount = () => registrations().find((r) => r.id === reg.id)?.triggerCount ?? reg.triggerCount;
|
|
85
|
+
const [prevCount, setPrevCount] = createSignal(reg.triggerCount);
|
|
86
|
+
const [pulsing, setPulsing] = createSignal(false);
|
|
87
|
+
createEffect(on(triggerCount, (current) => {
|
|
88
|
+
if (current > prevCount()) {
|
|
89
|
+
setPulsing(true);
|
|
90
|
+
setTimeout(() => setPulsing(false), 600);
|
|
91
|
+
}
|
|
92
|
+
setPrevCount(current);
|
|
93
|
+
}));
|
|
94
|
+
return (() => {
|
|
95
|
+
var _el$6 = _tmpl$4(), _el$7 = _el$6.firstChild, _el$0 = _el$7.nextSibling, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$1.nextSibling, _el$12 = _el$11.firstChild, _el$15 = _el$12.firstChild.nextSibling;
|
|
96
|
+
_el$15.nextSibling;
|
|
97
|
+
var _el$16 = _el$11.nextSibling, _el$17 = _el$16.firstChild;
|
|
98
|
+
_el$6.$$click = () => props.setSelectedId(reg.id);
|
|
99
|
+
insert(_el$7, () => formatForDisplay(reg.hotkey));
|
|
100
|
+
insert(_el$6, createComponent(Show, {
|
|
101
|
+
get when() {
|
|
102
|
+
return triggerCount() > 0;
|
|
103
|
+
},
|
|
104
|
+
get children() {
|
|
105
|
+
var _el$8 = _tmpl$3();
|
|
106
|
+
_el$8.firstChild;
|
|
107
|
+
insert(_el$8, triggerCount, null);
|
|
108
|
+
effect(() => className(_el$8, styles().triggerCount));
|
|
109
|
+
return _el$8;
|
|
110
|
+
}
|
|
111
|
+
}), _el$0);
|
|
112
|
+
insert(_el$0, (() => {
|
|
113
|
+
var _c$ = memo(() => !!hasTargetConflict());
|
|
114
|
+
return () => _c$() && (() => {
|
|
115
|
+
var _el$18 = _tmpl$5(), _el$19 = _el$18.firstChild;
|
|
116
|
+
insert(_el$18, () => targetConflictBadge().label, _el$19);
|
|
117
|
+
insert(_el$19, () => targetConflictBadge().tooltip);
|
|
118
|
+
effect((_p$) => {
|
|
119
|
+
var _v$0 = clsx(styles().badge, styles()[targetConflictBadge().style], styles().tooltip), _v$1 = styles().tooltipText;
|
|
120
|
+
_v$0 !== _p$.e && className(_el$18, _p$.e = _v$0);
|
|
121
|
+
_v$1 !== _p$.t && className(_el$19, _p$.t = _v$1);
|
|
122
|
+
return _p$;
|
|
123
|
+
}, {
|
|
124
|
+
e: void 0,
|
|
125
|
+
t: void 0
|
|
126
|
+
});
|
|
127
|
+
return _el$18;
|
|
128
|
+
})();
|
|
129
|
+
})(), _el$1);
|
|
130
|
+
insert(_el$0, (() => {
|
|
131
|
+
var _c$2 = memo(() => !!hasScopeConflict());
|
|
132
|
+
return () => _c$2() && (() => {
|
|
133
|
+
var _el$20 = _tmpl$6(), _el$22 = _el$20.firstChild.nextSibling;
|
|
134
|
+
insert(_el$22, scopeConflictTooltip);
|
|
135
|
+
effect((_p$) => {
|
|
136
|
+
var _v$10 = clsx(styles().badge, styles().badgeInfo, styles().tooltip), _v$11 = styles().tooltipText;
|
|
137
|
+
_v$10 !== _p$.e && className(_el$20, _p$.e = _v$10);
|
|
138
|
+
_v$11 !== _p$.t && className(_el$22, _p$.t = _v$11);
|
|
139
|
+
return _p$;
|
|
140
|
+
}, {
|
|
141
|
+
e: void 0,
|
|
142
|
+
t: void 0
|
|
143
|
+
});
|
|
144
|
+
return _el$20;
|
|
145
|
+
})();
|
|
146
|
+
})(), _el$1);
|
|
147
|
+
insert(_el$1, () => enabled() ? "on" : "off", _el$10);
|
|
148
|
+
insert(_el$10, () => enabled() ? "Hotkey is enabled" : "Hotkey is disabled");
|
|
149
|
+
insert(_el$11, () => reg.options.eventType ?? "keydown", _el$12);
|
|
150
|
+
insert(_el$12, () => reg.options.eventType ?? "keydown", _el$15);
|
|
151
|
+
insert(_el$16, () => getTargetLabel(reg.target), _el$17);
|
|
152
|
+
insert(_el$17, () => getTargetTooltip(reg.target));
|
|
153
|
+
effect((_p$) => {
|
|
154
|
+
var _v$ = clsx(styles().hotkeyRow, props.selectedId() === reg.id && styles().hotkeyRowSelected, pulsing() && styles().hotkeyRowTriggered), _v$2 = styles().hotkeyLabel, _v$3 = styles().hotkeyBadges, _v$4 = clsx(styles().badge, enabled() ? styles().badgeEnabled : styles().badgeDisabled, styles().tooltip), _v$5 = styles().tooltipText, _v$6 = clsx(styles().badge, (reg.options.eventType ?? "keydown") === "keydown" ? styles().badgeKeydown : styles().badgeKeyup, styles().tooltip), _v$7 = styles().tooltipText, _v$8 = clsx(styles().badge, styles().badgeTarget, styles().tooltip), _v$9 = styles().tooltipText;
|
|
155
|
+
_v$ !== _p$.e && className(_el$6, _p$.e = _v$);
|
|
156
|
+
_v$2 !== _p$.t && className(_el$7, _p$.t = _v$2);
|
|
157
|
+
_v$3 !== _p$.a && className(_el$0, _p$.a = _v$3);
|
|
158
|
+
_v$4 !== _p$.o && className(_el$1, _p$.o = _v$4);
|
|
159
|
+
_v$5 !== _p$.i && className(_el$10, _p$.i = _v$5);
|
|
160
|
+
_v$6 !== _p$.n && className(_el$11, _p$.n = _v$6);
|
|
161
|
+
_v$7 !== _p$.s && className(_el$12, _p$.s = _v$7);
|
|
162
|
+
_v$8 !== _p$.h && className(_el$16, _p$.h = _v$8);
|
|
163
|
+
_v$9 !== _p$.r && className(_el$17, _p$.r = _v$9);
|
|
164
|
+
return _p$;
|
|
165
|
+
}, {
|
|
166
|
+
e: void 0,
|
|
167
|
+
t: void 0,
|
|
168
|
+
a: void 0,
|
|
169
|
+
o: void 0,
|
|
170
|
+
i: void 0,
|
|
171
|
+
n: void 0,
|
|
172
|
+
s: void 0,
|
|
173
|
+
h: void 0,
|
|
174
|
+
r: void 0
|
|
175
|
+
});
|
|
176
|
+
return _el$6;
|
|
177
|
+
})();
|
|
178
|
+
}
|
|
179
|
+
}));
|
|
180
|
+
effect(() => className(_el$5, styles().hotkeyList));
|
|
181
|
+
return _el$5;
|
|
182
|
+
})()];
|
|
183
|
+
}
|
|
184
|
+
delegateEvents(["click"]);
|
|
185
|
+
|
|
186
|
+
//#endregion
|
|
187
|
+
export { HotkeyList };
|
|
188
|
+
//# sourceMappingURL=HotkeyList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HotkeyList.js","names":["For","Show","createEffect","createMemo","createSignal","on","clsx","formatForDisplay","useStyles","useHotkeysDevtoolsState","ConflictBehavior","HotkeyRegistration","HotkeyListProps","selectedId","setSelectedId","id","getTargetLabel","target","HTMLElement","Document","Window","document","window","tagName","toLowerCase","getTargetTooltip","tag","parts","Array","push","className","classes","split","filter","Boolean","join","dataAttrs","from","attributes","attr","name","startsWith","map","value","length","findTargetConflicts","registration","all","other","hotkey","options","eventType","findScopeConflicts","HotkeyList","props","styles","state","registrations","_el$","_tmpl$","_el$2","firstChild","_el$4","nextSibling","_el$3","_$insert","_$effect","_$className","panelHeader","_el$5","_tmpl$2","_$createComponent","each","children","reg","targetConflicts","scopeConflicts","hasTargetConflict","hasScopeConflict","conflictBehavior","targetConflictBadge","behavior","c","style","const","label","tooltip","scopeConflictTooltip","enabled","triggerCount","find","r","prevCount","setPrevCount","pulsing","setPulsing","current","setTimeout","_el$6","_tmpl$4","_el$7","_el$0","_el$1","_el$10","_el$11","_el$12","_el$13","_el$15","_el$14","_el$16","_el$17","$$click","when","_el$8","_tmpl$3","_el$9","_c$","_$memo","_el$18","_tmpl$5","_el$19","_p$","_v$0","badge","_v$1","tooltipText","e","t","undefined","_c$2","_el$20","_tmpl$6","_el$21","_el$22","_v$10","badgeInfo","_v$11","_v$","hotkeyRow","hotkeyRowSelected","hotkeyRowTriggered","_v$2","hotkeyLabel","_v$3","hotkeyBadges","_v$4","badgeEnabled","badgeDisabled","_v$5","_v$6","badgeKeydown","badgeKeyup","_v$7","_v$8","badgeTarget","_v$9","a","o","i","n","s","h","hotkeyList","_$delegateEvents"],"sources":["../../src/components/HotkeyList.tsx"],"sourcesContent":["import { For, Show, createEffect, createMemo, createSignal, on } from 'solid-js'\nimport clsx from 'clsx'\nimport { formatForDisplay } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport type { ConflictBehavior, HotkeyRegistration } from '@tanstack/hotkeys'\n\ntype HotkeyListProps = {\n selectedId: () => string | null\n setSelectedId: (id: string | null) => void\n}\n\nfunction getTargetLabel(target: HTMLElement | Document | Window): string {\n if (typeof document !== 'undefined' && target === document) {\n return 'document'\n }\n if (typeof window !== 'undefined' && target === window) {\n return 'window'\n }\n if (target instanceof HTMLElement) {\n return target.tagName.toLowerCase()\n }\n return 'element'\n}\n\nfunction getTargetTooltip(target: HTMLElement | Document | Window): string {\n if (typeof document !== 'undefined' && target === document) {\n return 'Listening on document'\n }\n if (typeof window !== 'undefined' && target === window) {\n return 'Listening on window'\n }\n if (target instanceof HTMLElement) {\n const tag = target.tagName.toLowerCase()\n const parts: Array<string> = [tag]\n if (target.id) {\n parts.push(`id=\"${target.id}\"`)\n }\n if (target.className) {\n const classes = target.className.split(/\\s+/).filter(Boolean).join(', ')\n parts.push(`class=\"${classes}\"`)\n }\n // Collect data- attributes\n const dataAttrs = Array.from(target.attributes)\n .filter((attr) => attr.name.startsWith('data-'))\n .map((attr) => `${attr.name}=\"${attr.value}\"`)\n if (dataAttrs.length > 0) {\n parts.push(...dataAttrs)\n }\n return `Listening on ${parts.join(' ')}`\n }\n return 'Listening on element'\n}\n\nfunction findTargetConflicts(\n registration: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n): Array<HotkeyRegistration> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n other.hotkey === registration.hotkey &&\n other.options.eventType === registration.options.eventType &&\n other.target === registration.target,\n )\n}\n\nfunction findScopeConflicts(\n registration: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n): Array<HotkeyRegistration> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n other.hotkey === registration.hotkey &&\n other.options.eventType === registration.options.eventType &&\n other.target !== registration.target,\n )\n}\n\nexport function HotkeyList(props: HotkeyListProps) {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n\n const registrations = createMemo(() => state.registrations())\n\n return (\n <>\n <div class={styles().panelHeader}>Hotkeys ({registrations().length})</div>\n <div class={styles().hotkeyList}>\n <For each={registrations()}>\n {(reg) => {\n const targetConflicts = () =>\n findTargetConflicts(reg, registrations())\n const scopeConflicts = () =>\n findScopeConflicts(reg, registrations())\n\n const hasTargetConflict = () => targetConflicts().length > 0\n const hasScopeConflict = () => scopeConflicts().length > 0\n\n const conflictBehavior = (): ConflictBehavior =>\n reg.options.conflictBehavior ?? 'warn'\n\n const targetConflictBadge = () => {\n const behavior = conflictBehavior()\n const c = targetConflicts()\n if (behavior === 'allow') {\n return {\n style: 'badgeAllow' as const,\n label: '~',\n tooltip: `Allowed: ${c.length} other binding${c.length > 1 ? 's' : ''} on same key and target (conflictBehavior: allow)`,\n }\n }\n if (behavior === 'error') {\n return {\n style: 'badgeError' as const,\n label: '!',\n tooltip: `Error: ${c.length} conflicting binding${c.length > 1 ? 's' : ''} on same key and target (conflictBehavior: error)`,\n }\n }\n // 'warn' (default) or 'replace' (replacement already happened, but show warn-style if somehow present)\n return {\n style: 'badgeConflict' as const,\n label: '!',\n tooltip: `Warning: ${c.length} other binding${c.length > 1 ? 's' : ''} on same key and target`,\n }\n }\n\n const scopeConflictTooltip = () => {\n const c = scopeConflicts()\n return `Info: ${c.length} binding${c.length > 1 ? 's' : ''} with same key on different target${c.length > 1 ? 's' : ''}`\n }\n\n const enabled = () => reg.options.enabled !== false\n\n // Look up trigger count reactively from the registrations list\n // (reg is a stable object ref; the list re-derives on store change)\n const triggerCount = () =>\n registrations().find((r) => r.id === reg.id)?.triggerCount ??\n reg.triggerCount\n\n // Track trigger count changes for pulse animation\n const [prevCount, setPrevCount] = createSignal(reg.triggerCount)\n const [pulsing, setPulsing] = createSignal(false)\n\n createEffect(\n on(triggerCount, (current) => {\n if (current > prevCount()) {\n setPulsing(true)\n setTimeout(() => setPulsing(false), 600)\n }\n setPrevCount(current)\n }),\n )\n\n return (\n <div\n class={clsx(\n styles().hotkeyRow,\n props.selectedId() === reg.id && styles().hotkeyRowSelected,\n pulsing() && styles().hotkeyRowTriggered,\n )}\n onClick={() => props.setSelectedId(reg.id)}\n >\n <span class={styles().hotkeyLabel}>\n {formatForDisplay(reg.hotkey)}\n </span>\n <Show when={triggerCount() > 0}>\n <span class={styles().triggerCount}>x{triggerCount()}</span>\n </Show>\n <div class={styles().hotkeyBadges}>\n {hasTargetConflict() && (\n <span\n class={clsx(\n styles().badge,\n styles()[targetConflictBadge().style],\n styles().tooltip,\n )}\n >\n {targetConflictBadge().label}\n <span class={styles().tooltipText} data-tooltip>\n {targetConflictBadge().tooltip}\n </span>\n </span>\n )}\n {hasScopeConflict() && (\n <span\n class={clsx(\n styles().badge,\n styles().badgeInfo,\n styles().tooltip,\n )}\n >\n i\n <span class={styles().tooltipText} data-tooltip>\n {scopeConflictTooltip()}\n </span>\n </span>\n )}\n <span\n class={clsx(\n styles().badge,\n enabled()\n ? styles().badgeEnabled\n : styles().badgeDisabled,\n styles().tooltip,\n )}\n >\n {enabled() ? 'on' : 'off'}\n <span class={styles().tooltipText} data-tooltip>\n {enabled() ? 'Hotkey is enabled' : 'Hotkey is disabled'}\n </span>\n </span>\n <span\n class={clsx(\n styles().badge,\n (reg.options.eventType ?? 'keydown') === 'keydown'\n ? styles().badgeKeydown\n : styles().badgeKeyup,\n styles().tooltip,\n )}\n >\n {reg.options.eventType ?? 'keydown'}\n <span class={styles().tooltipText} data-tooltip>\n Fires on {reg.options.eventType ?? 'keydown'} event\n </span>\n </span>\n <span\n class={clsx(\n styles().badge,\n styles().badgeTarget,\n styles().tooltip,\n )}\n >\n {getTargetLabel(reg.target)}\n <span class={styles().tooltipText} data-tooltip>\n {getTargetTooltip(reg.target)}\n </span>\n </span>\n </div>\n </div>\n )\n }}\n </For>\n </div>\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { useHotkeysDevtoolsState } from "../HotkeysContextProvider.js";
|
|
2
|
+
import { useStyles } from "../styles/use-styles.js";
|
|
3
|
+
import { HeldKeysBar } from "./HeldKeysTopbar.js";
|
|
4
|
+
import { HotkeyList } from "./HotkeyList.js";
|
|
5
|
+
import { DetailsPanel } from "./DetailsPanel.js";
|
|
6
|
+
import { createMemo, createSignal, onCleanup, onMount } from "solid-js";
|
|
7
|
+
import { className, createComponent, delegateEvents, effect, insert, setStyleProperty, template } from "solid-js/web";
|
|
8
|
+
import { Header, HeaderLogo, MainPanel } from "@tanstack/devtools-ui";
|
|
9
|
+
|
|
10
|
+
//#region src/components/Shell.tsx
|
|
11
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div><div><div style=min-width:150px;max-width:800px></div><div></div><div style=flex:1><div>Details`);
|
|
12
|
+
function Shell() {
|
|
13
|
+
const styles = useStyles();
|
|
14
|
+
const state = useHotkeysDevtoolsState();
|
|
15
|
+
const [selectedId, setSelectedId] = createSignal(null);
|
|
16
|
+
const [leftPanelWidth, setLeftPanelWidth] = createSignal(300);
|
|
17
|
+
const [isDragging, setIsDragging] = createSignal(false);
|
|
18
|
+
const selectedRegistration = createMemo(() => {
|
|
19
|
+
const id = selectedId();
|
|
20
|
+
if (!id) return null;
|
|
21
|
+
return state.registrations().find((r) => r.id === id) ?? null;
|
|
22
|
+
});
|
|
23
|
+
let dragStartX = 0;
|
|
24
|
+
let dragStartWidth = 0;
|
|
25
|
+
const handleMouseDown = (e) => {
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
e.stopPropagation();
|
|
28
|
+
setIsDragging(true);
|
|
29
|
+
document.body.style.cursor = "col-resize";
|
|
30
|
+
document.body.style.userSelect = "none";
|
|
31
|
+
dragStartX = e.clientX;
|
|
32
|
+
dragStartWidth = leftPanelWidth();
|
|
33
|
+
};
|
|
34
|
+
const handleMouseMove = (e) => {
|
|
35
|
+
if (!isDragging()) return;
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
const deltaX = e.clientX - dragStartX;
|
|
38
|
+
setLeftPanelWidth(Math.max(150, Math.min(800, dragStartWidth + deltaX)));
|
|
39
|
+
};
|
|
40
|
+
const handleMouseUp = () => {
|
|
41
|
+
setIsDragging(false);
|
|
42
|
+
document.body.style.cursor = "";
|
|
43
|
+
document.body.style.userSelect = "";
|
|
44
|
+
};
|
|
45
|
+
onMount(() => {
|
|
46
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
47
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
48
|
+
});
|
|
49
|
+
onCleanup(() => {
|
|
50
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
51
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
52
|
+
});
|
|
53
|
+
return createComponent(MainPanel, { get children() {
|
|
54
|
+
return [createComponent(Header, { get children() {
|
|
55
|
+
return createComponent(HeaderLogo, {
|
|
56
|
+
flavor: {
|
|
57
|
+
light: "oklch(51.4% 0.222 16.935)",
|
|
58
|
+
dark: "oklch(58.6% 0.253 17.585)"
|
|
59
|
+
},
|
|
60
|
+
children: "TanStack Hotkeys"
|
|
61
|
+
});
|
|
62
|
+
} }), (() => {
|
|
63
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild;
|
|
64
|
+
insert(_el$, createComponent(HeldKeysBar, {}), _el$2);
|
|
65
|
+
insert(_el$3, createComponent(HotkeyList, {
|
|
66
|
+
selectedId,
|
|
67
|
+
setSelectedId
|
|
68
|
+
}));
|
|
69
|
+
_el$4.$$mousedown = handleMouseDown;
|
|
70
|
+
insert(_el$5, createComponent(DetailsPanel, { selectedRegistration }), null);
|
|
71
|
+
effect((_p$) => {
|
|
72
|
+
var _v$ = styles().mainContainer, _v$2 = styles().panelsContainer, _v$3 = styles().leftPanel, _v$4 = `${leftPanelWidth()}px`, _v$5 = `${styles().dragHandle} ${isDragging() ? "dragging" : ""}`, _v$6 = styles().rightPanel, _v$7 = styles().panelHeader;
|
|
73
|
+
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
74
|
+
_v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
|
|
75
|
+
_v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
|
|
76
|
+
_v$4 !== _p$.o && setStyleProperty(_el$3, "width", _p$.o = _v$4);
|
|
77
|
+
_v$5 !== _p$.i && className(_el$4, _p$.i = _v$5);
|
|
78
|
+
_v$6 !== _p$.n && className(_el$5, _p$.n = _v$6);
|
|
79
|
+
_v$7 !== _p$.s && className(_el$6, _p$.s = _v$7);
|
|
80
|
+
return _p$;
|
|
81
|
+
}, {
|
|
82
|
+
e: void 0,
|
|
83
|
+
t: void 0,
|
|
84
|
+
a: void 0,
|
|
85
|
+
o: void 0,
|
|
86
|
+
i: void 0,
|
|
87
|
+
n: void 0,
|
|
88
|
+
s: void 0
|
|
89
|
+
});
|
|
90
|
+
return _el$;
|
|
91
|
+
})()];
|
|
92
|
+
} });
|
|
93
|
+
}
|
|
94
|
+
delegateEvents(["mousedown"]);
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
export { Shell };
|
|
98
|
+
//# sourceMappingURL=Shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Shell.js","names":["createMemo","createSignal","onCleanup","onMount","Header","HeaderLogo","MainPanel","useStyles","useHotkeysDevtoolsState","HeldKeysBar","HotkeyList","DetailsPanel","Shell","styles","state","selectedId","setSelectedId","leftPanelWidth","setLeftPanelWidth","isDragging","setIsDragging","selectedRegistration","id","registrations","find","r","dragStartX","dragStartWidth","handleMouseDown","e","MouseEvent","preventDefault","stopPropagation","document","body","style","cursor","userSelect","clientX","handleMouseMove","deltaX","newWidth","Math","max","min","handleMouseUp","addEventListener","removeEventListener","_$createComponent","children","flavor","light","dark","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_el$6","_$insert","$$mousedown","_$effect","_p$","_v$","mainContainer","_v$2","panelsContainer","_v$3","leftPanel","_v$4","_v$5","dragHandle","_v$6","rightPanel","_v$7","panelHeader","_$className","t","a","o","_$setStyleProperty","i","n","s","undefined","_$delegateEvents"],"sources":["../../src/components/Shell.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, onMount } from 'solid-js'\nimport { Header, HeaderLogo, MainPanel } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport { HeldKeysBar } from './HeldKeysTopbar'\nimport { HotkeyList } from './HotkeyList'\nimport { DetailsPanel } from './DetailsPanel'\n\nexport function Shell() {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n const [selectedId, setSelectedId] = createSignal<string | null>(null)\n const [leftPanelWidth, setLeftPanelWidth] = createSignal(300)\n const [isDragging, setIsDragging] = createSignal(false)\n\n const selectedRegistration = createMemo(() => {\n const id = selectedId()\n if (!id) return null\n return state.registrations().find((r) => r.id === id) ?? null\n })\n\n let dragStartX = 0\n let dragStartWidth = 0\n\n const handleMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragging(true)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n dragStartX = e.clientX\n dragStartWidth = leftPanelWidth()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging()) return\n\n e.preventDefault()\n const deltaX = e.clientX - dragStartX\n const newWidth = Math.max(150, Math.min(800, dragStartWidth + deltaX))\n setLeftPanelWidth(newWidth)\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n\n onMount(() => {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n })\n\n onCleanup(() => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n })\n\n return (\n <MainPanel>\n <Header>\n <HeaderLogo\n flavor={{\n light: 'oklch(51.4% 0.222 16.935)',\n dark: 'oklch(58.6% 0.253 17.585)',\n }}\n >\n TanStack Hotkeys\n </HeaderLogo>\n </Header>\n\n <div class={styles().mainContainer}>\n <HeldKeysBar />\n\n <div class={styles().panelsContainer}>\n <div\n class={styles().leftPanel}\n style={{\n width: `${leftPanelWidth()}px`,\n 'min-width': '150px',\n 'max-width': '800px',\n }}\n >\n <HotkeyList selectedId={selectedId} setSelectedId={setSelectedId} />\n </div>\n\n <div\n class={`${styles().dragHandle} ${isDragging() ? 'dragging' : ''}`}\n onMouseDown={handleMouseDown}\n />\n\n <div class={styles().rightPanel} style={{ flex: 1 }}>\n <div class={styles().panelHeader}>Details</div>\n <DetailsPanel selectedRegistration={selectedRegistration} />\n </div>\n </div>\n </div>\n </MainPanel>\n )\n}\n"],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/core.d.ts
|
|
2
|
+
interface HotkeysDevtoolsInit {}
|
|
3
|
+
declare const HotkeysDevtoolsCore: new () => {
|
|
4
|
+
"__#private@#isMounted": boolean;
|
|
5
|
+
"__#private@#isMounting": boolean;
|
|
6
|
+
"__#private@#mountCb": (() => void) | null;
|
|
7
|
+
"__#private@#dispose"?: () => void;
|
|
8
|
+
"__#private@#Component": any;
|
|
9
|
+
"__#private@#ThemeProvider": any;
|
|
10
|
+
mount<T extends HTMLElement>(el: T, theme: "light" | "dark"): Promise<void>;
|
|
11
|
+
unmount(): void;
|
|
12
|
+
}, HotkeysDevtoolsCoreNoOp: new () => {
|
|
13
|
+
mount<T extends HTMLElement>(_el: T, _theme: "light" | "dark"): Promise<void>;
|
|
14
|
+
unmount(): void;
|
|
15
|
+
"__#private@#isMounted": boolean;
|
|
16
|
+
"__#private@#isMounting": boolean;
|
|
17
|
+
"__#private@#mountCb": (() => void) | null;
|
|
18
|
+
"__#private@#dispose"?: () => void;
|
|
19
|
+
"__#private@#Component": any;
|
|
20
|
+
"__#private@#ThemeProvider": any;
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { HotkeysDevtoolsCore, HotkeysDevtoolsInit };
|
|
24
|
+
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
2
|
+
import { lazy } from "solid-js";
|
|
3
|
+
|
|
4
|
+
//#region src/core.tsx
|
|
5
|
+
const [HotkeysDevtoolsCore, HotkeysDevtoolsCoreNoOp] = constructCoreClass(lazy(() => import("./HotkeysDevtools.js")));
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { HotkeysDevtoolsCore, HotkeysDevtoolsCoreNoOp };
|
|
9
|
+
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","names":["constructCoreClass","lazy","Component","HotkeysDevtoolsInit","HotkeysDevtoolsCore","HotkeysDevtoolsCoreNoOp"],"sources":["../src/core.tsx"],"sourcesContent":["import { constructCoreClass } from '@tanstack/devtools-utils/solid'\nimport { lazy } from 'solid-js'\n\nconst Component = lazy(() => import('./HotkeysDevtools'))\n\nexport interface HotkeysDevtoolsInit {}\n\nconst [HotkeysDevtoolsCore, HotkeysDevtoolsCoreNoOp] =\n constructCoreClass(Component)\n\nexport { HotkeysDevtoolsCore, HotkeysDevtoolsCoreNoOp }\n"],"mappings":";;;;AAOA,MAAM,CAACI,qBAAqBC,2BAC1BL,mBALgBC,WAAW,OAAO,wBAAqB,CAK1B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HotkeysDevtoolsInit } from "./core.js";
|
|
2
|
+
|
|
3
|
+
//#region src/index.d.ts
|
|
4
|
+
declare const HotkeysDevtoolsCore: new () => {
|
|
5
|
+
"__#private@#isMounted": boolean;
|
|
6
|
+
"__#private@#isMounting": boolean;
|
|
7
|
+
"__#private@#mountCb": (() => void) | null;
|
|
8
|
+
"__#private@#dispose"?: () => void;
|
|
9
|
+
"__#private@#Component": any;
|
|
10
|
+
"__#private@#ThemeProvider": any;
|
|
11
|
+
mount<T extends HTMLElement>(el: T, theme: "light" | "dark"): Promise<void>;
|
|
12
|
+
unmount(): void;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { HotkeysDevtoolsCore, type HotkeysDevtoolsInit };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { HotkeysDevtoolsCore as HotkeysDevtoolsCore$1, HotkeysDevtoolsCoreNoOp } from "./core.js";
|
|
4
|
+
|
|
5
|
+
//#region src/index.ts
|
|
6
|
+
const HotkeysDevtoolsCore = process.env.NODE_ENV !== "development" ? HotkeysDevtoolsCoreNoOp : HotkeysDevtoolsCore$1;
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { HotkeysDevtoolsCore };
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Devtools.HotkeysDevtoolsCoreNoOp","Devtools.HotkeysDevtoolsCore"],"sources":["../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\nexport const HotkeysDevtoolsCore =\n process.env.NODE_ENV !== 'development'\n ? Devtools.HotkeysDevtoolsCoreNoOp\n : Devtools.HotkeysDevtoolsCore\n\nexport type { HotkeysDevtoolsInit } from './core'\n"],"mappings":";;;;;AAIA,MAAa,sBACX,QAAQ,IAAI,aAAa,gBACrBA,0BACAC"}
|