@tanstack/hotkeys-devtools 0.9.0 → 1.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/README.md +15 -1
- package/dist/HotkeysContextProvider.js +1 -2
- package/dist/_registrations.js +47 -0
- package/dist/components/ActionButtons.js +2 -3
- package/dist/components/DetailsPanel.js +317 -325
- package/dist/components/HeldKeysTopbar.js +5 -3
- package/dist/components/HotkeyList.js +167 -196
- package/dist/components/Shell.js +5 -4
- package/dist/components/index.js +1 -2
- package/dist/core.d.ts +3 -6
- package/dist/core.js +1 -2
- package/dist/index.d.ts +2 -4
- package/dist/index.js +1 -2
- package/dist/sequence-progress.js +1 -2
- package/dist/styles/tokens.js +1 -2
- package/dist/styles/use-styles.js +5 -4
- package/package.json +11 -11
- package/dist/HotkeysContextProvider.js.map +0 -1
- package/dist/components/ActionButtons.js.map +0 -1
- package/dist/components/DetailsPanel.js.map +0 -1
- package/dist/components/HeldKeysTopbar.js.map +0 -1
- package/dist/components/HotkeyList.js.map +0 -1
- package/dist/components/Shell.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/core.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/sequence-progress.js.map +0 -1
- package/dist/styles/tokens.js.map +0 -1
- package/dist/styles/use-styles.js.map +0 -1
- package/src/HotkeysContextProvider.tsx +0 -130
- package/src/components/ActionButtons.tsx +0 -38
- package/src/components/DetailsPanel.tsx +0 -829
- package/src/components/HeldKeysTopbar.tsx +0 -46
- package/src/components/HotkeyList.tsx +0 -565
- package/src/components/Shell.tsx +0 -171
- package/src/components/index.tsx +0 -19
- package/src/core.tsx +0 -11
- package/src/index.ts +0 -11
- package/src/production.ts +0 -5
- package/src/sequence-progress.ts +0 -29
- package/src/styles/tokens.ts +0 -305
- package/src/styles/use-styles.ts +0 -687
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { HotkeysDevtoolsInit } from "./core.js";
|
|
2
2
|
import { ClassType } from "@tanstack/devtools-utils/solid";
|
|
3
|
-
|
|
4
3
|
//#region src/index.d.ts
|
|
5
|
-
declare const HotkeysDevtoolsCore: ClassType;
|
|
4
|
+
export declare const HotkeysDevtoolsCore: ClassType;
|
|
6
5
|
//#endregion
|
|
7
|
-
export {
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
6
|
+
export type { HotkeysDevtoolsInit };
|
package/dist/index.js
CHANGED
|
@@ -6,5 +6,4 @@ import { HotkeysDevtoolsCore as HotkeysDevtoolsCore$1, HotkeysDevtoolsCoreNoOp }
|
|
|
6
6
|
const HotkeysDevtoolsCore = process.env.NODE_ENV !== "development" ? HotkeysDevtoolsCoreNoOp : HotkeysDevtoolsCore$1;
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
9
|
-
export { HotkeysDevtoolsCore };
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
9
|
+
export { HotkeysDevtoolsCore };
|
|
@@ -16,5 +16,4 @@ function needsSequenceProgressClock(regs, now) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
|
-
export { effectiveSequenceMatchedSteps, needsSequenceProgressClock };
|
|
20
|
-
//# sourceMappingURL=sequence-progress.js.map
|
|
19
|
+
export { effectiveSequenceMatchedSteps, needsSequenceProgressClock };
|
package/dist/styles/tokens.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { tokens } from "./tokens.js";
|
|
2
|
-
import {
|
|
2
|
+
import { createTheme } from "@tanstack/devtools-ui";
|
|
3
3
|
import { createEffect, createSignal } from "solid-js";
|
|
4
4
|
import * as goober from "goober";
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ const stylesFactory = (theme) => {
|
|
|
10
10
|
const css = goober.css;
|
|
11
11
|
const t = (light, dark) => theme === "light" ? light : dark;
|
|
12
12
|
return {
|
|
13
|
+
/** Full-height flex child so MainPanel gets a bounded height from the portal */
|
|
13
14
|
shellRoot: css`
|
|
14
15
|
display: flex;
|
|
15
16
|
flex-direction: column;
|
|
@@ -18,6 +19,7 @@ const stylesFactory = (theme) => {
|
|
|
18
19
|
flex: 1;
|
|
19
20
|
overflow: hidden;
|
|
20
21
|
`,
|
|
22
|
+
/** Overrides devtools-ui MainPanel (overflow-y: auto) so inner columns scroll independently */
|
|
21
23
|
mainPanelShell: css`
|
|
22
24
|
display: flex;
|
|
23
25
|
flex-direction: column;
|
|
@@ -675,7 +677,7 @@ const stylesFactory = (theme) => {
|
|
|
675
677
|
};
|
|
676
678
|
};
|
|
677
679
|
function useStyles() {
|
|
678
|
-
const { theme } =
|
|
680
|
+
const { theme } = createTheme();
|
|
679
681
|
const [styles, setStyles] = createSignal(stylesFactory(theme()));
|
|
680
682
|
createEffect(() => {
|
|
681
683
|
setStyles(stylesFactory(theme()));
|
|
@@ -684,5 +686,4 @@ function useStyles() {
|
|
|
684
686
|
}
|
|
685
687
|
|
|
686
688
|
//#endregion
|
|
687
|
-
export { useStyles };
|
|
688
|
-
//# sourceMappingURL=use-styles.js.map
|
|
689
|
+
export { useStyles };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/hotkeys-devtools",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Devtools for TanStack Hotkeys",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,25 +30,24 @@
|
|
|
30
30
|
},
|
|
31
31
|
"sideEffects": false,
|
|
32
32
|
"engines": {
|
|
33
|
-
"node": ">=
|
|
33
|
+
"node": ">=20"
|
|
34
34
|
},
|
|
35
35
|
"files": [
|
|
36
|
-
"dist
|
|
37
|
-
"src"
|
|
36
|
+
"dist"
|
|
38
37
|
],
|
|
39
38
|
"peerDependencies": {
|
|
40
|
-
"@tanstack/hotkeys": "0.
|
|
39
|
+
"@tanstack/hotkeys": "0.10.0"
|
|
41
40
|
},
|
|
42
41
|
"dependencies": {
|
|
43
|
-
"@tanstack/devtools-ui": "^0.
|
|
44
|
-
"@tanstack/devtools-utils": "^0.
|
|
42
|
+
"@tanstack/devtools-ui": "^0.7.1",
|
|
43
|
+
"@tanstack/devtools-utils": "^0.7.0",
|
|
45
44
|
"clsx": "^2.1.1",
|
|
46
|
-
"goober": "^2.1.
|
|
45
|
+
"goober": "^2.1.19",
|
|
47
46
|
"match-sorter": "^8.3.0",
|
|
48
|
-
"solid-js": "^1.9.
|
|
47
|
+
"solid-js": "^1.9.15"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
|
-
"vite-plugin-solid": "^2.11.
|
|
50
|
+
"vite-plugin-solid": "^2.11.14"
|
|
52
51
|
},
|
|
53
52
|
"scripts": {
|
|
54
53
|
"clean": "premove ./build ./dist",
|
|
@@ -58,6 +57,7 @@
|
|
|
58
57
|
"test:lib": "vitest --passWithNoTests",
|
|
59
58
|
"test:lib:dev": "pnpm test:lib --watch",
|
|
60
59
|
"test:types": "tsc",
|
|
61
|
-
"build": "tsdown"
|
|
60
|
+
"build": "tsdown",
|
|
61
|
+
"test:build": "publint --strict && node ../../scripts/verify-package.ts"
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HotkeysContextProvider.js","names":["createContext","createEffect","createSignal","onCleanup","useContext","HotkeyManager","KeyStateTracker","SequenceManager","needsSequenceProgressClock","Accessor","HotkeyRegistration","SequenceRegistrationView","HotkeysDevtoolsContextType","registrations","Array","sequenceRegistrations","heldKeys","heldCodes","Record","sequenceProgressNow","HotkeysDevtoolsContext","Date","now","HotkeysContextProvider","props","children","manager","getInstance","sequenceManager","tracker","setRegistrations","from","state","values","setSequenceRegistrations","setHeldKeys","store","setHeldCodes","unsubscribe","subscribe","setSequenceProgressNow","regs","id","ReturnType","setInterval","tick","t","undefined","clearInterval","_$createComponent","Provider","value","useHotkeysDevtoolsState"],"sources":["../src/HotkeysContextProvider.tsx"],"sourcesContent":["import {\n createContext,\n createEffect,\n createSignal,\n onCleanup,\n useContext,\n} from 'solid-js'\nimport {\n HotkeyManager,\n KeyStateTracker,\n SequenceManager,\n} from '@tanstack/hotkeys'\nimport { needsSequenceProgressClock } from './sequence-progress'\nimport type { Accessor } from 'solid-js'\nimport type {\n HotkeyRegistration,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\n\ninterface HotkeysDevtoolsContextType {\n registrations: Accessor<Array<HotkeyRegistration>>\n sequenceRegistrations: Accessor<Array<SequenceRegistrationView>>\n heldKeys: Accessor<Array<string>>\n heldCodes: Accessor<Record<string, string>>\n /** Monotonic clock for sequence in-progress UI (updates while a sequence match is active). */\n sequenceProgressNow: Accessor<number>\n}\n\nconst HotkeysDevtoolsContext = createContext<HotkeysDevtoolsContextType>({\n registrations: () => [],\n sequenceRegistrations: () => [],\n heldKeys: () => [],\n heldCodes: () => ({}),\n sequenceProgressNow: () => Date.now(),\n})\n\nexport function HotkeysContextProvider(props: { children: any }) {\n const manager = HotkeyManager.getInstance()\n const sequenceManager = SequenceManager.getInstance()\n const tracker = KeyStateTracker.getInstance()\n\n // Create local signals that will be updated by subscriptions\n const [registrations, setRegistrations] = createSignal<\n Array<HotkeyRegistration>\n >(Array.from(manager.registrations.state.values()))\n const [sequenceRegistrations, setSequenceRegistrations] = createSignal<\n Array<SequenceRegistrationView>\n >(Array.from(sequenceManager.registrations.state.values()))\n const [heldKeys, setHeldKeys] = createSignal<Array<string>>(\n tracker.store.state.heldKeys,\n )\n const [heldCodes, setHeldCodes] = createSignal<Record<string, string>>(\n tracker.store.state.heldCodes,\n )\n\n // Subscribe to HotkeyManager registrations store\n createEffect(() => {\n const unsubscribe = manager.registrations.subscribe(() => {\n setRegistrations(Array.from(manager.registrations.state.values()))\n }).unsubscribe\n onCleanup(() => unsubscribe())\n })\n\n // Subscribe to SequenceManager registrations store\n createEffect(() => {\n const unsubscribe = sequenceManager.registrations.subscribe(() => {\n setSequenceRegistrations(\n Array.from(sequenceManager.registrations.state.values()),\n )\n }).unsubscribe\n onCleanup(() => unsubscribe())\n })\n\n // Subscribe to KeyStateTracker store\n createEffect(() => {\n const unsubscribe = tracker.store.subscribe(() => {\n setHeldKeys(tracker.store.state.heldKeys)\n setHeldCodes(tracker.store.state.heldCodes)\n }).unsubscribe\n onCleanup(() => unsubscribe())\n })\n\n const [sequenceProgressNow, setSequenceProgressNow] = createSignal(Date.now())\n\n createEffect(() => {\n const regs = sequenceRegistrations()\n let id: ReturnType<typeof setInterval> | undefined\n\n const tick = () => {\n const t = Date.now()\n setSequenceProgressNow(t)\n if (!needsSequenceProgressClock(sequenceRegistrations(), t)) {\n if (id !== undefined) {\n clearInterval(id)\n id = undefined\n }\n }\n }\n\n if (needsSequenceProgressClock(regs, Date.now())) {\n id = setInterval(tick, 50)\n } else {\n setSequenceProgressNow(Date.now())\n }\n\n onCleanup(() => {\n if (id !== undefined) {\n clearInterval(id)\n }\n })\n })\n\n return (\n <HotkeysDevtoolsContext.Provider\n value={{\n registrations,\n sequenceRegistrations,\n heldKeys,\n heldCodes,\n sequenceProgressNow,\n }}\n >\n {props.children}\n </HotkeysDevtoolsContext.Provider>\n )\n}\n\nexport function useHotkeysDevtoolsState() {\n return useContext(HotkeysDevtoolsContext)\n}\n"],"mappings":";;;;;;AA4BA,MAAMoB,yBAAyBpB,cAA0C;CACvEa,qBAAqB,EAAE;CACvBE,6BAA6B,EAAE;CAC/BC,gBAAgB,EAAE;CAClBC,kBAAkB,EAAE;CACpBE,2BAA2BE,KAAKC,KAAI;CACrC,CAAC;AAEF,SAAgBC,uBAAuBC,OAA0B;CAC/D,MAAME,UAAUrB,cAAcsB,aAAa;CAC3C,MAAMC,kBAAkBrB,gBAAgBoB,aAAa;CACrD,MAAME,UAAUvB,gBAAgBqB,aAAa;CAG7C,MAAM,CAACd,eAAeiB,oBAAoB5B,aAExCY,MAAMiB,KAAKL,QAAQb,cAAcmB,MAAMC,QAAQ,CAAC,CAAC;CACnD,MAAM,CAAClB,uBAAuBmB,4BAA4BhC,aAExDY,MAAMiB,KAAKH,gBAAgBf,cAAcmB,MAAMC,QAAQ,CAAC,CAAC;CAC3D,MAAM,CAACjB,UAAUmB,eAAejC,aAC9B2B,QAAQO,MAAMJ,MAAMhB,SACrB;CACD,MAAM,CAACC,WAAWoB,gBAAgBnC,aAChC2B,QAAQO,MAAMJ,MAAMf,UACrB;AAGDhB,oBAAmB;EACjB,MAAMqC,cAAcZ,QAAQb,cAAc0B,gBAAgB;AACxDT,oBAAiBhB,MAAMiB,KAAKL,QAAQb,cAAcmB,MAAMC,QAAQ,CAAC,CAAC;IAClE,CAACK;AACHnC,kBAAgBmC,aAAa,CAAC;GAC9B;AAGFrC,oBAAmB;EACjB,MAAMqC,cAAcV,gBAAgBf,cAAc0B,gBAAgB;AAChEL,4BACEpB,MAAMiB,KAAKH,gBAAgBf,cAAcmB,MAAMC,QAAQ,CACzD,CAAC;IACD,CAACK;AACHnC,kBAAgBmC,aAAa,CAAC;GAC9B;AAGFrC,oBAAmB;EACjB,MAAMqC,cAAcT,QAAQO,MAAMG,gBAAgB;AAChDJ,eAAYN,QAAQO,MAAMJ,MAAMhB,SAAS;AACzCqB,gBAAaR,QAAQO,MAAMJ,MAAMf,UAAU;IAC3C,CAACqB;AACHnC,kBAAgBmC,aAAa,CAAC;GAC9B;CAEF,MAAM,CAACnB,qBAAqBqB,0BAA0BtC,aAAamB,KAAKC,KAAK,CAAC;AAE9ErB,oBAAmB;EACjB,MAAMwC,OAAO1B,uBAAuB;EACpC,IAAI2B;EAEJ,MAAMG,aAAa;GACjB,MAAMC,IAAIzB,KAAKC,KAAK;AACpBkB,0BAAuBM,EAAE;AACzB,OAAI,CAACtC,2BAA2BO,uBAAuB,EAAE+B,EAAE,EACzD;QAAIJ,OAAOK,QAAW;AACpBC,mBAAcN,GAAG;AACjBA,UAAKK;;;;AAKX,MAAIvC,2BAA2BiC,MAAMpB,KAAKC,KAAK,CAAC,CAC9CoB,MAAKE,YAAYC,MAAM,GAAG;MAE1BL,wBAAuBnB,KAAKC,KAAK,CAAC;AAGpCnB,kBAAgB;AACd,OAAIuC,OAAOK,OACTC,eAAcN,GAAG;IAEnB;GACF;AAEF,QAAAO,gBACG7B,uBAAuB8B,UAAQ;EAC9BC,OAAO;GACLtC;GACAE;GACAC;GACAC;GACAE;GACD;EAAA,IAAAM,WAAA;AAAA,UAEAD,MAAMC;;EAAQ,CAAA;;AAKrB,SAAgB2B,0BAA0B;AACxC,QAAOhD,WAAWgB,uBAAuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActionButtons.js","names":["HotkeyManager","SequenceManager","useStyles","HotkeyRegistration","SequenceRegistrationView","ActionButtonsProps","registration","isSequenceRegistration","reg","Array","isArray","sequence","ActionButtons","props","styles","handleTrigger","getInstance","triggerSequence","id","triggerRegistration","_el$","_tmpl$","_el$2","firstChild","_el$3","$$mousedown","_$effect","_p$","_v$","actionsRow","_v$2","actionButton","_v$3","actionDotGreen","e","_$className","t","a","undefined","_$delegateEvents"],"sources":["../../src/components/ActionButtons.tsx"],"sourcesContent":["import { HotkeyManager, SequenceManager } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport type {\n HotkeyRegistration,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\n\ntype ActionButtonsProps = {\n registration: HotkeyRegistration | SequenceRegistrationView\n}\n\nfunction isSequenceRegistration(\n reg: HotkeyRegistration | SequenceRegistrationView,\n): reg is SequenceRegistrationView {\n return 'sequence' in reg && Array.isArray(reg.sequence)\n}\n\nexport function ActionButtons(props: ActionButtonsProps) {\n const styles = useStyles()\n\n const handleTrigger = () => {\n const reg = props.registration\n if (isSequenceRegistration(reg)) {\n SequenceManager.getInstance().triggerSequence(reg.id)\n } else {\n HotkeyManager.getInstance().triggerRegistration(reg.id)\n }\n }\n\n return (\n <div class={styles().actionsRow}>\n <button class={styles().actionButton} onMouseDown={handleTrigger}>\n <span class={styles().actionDotGreen} />\n Trigger\n </button>\n </div>\n )\n}\n"],"mappings":";;;;;;AAWA,SAASO,uBACPC,KACiC;AACjC,QAAO,cAAcA,OAAOC,MAAMC,QAAQF,IAAIG,SAAS;;AAGzD,SAAgBC,cAAcC,OAA2B;CACvD,MAAMC,SAASZ,WAAW;CAE1B,MAAMa,sBAAsB;EAC1B,MAAMP,MAAMK,MAAMP;AAClB,MAAIC,uBAAuBC,IAAI,CAC7BP,iBAAgBe,aAAa,CAACC,gBAAgBT,IAAIU,GAAG;MAErDlB,eAAcgB,aAAa,CAACG,oBAAoBX,IAAIU,GAAG;;AAI3D,eAAA;EAAA,IAAAE,OAAAC,QAAA,EAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC;AAAAD,QAAAG,cAEuDV;AAAaW,UAAAC,QAAA;GAAA,IAAAC,MADtDd,QAAQ,CAACe,YAAUC,OACdhB,QAAQ,CAACiB,cAAYC,OACrBlB,QAAQ,CAACmB;AAAcL,WAAAD,IAAAO,KAAAC,UAAAf,MAAAO,IAAAO,IAAAN,IAAA;AAAAE,YAAAH,IAAAS,KAAAD,UAAAb,OAAAK,IAAAS,IAAAN,KAAA;AAAAE,YAAAL,IAAAU,KAAAF,UAAAX,OAAAG,IAAAU,IAAAL,KAAA;AAAA,UAAAL;KAAA;GAAAO,GAAAI;GAAAF,GAAAE;GAAAD,GAAAC;GAAA,CAAA;AAAA,SAAAlB;KAAA;;AAK3CmB,eAAA,CAAA,YAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsPanel.js","names":["For","Show","createMemo","clsx","detectPlatform","formatForDisplay","formatHotkeySequence","normalizeHotkey","normalizeHotkeyFromParsed","parseHotkey","useStyles","useHotkeysDevtoolsState","effectiveSequenceMatchedSteps","ActionButtons","ConflictBehavior","FormatDisplayOptions","HotkeyRegistration","HotkeySequence","ParsedHotkey","RegisterableHotkey","SequenceRegistrationView","PLATFORM_ROWS","id","const","label","KeyBreakdownPlatformTable","props","getParsed","getCanonicalPlatform","styles","ReturnType","st","_el$","_tmpl$","_$insert","_$createComponent","each","children","row","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","platform","_$effect","_p$","_v$","platformBreakdownRow","_v$2","platformBreakdownLabel","_v$3","platformBreakdownPretty","e","_$className","t","a","undefined","platformBreakdown","sequenceKey","sequence","Array","join","isSequenceRegistration","reg","isArray","DetailsPanelProps","selectedRegistration","getTargetDescription","target","HTMLElement","Document","Window","document","window","tag","tagName","toLowerCase","cls","className","split","findTargetConflicts","registration","all","filter","other","hotkey","options","eventType","findScopeConflicts","findSequenceTargetConflicts","findSequenceScopeConflicts","getConflictItemStyle","behavior","isSameTarget","getConflictLabel","HotkeyDetails","state","r","b","same","parsed","parsedHotkey","targetConflicts","registrations","scopeConflicts","allConflicts","conflictBehavior","registrationPlatform","rawModParts","_el$5","_tmpl$3","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_el$10","_el$11","_v$4","stateHeader","_v$5","stateTitle","_v$6","infoGrid","_v$7","infoLabel","_v$8","infoValueMono","_v$9","_v$0","_v$1","_v$10","o","i","n","s","h","_el$12","_tmpl$5","_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","_el$43","_el$44","_el$45","_el$46","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","part","when","_el$64","_tmpl$6","keyBreakdownPlus","_el$65","_tmpl$7","keyCapLarge","meta","name","description","_$memo","Object","keys","k","length","entries","key","value","_el$66","_el$67","_el$68","String","_v$58","optionRow","_v$59","optionLabel","_v$60","optionValue","enabled","preventDefault","stopPropagation","ignoreInputs","requireReset","hasFired","_el$58","_tmpl$4","_el$59","_el$60","_el$62","_el$61","_el$63","conflict","itemStyle","_el$69","_tmpl$8","_el$70","_el$71","_el$77","_el$72","_el$78","_el$74","_el$79","_el$75","_el$80","_tmpl$9","_el$81","_el$82","_el$88","_el$83","_el$89","_el$85","_el$90","_el$86","conflictItemScope","_v$11","detailSection","_v$12","detailSectionHeader","_v$13","conflictList","_v$14","detailsGrid","_v$15","_v$16","_v$17","keyBreakdownSplitRow","_v$18","keyBreakdownSplitLeft","_v$19","keyBreakdown","_v$20","keyBreakdownSplitArrow","_v$21","keyBreakdownSplitRight","_v$22","_v$23","_v$24","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","optionValueTrue","optionValueFalse","_v$37","_v$38","_v$39","_v$40","_v$41","_v$42","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_v$51","_v$52","_v$53","_v$54","_v$55","_v$56","_v$57","d","l","u","c","w","m","f","y","g","p","T","A","O","I","S","W","C","B","v","x","j","q","z","P","H","F","M","D","R","E","L","N","G","SequenceDetails","seq","liveReg","sequenceRegistrations","find","matchedSteps","sequenceProgressNow","sequenceCanonicalPlatform","_el$91","_tmpl$0","_el$92","_el$93","_el$94","_el$95","_el$96","_el$97","_el$98","_el$99","step","_el$147","_tmpl$10","_el$148","sequenceStepMatched","_el$149","_el$150","_v$61","_v$62","_v$63","_v$64","_v$65","_v$66","_v$67","_v$68","_v$69","_el$100","_tmpl$1","_el$101","_el$102","_el$103","_el$104","_el$105","_el$106","_el$107","_el$108","_el$109","_el$110","_el$111","_el$112","_el$113","_el$114","_el$115","_el$116","_el$117","_el$118","_el$119","_el$120","_el$121","_el$122","_el$123","_el$124","_el$125","_el$126","_el$127","_el$128","_el$129","_el$130","_el$131","_el$132","_el$133","_el$134","_el$135","_el$136","_el$137","_el$138","_el$139","_el$140","_el$151","_tmpl$11","_el$152","keyCapLargeInProgress","stepIdx","stepParsed","stepRawParts","_el$153","_tmpl$12","_el$154","_el$155","_el$156","_el$157","_el$158","_el$159","_el$160","_el$161","_el$162","_v$111","sequenceChordDetail","_v$112","keyBreakdownSubHeader","_v$113","_v$114","_v$115","_v$116","_v$117","_el$163","_el$164","_el$165","_v$118","_v$119","_v$120","timeout","_el$141","_el$142","_el$143","_el$145","_el$144","_el$146","_el$166","_el$167","_el$168","_el$174","_el$169","_el$175","_el$171","_el$176","_el$172","_el$177","_el$178","_el$179","_el$185","_el$180","_el$186","_el$182","_el$187","_el$183","_v$70","_v$71","_v$72","_v$73","_v$74","_v$75","_v$76","_v$77","_v$78","_v$79","_v$80","_v$81","_v$82","_v$83","_v$84","_v$85","_v$86","_v$87","_v$88","_v$89","_v$90","_v$91","_v$92","_v$93","_v$94","_v$95","_v$96","_v$97","_v$98","_v$99","_v$100","_v$101","_v$102","_v$103","_v$104","_v$105","_v$106","_v$107","_v$108","_v$109","_v$110","DetailsPanel","_el$188","fallback","_el$189","_tmpl$13","noSelection","stateDetails"],"sources":["../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { For, Show, createMemo } from 'solid-js'\nimport clsx from 'clsx'\nimport {\n detectPlatform,\n formatForDisplay,\n formatHotkeySequence,\n normalizeHotkey,\n normalizeHotkeyFromParsed,\n parseHotkey,\n} from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport { effectiveSequenceMatchedSteps } from '../sequence-progress'\nimport { ActionButtons } from './ActionButtons'\nimport type {\n ConflictBehavior,\n FormatDisplayOptions,\n HotkeyRegistration,\n HotkeySequence,\n ParsedHotkey,\n RegisterableHotkey,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\n\nconst PLATFORM_ROWS = [\n { id: 'mac' as const, label: 'macOS' },\n { id: 'windows' as const, label: 'Windows' },\n { id: 'linux' as const, label: 'Linux' },\n]\n\nfunction KeyBreakdownPlatformTable(props: {\n getParsed: () => ParsedHotkey\n /** Platform used when the parsed hotkey was produced (registration `options.platform`). */\n getCanonicalPlatform: () => 'mac' | 'windows' | 'linux'\n styles: ReturnType<typeof useStyles>\n}) {\n const st = () => props.styles()\n return (\n <div class={st().platformBreakdown}>\n <For each={PLATFORM_ROWS}>\n {(row) => (\n <div class={st().platformBreakdownRow}>\n <span class={st().platformBreakdownLabel}>{row.label}</span>\n <span class={st().platformBreakdownPretty}>\n {formatForDisplay(\n normalizeHotkeyFromParsed(\n props.getParsed(),\n props.getCanonicalPlatform(),\n ),\n {\n platform: row.id,\n },\n )}\n </span>\n </div>\n )}\n </For>\n </div>\n )\n}\n\nfunction sequenceKey(sequence: Array<string>): string {\n return sequence.join('|')\n}\n\nfunction isSequenceRegistration(\n reg: HotkeyRegistration | SequenceRegistrationView,\n): reg is SequenceRegistrationView {\n return 'sequence' in reg && Array.isArray(reg.sequence)\n}\n\ntype DetailsPanelProps = {\n selectedRegistration: () =>\n | HotkeyRegistration\n | SequenceRegistrationView\n | 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 findSequenceTargetConflicts(\n registration: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n): Array<SequenceRegistrationView> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n sequenceKey(other.sequence) === sequenceKey(registration.sequence) &&\n other.options.eventType === registration.options.eventType &&\n other.target === registration.target,\n )\n}\n\nfunction findSequenceScopeConflicts(\n registration: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n): Array<SequenceRegistrationView> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n sequenceKey(other.sequence) === sequenceKey(registration.sequence) &&\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\nfunction HotkeyDetails(props: {\n registration: HotkeyRegistration\n state: ReturnType<typeof useHotkeysDevtoolsState>\n getTargetDescription: (t: HTMLElement | Document | Window) => string\n findTargetConflicts: (\n r: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n ) => Array<HotkeyRegistration>\n findScopeConflicts: (\n r: HotkeyRegistration,\n all: Array<HotkeyRegistration>,\n ) => Array<HotkeyRegistration>\n getConflictItemStyle: (\n b: ConflictBehavior,\n same: boolean,\n ) =>\n | 'conflictItem'\n | 'conflictItemAllow'\n | 'conflictItemError'\n | 'conflictItemScope'\n getConflictLabel: (b: ConflictBehavior, same: boolean) => string\n formatForDisplay: (\n hotkey: RegisterableHotkey,\n options?: FormatDisplayOptions,\n ) => string\n styles: ReturnType<typeof useStyles>\n}) {\n const reg = () => props.registration\n const parsed = () => reg().parsedHotkey\n const targetConflicts = createMemo(() =>\n props.findTargetConflicts(reg(), props.state.registrations()),\n )\n const scopeConflicts = createMemo(() =>\n props.findScopeConflicts(reg(), props.state.registrations()),\n )\n const allConflicts = createMemo(() => [\n ...targetConflicts(),\n ...scopeConflicts(),\n ])\n const conflictBehavior = (): ConflictBehavior =>\n reg().options.conflictBehavior ?? 'warn'\n\n const registrationPlatform = () => reg().options.platform ?? detectPlatform()\n\n const rawModParts = createMemo(() =>\n normalizeHotkeyFromParsed(parsed(), registrationPlatform()).split('+'),\n )\n\n const styles = props.styles\n\n return (\n <>\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>\n {props.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 {props.getTargetDescription(reg().target)}\n </div>\n </div>\n </div>\n\n <div class={styles().detailsGrid}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Key Breakdown</div>\n <div class={styles().keyBreakdownSplitRow}>\n <div class={styles().keyBreakdownSplitLeft}>\n <div class={styles().keyBreakdown}>\n <For each={rawModParts()}>\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 <span class={styles().keyBreakdownSplitArrow} aria-hidden=\"true\">\n {'->'}\n </span>\n <div class={styles().keyBreakdownSplitRight}>\n <KeyBreakdownPlatformTable\n getParsed={() => parsed()}\n getCanonicalPlatform={registrationPlatform}\n styles={props.styles}\n />\n </div>\n </div>\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons registration={reg()} />\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Meta</div>\n <div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>name</span>\n <span class={styles().optionValue}>\n {reg().options.meta?.name ?? '—'}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>description</span>\n <span class={styles().optionValue}>\n {reg().options.meta?.description ?? '—'}\n </span>\n </div>\n <Show\n when={\n reg().options.meta &&\n Object.keys(reg().options.meta!).filter(\n (k) => k !== 'name' && k !== 'description',\n ).length > 0\n }\n >\n <For\n each={Object.entries(reg().options.meta ?? {}).filter(\n ([k]) => k !== 'name' && k !== 'description',\n )}\n >\n {([key, value]) => (\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>{key}</span>\n <span class={styles().optionValue}>{String(value)}</span>\n </div>\n )}\n </For>\n </Show>\n </div>\n </div>\n\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}>{conflictBehavior()}</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 <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 props.getConflictItemStyle(conflictBehavior(), true)\n const label = () =>\n props.getConflictLabel(conflictBehavior(), true)\n return (\n <div class={styles()[itemStyle()]}>\n <span>{label()}</span> {conflict.id}:{' '}\n {props.formatForDisplay(conflict.hotkey)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {props.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 {props.formatForDisplay(conflict.hotkey)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {props.getTargetDescription(conflict.target)}\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </>\n )\n}\n\nfunction SequenceDetails(props: {\n registration: SequenceRegistrationView\n state: ReturnType<typeof useHotkeysDevtoolsState>\n getTargetDescription: (t: HTMLElement | Document | Window) => string\n findSequenceTargetConflicts: (\n r: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n ) => Array<SequenceRegistrationView>\n findSequenceScopeConflicts: (\n r: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n ) => Array<SequenceRegistrationView>\n getConflictItemStyle: (\n b: ConflictBehavior,\n same: boolean,\n ) =>\n | 'conflictItem'\n | 'conflictItemAllow'\n | 'conflictItemError'\n | 'conflictItemScope'\n getConflictLabel: (b: ConflictBehavior, same: boolean) => string\n formatHotkeySequence: (seq: HotkeySequence) => string\n formatForDisplay: (\n hotkey: RegisterableHotkey,\n options?: FormatDisplayOptions,\n ) => string\n styles: ReturnType<typeof useStyles>\n}) {\n const reg = () => props.registration\n const liveReg = createMemo(\n () =>\n props.state.sequenceRegistrations().find((r) => r.id === reg().id) ??\n reg(),\n )\n const matchedSteps = createMemo(() =>\n effectiveSequenceMatchedSteps(liveReg(), props.state.sequenceProgressNow()),\n )\n const targetConflicts = createMemo(() =>\n props.findSequenceTargetConflicts(\n liveReg(),\n props.state.sequenceRegistrations(),\n ),\n )\n const scopeConflicts = createMemo(() =>\n props.findSequenceScopeConflicts(\n liveReg(),\n props.state.sequenceRegistrations(),\n ),\n )\n const allConflicts = createMemo(() => [\n ...targetConflicts(),\n ...scopeConflicts(),\n ])\n const conflictBehavior = (): ConflictBehavior =>\n liveReg().options.conflictBehavior ?? 'warn'\n\n const sequenceCanonicalPlatform = createMemo(\n () => liveReg().options.platform ?? detectPlatform(),\n )\n\n const styles = props.styles\n\n return (\n <>\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>\n <For each={liveReg().sequence}>\n {(step, i) => (\n <span>\n <Show when={i() > 0}> </Show>\n <span\n class={\n i() < matchedSteps()\n ? styles().sequenceStepMatched\n : undefined\n }\n >\n {props.formatForDisplay(step)}\n </span>\n </span>\n )}\n </For>\n </div>\n <div class={styles().infoGrid}>\n <div class={styles().infoLabel}>ID</div>\n <div class={styles().infoValueMono}>{liveReg().id}</div>\n <div class={styles().infoLabel}>Sequence</div>\n <div class={styles().infoValueMono}>\n <For each={liveReg().sequence}>\n {(step, i) => (\n <span>\n <Show when={i() > 0}> </Show>\n <span\n class={\n i() < matchedSteps()\n ? styles().sequenceStepMatched\n : undefined\n }\n >\n {props.formatForDisplay(step)}\n </span>\n </span>\n )}\n </For>\n </div>\n <div class={styles().infoLabel}>Target</div>\n <div class={styles().infoValueMono}>\n {props.getTargetDescription(liveReg().target)}\n </div>\n </div>\n </div>\n\n <div class={styles().detailsGrid}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Key Breakdown</div>\n <div class={styles().keyBreakdown}>\n <For each={liveReg().sequence}>\n {(step, i) => (\n <>\n <Show when={i() > 0}>\n <span class={styles().keyBreakdownPlus}>→</span>\n </Show>\n <span\n class={clsx(\n styles().keyCapLarge,\n i() < matchedSteps() && styles().keyCapLargeInProgress,\n )}\n >\n {props.formatForDisplay(step)}\n </span>\n </>\n )}\n </For>\n </div>\n\n <div class={styles().keyBreakdownSubHeader}>Each chord</div>\n <For each={liveReg().sequence}>\n {(step, stepIdx) => {\n const stepParsed = () =>\n parseHotkey(step, sequenceCanonicalPlatform())\n const stepRawParts = () =>\n normalizeHotkey(step, sequenceCanonicalPlatform()).split('+')\n return (\n <div class={styles().sequenceChordDetail}>\n <div class={styles().keyBreakdownSubHeader}>\n Step {stepIdx() + 1}\n </div>\n <div class={styles().keyBreakdownSplitRow}>\n <div class={styles().keyBreakdownSplitLeft}>\n <div class={styles().keyBreakdown}>\n <For each={stepRawParts()}>\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 <span\n class={styles().keyBreakdownSplitArrow}\n aria-hidden=\"true\"\n >\n {'->'}\n </span>\n <div class={styles().keyBreakdownSplitRight}>\n <KeyBreakdownPlatformTable\n getParsed={stepParsed}\n getCanonicalPlatform={() => sequenceCanonicalPlatform()}\n styles={props.styles}\n />\n </div>\n </div>\n </div>\n )\n }}\n </For>\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons registration={liveReg()} />\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Meta</div>\n <div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>name</span>\n <span class={styles().optionValue}>\n {liveReg().options.meta?.name ?? '—'}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>description</span>\n <span class={styles().optionValue}>\n {liveReg().options.meta?.description ?? '—'}\n </span>\n </div>\n <Show\n when={\n liveReg().options.meta &&\n Object.keys(liveReg().options.meta!).filter(\n (k) => k !== 'name' && k !== 'description',\n ).length > 0\n }\n >\n <For\n each={Object.entries(liveReg().options.meta ?? {}).filter(\n ([k]) => k !== 'name' && k !== 'description',\n )}\n >\n {([key, value]) => (\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>{key}</span>\n <span class={styles().optionValue}>{String(value)}</span>\n </div>\n )}\n </For>\n </Show>\n </div>\n </div>\n\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 liveReg().options.enabled !== false\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(liveReg().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 {liveReg().options.eventType ?? 'keydown'}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>timeout</span>\n <span class={styles().optionValue}>\n {liveReg().options.timeout ?? 1000}ms\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>preventDefault</span>\n <span\n class={\n liveReg().options.preventDefault\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(!!liveReg().options.preventDefault)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>stopPropagation</span>\n <span\n class={\n liveReg().options.stopPropagation\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(!!liveReg().options.stopPropagation)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>ignoreInputs</span>\n <span\n class={\n liveReg().options.ignoreInputs !== false\n ? styles().optionValueTrue\n : styles().optionValueFalse\n }\n >\n {String(liveReg().options.ignoreInputs !== false)}\n </span>\n </div>\n <div class={styles().optionRow}>\n <span class={styles().optionLabel}>conflictBehavior</span>\n <span class={styles().optionValue}>{conflictBehavior()}</span>\n </div>\n </div>\n </div>\n\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 props.getConflictItemStyle(conflictBehavior(), true)\n const label = () =>\n props.getConflictLabel(conflictBehavior(), true)\n return (\n <div class={styles()[itemStyle()]}>\n <span>{label()}</span> {conflict.id}:{' '}\n {props.formatHotkeySequence(conflict.sequence)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {props.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 {props.formatHotkeySequence(conflict.sequence)} (\n {conflict.options.eventType ?? 'keydown'}) on{' '}\n {props.getTargetDescription(conflict.target)}\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </>\n )\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 or sequence from the list to view its details\n </div>\n }\n >\n {(reg) => (\n <Show\n when={isSequenceRegistration(reg())}\n fallback={\n <HotkeyDetails\n registration={reg() as HotkeyRegistration}\n state={state}\n getTargetDescription={getTargetDescription}\n findTargetConflicts={findTargetConflicts}\n findScopeConflicts={findScopeConflicts}\n getConflictItemStyle={getConflictItemStyle}\n getConflictLabel={getConflictLabel}\n formatForDisplay={formatForDisplay}\n styles={styles}\n />\n }\n >\n <SequenceDetails\n registration={reg() as SequenceRegistrationView}\n state={state}\n getTargetDescription={getTargetDescription}\n findSequenceTargetConflicts={findSequenceTargetConflicts}\n findSequenceScopeConflicts={findSequenceScopeConflicts}\n getConflictItemStyle={getConflictItemStyle}\n getConflictLabel={getConflictLabel}\n formatHotkeySequence={formatHotkeySequence}\n formatForDisplay={formatForDisplay}\n styles={styles}\n />\n </Show>\n )}\n </Show>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAwBA,MAAMqB,gBAAgB;CACpB;EAAEC,IAAI;EAAgBE,OAAO;EAAS;CACtC;EAAEF,IAAI;EAAoBE,OAAO;EAAW;CAC5C;EAAEF,IAAI;EAAkBE,OAAO;EAAS;CACzC;AAED,SAASC,0BAA0BC,OAKhC;CACD,MAAMK,WAAWL,MAAMG,QAAQ;AAC/B,eAAA;EAAA,IAAAG,OAAAC,QAAA;AAAAC,SAAAF,MAAAG,gBAEKnC,KAAG;GAACoC,MAAMf;GAAagB,WACpBC,eAAG;IAAA,IAAAC,QAAAC,SAAA,EAAAC,QAAAF,MAAAG,YAAAC,QAAAF,MAAAG;AAAAV,WAAAO,aAE0CH,IAAId,MAAK;AAAAU,WAAAS,aAEjDtC,iBACCG,0BACEkB,MAAMC,WAAW,EACjBD,MAAME,sBACR,CAAC,EACD,EACEiB,UAAUP,IAAIhB,IAElB,CAAC,CAAA;AAAAwB,YAAAC,QAAA;KAAA,IAAAC,MAXOjB,IAAI,CAACkB,sBAAoBC,OACtBnB,IAAI,CAACoB,wBAAsBC,OAC3BrB,IAAI,CAACsB;AAAuBL,aAAAD,IAAAO,KAAAC,UAAAhB,OAAAQ,IAAAO,IAAAN,IAAA;AAAAE,cAAAH,IAAAS,KAAAD,UAAAd,OAAAM,IAAAS,IAAAN,KAAA;AAAAE,cAAAL,IAAAU,KAAAF,UAAAZ,OAAAI,IAAAU,IAAAL,KAAA;AAAA,YAAAL;OAAA;KAAAO,GAAAI;KAAAF,GAAAE;KAAAD,GAAAC;KAAA,CAAA;AAAA,WAAAnB;OAAA;GAY5C,CAAA,CAAA;AAAAO,eAAAS,UAAAvB,MAjBOD,IAAI,CAAC4B,kBAAiB,CAAA;AAAA,SAAA3B;KAAA;;AAuBtC,SAAS4B,YAAYC,UAAiC;AACpD,QAAOA,SAASE,KAAK,IAAI;;AAG3B,SAASC,uBACPC,KACiC;AACjC,QAAO,cAAcA,OAAOH,MAAMI,QAAQD,IAAIJ,SAAS;;AAUzD,SAASQ,qBAAqBC,QAAiD;AAC7E,KAAI,OAAOI,aAAa,eAAeJ,WAAWI,SAChD,QAAO;AAET,KAAI,OAAOC,WAAW,eAAeL,WAAWK,OAC9C,QAAO;AAET,KAAIL,kBAAkBC,YAMpB,QAAO,GALKD,OAAOO,QAAQC,aAAa,GAC7BR,OAAOhD,KAAK,IAAIgD,OAAOhD,OAAO,KAC7BgD,OAAOU,YACf,IAAIV,OAAOU,UAAUC,MAAM,IAAI,CAAClB,KAAK,IAAI,KACzC;AAGN,QAAO;;AAGT,SAASmB,oBACPC,cACAC,KAC2B;AAC3B,QAAOA,IAAIC,QACRC,UACCA,MAAMhE,OAAO6D,aAAa7D,MAC1BgE,MAAMC,WAAWJ,aAAaI,UAC9BD,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMhB,WAAWa,aAAab,OACjC;;AAGH,SAASoB,mBACPP,cACAC,KAC2B;AAC3B,QAAOA,IAAIC,QACRC,UACCA,MAAMhE,OAAO6D,aAAa7D,MAC1BgE,MAAMC,WAAWJ,aAAaI,UAC9BD,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMhB,WAAWa,aAAab,OACjC;;AAGH,SAASqB,4BACPR,cACAC,KACiC;AACjC,QAAOA,IAAIC,QACRC,UACCA,MAAMhE,OAAO6D,aAAa7D,MAC1BsC,YAAY0B,MAAMzB,SAAS,KAAKD,YAAYuB,aAAatB,SAAS,IAClEyB,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMhB,WAAWa,aAAab,OACjC;;AAGH,SAASsB,2BACPT,cACAC,KACiC;AACjC,QAAOA,IAAIC,QACRC,UACCA,MAAMhE,OAAO6D,aAAa7D,MAC1BsC,YAAY0B,MAAMzB,SAAS,KAAKD,YAAYuB,aAAatB,SAAS,IAClEyB,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMhB,WAAWa,aAAab,OACjC;;AAGH,SAASuB,qBACPC,UACAC,cAKsB;AACtB,KAAI,CAACA,aAAc,QAAO;AAC1B,KAAID,aAAa,QAAS,QAAO;AACjC,KAAIA,aAAa,QAAS,QAAO;AACjC,QAAO;;AAGT,SAASE,iBACPF,UACAC,cACQ;AACR,KAAI,CAACA,aAAc,QAAO;AAC1B,KAAID,aAAa,QAAS,QAAO;AACjC,KAAIA,aAAa,QAAS,QAAO;AACjC,KAAIA,aAAa,UAAW,QAAO;AACnC,QAAO;;AAGT,SAASG,cAAcvE,OA0BpB;CACD,MAAMuC,YAAYvC,MAAMyD;CACxB,MAAMmB,eAAerC,KAAK,CAACsC;CAC3B,MAAMC,kBAAkBtG,iBACtBwB,MAAMwD,oBAAoBjB,KAAK,EAAEvC,MAAMwE,MAAMO,eAAe,CAC9D,CAAC;CACD,MAAMC,iBAAiBxG,iBACrBwB,MAAMgE,mBAAmBzB,KAAK,EAAEvC,MAAMwE,MAAMO,eAAe,CAC7D,CAAC;CACD,MAAME,eAAezG,iBAAiB,CACpC,GAAGsG,iBAAiB,EACpB,GAAGE,gBAAgB,CACpB,CAAC;CACF,MAAME,yBACJ3C,KAAK,CAACuB,QAAQoB,oBAAoB;CAEpC,MAAMC,6BAA6B5C,KAAK,CAACuB,QAAQ3C,YAAYzC,gBAAgB;CAE7E,MAAM0G,cAAc5G,iBAClBM,0BAA0B8F,QAAQ,EAAEO,sBAAsB,CAAC,CAAC5B,MAAM,IACpE,CAAC;CAED,MAAMpD,SAASH,MAAMG;AAErB,QAAA,QAAA;EAAA,IAAAkF,QAAAC,SAAA,EAAAC,QAAAF,MAAArE,YAAAwE,QAAAD,MAAArE,aAAAuE,QAAAD,MAAAxE,YAAA0E,QAAAD,MAAAvE,aAAAyE,QAAAD,MAAAxE,aAAA0E,QAAAD,MAAAzE,aAAA2E,SAAAD,MAAA1E,aAAA4E,SAAAD,OAAA3E;AAAAV,SAAA+E,aAISvF,MAAMrB,iBAAiB4D,KAAK,CAACsB,OAAO,CAAA;AAAArD,SAAAkF,aAIAnD,KAAK,CAAC3C,GAAE;AAAAY,SAAAoF,aAERrD,KAAK,CAACsB,OAAM;AAAArD,SAAAsF,cAG9C9F,MAAM2C,qBAAqBJ,KAAK,CAACK,OAAO,CAAA;AAAAxB,UAAAC,QAAA;GAAA,IAAA0E,OAXnC5F,QAAQ,CAAC6F,aAAWC,OAClB9F,QAAQ,CAAC+F,YAAUC,OAGnBhG,QAAQ,CAACiG,UAAQC,OACflG,QAAQ,CAACmG,WAASC,OAClBpG,QAAQ,CAACqG,eAAaC,OACtBtG,QAAQ,CAACmG,WAASI,OAClBvG,QAAQ,CAACqG,eAAaG,OACtBxG,QAAQ,CAACmG,WAASM,QAClBzG,QAAQ,CAACqG;AAAaT,YAAA1E,IAAAO,KAAAC,UAAAwD,OAAAhE,IAAAO,IAAAmE,KAAA;AAAAE,YAAA5E,IAAAS,KAAAD,UAAA0D,OAAAlE,IAAAS,IAAAmE,KAAA;AAAAE,YAAA9E,IAAAU,KAAAF,UAAA2D,OAAAnE,IAAAU,IAAAoE,KAAA;AAAAE,YAAAhF,IAAAwF,KAAAhF,UAAA4D,OAAApE,IAAAwF,IAAAR,KAAA;AAAAE,YAAAlF,IAAAyF,KAAAjF,UAAA6D,OAAArE,IAAAyF,IAAAP,KAAA;AAAAE,YAAApF,IAAA0F,KAAAlF,UAAA8D,OAAAtE,IAAA0F,IAAAN,KAAA;AAAAC,YAAArF,IAAA2F,KAAAnF,UAAA+D,OAAAvE,IAAA2F,IAAAN,KAAA;AAAAC,YAAAtF,IAAA4F,KAAApF,UAAAgE,QAAAxE,IAAA4F,IAAAN,KAAA;AAAAC,aAAAvF,IAAAoD,KAAA5C,UAAAiE,QAAAzE,IAAAoD,IAAAmC,MAAA;AAAA,UAAAvF;KAAA;GAAAO,GAAAI;GAAAF,GAAAE;GAAAD,GAAAC;GAAA6E,GAAA7E;GAAA8E,GAAA9E;GAAA+E,GAAA/E;GAAAgF,GAAAhF;GAAAiF,GAAAjF;GAAAyC,GAAAzC;GAAA,CAAA;AAAA,SAAAqD;KAAA,SAAA;EAAA,IAAA6B,SAAAC,SAAA,EAAAC,SAAAF,OAAAlG,YAAAqG,SAAAD,OAAApG,YAAAsG,SAAAD,OAAAnG,aAAAqG,SAAAD,OAAAtG,YAAAwG,SAAAD,OAAAvG,YAAAyG,SAAAF,OAAArG,aAAAwG,SAAAD,OAAAvG,aAAAyG,SAAAP,OAAAlG,aAAA0G,SAAAD,OAAA3G,YAAA6G,SAAAF,OAAAzG,aAAA4G,SAAAD,OAAA7G,YAAA+G,SAAAD,OAAA5G,aAAA8G,SAAAD,OAAA/G,YAAAiH,SAAAD,OAAAhH,YAAAkH,SAAAD,OAAA/G,aAAAiH,SAAAH,OAAA9G,aAAAkH,SAAAD,OAAAnH,YAAAqH,SAAAD,OAAAlH,aAAAoH,SAAAT,OAAA3G,aAAAqH,SAAAD,OAAAtH,YAAAyH,SAAAF,OAAArH,YAAAF,YAAA0H,SAAAD,OAAAzH,YAAA2H,SAAAD,OAAAxH,aAAA0H,SAAAH,OAAAvH,aAAA2H,SAAAD,OAAA5H,YAAA8H,SAAAD,OAAA3H,aAAA6H,SAAAH,OAAA1H,aAAA8H,SAAAD,OAAA/H,YAAAiI,SAAAD,OAAA9H,aAAAgI,SAAAH,OAAA7H,aAAAiI,SAAAD,OAAAlI,YAAAoI,SAAAD,OAAAjI,aAAAmI,SAAAH,OAAAhI,aAAAoI,SAAAD,OAAArI,YAAAuI,SAAAD,OAAApI,aAAAsI,SAAAH,OAAAnI,aAAAuI,SAAAD,OAAAxI,YAAA0I,SAAAD,OAAAvI,aAAAyI,SAAAH,OAAAtI,aAAA0I,SAAAD,OAAA3I,YAAA6I,SAAAD,OAAA1I,aAAA4I,SAAAH,OAAAzI,aAAA6I,SAAAD,OAAA9I,YAAAgJ,SAAAD,OAAA7I;AAAAV,SAAAgH,QAAA/G,gBAY3BnC,KAAG;GAAA,IAACoC,OAAI;AAAA,WAAE0E,aAAa;;GAAAzE,WACpBsJ,MAAMnD,MAAC,CAAArG,gBAEJlC,MAAI;IAAA,IAAC2L,OAAI;AAAA,YAAEpD,GAAG,GAAG;;IAAC,IAAAnG,WAAA;KAAA,IAAAwJ,SAAAC,SAAA;AAAAhJ,kBAAAS,UAAAsI,QACJhK,QAAQ,CAACkK,iBAAgB,CAAA;AAAA,YAAAF;;IAAA,CAAA,SAAA;IAAA,IAAAG,SAAAC,SAAA;AAAA/J,WAAA8J,QAEJL,KAAI;AAAA7I,iBAAAS,UAAAyI,QAA3BnK,QAAQ,CAACqK,YAAW,CAAA;AAAA,WAAAF;OAAA,CAAA;GAEpC,CAAA,CAAA;AAAA9J,SAAAkH,QAAAjH,gBAQJV,2BAAyB;GACxBE,iBAAiB2E,QAAQ;GACzB1E,sBAAsBiF;GAAoB,IAC1ChF,SAAM;AAAA,WAAEH,MAAMG;;GAAM,CAAA,CAAA;AAAAK,SAAAmH,QAAAlH,gBAQzBtB,eAAa,EAAA,IAACsE,eAAY;AAAA,UAAElB,KAAK;KAAA,CAAA,EAAA,KAAA;AAAA/B,SAAA0H,cAS3B3F,KAAK,CAACuB,QAAQ2G,MAAMC,QAAQ,IAAG;AAAAlK,SAAA6H,cAM/B9F,KAAK,CAACuB,QAAQ2G,MAAME,eAAe,IAAG;AAAAnK,SAAAuH,QAAAtH,gBAG1ClC,MAAI;GAAA,IACH2L,OAAI;AAAA,WACFU,WAAA,CAAA,CAAArI,KAAK,CAACuB,QAAQ2G,KAAI,EAAA,IAClBI,OAAOC,KAAKvI,KAAK,CAACuB,QAAQ2G,KAAM,CAAC9G,QAC9BoH,MAAMA,MAAM,UAAUA,MAAM,cAC9B,CAACC,SAAS;;GAAC,IAAArK,WAAA;AAAA,WAAAF,gBAGbnC,KAAG;KAAA,IACFoC,OAAI;AAAA,aAAEmK,OAAOI,QAAQ1I,KAAK,CAACuB,QAAQ2G,QAAQ,EAAE,CAAC,CAAC9G,QAC5C,CAACoH,OAAOA,MAAM,UAAUA,MAAM,cAChC;;KAAApK,WAEC,CAACuK,KAAKC,kBAAM;MAAA,IAAAC,SAAAtK,SAAA,EAAAuK,SAAAD,OAAApK,YAAAsK,SAAAD,OAAAnK;AAAAV,aAAA6K,QAE0BH,IAAG;AAAA1K,aAAA8K,cACHC,OAAOJ,MAAM,CAAA;AAAA/J,cAAAC,QAAA;OAAA,IAAAmK,QAFvCrL,QAAQ,CAACsL,WAASC,QACfvL,QAAQ,CAACwL,aAAWC,QACpBzL,QAAQ,CAAC0L;AAAWL,iBAAAnK,IAAAO,KAAAC,UAAAuJ,QAAA/J,IAAAO,IAAA4J,MAAA;AAAAE,iBAAArK,IAAAS,KAAAD,UAAAwJ,QAAAhK,IAAAS,IAAA4J,MAAA;AAAAE,iBAAAvK,IAAAU,KAAAF,UAAAyJ,QAAAjK,IAAAU,IAAA6J,MAAA;AAAA,cAAAvK;SAAA;OAAAO,GAAAI;OAAAF,GAAAE;OAAAD,GAAAC;OAAA,CAAA;AAAA,aAAAoJ;SAAA;KAEpC,CAAA;;GAAA,CAAA,EAAA,KAAA;AAAA5K,SAAAmI,cAkBA4C,OAAOhJ,KAAK,CAACuB,QAAQgI,YAAY,MAAM,CAAA;AAAAtL,SAAAsI,cAMvCvG,KAAK,CAACuB,QAAQC,aAAa,UAAS;AAAAvD,SAAAyI,cAYpCsC,OAAO,CAAC,CAAChJ,KAAK,CAACuB,QAAQiI,eAAe,CAAA;AAAAvL,SAAA4I,cAYtCmC,OAAO,CAAC,CAAChJ,KAAK,CAACuB,QAAQkI,gBAAgB,CAAA;AAAAxL,SAAA+I,cAYvCgC,OAAOhJ,KAAK,CAACuB,QAAQmI,iBAAiB,MAAM,CAAA;AAAAzL,SAAAkJ,cAY5C6B,OAAO,CAAC,CAAChJ,KAAK,CAACuB,QAAQoI,aAAa,CAAA;AAAA1L,SAAAqJ,QAKH3E,iBAAgB;AAAA1E,SAAAwJ,cAWjDuB,OAAOhJ,KAAK,CAAC4J,SAAS,CAAA;AAAA3L,SAAA0G,QAAAzG,gBAM9BlC,MAAI;GAAA,IAAC2L,OAAI;AAAA,WAAEjF,cAAc,CAAC+F,SAAS;;GAAC,IAAArK,WAAA;IAAA,IAAAyL,SAAAC,SAAA,EAAAC,SAAAF,OAAApL,YAAAwL,SAAAF,OAAAtL,WAAAE;AAAAsL,WAAAtL;IAAA,IAAAwL,SAAAJ,OAAApL;AAAAV,WAAA8L,cAGnBrH,cAAc,CAAC+F,QAAMwB,OAAA;AAAAhM,WAAAkM,QAAAjM,gBAGhCnC,KAAG;KAAA,IAACoC,OAAI;AAAA,aAAEoE,iBAAiB;;KAAAnE,WACxBgM,aAAa;MACb,MAAMC,kBACJ5M,MAAMmE,qBAAqBe,kBAAkB,EAAE,KAAK;MACtD,MAAMpF,cACJE,MAAMsE,iBAAiBY,kBAAkB,EAAE,KAAK;AAClD,oBAAA;OAAA,IAAA2H,SAAAC,SAAA,EAAAC,SAAAF,OAAA7L,YAAAiM,SAAAF,OAAA7L,YAAAA,aAAAiM,SAAAF,OAAA/L,YAAAA,aAAAmM,SAAAF,OAAAjM,YAAAA;AAAAmM,cAAAnM;AAAAV,cAAAuM,QAEWjN,MAAK;AAAAU,cAAAqM,cAAYF,SAAS/M,IAAEqN,OAAA;AAAAzM,cAAAqM,cAClC7M,MAAMrB,iBAAiBgO,SAAS9I,OAAO,EAAAsJ,OAAA;AAAA3M,cAAAqM,cACvCF,SAAS7I,QAAQC,aAAa,WAASsJ,OAAA;AAAA7M,cAAAqM,cACvC7M,MAAM2C,qBAAqBgK,SAAS/J,OAAO,EAAA,KAAA;AAAAxB,oBAAAS,UAAAgL,QAJlC1M,QAAQ,CAACyM,WAAW,EAAC,CAAA;AAAA,cAAAC;UAAA;;KAOpC,CAAA,EAAA,KAAA;AAAArM,WAAAkM,QAAAjM,gBAEFnC,KAAG;KAAA,IAACoC,OAAI;AAAA,aAAEsE,gBAAgB;;KAAArE,WACvBgM,oBAAQ;MAAA,IAAAY,SAAAC,SAAA,EAAAG,SAAAJ,OAAAvM,WAAAE,YAAAA,aAAA2M,SAAAF,OAAAzM,YAAAA,aAAA6M,SAAAF,OAAA3M,YAAAA;AAAA6M,aAAA7M;AAAAV,aAAA+M,cAEcZ,SAAS/M,IAAE+N,OAAA;AAAAnN,aAAA+M,cAC9BvN,MAAMrB,iBAAiBgO,SAAS9I,OAAO,EAAAgK,OAAA;AAAArN,aAAA+M,cACvCZ,SAAS7I,QAAQC,aAAa,WAASgK,OAAA;AAAAvN,aAAA+M,cACvCvN,MAAM2C,qBAAqBgK,SAAS/J,OAAO,EAAA,KAAA;AAAAxB,mBAAAS,UAAA0L,QAJlCpN,QAAQ,CAAC8N,kBAAiB,CAAA;AAAA,aAAAV;SAAA;KAMvC,CAAA,EAAA,KAAA;AAAAnM,YAAAC,QAAA;KAAA,IAAA6M,QA7BK/N,QAAQ,CAACgO,eAAaC,QACpBjO,QAAQ,CAACkO,qBAAmBC,QAG5BnO,QAAQ,CAACoO;AAAYL,eAAA7M,IAAAO,KAAAC,UAAAuK,QAAA/K,IAAAO,IAAAsM,MAAA;AAAAE,eAAA/M,IAAAS,KAAAD,UAAAyK,QAAAjL,IAAAS,IAAAsM,MAAA;AAAAE,eAAAjN,IAAAU,KAAAF,UAAA6K,QAAArL,IAAAU,IAAAuM,MAAA;AAAA,YAAAjN;OAAA;KAAAO,GAAAI;KAAAF,GAAAE;KAAAD,GAAAC;KAAA,CAAA;AAAA,WAAAoK;;GAAA,CAAA,EAAA,KAAA;AAAAhL,UAAAC,QAAA;GAAA,IAAAmN,QAxK3BrO,QAAQ,CAACsO,aAAWC,QAClBvO,QAAQ,CAACgO,eAAaQ,QACpBxO,QAAQ,CAACkO,qBAAmBO,QAC5BzO,QAAQ,CAAC0O,sBAAoBC,QAC3B3O,QAAQ,CAAC4O,uBAAqBC,QAC5B7O,QAAQ,CAAC8O,cAAYC,QAatB/O,QAAQ,CAACgP,wBAAsBC,QAGhCjP,QAAQ,CAACkP,wBAAsBC,QAUnCnP,QAAQ,CAACgO,eAAaoB,QACpBpP,QAAQ,CAACkO,qBAAmBmB,QAI9BrP,QAAQ,CAACgO,eAAasB,QACpBtP,QAAQ,CAACkO,qBAAmBqB,QAE1BvP,QAAQ,CAACsL,WAASkE,QACfxP,QAAQ,CAACwL,aAAWiE,QACpBzP,QAAQ,CAAC0L,aAAWgE,QAIvB1P,QAAQ,CAACsL,WAASqE,QACf3P,QAAQ,CAACwL,aAAWoE,QACpB5P,QAAQ,CAAC0L,aAAWmE,QA4B3B7P,QAAQ,CAACgO,eAAa8B,QACpB9P,QAAQ,CAACkO,qBAAmB6B,QAE1B/P,QAAQ,CAACsL,WAAS0E,QACfhQ,QAAQ,CAACwL,aAAWyE,QAG7B7N,KAAK,CAACuB,QAAQgI,YAAY,QACtB3L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBC,QAMvBpQ,QAAQ,CAACsL,WAAS+E,QACfrQ,QAAQ,CAACwL,aAAW8E,QACpBtQ,QAAQ,CAAC0L,aAAW6E,QAIvBvQ,QAAQ,CAACsL,WAASkF,QACfxQ,QAAQ,CAACwL,aAAWiF,QAG7BrO,KAAK,CAACuB,QAAQiI,iBACV5L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBO,QAMvB1Q,QAAQ,CAACsL,WAASqF,QACf3Q,QAAQ,CAACwL,aAAWoF,QAG7BxO,KAAK,CAACuB,QAAQkI,kBACV7L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBU,QAMvB7Q,QAAQ,CAACsL,WAASwF,QACf9Q,QAAQ,CAACwL,aAAWuF,QAG7B3O,KAAK,CAACuB,QAAQmI,iBAAiB,QAC3B9L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBa,QAMvBhR,QAAQ,CAACsL,WAAS2F,QACfjR,QAAQ,CAACwL,aAAW0F,QAG7B9O,KAAK,CAACuB,QAAQoI,eACV/L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBgB,QAMvBnR,QAAQ,CAACsL,WAAS8F,QACfpR,QAAQ,CAACwL,aAAW6F,QACpBrR,QAAQ,CAAC0L,aAAW4F,QAEvBtR,QAAQ,CAACsL,WAASiG,QACfvR,QAAQ,CAACwL,aAAWgG,QAG7BpP,KAAK,CAAC4J,WACFhM,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ;AAAgB9B,aAAAnN,IAAAO,KAAAC,UAAAqF,QAAA7F,IAAAO,IAAA4M,MAAA;AAAAE,aAAArN,IAAAS,KAAAD,UAAAuF,QAAA/F,IAAAS,IAAA4M,MAAA;AAAAC,aAAAtN,IAAAU,KAAAF,UAAAwF,QAAAhG,IAAAU,IAAA4M,MAAA;AAAAC,aAAAvN,IAAAwF,KAAAhF,UAAAyF,QAAAjG,IAAAwF,IAAA+H,MAAA;AAAAE,aAAAzN,IAAAyF,KAAAjF,UAAA0F,QAAAlG,IAAAyF,IAAAgI,MAAA;AAAAE,aAAA3N,IAAA0F,KAAAlF,UAAA2F,QAAAnG,IAAA0F,IAAAiI,MAAA;AAAAE,aAAA7N,IAAA2F,KAAAnF,UAAA4F,QAAApG,IAAA2F,IAAAkI,MAAA;AAAAE,aAAA/N,IAAA4F,KAAApF,UAAA6F,QAAArG,IAAA4F,IAAAmI,MAAA;AAAAE,aAAAjO,IAAAoD,KAAA5C,UAAA8F,QAAAtG,IAAAoD,IAAA6K,MAAA;AAAAC,aAAAlO,IAAAuQ,KAAA/P,UAAA+F,QAAAvG,IAAAuQ,IAAArC,MAAA;AAAAC,aAAAnO,IAAAwQ,KAAAhQ,UAAAgG,QAAAxG,IAAAwQ,IAAArC,MAAA;AAAAC,aAAApO,IAAAyQ,KAAAjQ,UAAAiG,QAAAzG,IAAAyQ,IAAArC,MAAA;AAAAC,aAAArO,IAAA0Q,KAAAlQ,UAAAmG,QAAA3G,IAAA0Q,IAAArC,MAAA;AAAAC,aAAAtO,IAAA2Q,KAAAnQ,UAAAoG,QAAA5G,IAAA2Q,IAAArC,MAAA;AAAAC,aAAAvO,IAAA4Q,KAAApQ,UAAAqG,QAAA7G,IAAA4Q,IAAArC,MAAA;AAAAC,aAAAxO,IAAA6Q,KAAArQ,UAAAsG,QAAA9G,IAAA6Q,IAAArC,MAAA;AAAAC,aAAAzO,IAAA8Q,KAAAtQ,UAAAuG,QAAA/G,IAAA8Q,IAAArC,MAAA;AAAAC,aAAA1O,IAAA+Q,KAAAvQ,UAAAwG,QAAAhH,IAAA+Q,IAAArC,MAAA;AAAAC,aAAA3O,IAAAgR,KAAAxQ,UAAAyG,QAAAjH,IAAAgR,IAAArC,MAAA;AAAAC,aAAA5O,IAAAqD,KAAA7C,UAAA0G,QAAAlH,IAAAqD,IAAAuL,MAAA;AAAAC,aAAA7O,IAAAiR,KAAAzQ,UAAA4G,QAAApH,IAAAiR,IAAApC,MAAA;AAAAC,aAAA9O,IAAAkR,KAAA1Q,UAAA6G,QAAArH,IAAAkR,IAAApC,MAAA;AAAAC,aAAA/O,IAAAmR,KAAA3Q,UAAA8G,QAAAtH,IAAAmR,IAAApC,MAAA;AAAAG,aAAAlP,IAAAoR,KAAA5Q,UAAA+G,QAAAvH,IAAAoR,IAAAlC,MAAA;AAAAC,aAAAnP,IAAAqR,KAAA7Q,UAAAgH,QAAAxH,IAAAqR,IAAAlC,MAAA;AAAAC,aAAApP,IAAAsR,KAAA9Q,UAAAiH,QAAAzH,IAAAsR,IAAAlC,MAAA;AAAAC,aAAArP,IAAAuR,KAAA/Q,UAAAkH,QAAA1H,IAAAuR,IAAAlC,MAAA;AAAAC,aAAAtP,IAAAwR,KAAAhR,UAAAmH,QAAA3H,IAAAwR,IAAAlC,MAAA;AAAAC,aAAAvP,IAAAyR,KAAAjR,UAAAoH,QAAA5H,IAAAyR,IAAAlC,MAAA;AAAAC,aAAAxP,IAAA0J,KAAAlJ,UAAAqH,QAAA7H,IAAA0J,IAAA8F,MAAA;AAAAC,aAAAzP,IAAA0R,KAAAlR,UAAAsH,QAAA9H,IAAA0R,IAAAjC,MAAA;AAAAC,aAAA1P,IAAA2R,KAAAnR,UAAAuH,QAAA/H,IAAA2R,IAAAjC,MAAA;AAAAC,aAAA3P,IAAA4R,KAAApR,UAAAwH,QAAAhI,IAAA4R,IAAAjC,MAAA;AAAAC,aAAA5P,IAAA6R,KAAArR,UAAAyH,QAAAjI,IAAA6R,IAAAjC,MAAA;AAAAC,aAAA7P,IAAA8R,KAAAtR,UAAA0H,QAAAlI,IAAA8R,IAAAjC,MAAA;AAAAC,aAAA9P,IAAA+R,KAAAvR,UAAA2H,QAAAnI,IAAA+R,IAAAjC,MAAA;AAAAC,aAAA/P,IAAAgS,KAAAxR,UAAA4H,QAAApI,IAAAgS,IAAAjC,MAAA;AAAAC,aAAAhQ,IAAAiS,KAAAzR,UAAA6H,QAAArI,IAAAiS,IAAAjC,MAAA;AAAAC,aAAAjQ,IAAAkS,KAAA1R,UAAA8H,QAAAtI,IAAAkS,IAAAjC,MAAA;AAAAC,aAAAlQ,IAAAmS,KAAA3R,UAAA+H,QAAAvI,IAAAmS,IAAAjC,MAAA;AAAAC,aAAAnQ,IAAAoS,KAAA5R,UAAAgI,QAAAxI,IAAAoS,IAAAjC,MAAA;AAAAC,aAAApQ,IAAAqS,KAAA7R,UAAAiI,QAAAzI,IAAAqS,IAAAjC,MAAA;AAAAC,aAAArQ,IAAAsS,KAAA9R,UAAAkI,QAAA1I,IAAAsS,IAAAjC,MAAA;AAAAC,aAAAtQ,IAAAuS,KAAA/R,UAAAmI,QAAA3I,IAAAuS,IAAAjC,MAAA;AAAA,UAAAtQ;KAAA;GAAAO,GAAAI;GAAAF,GAAAE;GAAAD,GAAAC;GAAA6E,GAAA7E;GAAA8E,GAAA9E;GAAA+E,GAAA/E;GAAAgF,GAAAhF;GAAAiF,GAAAjF;GAAAyC,GAAAzC;GAAA4P,GAAA5P;GAAA6P,GAAA7P;GAAA8P,GAAA9P;GAAA+P,GAAA/P;GAAAgQ,GAAAhQ;GAAAiQ,GAAAjQ;GAAAkQ,GAAAlQ;GAAAmQ,GAAAnQ;GAAAoQ,GAAApQ;GAAAqQ,GAAArQ;GAAA0C,GAAA1C;GAAAsQ,GAAAtQ;GAAAuQ,GAAAvQ;GAAAwQ,GAAAxQ;GAAAyQ,GAAAzQ;GAAA0Q,GAAA1Q;GAAA2Q,GAAA3Q;GAAA4Q,GAAA5Q;GAAA6Q,GAAA7Q;GAAA8Q,GAAA9Q;GAAA+I,GAAA/I;GAAA+Q,GAAA/Q;GAAAgR,GAAAhR;GAAAiR,GAAAjR;GAAAkR,GAAAlR;GAAAmR,GAAAnR;GAAAoR,GAAApR;GAAAqR,GAAArR;GAAAsR,GAAAtR;GAAAuR,GAAAvR;GAAAwR,GAAAxR;GAAAyR,GAAAzR;GAAA0R,GAAA1R;GAAA2R,GAAA3R;GAAA4R,GAAA5R;GAAA,CAAA;AAAA,SAAAkF;KAAA,CAAA;;AAiD/C,SAAS2M,gBAAgB7T,OA2BtB;CACD,MAAMuC,YAAYvC,MAAMyD;CACxB,MAAMsQ,UAAUvV,iBAEZwB,MAAMwE,MAAMwP,uBAAuB,CAACC,MAAMxP,MAAMA,EAAE7E,OAAO2C,KAAK,CAAC3C,GAAG,IAClE2C,KACJ,CAAC;CACD,MAAM2R,eAAe1V,iBACnBU,8BAA8B6U,SAAS,EAAE/T,MAAMwE,MAAM2P,qBAAqB,CAC5E,CAAC;CACD,MAAMrP,kBAAkBtG,iBACtBwB,MAAMiE,4BACJ8P,SAAS,EACT/T,MAAMwE,MAAMwP,uBACd,CACF,CAAC;CACD,MAAMhP,iBAAiBxG,iBACrBwB,MAAMkE,2BACJ6P,SAAS,EACT/T,MAAMwE,MAAMwP,uBACd,CACF,CAAC;CACD,MAAM/O,eAAezG,iBAAiB,CACpC,GAAGsG,iBAAiB,EACpB,GAAGE,gBAAgB,CACpB,CAAC;CACF,MAAME,yBACJ6O,SAAS,CAACjQ,QAAQoB,oBAAoB;CAExC,MAAMkP,4BAA4B5V,iBAC1BuV,SAAS,CAACjQ,QAAQ3C,YAAYzC,gBACtC,CAAC;CAED,MAAMyB,SAASH,MAAMG;AAErB,QAAA,QAAA;EAAA,IAAAkU,SAAAC,SAAA,EAAAC,SAAAF,OAAArT,YAAAwT,SAAAD,OAAArT,aAAAuT,SAAAD,OAAAxT,YAAA0T,SAAAD,OAAAvT,aAAAyT,SAAAD,OAAAxT,aAAA0T,SAAAD,OAAAzT,aAAA2T,SAAAD,OAAA1T,aAAA4T,SAAAD,OAAA3T;AAAAV,SAAA+T,QAAA9T,gBAISnC,KAAG;GAAA,IAACoC,OAAI;AAAA,WAAEqT,SAAS,CAAC5R;;GAAQxB,WACzBoU,MAAMjO,aAAC;IAAA,IAAAkO,UAAAC,UAAA,EAAAC,UAAAF,QAAAhU;AAAAR,WAAAwU,SAAAvU,gBAEJlC,MAAI;KAAA,IAAC2L,OAAI;AAAA,aAAEpD,GAAG,GAAG;;KAACnG,UAAA;KAAA,CAAA,EAAAuU,QAAA;AAAA1U,WAAA0U,eAQhBlV,MAAMrB,iBAAiBoW,KAAK,CAAA;AAAA3T,iBAAAS,UAAAqT,SAL3BpO,GAAG,GAAGoN,cAAc,GAChB/T,QAAQ,CAACgV,sBACTnT,OAAS,CAAA;AAAA,WAAAgT;OAAA;GAMpB,CAAA,CAAA;AAAAxU,SAAAkU,cAKkCX,SAAS,CAACnU,GAAE;AAAAY,SAAAoU,QAAAnU,gBAG9CnC,KAAG;GAAA,IAACoC,OAAI;AAAA,WAAEqT,SAAS,CAAC5R;;GAAQxB,WACzBoU,MAAMjO,aAAC;IAAA,IAAAsO,UAAAH,UAAA,EAAAI,UAAAD,QAAApU;AAAAR,WAAA4U,SAAA3U,gBAEJlC,MAAI;KAAA,IAAC2L,OAAI;AAAA,aAAEpD,GAAG,GAAG;;KAACnG,UAAA;KAAA,CAAA,EAAA0U,QAAA;AAAA7U,WAAA6U,eAQhBrV,MAAMrB,iBAAiBoW,KAAK,CAAA;AAAA3T,iBAAAS,UAAAwT,SAL3BvO,GAAG,GAAGoN,cAAc,GAChB/T,QAAQ,CAACgV,sBACTnT,OAAS,CAAA;AAAA,WAAAoT;OAAA;GAMpB,CAAA,CAAA;AAAA5U,SAAAsU,cAKF9U,MAAM2C,qBAAqBoR,SAAS,CAACnR,OAAO,CAAA;AAAAxB,UAAAC,QAAA;GAAA,IAAAiU,QA3CvCnV,QAAQ,CAAC6F,aAAWuP,QAClBpV,QAAQ,CAAC+F,YAAUsP,QAkBnBrV,QAAQ,CAACiG,UAAQqP,QACftV,QAAQ,CAACmG,WAASoP,QAClBvV,QAAQ,CAACqG,eAAamP,QACtBxV,QAAQ,CAACmG,WAASsP,QAClBzV,QAAQ,CAACqG,eAAaqP,QAkBtB1V,QAAQ,CAACmG,WAASwP,QAClB3V,QAAQ,CAACqG;AAAa8O,aAAAjU,IAAAO,KAAAC,UAAAwS,QAAAhT,IAAAO,IAAA0T,MAAA;AAAAC,aAAAlU,IAAAS,KAAAD,UAAA0S,QAAAlT,IAAAS,IAAAyT,MAAA;AAAAC,aAAAnU,IAAAU,KAAAF,UAAA2S,QAAAnT,IAAAU,IAAAyT,MAAA;AAAAC,aAAApU,IAAAwF,KAAAhF,UAAA4S,QAAApT,IAAAwF,IAAA4O,MAAA;AAAAC,aAAArU,IAAAyF,KAAAjF,UAAA6S,QAAArT,IAAAyF,IAAA4O,MAAA;AAAAC,aAAAtU,IAAA0F,KAAAlF,UAAA8S,QAAAtT,IAAA0F,IAAA4O,MAAA;AAAAC,aAAAvU,IAAA2F,KAAAnF,UAAA+S,QAAAvT,IAAA2F,IAAA4O,MAAA;AAAAC,aAAAxU,IAAA4F,KAAApF,UAAAgT,QAAAxT,IAAA4F,IAAA4O,MAAA;AAAAC,aAAAzU,IAAAoD,KAAA5C,UAAAiT,QAAAzT,IAAAoD,IAAAqR,MAAA;AAAA,UAAAzU;KAAA;GAAAO,GAAAI;GAAAF,GAAAE;GAAAD,GAAAC;GAAA6E,GAAA7E;GAAA8E,GAAA9E;GAAA+E,GAAA/E;GAAAgF,GAAAhF;GAAAiF,GAAAjF;GAAAyC,GAAAzC;GAAA,CAAA;AAAA,SAAAqS;KAAA,SAAA;EAAA,IAAA0B,UAAAC,SAAA,EAAAC,UAAAF,QAAA/U,YAAAkV,UAAAD,QAAAjV,YAAAmV,UAAAD,QAAAhV,aAAAkV,UAAAD,QAAAjV,aAAAmV,UAAAJ,QAAA/U,aAAAoV,UAAAD,QAAArV,YAAAuV,UAAAF,QAAAnV,aAAAsV,UAAAD,QAAAvV,YAAAyV,UAAAD,QAAAtV,aAAAwV,UAAAD,QAAAzV,YAAA2V,UAAAD,QAAA1V,YAAA4V,UAAAD,QAAAzV,aAAA2V,UAAAH,QAAAxV,aAAA4V,UAAAD,QAAA7V,YAAA+V,UAAAD,QAAA5V,aAAA8V,UAAAT,QAAArV,aAAA+V,UAAAD,QAAAhW,YAAAmW,UAAAF,QAAA/V,YAAAF,YAAAoW,UAAAD,QAAAnW,YAAAqW,UAAAD,QAAAlW,aAAAoW,UAAAH,QAAAjW,aAAAqW,UAAAD,QAAAtW,YAAAwW,UAAAD,QAAArW,aAAAuW,UAAAH,QAAApW,aAAAwW,UAAAD,QAAAzW,YAAA2W,UAAAD,QAAAxW,aAAA0W,UAAAD,QAAA3W,YAAA6W,UAAAJ,QAAAvW,aAAA4W,UAAAD,QAAA7W,YAAA+W,UAAAD,QAAA5W,aAAA8W,UAAAH,QAAA3W,aAAA+W,UAAAD,QAAAhX,YAAAkX,UAAAD,QAAA/W,aAAAiX,UAAAH,QAAA9W,aAAAkX,UAAAD,QAAAnX,YAAAqX,UAAAD,QAAAlX,aAAAoX,UAAAH,QAAAjX,aAAAqX,UAAAD,QAAAtX,YAAAwX,UAAAD,QAAArX;AAAAV,SAAA2V,SAAA1V,gBAU/BnC,KAAG;GAAA,IAACoC,OAAI;AAAA,WAAEqT,SAAS,CAAC5R;;GAAQxB,WACzBoU,MAAMjO,MAAC,CAAArG,gBAEJlC,MAAI;IAAA,IAAC2L,OAAI;AAAA,YAAEpD,GAAG,GAAG;;IAAC,IAAAnG,WAAA;KAAA,IAAA8X,UAAAC,UAAA;AAAAtX,kBAAAS,UAAA4W,SACJtY,QAAQ,CAACkK,iBAAgB,CAAA;AAAA,YAAAoO;;IAAA,CAAA,SAAA;IAAA,IAAAE,UAAApO,SAAA;AAAA/J,WAAAmY,eAQrC3Y,MAAMrB,iBAAiBoW,KAAK,CAAA;AAAA3T,iBAAAS,UAAA8W,SALtBla,KACL0B,QAAQ,CAACqK,aACT1D,GAAG,GAAGoN,cAAc,IAAI/T,QAAQ,CAACyY,sBAClC,CAAA,CAAA;AAAA,WAAAD;OAAA,CAAA;GAKN,CAAA,CAAA;AAAAnY,SAAAyV,SAAAxV,gBAKJnC,KAAG;GAAA,IAACoC,OAAI;AAAA,WAAEqT,SAAS,CAAC5R;;GAAQxB,WACzBoU,MAAM8D,YAAY;IAClB,MAAMC,mBACJ/Z,YAAYgW,MAAMX,2BAA2B,CAAC;IAChD,MAAM2E,qBACJla,gBAAgBkW,MAAMX,2BAA2B,CAAC,CAAC7Q,MAAM,IAAI;AAC/D,kBAAA;KAAA,IAAAyV,UAAAC,UAAA,EAAAC,UAAAF,QAAAhY;AAAAkY,aAAAlY;KAAA,IAAAoY,UAAAF,QAAAhY,aAAAmY,UAAAD,QAAApY,YAAAsY,UAAAD,QAAArY,YAAAuY,UAAAF,QAAAnY,aAAAsY,UAAAD,QAAArY;AAAAV,YAAA0Y,eAGYL,SAAS,GAAG,GAAC,KAAA;AAAArY,YAAA8Y,SAAA7Y,gBAKdnC,KAAG;MAAA,IAACoC,OAAI;AAAA,cAAEqY,cAAc;;MAAApY,WACrBsJ,MAAMnD,MAAC,CAAArG,gBAEJlC,MAAI;OAAA,IAAC2L,OAAI;AAAA,eAAEpD,GAAG,GAAG;;OAAC,IAAAnG,WAAA;QAAA,IAAA8Y,UAAArP,SAAA;AAAAhJ,qBAAAS,UAAA4X,SACJtZ,QAAQ,CAACkK,iBAAgB,CAAA;AAAA,eAAAoP;;OAAA,CAAA,SAAA;OAAA,IAAAC,UAAAnP,SAAA;AAAA/J,cAAAkZ,SAEJzP,KAAI;AAAA7I,oBAAAS,UAAA6X,SAA3BvZ,QAAQ,CAACqK,YAAW,CAAA;AAAA,cAAAkP;UAAA,CAAA;MAEpC,CAAA,CAAA;AAAAlZ,YAAAgZ,SAAA/Y,gBAWJV,2BAAyB;MACxBE,WAAW6Y;MACX5Y,4BAA4BkU,2BAA2B;MAAA,IACvDjU,SAAM;AAAA,cAAEH,MAAMG;;MAAM,CAAA,CAAA;AAAAiB,aAAAC,QAAA;MAAA,IAAAsY,SA7BhBxZ,QAAQ,CAACyZ,qBAAmBC,SAC1B1Z,QAAQ,CAAC2Z,uBAAqBC,SAG9B5Z,QAAQ,CAAC0O,sBAAoBmL,SAC3B7Z,QAAQ,CAAC4O,uBAAqBkL,SAC5B9Z,QAAQ,CAAC8O,cAAYiL,SAc1B/Z,QAAQ,CAACgP,wBAAsBgL,SAK5Bha,QAAQ,CAACkP;AAAsBsK,iBAAAtY,IAAAO,KAAAC,UAAAmX,SAAA3X,IAAAO,IAAA+X,OAAA;AAAAE,iBAAAxY,IAAAS,KAAAD,UAAAqX,SAAA7X,IAAAS,IAAA+X,OAAA;AAAAE,iBAAA1Y,IAAAU,KAAAF,UAAAuX,SAAA/X,IAAAU,IAAAgY,OAAA;AAAAC,iBAAA3Y,IAAAwF,KAAAhF,UAAAwX,SAAAhY,IAAAwF,IAAAmT,OAAA;AAAAC,iBAAA5Y,IAAAyF,KAAAjF,UAAAyX,SAAAjY,IAAAyF,IAAAmT,OAAA;AAAAC,iBAAA7Y,IAAA0F,KAAAlF,UAAA0X,SAAAlY,IAAA0F,IAAAmT,OAAA;AAAAC,iBAAA9Y,IAAA2F,KAAAnF,UAAA2X,SAAAnY,IAAA2F,IAAAmT,OAAA;AAAA,aAAA9Y;QAAA;MAAAO,GAAAI;MAAAF,GAAAE;MAAAD,GAAAC;MAAA6E,GAAA7E;MAAA8E,GAAA9E;MAAA+E,GAAA/E;MAAAgF,GAAAhF;MAAA,CAAA;AAAA,YAAAgX;QAAA;;GAUlD,CAAA,EAAA,KAAA;AAAAxY,SAAA6V,SAAA5V,gBAMFtB,eAAa,EAAA,IAACsE,eAAY;AAAA,UAAEsQ,SAAS;KAAA,CAAA,EAAA,KAAA;AAAAvT,SAAAoW,eAS/B7C,SAAS,CAACjQ,QAAQ2G,MAAMC,QAAQ,IAAG;AAAAlK,SAAAuW,eAMnChD,SAAS,CAACjQ,QAAQ2G,MAAME,eAAe,IAAG;AAAAnK,SAAAiW,SAAAhW,gBAG9ClC,MAAI;GAAA,IACH2L,OAAI;AAAA,WACFU,WAAA,CAAA,CAAAmJ,SAAS,CAACjQ,QAAQ2G,KAAI,EAAA,IACtBI,OAAOC,KAAKiJ,SAAS,CAACjQ,QAAQ2G,KAAM,CAAC9G,QAClCoH,MAAMA,MAAM,UAAUA,MAAM,cAC9B,CAACC,SAAS;;GAAC,IAAArK,WAAA;AAAA,WAAAF,gBAGbnC,KAAG;KAAA,IACFoC,OAAI;AAAA,aAAEmK,OAAOI,QAAQ8I,SAAS,CAACjQ,QAAQ2G,QAAQ,EAAE,CAAC,CAAC9G,QAChD,CAACoH,OAAOA,MAAM,UAAUA,MAAM,cAChC;;KAAApK,WAEC,CAACuK,KAAKC,kBAAM;MAAA,IAAAiP,UAAAtZ,SAAA,EAAAuZ,UAAAD,QAAApZ,YAAAsZ,UAAAD,QAAAnZ;AAAAV,aAAA6Z,SAE0BnP,IAAG;AAAA1K,aAAA8Z,eACH/O,OAAOJ,MAAM,CAAA;AAAA/J,cAAAC,QAAA;OAAA,IAAAkZ,SAFvCpa,QAAQ,CAACsL,WAAS+O,SACfra,QAAQ,CAACwL,aAAW8O,SACpBta,QAAQ,CAAC0L;AAAW0O,kBAAAlZ,IAAAO,KAAAC,UAAAuY,SAAA/Y,IAAAO,IAAA2Y,OAAA;AAAAC,kBAAAnZ,IAAAS,KAAAD,UAAAwY,SAAAhZ,IAAAS,IAAA0Y,OAAA;AAAAC,kBAAApZ,IAAAU,KAAAF,UAAAyY,SAAAjZ,IAAAU,IAAA0Y,OAAA;AAAA,cAAApZ;SAAA;OAAAO,GAAAI;OAAAF,GAAAE;OAAAD,GAAAC;OAAA,CAAA;AAAA,aAAAoY;SAAA;KAEpC,CAAA;;GAAA,CAAA,EAAA,KAAA;AAAA5Z,SAAA6W,eAkBA9L,OAAOwI,SAAS,CAACjQ,QAAQgI,YAAY,MAAM,CAAA;AAAAtL,SAAAgX,eAM3CzD,SAAS,CAACjQ,QAAQC,aAAa,UAAS;AAAAvD,SAAAmX,eAMxC5D,SAAS,CAACjQ,QAAQ4W,WAAW,KAAI9C,QAAA;AAAApX,SAAAuX,eAYjCxM,OAAO,CAAC,CAACwI,SAAS,CAACjQ,QAAQiI,eAAe,CAAA;AAAAvL,SAAA0X,eAY1C3M,OAAO,CAAC,CAACwI,SAAS,CAACjQ,QAAQkI,gBAAgB,CAAA;AAAAxL,SAAA6X,eAY3C9M,OAAOwI,SAAS,CAACjQ,QAAQmI,iBAAiB,MAAM,CAAA;AAAAzL,SAAAgY,SAKftT,iBAAgB;AAAA1E,SAAAuV,SAAAtV,gBAKzDlC,MAAI;GAAA,IAAC2L,OAAI;AAAA,WAAEjF,cAAc,CAAC+F,SAAS;;GAAC,IAAArK,WAAA;IAAA,IAAAga,UAAAtO,SAAA,EAAAuO,UAAAD,QAAA3Z,YAAA8Z,UAAAF,QAAA5Z,WAAAE;AAAA4Z,YAAA5Z;IAAA,IAAA8Z,UAAAJ,QAAA1Z;AAAAV,WAAAoa,eAGnB3V,cAAc,CAAC+F,QAAM8P,QAAA;AAAAta,WAAAwa,SAAAva,gBAGhCnC,KAAG;KAAA,IAACoC,OAAI;AAAA,aAAEoE,iBAAiB;;KAAAnE,WACxBgM,aAAa;MACb,MAAMC,kBACJ5M,MAAMmE,qBAAqBe,kBAAkB,EAAE,KAAK;MACtD,MAAMpF,cACJE,MAAMsE,iBAAiBY,kBAAkB,EAAE,KAAK;AAClD,oBAAA;OAAA,IAAA+V,UAAAnO,SAAA,EAAAoO,UAAAD,QAAAja,YAAAoa,UAAAF,QAAAha,YAAAA,aAAAoa,UAAAF,QAAAla,YAAAA,aAAAsa,UAAAF,QAAApa,YAAAA;AAAAsa,eAAAta;AAAAV,cAAA0a,SAEWpb,MAAK;AAAAU,cAAAya,eAAYtO,SAAS/M,IAAEwb,QAAA;AAAA5a,cAAAya,eAClCjb,MAAMpB,qBAAqB+N,SAASxK,SAAS,EAAAmZ,QAAA;AAAA9a,cAAAya,eAC7CtO,SAAS7I,QAAQC,aAAa,WAASyX,QAAA;AAAAhb,cAAAya,eACvCjb,MAAM2C,qBAAqBgK,SAAS/J,OAAO,EAAA,KAAA;AAAAxB,oBAAAS,UAAAoZ,SAJlC9a,QAAQ,CAACyM,WAAW,EAAC,CAAA;AAAA,cAAAqO;UAAA;;KAOpC,CAAA,EAAA,KAAA;AAAAza,WAAAwa,SAAAva,gBAEFnC,KAAG;KAAA,IAACoC,OAAI;AAAA,aAAEsE,gBAAgB;;KAAArE,WACvBgM,oBAAQ;MAAA,IAAA+O,UAAAlO,SAAA,EAAAqO,UAAAH,QAAA1a,WAAAE,YAAAA,aAAA6a,UAAAF,QAAA3a,YAAAA,aAAA+a,UAAAF,QAAA7a,YAAAA;AAAA+a,cAAA/a;AAAAV,aAAAkb,eAEc/O,SAAS/M,IAAEic,QAAA;AAAArb,aAAAkb,eAC9B1b,MAAMpB,qBAAqB+N,SAASxK,SAAS,EAAA4Z,QAAA;AAAAvb,aAAAkb,eAC7C/O,SAAS7I,QAAQC,aAAa,WAASkY,QAAA;AAAAzb,aAAAkb,eACvC1b,MAAM2C,qBAAqBgK,SAAS/J,OAAO,EAAA,KAAA;AAAAxB,mBAAAS,UAAA6Z,SAJlCvb,QAAQ,CAAC8N,kBAAiB,CAAA;AAAA,aAAAyN;SAAA;KAMvC,CAAA,EAAA,KAAA;AAAAta,YAAAC,QAAA;KAAA,IAAA8a,QA7BKhc,QAAQ,CAACgO,eAAaiO,QACpBjc,QAAQ,CAACkO,qBAAmBgO,QAG5Blc,QAAQ,CAACoO;AAAY4N,eAAA9a,IAAAO,KAAAC,UAAA8Y,SAAAtZ,IAAAO,IAAAua,MAAA;AAAAC,eAAA/a,IAAAS,KAAAD,UAAA+Y,SAAAvZ,IAAAS,IAAAsa,MAAA;AAAAC,eAAAhb,IAAAU,KAAAF,UAAAmZ,SAAA3Z,IAAAU,IAAAsa,MAAA;AAAA,YAAAhb;OAAA;KAAAO,GAAAI;KAAAF,GAAAE;KAAAD,GAAAC;KAAA,CAAA;AAAA,WAAA2Y;;GAAA,CAAA,EAAA,KAAA;AAAAvZ,UAAAC,QAAA;GAAA,IAAAib,QA7L3Bnc,QAAQ,CAACsO,aAAW8N,QAClBpc,QAAQ,CAACgO,eAAaqO,QACpBrc,QAAQ,CAACkO,qBAAmBoO,QAC5Btc,QAAQ,CAAC8O,cAAYyN,QAoBrBvc,QAAQ,CAAC2Z,uBAAqB6C,QA+ChCxc,QAAQ,CAACgO,eAAayO,QACpBzc,QAAQ,CAACkO,qBAAmBwO,QAI9B1c,QAAQ,CAACgO,eAAa2O,QACpB3c,QAAQ,CAACkO,qBAAmB0O,QAE1B5c,QAAQ,CAACsL,WAASuR,QACf7c,QAAQ,CAACwL,aAAWsR,QACpB9c,QAAQ,CAAC0L,aAAWqR,QAIvB/c,QAAQ,CAACsL,WAAS0R,QACfhd,QAAQ,CAACwL,aAAWyR,QACpBjd,QAAQ,CAAC0L,aAAWwR,QA4B3Bld,QAAQ,CAACgO,eAAamP,QACpBnd,QAAQ,CAACkO,qBAAmBkP,QAE1Bpd,QAAQ,CAACsL,WAAS+R,QACfrd,QAAQ,CAACwL,aAAW8R,QAG7B1J,SAAS,CAACjQ,QAAQgI,YAAY,QAC1B3L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBoN,QAMvBvd,QAAQ,CAACsL,WAASkS,QACfxd,QAAQ,CAACwL,aAAWiS,QACpBzd,QAAQ,CAAC0L,aAAWgS,QAIvB1d,QAAQ,CAACsL,WAASqS,QACf3d,QAAQ,CAACwL,aAAWoS,QACpB5d,QAAQ,CAAC0L,aAAWmS,QAIvB7d,QAAQ,CAACsL,WAASwS,SACf9d,QAAQ,CAACwL,aAAWuS,SAG7BnK,SAAS,CAACjQ,QAAQiI,iBACd5L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgB6N,SAMvBhe,QAAQ,CAACsL,WAAS2S,SACfje,QAAQ,CAACwL,aAAW0S,SAG7BtK,SAAS,CAACjQ,QAAQkI,kBACd7L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBgO,SAMvBne,QAAQ,CAACsL,WAAS8S,SACfpe,QAAQ,CAACwL,aAAW6S,SAG7BzK,SAAS,CAACjQ,QAAQmI,iBAAiB,QAC/B9L,QAAQ,CAACkQ,kBACTlQ,QAAQ,CAACmQ,kBAAgBmO,SAMvBte,QAAQ,CAACsL,WAASiT,SACfve,QAAQ,CAACwL,aAAWgT,SACpBxe,QAAQ,CAAC0L;AAAWyQ,aAAAjb,IAAAO,KAAAC,UAAAkU,SAAA1U,IAAAO,IAAA0a,MAAA;AAAAC,aAAAlb,IAAAS,KAAAD,UAAAoU,SAAA5U,IAAAS,IAAAya,MAAA;AAAAC,aAAAnb,IAAAU,KAAAF,UAAAqU,SAAA7U,IAAAU,IAAAya,MAAA;AAAAC,aAAApb,IAAAwF,KAAAhF,UAAAsU,SAAA9U,IAAAwF,IAAA4V,MAAA;AAAAC,aAAArb,IAAAyF,KAAAjF,UAAAuU,SAAA/U,IAAAyF,IAAA4V,MAAA;AAAAC,aAAAtb,IAAA0F,KAAAlF,UAAAwU,SAAAhV,IAAA0F,IAAA4V,MAAA;AAAAC,aAAAvb,IAAA2F,KAAAnF,UAAAyU,SAAAjV,IAAA2F,IAAA4V,MAAA;AAAAC,aAAAxb,IAAA4F,KAAApF,UAAA0U,SAAAlV,IAAA4F,IAAA4V,MAAA;AAAAC,aAAAzb,IAAAoD,KAAA5C,UAAA2U,SAAAnV,IAAAoD,IAAAqY,MAAA;AAAAC,aAAA1b,IAAAuQ,KAAA/P,UAAA6U,SAAArV,IAAAuQ,IAAAmL,MAAA;AAAAC,aAAA3b,IAAAwQ,KAAAhQ,UAAA8U,SAAAtV,IAAAwQ,IAAAmL,MAAA;AAAAC,aAAA5b,IAAAyQ,KAAAjQ,UAAA+U,SAAAvV,IAAAyQ,IAAAmL,MAAA;AAAAC,aAAA7b,IAAA0Q,KAAAlQ,UAAAgV,SAAAxV,IAAA0Q,IAAAmL,MAAA;AAAAC,aAAA9b,IAAA2Q,KAAAnQ,UAAAiV,SAAAzV,IAAA2Q,IAAAmL,MAAA;AAAAC,aAAA/b,IAAA4Q,KAAApQ,UAAAkV,SAAA1V,IAAA4Q,IAAAmL,MAAA;AAAAC,aAAAhc,IAAA6Q,KAAArQ,UAAAmV,SAAA3V,IAAA6Q,IAAAmL,MAAA;AAAAC,aAAAjc,IAAA8Q,KAAAtQ,UAAAoV,SAAA5V,IAAA8Q,IAAAmL,MAAA;AAAAC,aAAAlc,IAAA+Q,KAAAvQ,UAAAsV,SAAA9V,IAAA+Q,IAAAmL,MAAA;AAAAC,aAAAnc,IAAAgR,KAAAxQ,UAAAuV,SAAA/V,IAAAgR,IAAAmL,MAAA;AAAAC,aAAApc,IAAAqD,KAAA7C,UAAAwV,SAAAhW,IAAAqD,IAAA+Y,MAAA;AAAAC,aAAArc,IAAAiR,KAAAzQ,UAAAyV,SAAAjW,IAAAiR,IAAAoL,MAAA;AAAAC,aAAAtc,IAAAkR,KAAA1Q,UAAA0V,SAAAlW,IAAAkR,IAAAoL,MAAA;AAAAC,aAAAvc,IAAAmR,KAAA3Q,UAAA2V,SAAAnW,IAAAmR,IAAAoL,MAAA;AAAAC,aAAAxc,IAAAoR,KAAA5Q,UAAA4V,SAAApW,IAAAoR,IAAAoL,MAAA;AAAAC,aAAAzc,IAAAqR,KAAA7Q,UAAA6V,SAAArW,IAAAqR,IAAAoL,MAAA;AAAAC,aAAA1c,IAAAsR,KAAA9Q,UAAA8V,SAAAtW,IAAAsR,IAAAoL,MAAA;AAAAC,aAAA3c,IAAAuR,KAAA/Q,UAAAgW,SAAAxW,IAAAuR,IAAAoL,MAAA;AAAAC,cAAA5c,IAAAwR,KAAAhR,UAAAiW,SAAAzW,IAAAwR,IAAAoL,OAAA;AAAAC,cAAA7c,IAAAyR,KAAAjR,UAAAkW,SAAA1W,IAAAyR,IAAAoL,OAAA;AAAAC,cAAA9c,IAAA0J,KAAAlJ,UAAAmW,SAAA3W,IAAA0J,IAAAoT,OAAA;AAAAC,cAAA/c,IAAA0R,KAAAlR,UAAAoW,SAAA5W,IAAA0R,IAAAqL,OAAA;AAAAC,cAAAhd,IAAA2R,KAAAnR,UAAAqW,SAAA7W,IAAA2R,IAAAqL,OAAA;AAAAC,cAAAjd,IAAA4R,KAAApR,UAAAsW,SAAA9W,IAAA4R,IAAAqL,OAAA;AAAAC,cAAAld,IAAA6R,KAAArR,UAAAuW,SAAA/W,IAAA6R,IAAAqL,OAAA;AAAAC,cAAAnd,IAAA8R,KAAAtR,UAAAwW,SAAAhX,IAAA8R,IAAAqL,OAAA;AAAAC,cAAApd,IAAA+R,KAAAvR,UAAAyW,SAAAjX,IAAA+R,IAAAqL,OAAA;AAAAC,cAAArd,IAAAgS,KAAAxR,UAAA0W,SAAAlX,IAAAgS,IAAAqL,OAAA;AAAAC,cAAAtd,IAAAiS,KAAAzR,UAAA2W,SAAAnX,IAAAiS,IAAAqL,OAAA;AAAA,UAAAtd;KAAA;GAAAO,GAAAI;GAAAF,GAAAE;GAAAD,GAAAC;GAAA6E,GAAA7E;GAAA8E,GAAA9E;GAAA+E,GAAA/E;GAAAgF,GAAAhF;GAAAiF,GAAAjF;GAAAyC,GAAAzC;GAAA4P,GAAA5P;GAAA6P,GAAA7P;GAAA8P,GAAA9P;GAAA+P,GAAA/P;GAAAgQ,GAAAhQ;GAAAiQ,GAAAjQ;GAAAkQ,GAAAlQ;GAAAmQ,GAAAnQ;GAAAoQ,GAAApQ;GAAAqQ,GAAArQ;GAAA0C,GAAA1C;GAAAsQ,GAAAtQ;GAAAuQ,GAAAvQ;GAAAwQ,GAAAxQ;GAAAyQ,GAAAzQ;GAAA0Q,GAAA1Q;GAAA2Q,GAAA3Q;GAAA4Q,GAAA5Q;GAAA6Q,GAAA7Q;GAAA8Q,GAAA9Q;GAAA+I,GAAA/I;GAAA+Q,GAAA/Q;GAAAgR,GAAAhR;GAAAiR,GAAAjR;GAAAkR,GAAAlR;GAAAmR,GAAAnR;GAAAoR,GAAApR;GAAAqR,GAAArR;GAAAsR,GAAAtR;GAAA,CAAA;AAAA,SAAA+T;KAAA,CAAA;;AA6C/C,SAAgB6I,aAAa5e,OAA0B;CACrD,MAAMG,SAASnB,WAAW;CAC1B,MAAMwF,QAAQvF,yBAAyB;AAEvC,eAAA;EAAA,IAAA4f,UAAAte,QAAA;AAAAC,SAAAqe,SAAApe,gBAEKlC,MAAI;GAAA,IACH2L,OAAI;AAAA,WAAElK,MAAM0C,sBAAsB;;GAAA,IAClCoc,WAAQ;AAAA,kBAAA;KAAA,IAAAC,UAAAC,UAAA;AAAA5d,kBAAAS,UAAAkd,SACM5e,QAAQ,CAAC8e,YAAW,CAAA;AAAA,YAAAF;QAAA;;GAAApe,WAKhC4B,QAAG9B,gBACFlC,MAAI;IAAA,IACH2L,OAAI;AAAA,YAAE5H,uBAAuBC,KAAK,CAAC;;IAAA,IACnCuc,WAAQ;AAAA,YAAAre,gBACL8D,eAAa;MAAA,IACZd,eAAY;AAAA,cAAElB,KAAK;;MACZiC;MACe7B;MACDa;MACDQ;MACEG;MACJG;MACA3F;MACVwB;MAAM,CAAA;;IAAA,IAAAQ,WAAA;AAAA,YAAAF,gBAIjBoT,iBAAe;MAAA,IACdpQ,eAAY;AAAA,cAAElB,KAAK;;MACZiC;MACe7B;MACOsB;MACDC;MACNC;MACJG;MACI1F;MACJD;MACVwB;MAAM,CAAA;;IAAA,CAAA;GAGnB,CAAA,CAAA;AAAAiB,eAAAS,UAAAgd,SAvCO1e,QAAQ,CAAC+e,aAAY,CAAA;AAAA,SAAAL;KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HeldKeysTopbar.js","names":["For","Show","detectPlatform","formatForDisplay","useStyles","useHotkeysDevtoolsState","RegisterableHotkey","HeldKeysBar","styles","state","platform","_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","useSymbols","codeLabel","c","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 { detectPlatform, formatForDisplay } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport type { RegisterableHotkey } from '@tanstack/hotkeys'\n\nexport function HeldKeysBar() {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n const platform = detectPlatform()\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 = () =>\n formatForDisplay(key as RegisterableHotkey, {\n platform,\n useSymbols: true,\n })\n const codeLabel = () => {\n const c = code()\n return c || 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":";;;;;;;;AAMA,SAAgBO,cAAc;CAC5B,MAAMC,SAASJ,WAAW;CAC1B,MAAMK,QAAQJ,yBAAyB;CACvC,MAAMK,WAAWR,gBAAgB;AAEjC,eAAA;EAAA,IAAAS,OAAAC,QAAA,EAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAG;AAAAC,SAAAF,OAAAG,gBAIOjB,MAAI;GAAA,IACHkB,OAAI;AAAA,WAAEV,MAAMW,UAAU,CAACC,SAAS;;GAAC,IACjCC,WAAQ;AAAA,kBAAA;KAAA,IAAAC,QAAAC,SAAA;AAAAC,kBAAAC,UAAAH,OAAef,QAAQ,CAACmB,WAAU,CAAA;AAAA,YAAAJ;QAAA;;GAAA,IAAAK,WAAA;AAAA,WAAAV,gBAEzClB,KAAG;KAAA,IAAC6B,OAAI;AAAA,aAAEpB,MAAMW,UAAU;;KAAAQ,WACvBE,QAAQ;MACR,MAAMC,aAAatB,MAAMuB,WAAW,CAACF;MACrC,MAAMG,cACJ9B,iBAAiB2B,KAA2B;OAC1CpB;OACAwB,YAAY;OACb,CAAC;MACJ,MAAMC,kBAAkB;AAEtB,cADUJ,MAAM,IACJM;;AAEd,oBAAA;OAAA,IAAAC,QAAAC,SAAA,EAAAC,QAAAF,MAAAxB;AAAAG,cAAAuB,OAEWP,MAAK;AAAAhB,cAAAqB,OAAApB,gBACXjB,MAAI;QAAA,IAACkB,OAAI;AAAA,gBAAEsB,WAAA,CAAA,CAAAN,WAAW,CAAA,EAAA,IAAIA,WAAW,KAAKL;;QAAG,IAAAF,WAAA;SAAA,IAAAc,QAAAC,SAAA;AAAA1B,gBAAAyB,OACTP,UAAS;AAAAV,sBAAAC,UAAAgB,OAA/BlC,QAAQ,CAACoC,WAAU,CAAA;AAAA,gBAAAF;;QAAA,CAAA,EAAA,KAAA;AAAAjB,oBAAAC,UAAAY,OAHvB9B,QAAQ,CAACqC,OAAM,CAAA;AAAA,cAAAP;UAAA;;KAO/B,CAAA;;GAAA,CAAA,CAAA;AAAAb,UAAAqB,QAAA;GAAA,IAAAC,MA3BGvC,QAAQ,CAACwC,aAAWC,OACjBzC,QAAQ,CAAC0C,mBAAiBC,OAC3B3C,QAAQ,CAAC4C;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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HotkeyList.js","names":["For","Show","createEffect","createMemo","createSignal","on","clsx","matchSorter","formatForDisplay","useStyles","useHotkeysDevtoolsState","effectiveSequenceMatchedSteps","ConflictBehavior","HotkeyRegistration","SequenceRegistrationView","sequenceKey","sequence","Array","join","HotkeyListProps","selectedId","setSelectedId","id","getTargetLabel","target","HTMLElement","Document","Window","document","window","tagName","toLowerCase","getTargetTooltip","tag","parts","push","className","classes","split","filter","Boolean","dataAttrs","from","attributes","attr","name","startsWith","map","value","length","findTargetConflicts","registration","all","other","hotkey","options","eventType","findScopeConflicts","findSequenceTargetConflicts","findSequenceScopeConflicts","buildRowTooltip","meta","description","undefined","SequenceListRow","props","reg","getSequences","sequenceProgressNow","styles","sequenceRegistrations","targetConflicts","scopeConflicts","hasTargetConflict","hasScopeConflict","conflictBehavior","targetConflictBadge","behavior","c","style","const","label","tooltip","scopeConflictTooltip","enabled","liveSequenceReg","find","r","triggerCount","matchedSteps","prevCount","setPrevCount","pulsing","setPulsing","current","setTimeout","metaName","rowTooltip","_el$","_tmpl$4","_el$3","firstChild","_el$4","_el$8","nextSibling","_el$9","_el$0","_el$1","_el$10","_el$11","_el$13","_el$12","_el$14","_el$15","$$click","_$insert","_$createComponent","when","children","_el$2","_tmpl$","_$effect","_$className","rowTooltipText","each","step","i","_el$16","_tmpl$5","_el$17","sequenceStepMatched","_el$5","_tmpl$2","hotkeyLabelName","_el$6","_tmpl$3","_el$7","_c$","_$memo","_el$18","_tmpl$6","_el$19","_p$","_v$1","badge","_v$10","tooltipText","e","t","_c$2","_el$20","_tmpl$7","_el$21","_el$22","_v$11","badgeInfo","_v$12","_v$","hotkeyRow","hotkeyRowSelected","hotkeyRowTriggered","_v$2","hotkeyLabel","_v$3","hotkeyLabelKeys","_v$4","hotkeyBadges","_v$5","badgeEnabled","badgeDisabled","_v$6","_v$7","badgeKeydown","badgeKeyup","_v$8","_v$9","badgeTarget","_v$0","a","o","n","s","h","d","HotkeyList","state","searchQuery","setSearchQuery","registrations","filteredRegistrations","query","trim","keys","filteredSequenceRegistrations","_el$23","_tmpl$9","_el$24","$$input","currentTarget","_el$25","_tmpl$8","searchClear","_v$13","searchContainer","_v$14","searchInput","_el$26","_tmpl$0","_el$27","_el$29","_el$28","panelHeader","_el$30","_tmpl$1","_el$36","_el$38","_el$39","_el$43","_el$44","_el$45","_el$46","_el$47","_el$48","_el$50","_el$49","_el$51","_el$52","_el$37","_el$40","_el$41","_el$42","_c$3","_el$53","_el$54","_v$25","_v$26","_c$4","_el$55","_el$56","_el$57","_v$27","_v$28","_v$15","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","_v$22","_v$23","_v$24","hotkeyList","_el$31","_tmpl$10","_el$32","_el$34","_el$33","_el$35","_$delegateEvents"],"sources":["../../src/components/HotkeyList.tsx"],"sourcesContent":["import { For, Show, createEffect, createMemo, createSignal, on } from 'solid-js'\nimport clsx from 'clsx'\nimport { matchSorter } from 'match-sorter'\nimport { formatForDisplay } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport { effectiveSequenceMatchedSteps } from '../sequence-progress'\nimport type {\n ConflictBehavior,\n HotkeyRegistration,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\n\nfunction sequenceKey(sequence: Array<string>): string {\n return sequence.join('|')\n}\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\nfunction findSequenceTargetConflicts(\n registration: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n): Array<SequenceRegistrationView> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n sequenceKey(other.sequence) === sequenceKey(registration.sequence) &&\n other.options.eventType === registration.options.eventType &&\n other.target === registration.target,\n )\n}\n\nfunction findSequenceScopeConflicts(\n registration: SequenceRegistrationView,\n all: Array<SequenceRegistrationView>,\n): Array<SequenceRegistrationView> {\n return all.filter(\n (other) =>\n other.id !== registration.id &&\n sequenceKey(other.sequence) === sequenceKey(registration.sequence) &&\n other.options.eventType === registration.options.eventType &&\n other.target !== registration.target,\n )\n}\n\nfunction buildRowTooltip(meta?: {\n name?: string\n description?: string\n}): string | undefined {\n if (!meta) return undefined\n const parts: Array<string> = []\n if (meta.name) parts.push(meta.name)\n if (meta.description) parts.push(meta.description)\n return parts.length > 0 ? parts.join(' — ') : undefined\n}\n\nfunction SequenceListRow(props: {\n reg: SequenceRegistrationView\n getSequences: () => Array<SequenceRegistrationView>\n sequenceProgressNow: () => number\n selectedId: () => string | null\n setSelectedId: (id: string | null) => void\n}) {\n const styles = useStyles()\n\n const sequenceRegistrations = () => props.getSequences()\n\n const targetConflicts = () =>\n findSequenceTargetConflicts(props.reg, sequenceRegistrations())\n const scopeConflicts = () =>\n findSequenceScopeConflicts(props.reg, sequenceRegistrations())\n\n const hasTargetConflict = () => targetConflicts().length > 0\n const hasScopeConflict = () => scopeConflicts().length > 0\n\n const conflictBehavior = (): ConflictBehavior =>\n props.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 sequence 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 sequence and target (conflictBehavior: error)`,\n }\n }\n return {\n style: 'badgeConflict' as const,\n label: '!',\n tooltip: `Warning: ${c.length} other binding${c.length > 1 ? 's' : ''} on same sequence and target`,\n }\n }\n\n const scopeConflictTooltip = () => {\n const c = scopeConflicts()\n return `Info: ${c.length} binding${c.length > 1 ? 's' : ''} with same sequence on different target${c.length > 1 ? 's' : ''}`\n }\n\n const enabled = () => props.reg.options.enabled !== false\n\n const liveSequenceReg = createMemo(\n () =>\n sequenceRegistrations().find((r) => r.id === props.reg.id) ?? props.reg,\n )\n\n const triggerCount = () =>\n sequenceRegistrations().find((r) => r.id === props.reg.id)?.triggerCount ??\n props.reg.triggerCount\n\n const matchedSteps = createMemo(() =>\n effectiveSequenceMatchedSteps(\n liveSequenceReg(),\n props.sequenceProgressNow(),\n ),\n )\n\n const [prevCount, setPrevCount] = createSignal(props.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 const metaName = () => props.reg.options.meta?.name\n const rowTooltip = () => buildRowTooltip(props.reg.options.meta)\n\n return (\n <div\n class={clsx(\n styles().hotkeyRow,\n props.selectedId() === props.reg.id && styles().hotkeyRowSelected,\n pulsing() && styles().hotkeyRowTriggered,\n rowTooltip() && styles().tooltip,\n )}\n onClick={() => props.setSelectedId(props.reg.id)}\n >\n <Show when={rowTooltip()}>\n <span class={styles().rowTooltipText} data-tooltip>\n {rowTooltip()}\n </span>\n </Show>\n <span class={styles().hotkeyLabel}>\n <span class={styles().hotkeyLabelKeys}>\n <For each={liveSequenceReg().sequence}>\n {(step, i) => (\n <span>\n <Show when={i() > 0}> </Show>\n <span\n class={\n i() < matchedSteps()\n ? styles().sequenceStepMatched\n : undefined\n }\n >\n {formatForDisplay(step)}\n </span>\n </span>\n )}\n </For>\n </span>\n <Show when={metaName()}>\n <span class={styles().hotkeyLabelName}>{metaName()}</span>\n </Show>\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(styles().badge, styles().badgeInfo, styles().tooltip)}\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() ? styles().badgeEnabled : styles().badgeDisabled,\n styles().tooltip,\n )}\n >\n {enabled() ? 'on' : 'off'}\n <span class={styles().tooltipText} data-tooltip>\n {enabled() ? 'Sequence is enabled' : 'Sequence is disabled'}\n </span>\n </span>\n <span\n class={clsx(\n styles().badge,\n (props.reg.options.eventType ?? 'keydown') === 'keydown'\n ? styles().badgeKeydown\n : styles().badgeKeyup,\n styles().tooltip,\n )}\n >\n {props.reg.options.eventType ?? 'keydown'}\n <span class={styles().tooltipText} data-tooltip>\n Fires on {props.reg.options.eventType ?? 'keydown'} event\n </span>\n </span>\n <span\n class={clsx(styles().badge, styles().badgeTarget, styles().tooltip)}\n >\n {getTargetLabel(props.reg.target)}\n <span class={styles().tooltipText} data-tooltip>\n {getTargetTooltip(props.reg.target)}\n </span>\n </span>\n </div>\n </div>\n )\n}\n\nexport function HotkeyList(props: HotkeyListProps) {\n const styles = useStyles()\n const state = useHotkeysDevtoolsState()\n\n const [searchQuery, setSearchQuery] = createSignal('')\n\n const registrations = createMemo(() => state.registrations())\n const sequenceRegistrations = createMemo(() => state.sequenceRegistrations())\n\n const filteredRegistrations = createMemo(() => {\n const query = searchQuery().trim()\n if (!query) return registrations()\n return matchSorter(registrations(), query, {\n keys: [\n (r) => formatForDisplay(r.hotkey),\n 'hotkey',\n 'options.meta.name',\n 'options.meta.description',\n ],\n })\n })\n\n const filteredSequenceRegistrations = createMemo(() => {\n const query = searchQuery().trim()\n if (!query) return sequenceRegistrations()\n return matchSorter(sequenceRegistrations(), query, {\n keys: [\n (r) => r.sequence.map((s) => formatForDisplay(s)).join(' '),\n (r) => r.sequence.join(' '),\n 'options.meta.name',\n 'options.meta.description',\n ],\n })\n })\n\n return (\n <>\n <div class={styles().searchContainer}>\n <input\n type=\"text\"\n class={styles().searchInput}\n placeholder=\"Search hotkeys...\"\n value={searchQuery()}\n onInput={(e) => setSearchQuery(e.currentTarget.value)}\n />\n <Show when={searchQuery()}>\n <button\n class={styles().searchClear}\n onClick={() => setSearchQuery('')}\n >\n ×\n </button>\n </Show>\n </div>\n\n <div class={styles().panelHeader}>\n Hotkeys ({filteredRegistrations().length})\n </div>\n <div class={styles().hotkeyList}>\n <For each={filteredRegistrations()}>\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 const metaName = () => reg.options.meta?.name\n const rowTooltip = () => buildRowTooltip(reg.options.meta)\n\n return (\n <div\n class={clsx(\n styles().hotkeyRow,\n props.selectedId() === reg.id && styles().hotkeyRowSelected,\n pulsing() && styles().hotkeyRowTriggered,\n rowTooltip() && styles().tooltip,\n )}\n onClick={() => props.setSelectedId(reg.id)}\n >\n <Show when={rowTooltip()}>\n <span class={styles().rowTooltipText} data-tooltip>\n {rowTooltip()}\n </span>\n </Show>\n <span class={styles().hotkeyLabel}>\n <span class={styles().hotkeyLabelKeys}>\n {formatForDisplay(reg.hotkey)}\n </span>\n <Show when={metaName()}>\n <span class={styles().hotkeyLabelName}>{metaName()}</span>\n </Show>\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 <div class={styles().panelHeader}>\n Sequences ({filteredSequenceRegistrations().length})\n </div>\n <div class={styles().hotkeyList}>\n <For each={filteredSequenceRegistrations()}>\n {(reg) => (\n <SequenceListRow\n reg={reg}\n getSequences={sequenceRegistrations}\n sequenceProgressNow={state.sequenceProgressNow}\n selectedId={props.selectedId}\n setSelectedId={props.setSelectedId}\n />\n )}\n </For>\n </div>\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Shell.js","names":["createEffect","createMemo","createSignal","onCleanup","onMount","Header","HeaderLogo","MainPanel","useStyles","useHotkeysDevtoolsState","HeldKeysBar","HotkeyList","DetailsPanel","readResizeObserverBlockSize","entry","ResizeObserverEntry","box","borderBoxSize","undefined","blockSize","contentRect","height","resolvePluginHost","el","HTMLElement","found","closest","n","i","parentElement","Shell","styles","state","selectedId","setSelectedId","leftPanelWidth","setLeftPanelWidth","isDragging","setIsDragging","shellRootEl","setShellRootEl","slotHeightPx","setSlotHeightPx","selectedRegistration","id","hotkey","registrations","find","r","sequence","sequenceRegistrations","dragStartX","dragStartWidth","handleMouseDown","e","MouseEvent","preventDefault","stopPropagation","document","body","style","cursor","userSelect","clientX","handleMouseMove","deltaX","newWidth","Math","max","min","handleMouseUp","addEventListener","removeEventListener","ResizeObserver","pluginHost","applyHeight","clientH","clientHeight","fromObserver","h","round","ro","entries","observe","disconnect","_el$","_tmpl$2","_$use","_$insert","_$createComponent","class","mainPanelShell","children","flavor","light","dark","_el$2","_tmpl$","_el$3","firstChild","_el$4","_el$5","_el$6","nextSibling","_el$7","_el$8","$$mousedown","_$effect","_p$","_v$","mainContainer","_v$2","panelsContainer","_v$3","leftPanel","_v$4","_v$5","leftPanelScroll","_v$6","dragHandle","_v$7","rightPanel","_v$8","panelHeader","_$className","t","a","o","_$setStyleProperty","s","_v$9","shellRoot","_v$0","_$style","_$delegateEvents"],"sources":["../../src/components/Shell.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n onMount,\n} 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\nfunction readResizeObserverBlockSize(entry: ResizeObserverEntry): number {\n const [box] = entry.borderBoxSize\n if (box !== undefined) return box.blockSize\n return entry.contentRect.height\n}\n\n/** TanStack devtools plugin pane; percentage heights break without this. */\nfunction resolvePluginHost(el: HTMLElement): HTMLElement | null {\n const found = el.closest('[id^=\"plugin-container-\"]')\n if (found instanceof HTMLElement) return found\n let n: HTMLElement | null = el\n for (let i = 0; i < 3 && n; i++) {\n n = n.parentElement\n }\n return n\n}\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 const [shellRootEl, setShellRootEl] = createSignal<HTMLElement | null>(null)\n const [slotHeightPx, setSlotHeightPx] = createSignal<number | undefined>(\n undefined,\n )\n\n const selectedRegistration = createMemo(() => {\n const id = selectedId()\n if (!id) return null\n const hotkey = state.registrations().find((r) => r.id === id)\n if (hotkey) return hotkey\n const sequence = state.sequenceRegistrations().find((r) => r.id === id)\n return sequence ?? 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 createEffect(() => {\n const el = shellRootEl()\n if (!el || typeof ResizeObserver === 'undefined') return\n const pluginHost = resolvePluginHost(el)\n if (!pluginHost) return\n\n const applyHeight = (entry?: ResizeObserverEntry) => {\n const clientH = pluginHost.clientHeight\n const fromObserver =\n entry !== undefined ? readResizeObserverBlockSize(entry) : 0\n const h = clientH > 0 ? clientH : fromObserver\n if (h > 0) setSlotHeightPx(Math.round(h))\n }\n\n applyHeight()\n const ro = new ResizeObserver((entries) => {\n applyHeight(entries[0])\n })\n ro.observe(pluginHost)\n onCleanup(() => ro.disconnect())\n })\n\n return (\n <div\n ref={(el) => setShellRootEl(el)}\n class={styles().shellRoot}\n style={{\n ...(slotHeightPx() !== undefined\n ? {\n height: `${slotHeightPx()}px`,\n 'max-height': `${slotHeightPx()}px`,\n }\n : {}),\n }}\n >\n <MainPanel class={styles().mainPanelShell}>\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 <div class={styles().leftPanelScroll}>\n <HotkeyList\n selectedId={selectedId}\n setSelectedId={setSelectedId}\n />\n </div>\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 </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ThemeContextProvider","HotkeysContextProvider","Shell","TanStackDevtoolsTheme","DevtoolsProps","theme","HotkeysDevtools","props","_$createComponent","children"],"sources":["../../src/components/index.tsx"],"sourcesContent":["import { ThemeContextProvider } from '@tanstack/devtools-ui'\nimport { HotkeysContextProvider } from '../HotkeysContextProvider'\nimport { Shell } from './Shell'\n\nimport type { TanStackDevtoolsTheme } from '@tanstack/devtools-ui'\n\ninterface DevtoolsProps {\n theme: TanStackDevtoolsTheme\n}\n\nexport default function HotkeysDevtools(props: DevtoolsProps) {\n return (\n <ThemeContextProvider theme={props.theme}>\n <HotkeysContextProvider>\n <Shell />\n </HotkeysContextProvider>\n </ThemeContextProvider>\n )\n}\n"],"mappings":";;;;;;AAUA,SAAwBM,gBAAgBC,OAAsB;AAC5D,QAAAC,gBACGR,sBAAoB;EAAA,IAACK,QAAK;AAAA,UAAEE,MAAMF;;EAAK,IAAAI,WAAA;AAAA,UAAAD,gBACrCP,wBAAsB,EAAA,IAAAQ,WAAA;AAAA,WAAAD,gBACpBN,OAAK,EAAA,CAAA;MAAA,CAAA;;EAAA,CAAA"}
|
package/dist/core.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","names":["constructCoreClass","ClassType","loadComponent","HotkeysDevtoolsInit","coreClasses","HotkeysDevtoolsCore","HotkeysDevtoolsCoreNoOp"],"sources":["../src/core.tsx"],"sourcesContent":["import { constructCoreClass } from '@tanstack/devtools-utils/solid'\nimport type { ClassType } from '@tanstack/devtools-utils/solid'\n\nconst loadComponent = () => import('./components/index')\n\nexport interface HotkeysDevtoolsInit {}\n\nconst coreClasses = constructCoreClass(loadComponent)\n\nexport const HotkeysDevtoolsCore: ClassType = coreClasses[0]\nexport const HotkeysDevtoolsCoreNoOp: ClassType = coreClasses[1]\n"],"mappings":";;;AAGA,MAAME,sBAAsB,OAAO;AAInC,MAAME,cAAcJ,mBAAmBE,cAAc;AAErD,MAAaG,sBAAiCD,YAAY;AAC1D,MAAaE,0BAAqCF,YAAY"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Devtools.HotkeysDevtoolsCoreNoOp","Devtools.HotkeysDevtoolsCore"],"sources":["../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\nimport type { ClassType } from '@tanstack/devtools-utils/solid'\n\nexport const HotkeysDevtoolsCore: ClassType =\n process.env.NODE_ENV !== 'development'\n ? Devtools.HotkeysDevtoolsCoreNoOp\n : Devtools.HotkeysDevtoolsCore\n\nexport type { HotkeysDevtoolsInit } from './core'\n"],"mappings":";;;;;AAKA,MAAa,sBACX,QAAQ,IAAI,aAAa,gBACrBA,0BACAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sequence-progress.js","names":[],"sources":["../src/sequence-progress.ts"],"sourcesContent":["import { DEFAULT_SEQUENCE_TIMEOUT } from '@tanstack/hotkeys'\nimport type { SequenceRegistrationView } from '@tanstack/hotkeys'\n\n/**\n * Matched step count for UI, accounting for inter-key timeout even if the\n * manager has not processed another event yet.\n */\nexport function effectiveSequenceMatchedSteps(\n reg: SequenceRegistrationView,\n now: number,\n): number {\n const timeout = reg.options.timeout ?? DEFAULT_SEQUENCE_TIMEOUT\n if (\n reg.matchedStepCount <= 0 ||\n reg.partialMatchLastKeyTime <= 0 ||\n now - reg.partialMatchLastKeyTime > timeout\n ) {\n return 0\n }\n return reg.matchedStepCount\n}\n\n/** Whether the devtools should run a short interval to refresh sequence progress UI. */\nexport function needsSequenceProgressClock(\n regs: Array<SequenceRegistrationView>,\n now: number,\n): boolean {\n return regs.some((reg) => effectiveSequenceMatchedSteps(reg, now) > 0)\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,8BACd,KACA,KACQ;CACR,MAAM,UAAU,IAAI,QAAQ,WAAW;AACvC,KACE,IAAI,oBAAoB,KACxB,IAAI,2BAA2B,KAC/B,MAAM,IAAI,0BAA0B,QAEpC,QAAO;AAET,QAAO,IAAI;;;AAIb,SAAgB,2BACd,MACA,KACS;AACT,QAAO,KAAK,MAAM,QAAQ,8BAA8B,KAAK,IAAI,GAAG,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/styles/tokens.ts"],"sourcesContent":["export const tokens = {\n colors: {\n inherit: 'inherit',\n current: 'currentColor',\n transparent: 'transparent',\n black: '#000000',\n white: '#ffffff',\n neutral: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n darkGray: {\n 50: '#525c7a',\n 100: '#49536e',\n 200: '#414962',\n 300: '#394056',\n 400: '#313749',\n 500: '#292e3d',\n 600: '#212530',\n 700: '#191c24',\n 800: '#111318',\n 900: '#0b0d10',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185',\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDF89',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E',\n },\n purple: {\n 25: '#FAFAFF',\n 50: '#F4F3FF',\n 100: '#EBE9FE',\n 200: '#D9D6FE',\n 300: '#BDB4FE',\n 400: '#9B8AFB',\n 500: '#7A5AF8',\n 600: '#6938EF',\n 700: '#5925DC',\n 800: '#4A1FB8',\n 900: '#3E1C96',\n },\n teal: {\n 25: '#F6FEFC',\n 50: '#F0FDF9',\n 100: '#CCFBEF',\n 200: '#99F6E0',\n 300: '#5FE9D0',\n 400: '#2ED3B7',\n 500: '#15B79E',\n 600: '#0E9384',\n 700: '#107569',\n 800: '#125D56',\n 900: '#134E48',\n },\n pink: {\n 25: '#fdf2f8',\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#500724',\n },\n cyan: {\n 25: '#ecfeff',\n 50: '#cffafe',\n 100: '#a5f3fc',\n 200: '#67e8f9',\n 300: '#22d3ee',\n 400: '#06b6d4',\n 500: '#0891b2',\n 600: '#0e7490',\n 700: '#155e75',\n 800: '#164e63',\n 900: '#083344',\n },\n },\n alpha: {\n 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': 'calc(var(--tsrd-font-size) * 0.625)',\n xs: 'calc(var(--tsrd-font-size) * 0.75)',\n sm: 'calc(var(--tsrd-font-size) * 0.875)',\n md: 'var(--tsrd-font-size)',\n lg: 'calc(var(--tsrd-font-size) * 1.125)',\n xl: 'calc(var(--tsrd-font-size) * 1.25)',\n '2xl': 'calc(var(--tsrd-font-size) * 1.5)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.875)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '7xl': 'calc(var(--tsrd-font-size) * 4.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 6)',\n '9xl': 'calc(var(--tsrd-font-size) * 8)',\n },\n lineHeight: {\n '3xs': 'calc(var(--tsrd-font-size) * 0.75)',\n '2xs': 'calc(var(--tsrd-font-size) * 0.875)',\n xs: 'calc(var(--tsrd-font-size) * 1)',\n sm: 'calc(var(--tsrd-font-size) * 1.25)',\n md: 'calc(var(--tsrd-font-size) * 1.5)',\n lg: 'calc(var(--tsrd-font-size) * 1.75)',\n xl: 'calc(var(--tsrd-font-size) * 2)',\n '2xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '3xl': 'calc(var(--tsrd-font-size) * 2.5)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.75)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.25)',\n '7xl': 'calc(var(--tsrd-font-size) * 3.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '9xl': 'calc(var(--tsrd-font-size) * 4)',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n fontFamily: {\n sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: 'calc(var(--tsrd-font-size) * 0.125)',\n sm: 'calc(var(--tsrd-font-size) * 0.25)',\n md: 'calc(var(--tsrd-font-size) * 0.375)',\n lg: 'calc(var(--tsrd-font-size) * 0.5)',\n xl: 'calc(var(--tsrd-font-size) * 0.75)',\n '2xl': 'calc(var(--tsrd-font-size) * 1)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.5)',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',\n 0.5: 'calc(var(--tsrd-font-size) * 0.125)',\n 1: 'calc(var(--tsrd-font-size) * 0.25)',\n 1.5: 'calc(var(--tsrd-font-size) * 0.375)',\n 2: 'calc(var(--tsrd-font-size) * 0.5)',\n 2.5: 'calc(var(--tsrd-font-size) * 0.625)',\n 3: 'calc(var(--tsrd-font-size) * 0.75)',\n 3.5: 'calc(var(--tsrd-font-size) * 0.875)',\n 4: 'calc(var(--tsrd-font-size) * 1)',\n 4.5: 'calc(var(--tsrd-font-size) * 1.125)',\n 5: 'calc(var(--tsrd-font-size) * 1.25)',\n 5.5: 'calc(var(--tsrd-font-size) * 1.375)',\n 6: 'calc(var(--tsrd-font-size) * 1.5)',\n 6.5: 'calc(var(--tsrd-font-size) * 1.625)',\n 7: 'calc(var(--tsrd-font-size) * 1.75)',\n 8: 'calc(var(--tsrd-font-size) * 2)',\n 9: 'calc(var(--tsrd-font-size) * 2.25)',\n 10: 'calc(var(--tsrd-font-size) * 2.5)',\n 11: 'calc(var(--tsrd-font-size) * 2.75)',\n 12: 'calc(var(--tsrd-font-size) * 3)',\n 14: 'calc(var(--tsrd-font-size) * 3.5)',\n 16: 'calc(var(--tsrd-font-size) * 4)',\n 20: 'calc(var(--tsrd-font-size) * 5)',\n 24: 'calc(var(--tsrd-font-size) * 6)',\n 28: 'calc(var(--tsrd-font-size) * 7)',\n 32: 'calc(var(--tsrd-font-size) * 8)',\n 36: 'calc(var(--tsrd-font-size) * 9)',\n 40: 'calc(var(--tsrd-font-size) * 10)',\n 44: 'calc(var(--tsrd-font-size) * 11)',\n 48: 'calc(var(--tsrd-font-size) * 12)',\n 52: 'calc(var(--tsrd-font-size) * 13)',\n 56: 'calc(var(--tsrd-font-size) * 14)',\n 60: 'calc(var(--tsrd-font-size) * 15)',\n 64: 'calc(var(--tsrd-font-size) * 16)',\n 72: 'calc(var(--tsrd-font-size) * 18)',\n 80: 'calc(var(--tsrd-font-size) * 20)',\n 96: 'calc(var(--tsrd-font-size) * 24)',\n },\n shadow: {\n xs: (_: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,\n sm: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,\n md: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,\n lg: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,\n xl: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>\n `0 25px 50px -12px ${color}` as const,\n inner: (color: string = 'rgb(0 0 0 / 0.05)') =>\n `inset 0 2px 4px 0 ${color}` as const,\n none: () => `none` as const,\n },\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n} as const\n"],"mappings":";AAAA,MAAa,SAAS;CACpB,QAAQ;EACN,SAAS;EACT,SAAS;EACT,aAAa;EACb,OAAO;EACP,OAAO;EACP,SAAS;GACP,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,UAAU;GACR,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,MAAM;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,OAAO;GACL,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,KAAK;GACH,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,QAAQ;GACN,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,QAAQ;GACN,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACN;EACF;CACD,OAAO;EACL,KAAK;EACL,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,GAAG;EACJ;CACD,MAAM;EACJ,MAAM;GACJ,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACR;EACD,YAAY;GACV,OAAO;GACP,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACP,OAAO;GACR;EACD,QAAQ;GACN,MAAM;GACN,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,QAAQ;GACR,UAAU;GACV,MAAM;GACN,WAAW;GACX,OAAO;GACR;EACD,YAAY;GACV,MAAM;GACN,MAAM;GACP;EACF;CACD,aAAa;EACX,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACR;CACD,QAAQ,EACN,QAAQ;EACN,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACP,OAAO;EACP,MAAM;EACP,EACF;CACD,MAAM;EACJ,GAAG;EACH,KAAM;EACN,IAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,KAAK;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACL;CACD,QAAQ;EACN,KAAK,IAAY,uBACf;EACF,KAAK,QAAgB,uBACnB,eAAe,MAAM,mBAAmB;EAC1C,KAAK,QAAgB,uBACnB,kBAAkB,MAAM,mBAAmB;EAC7C,KAAK,QAAgB,uBACnB,oBAAoB,MAAM,mBAAmB;EAC/C,KAAK,QAAgB,uBACnB,oBAAoB,MAAM,oBAAoB;EAChD,QAAQ,QAAgB,wBACtB,qBAAqB;EACvB,QAAQ,QAAgB,wBACtB,qBAAqB;EACvB,YAAY;EACb;CACD,UAAU;EACR,MAAM;EACN,MAAM;EACN,MAAM;EACN,QAAQ;EACR,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO;EACP,SAAS;EACV;CACF"}
|