@tanstack/hotkeys-devtools 0.4.3 → 0.5.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.
@@ -1,3 +1,4 @@
1
+ import { needsSequenceProgressClock } from "./sequence-progress.js";
1
2
  import { createComponent } from "solid-js/web";
2
3
  import { createContext, createEffect, createSignal, onCleanup, useContext } from "solid-js";
3
4
  import { HotkeyManager, KeyStateTracker, SequenceManager } from "@tanstack/hotkeys";
@@ -7,7 +8,8 @@ const HotkeysDevtoolsContext = createContext({
7
8
  registrations: () => [],
8
9
  sequenceRegistrations: () => [],
9
10
  heldKeys: () => [],
10
- heldCodes: () => ({})
11
+ heldCodes: () => ({}),
12
+ sequenceProgressNow: () => Date.now()
11
13
  });
12
14
  function HotkeysContextProvider(props) {
13
15
  const manager = HotkeyManager.getInstance();
@@ -36,12 +38,33 @@ function HotkeysContextProvider(props) {
36
38
  }).unsubscribe;
37
39
  onCleanup(() => unsubscribe());
38
40
  });
41
+ const [sequenceProgressNow, setSequenceProgressNow] = createSignal(Date.now());
42
+ createEffect(() => {
43
+ const regs = sequenceRegistrations();
44
+ let id;
45
+ const tick = () => {
46
+ const t = Date.now();
47
+ setSequenceProgressNow(t);
48
+ if (!needsSequenceProgressClock(sequenceRegistrations(), t)) {
49
+ if (id !== void 0) {
50
+ clearInterval(id);
51
+ id = void 0;
52
+ }
53
+ }
54
+ };
55
+ if (needsSequenceProgressClock(regs, Date.now())) id = setInterval(tick, 50);
56
+ else setSequenceProgressNow(Date.now());
57
+ onCleanup(() => {
58
+ if (id !== void 0) clearInterval(id);
59
+ });
60
+ });
39
61
  return createComponent(HotkeysDevtoolsContext.Provider, {
40
62
  value: {
41
63
  registrations,
42
64
  sequenceRegistrations,
43
65
  heldKeys,
44
- heldCodes
66
+ heldCodes,
67
+ sequenceProgressNow
45
68
  },
46
69
  get children() {
47
70
  return props.children;
@@ -1 +1 @@
1
- {"version":3,"file":"HotkeysContextProvider.js","names":["createContext","createEffect","createSignal","onCleanup","useContext","HotkeyManager","KeyStateTracker","SequenceManager","Accessor","HotkeyRegistration","SequenceRegistrationView","HotkeysDevtoolsContextType","registrations","Array","sequenceRegistrations","heldKeys","heldCodes","Record","HotkeysDevtoolsContext","HotkeysContextProvider","props","children","manager","getInstance","sequenceManager","tracker","setRegistrations","from","state","values","setSequenceRegistrations","setHeldKeys","store","setHeldCodes","unsubscribe","subscribe","_$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 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}\n\nconst HotkeysDevtoolsContext = createContext<HotkeysDevtoolsContextType>({\n registrations: () => [],\n sequenceRegistrations: () => [],\n heldKeys: () => [],\n heldCodes: () => ({}),\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 return (\n <HotkeysDevtoolsContext.Provider\n value={{\n registrations,\n sequenceRegistrations,\n heldKeys,\n heldCodes,\n }}\n >\n {props.children}\n </HotkeysDevtoolsContext.Provider>\n )\n}\n\nexport function useHotkeysDevtoolsState() {\n return useContext(HotkeysDevtoolsContext)\n}\n"],"mappings":";;;;;AAyBA,MAAMkB,yBAAyBlB,cAA0C;CACvEY,qBAAqB,EAAE;CACvBE,6BAA6B,EAAE;CAC/BC,gBAAgB,EAAE;CAClBC,kBAAkB,EAAE;CACrB,CAAC;AAEF,SAAgBG,uBAAuBC,OAA0B;CAC/D,MAAME,UAAUjB,cAAckB,aAAa;CAC3C,MAAMC,kBAAkBjB,gBAAgBgB,aAAa;CACrD,MAAME,UAAUnB,gBAAgBiB,aAAa;CAG7C,MAAM,CAACX,eAAec,oBAAoBxB,aAExCW,MAAMc,KAAKL,QAAQV,cAAcgB,MAAMC,QAAQ,CAAC,CAAC;CACnD,MAAM,CAACf,uBAAuBgB,4BAA4B5B,aAExDW,MAAMc,KAAKH,gBAAgBZ,cAAcgB,MAAMC,QAAQ,CAAC,CAAC;CAC3D,MAAM,CAACd,UAAUgB,eAAe7B,aAC9BuB,QAAQO,MAAMJ,MAAMb,SACrB;CACD,MAAM,CAACC,WAAWiB,gBAAgB/B,aAChCuB,QAAQO,MAAMJ,MAAMZ,UACrB;AAGDf,oBAAmB;EACjB,MAAMiC,cAAcZ,QAAQV,cAAcuB,gBAAgB;AACxDT,oBAAiBb,MAAMc,KAAKL,QAAQV,cAAcgB,MAAMC,QAAQ,CAAC,CAAC;IAClE,CAACK;AACH/B,kBAAgB+B,aAAa,CAAC;GAC9B;AAGFjC,oBAAmB;EACjB,MAAMiC,cAAcV,gBAAgBZ,cAAcuB,gBAAgB;AAChEL,4BACEjB,MAAMc,KAAKH,gBAAgBZ,cAAcgB,MAAMC,QAAQ,CACzD,CAAC;IACD,CAACK;AACH/B,kBAAgB+B,aAAa,CAAC;GAC9B;AAGFjC,oBAAmB;EACjB,MAAMiC,cAAcT,QAAQO,MAAMG,gBAAgB;AAChDJ,eAAYN,QAAQO,MAAMJ,MAAMb,SAAS;AACzCkB,gBAAaR,QAAQO,MAAMJ,MAAMZ,UAAU;IAC3C,CAACkB;AACH/B,kBAAgB+B,aAAa,CAAC;GAC9B;AAEF,QAAAE,gBACGlB,uBAAuBmB,UAAQ;EAC9BC,OAAO;GACL1B;GACAE;GACAC;GACAC;GACD;EAAA,IAAAK,WAAA;AAAA,UAEAD,MAAMC;;EAAQ,CAAA;;AAKrB,SAAgBkB,0BAA0B;AACxC,QAAOnC,WAAWc,uBAAuB"}
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,12 +1,14 @@
1
+ import { effectiveSequenceMatchedSteps } from "../sequence-progress.js";
1
2
  import { useHotkeysDevtoolsState } from "../HotkeysContextProvider.js";
2
3
  import { useStyles } from "../styles/use-styles.js";
3
4
  import { ActionButtons } from "./ActionButtons.js";
4
5
  import { className, createComponent, effect, insert, template } from "solid-js/web";
5
6
  import { For, Show, createMemo } from "solid-js";
6
7
  import { formatForDisplay, formatHotkeySequence } from "@tanstack/hotkeys";
8
+ import clsx from "clsx";
7
9
 
8
10
  //#region src/components/DetailsPanel.tsx
9
- var _tmpl$ = /* @__PURE__ */ template(`<div><div></div><div><div>ID</div><div></div><div>Raw</div><div></div><div>Target</div><div>`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>Conflicts (<!>)</div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<div><div><div>Key Breakdown</div><div></div></div><div><div>Actions</div></div><div><div>Options</div><div><div><span>enabled</span><span></span></div><div><span>eventType</span><span></span></div><div><span>preventDefault</span><span></span></div><div><span>stopPropagation</span><span></span></div><div><span>ignoreInputs</span><span></span></div><div><span>requireReset</span><span></span></div><div><span>conflictBehavior</span><span></span></div><div><span>hasFired</span><span>`), _tmpl$4 = /* @__PURE__ */ template(`<span>+`), _tmpl$5 = /* @__PURE__ */ template(`<span>`), _tmpl$6 = /* @__PURE__ */ template(`<div><span></span> <!>: <!> (<!>) on `), _tmpl$7 = /* @__PURE__ */ template(`<div><span>scope</span> <!>: <!> (<!>) on `), _tmpl$8 = /* @__PURE__ */ template(`<div><div></div><div><div>ID</div><div></div><div>Sequence</div><div></div><div>Target</div><div>`), _tmpl$9 = /* @__PURE__ */ template(`<div><div><div>Key Breakdown</div><div></div></div><div><div>Actions</div></div><div><div>Options</div><div><div><span>enabled</span><span></span></div><div><span>eventType</span><span></span></div><div><span>timeout</span><span>ms</span></div><div><span>preventDefault</span><span></span></div><div><span>stopPropagation</span><span></span></div><div><span>ignoreInputs</span><span></span></div><div><span>conflictBehavior</span><span>`), _tmpl$0 = /* @__PURE__ */ template(`<span>→`), _tmpl$1 = /* @__PURE__ */ template(`<div>`), _tmpl$10 = /* @__PURE__ */ template(`<div>Select a hotkey or sequence from the list to view its details`);
11
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div></div><div><div>ID</div><div></div><div>Raw</div><div></div><div>Target</div><div>`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>Conflicts (<!>)</div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<div><div><div>Key Breakdown</div><div></div></div><div><div>Actions</div></div><div><div>Options</div><div><div><span>enabled</span><span></span></div><div><span>eventType</span><span></span></div><div><span>preventDefault</span><span></span></div><div><span>stopPropagation</span><span></span></div><div><span>ignoreInputs</span><span></span></div><div><span>requireReset</span><span></span></div><div><span>conflictBehavior</span><span></span></div><div><span>hasFired</span><span>`), _tmpl$4 = /* @__PURE__ */ template(`<span>+`), _tmpl$5 = /* @__PURE__ */ template(`<span>`), _tmpl$6 = /* @__PURE__ */ template(`<div><span></span> <!>: <!> (<!>) on `), _tmpl$7 = /* @__PURE__ */ template(`<div><span>scope</span> <!>: <!> (<!>) on `), _tmpl$8 = /* @__PURE__ */ template(`<div><div></div><div><div>ID</div><div></div><div>Sequence</div><div></div><div>Target</div><div>`), _tmpl$9 = /* @__PURE__ */ template(`<div><div><div>Key Breakdown</div><div></div></div><div><div>Actions</div></div><div><div>Options</div><div><div><span>enabled</span><span></span></div><div><span>eventType</span><span></span></div><div><span>timeout</span><span>ms</span></div><div><span>preventDefault</span><span></span></div><div><span>stopPropagation</span><span></span></div><div><span>ignoreInputs</span><span></span></div><div><span>conflictBehavior</span><span>`), _tmpl$0 = /* @__PURE__ */ template(`<span><span>`), _tmpl$1 = /* @__PURE__ */ template(`<span>→`), _tmpl$10 = /* @__PURE__ */ template(`<div>`), _tmpl$11 = /* @__PURE__ */ template(`<div>Select a hotkey or sequence from the list to view its details`);
10
12
  function sequenceKey(sequence) {
11
13
  return sequence.join("|");
12
14
  }
@@ -257,17 +259,51 @@ function HotkeyDetails(props) {
257
259
  }
258
260
  function SequenceDetails(props) {
259
261
  const reg = () => props.registration;
260
- const targetConflicts = createMemo(() => props.findSequenceTargetConflicts(reg(), props.state.sequenceRegistrations()));
261
- const scopeConflicts = createMemo(() => props.findSequenceScopeConflicts(reg(), props.state.sequenceRegistrations()));
262
+ const liveReg = createMemo(() => props.state.sequenceRegistrations().find((r) => r.id === reg().id) ?? reg());
263
+ const matchedSteps = createMemo(() => effectiveSequenceMatchedSteps(liveReg(), props.state.sequenceProgressNow()));
264
+ const targetConflicts = createMemo(() => props.findSequenceTargetConflicts(liveReg(), props.state.sequenceRegistrations()));
265
+ const scopeConflicts = createMemo(() => props.findSequenceScopeConflicts(liveReg(), props.state.sequenceRegistrations()));
262
266
  const allConflicts = createMemo(() => [...targetConflicts(), ...scopeConflicts()]);
263
- const conflictBehavior = () => reg().options.conflictBehavior ?? "warn";
267
+ const conflictBehavior = () => liveReg().options.conflictBehavior ?? "warn";
264
268
  const styles = props.styles;
265
269
  return [(() => {
266
270
  var _el$71 = _tmpl$8(), _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling, _el$74 = _el$73.firstChild, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling, _el$79 = _el$78.nextSibling;
267
- insert(_el$72, () => props.formatHotkeySequence(reg().sequence));
268
- insert(_el$75, () => reg().id);
269
- insert(_el$77, () => props.formatHotkeySequence(reg().sequence));
270
- insert(_el$79, () => props.getTargetDescription(reg().target));
271
+ insert(_el$72, createComponent(For, {
272
+ get each() {
273
+ return liveReg().sequence;
274
+ },
275
+ children: (step, i) => (() => {
276
+ var _el$117 = _tmpl$0(), _el$118 = _el$117.firstChild;
277
+ insert(_el$117, createComponent(Show, {
278
+ get when() {
279
+ return i() > 0;
280
+ },
281
+ children: " "
282
+ }), _el$118);
283
+ insert(_el$118, () => props.formatForDisplay(step));
284
+ effect(() => className(_el$118, i() < matchedSteps() ? styles().sequenceStepMatched : void 0));
285
+ return _el$117;
286
+ })()
287
+ }));
288
+ insert(_el$75, () => liveReg().id);
289
+ insert(_el$77, createComponent(For, {
290
+ get each() {
291
+ return liveReg().sequence;
292
+ },
293
+ children: (step, i) => (() => {
294
+ var _el$119 = _tmpl$0(), _el$120 = _el$119.firstChild;
295
+ insert(_el$119, createComponent(Show, {
296
+ get when() {
297
+ return i() > 0;
298
+ },
299
+ children: " "
300
+ }), _el$120);
301
+ insert(_el$120, () => props.formatForDisplay(step));
302
+ effect(() => className(_el$120, i() < matchedSteps() ? styles().sequenceStepMatched : void 0));
303
+ return _el$119;
304
+ })()
305
+ }));
306
+ insert(_el$79, () => props.getTargetDescription(liveReg().target));
271
307
  effect((_p$) => {
272
308
  var _v$43 = styles().stateHeader, _v$44 = styles().stateTitle, _v$45 = styles().infoGrid, _v$46 = styles().infoLabel, _v$47 = styles().infoValueMono, _v$48 = styles().infoLabel, _v$49 = styles().infoValueMono, _v$50 = styles().infoLabel, _v$51 = styles().infoValueMono;
273
309
  _v$43 !== _p$.e && className(_el$71, _p$.e = _v$43);
@@ -296,33 +332,33 @@ function SequenceDetails(props) {
296
332
  var _el$80 = _tmpl$9(), _el$81 = _el$80.firstChild, _el$82 = _el$81.firstChild, _el$83 = _el$82.nextSibling, _el$84 = _el$81.nextSibling, _el$85 = _el$84.firstChild, _el$86 = _el$84.nextSibling, _el$87 = _el$86.firstChild, _el$89 = _el$87.nextSibling.firstChild, _el$90 = _el$89.firstChild, _el$91 = _el$90.nextSibling, _el$92 = _el$89.nextSibling, _el$93 = _el$92.firstChild, _el$94 = _el$93.nextSibling, _el$95 = _el$92.nextSibling, _el$96 = _el$95.firstChild, _el$97 = _el$96.nextSibling, _el$98 = _el$97.firstChild, _el$99 = _el$95.nextSibling, _el$100 = _el$99.firstChild, _el$101 = _el$100.nextSibling, _el$102 = _el$99.nextSibling, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$102.nextSibling, _el$106 = _el$105.firstChild, _el$107 = _el$106.nextSibling, _el$108 = _el$105.nextSibling, _el$109 = _el$108.firstChild, _el$110 = _el$109.nextSibling;
297
333
  insert(_el$83, createComponent(For, {
298
334
  get each() {
299
- return reg().sequence;
335
+ return liveReg().sequence;
300
336
  },
301
337
  children: (step, i) => [createComponent(Show, {
302
338
  get when() {
303
339
  return i() > 0;
304
340
  },
305
341
  get children() {
306
- var _el$117 = _tmpl$0();
307
- effect(() => className(_el$117, styles().keyBreakdownPlus));
308
- return _el$117;
342
+ var _el$121 = _tmpl$1();
343
+ effect(() => className(_el$121, styles().keyBreakdownPlus));
344
+ return _el$121;
309
345
  }
310
346
  }), (() => {
311
- var _el$118 = _tmpl$5();
312
- insert(_el$118, () => props.formatForDisplay(step));
313
- effect(() => className(_el$118, styles().keyCapLarge));
314
- return _el$118;
347
+ var _el$122 = _tmpl$5();
348
+ insert(_el$122, () => props.formatForDisplay(step));
349
+ effect(() => className(_el$122, clsx(styles().keyCapLarge, i() < matchedSteps() && styles().keyCapLargeInProgress)));
350
+ return _el$122;
315
351
  })()]
316
352
  }));
317
353
  insert(_el$84, createComponent(ActionButtons, { get registration() {
318
- return reg();
354
+ return liveReg();
319
355
  } }), null);
320
- insert(_el$91, () => String(reg().options.enabled !== false));
321
- insert(_el$94, () => reg().options.eventType ?? "keydown");
322
- insert(_el$97, () => reg().options.timeout ?? 1e3, _el$98);
323
- insert(_el$101, () => String(!!reg().options.preventDefault));
324
- insert(_el$104, () => String(!!reg().options.stopPropagation));
325
- insert(_el$107, () => String(reg().options.ignoreInputs !== false));
356
+ insert(_el$91, () => String(liveReg().options.enabled !== false));
357
+ insert(_el$94, () => liveReg().options.eventType ?? "keydown");
358
+ insert(_el$97, () => liveReg().options.timeout ?? 1e3, _el$98);
359
+ insert(_el$101, () => String(!!liveReg().options.preventDefault));
360
+ insert(_el$104, () => String(!!liveReg().options.stopPropagation));
361
+ insert(_el$107, () => String(liveReg().options.ignoreInputs !== false));
326
362
  insert(_el$110, conflictBehavior);
327
363
  insert(_el$80, createComponent(Show, {
328
364
  get when() {
@@ -341,15 +377,15 @@ function SequenceDetails(props) {
341
377
  const itemStyle = () => props.getConflictItemStyle(conflictBehavior(), true);
342
378
  const label = () => props.getConflictLabel(conflictBehavior(), true);
343
379
  return (() => {
344
- var _el$119 = _tmpl$6(), _el$120 = _el$119.firstChild, _el$127 = _el$120.nextSibling.nextSibling, _el$128 = _el$127.nextSibling.nextSibling, _el$129 = _el$128.nextSibling.nextSibling;
345
- _el$129.nextSibling;
346
- insert(_el$120, label);
347
- insert(_el$119, () => conflict.id, _el$127);
348
- insert(_el$119, () => props.formatHotkeySequence(conflict.sequence), _el$128);
349
- insert(_el$119, () => conflict.options.eventType ?? "keydown", _el$129);
350
- insert(_el$119, () => props.getTargetDescription(conflict.target), null);
351
- effect(() => className(_el$119, styles()[itemStyle()]));
352
- return _el$119;
380
+ var _el$123 = _tmpl$6(), _el$124 = _el$123.firstChild, _el$131 = _el$124.nextSibling.nextSibling, _el$132 = _el$131.nextSibling.nextSibling, _el$133 = _el$132.nextSibling.nextSibling;
381
+ _el$133.nextSibling;
382
+ insert(_el$124, label);
383
+ insert(_el$123, () => conflict.id, _el$131);
384
+ insert(_el$123, () => props.formatHotkeySequence(conflict.sequence), _el$132);
385
+ insert(_el$123, () => conflict.options.eventType ?? "keydown", _el$133);
386
+ insert(_el$123, () => props.getTargetDescription(conflict.target), null);
387
+ effect(() => className(_el$123, styles()[itemStyle()]));
388
+ return _el$123;
353
389
  })();
354
390
  }
355
391
  }), null);
@@ -358,14 +394,14 @@ function SequenceDetails(props) {
358
394
  return scopeConflicts();
359
395
  },
360
396
  children: (conflict) => (() => {
361
- var _el$130 = _tmpl$7(), _el$138 = _el$130.firstChild.nextSibling.nextSibling, _el$139 = _el$138.nextSibling.nextSibling, _el$140 = _el$139.nextSibling.nextSibling;
362
- _el$140.nextSibling;
363
- insert(_el$130, () => conflict.id, _el$138);
364
- insert(_el$130, () => props.formatHotkeySequence(conflict.sequence), _el$139);
365
- insert(_el$130, () => conflict.options.eventType ?? "keydown", _el$140);
366
- insert(_el$130, () => props.getTargetDescription(conflict.target), null);
367
- effect(() => className(_el$130, styles().conflictItemScope));
368
- return _el$130;
397
+ var _el$134 = _tmpl$7(), _el$142 = _el$134.firstChild.nextSibling.nextSibling, _el$143 = _el$142.nextSibling.nextSibling, _el$144 = _el$143.nextSibling.nextSibling;
398
+ _el$144.nextSibling;
399
+ insert(_el$134, () => conflict.id, _el$142);
400
+ insert(_el$134, () => props.formatHotkeySequence(conflict.sequence), _el$143);
401
+ insert(_el$134, () => conflict.options.eventType ?? "keydown", _el$144);
402
+ insert(_el$134, () => props.getTargetDescription(conflict.target), null);
403
+ effect(() => className(_el$134, styles().conflictItemScope));
404
+ return _el$134;
369
405
  })()
370
406
  }), null);
371
407
  effect((_p$) => {
@@ -383,7 +419,7 @@ function SequenceDetails(props) {
383
419
  }
384
420
  }), null);
385
421
  effect((_p$) => {
386
- var _v$55 = styles().detailsGrid, _v$56 = styles().detailSection, _v$57 = styles().detailSectionHeader, _v$58 = styles().keyBreakdown, _v$59 = styles().detailSection, _v$60 = styles().detailSectionHeader, _v$61 = styles().detailSection, _v$62 = styles().detailSectionHeader, _v$63 = styles().optionRow, _v$64 = styles().optionLabel, _v$65 = reg().options.enabled !== false ? styles().optionValueTrue : styles().optionValueFalse, _v$66 = styles().optionRow, _v$67 = styles().optionLabel, _v$68 = styles().optionValue, _v$69 = styles().optionRow, _v$70 = styles().optionLabel, _v$71 = styles().optionValue, _v$72 = styles().optionRow, _v$73 = styles().optionLabel, _v$74 = reg().options.preventDefault ? styles().optionValueTrue : styles().optionValueFalse, _v$75 = styles().optionRow, _v$76 = styles().optionLabel, _v$77 = reg().options.stopPropagation ? styles().optionValueTrue : styles().optionValueFalse, _v$78 = styles().optionRow, _v$79 = styles().optionLabel, _v$80 = reg().options.ignoreInputs !== false ? styles().optionValueTrue : styles().optionValueFalse, _v$81 = styles().optionRow, _v$82 = styles().optionLabel, _v$83 = styles().optionValue;
422
+ var _v$55 = styles().detailsGrid, _v$56 = styles().detailSection, _v$57 = styles().detailSectionHeader, _v$58 = styles().keyBreakdown, _v$59 = styles().detailSection, _v$60 = styles().detailSectionHeader, _v$61 = styles().detailSection, _v$62 = styles().detailSectionHeader, _v$63 = styles().optionRow, _v$64 = styles().optionLabel, _v$65 = liveReg().options.enabled !== false ? styles().optionValueTrue : styles().optionValueFalse, _v$66 = styles().optionRow, _v$67 = styles().optionLabel, _v$68 = styles().optionValue, _v$69 = styles().optionRow, _v$70 = styles().optionLabel, _v$71 = styles().optionValue, _v$72 = styles().optionRow, _v$73 = styles().optionLabel, _v$74 = liveReg().options.preventDefault ? styles().optionValueTrue : styles().optionValueFalse, _v$75 = styles().optionRow, _v$76 = styles().optionLabel, _v$77 = liveReg().options.stopPropagation ? styles().optionValueTrue : styles().optionValueFalse, _v$78 = styles().optionRow, _v$79 = styles().optionLabel, _v$80 = liveReg().options.ignoreInputs !== false ? styles().optionValueTrue : styles().optionValueFalse, _v$81 = styles().optionRow, _v$82 = styles().optionLabel, _v$83 = styles().optionValue;
387
423
  _v$55 !== _p$.e && className(_el$80, _p$.e = _v$55);
388
424
  _v$56 !== _p$.t && className(_el$81, _p$.t = _v$56);
389
425
  _v$57 !== _p$.a && className(_el$82, _p$.a = _v$57);
@@ -452,16 +488,16 @@ function DetailsPanel(props) {
452
488
  const styles = useStyles();
453
489
  const state = useHotkeysDevtoolsState();
454
490
  return (() => {
455
- var _el$141 = _tmpl$1();
456
- insert(_el$141, createComponent(Show, {
491
+ var _el$145 = _tmpl$10();
492
+ insert(_el$145, createComponent(Show, {
457
493
  get when() {
458
494
  return props.selectedRegistration();
459
495
  },
460
496
  get fallback() {
461
497
  return (() => {
462
- var _el$142 = _tmpl$10();
463
- effect(() => className(_el$142, styles().noSelection));
464
- return _el$142;
498
+ var _el$146 = _tmpl$11();
499
+ effect(() => className(_el$146, styles().noSelection));
500
+ return _el$146;
465
501
  })();
466
502
  },
467
503
  children: (reg) => createComponent(Show, {
@@ -501,8 +537,8 @@ function DetailsPanel(props) {
501
537
  }
502
538
  })
503
539
  }));
504
- effect(() => className(_el$141, styles().stateDetails));
505
- return _el$141;
540
+ effect(() => className(_el$145, styles().stateDetails));
541
+ return _el$145;
506
542
  })();
507
543
  }
508
544
 
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsPanel.js","names":["For","Show","createMemo","formatForDisplay","formatHotkeySequence","useStyles","useHotkeysDevtoolsState","ActionButtons","ConflictBehavior","HotkeyRegistration","HotkeySequence","SequenceRegistrationView","sequenceKey","sequence","Array","join","isSequenceRegistration","reg","isArray","DetailsPanelProps","selectedRegistration","getTargetDescription","target","HTMLElement","Document","Window","document","window","tag","tagName","toLowerCase","id","cls","className","split","findTargetConflicts","registration","all","filter","other","hotkey","options","eventType","findScopeConflicts","findSequenceTargetConflicts","findSequenceScopeConflicts","getConflictItemStyle","behavior","isSameTarget","getConflictLabel","HotkeyDetails","props","state","ReturnType","t","r","b","same","styles","parsed","parsedHotkey","targetConflicts","registrations","scopeConflicts","allConflicts","conflictBehavior","keyParts","parts","p","ctrl","push","shift","alt","meta","key","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_$insert","_$effect","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","_v$9","e","_$className","a","o","i","n","s","h","undefined","_el$0","_tmpl$3","_el$1","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","_$createComponent","each","children","part","when","_el$47","_tmpl$4","keyBreakdownPlus","_el$48","_tmpl$5","keyCapLarge","String","enabled","preventDefault","stopPropagation","ignoreInputs","requireReset","hasFired","length","_el$41","_tmpl$2","_el$42","_el$43","_el$45","_el$44","_el$46","conflict","itemStyle","label","_el$49","_tmpl$6","_el$50","_el$51","_el$57","_el$52","_el$58","_el$54","_el$59","_el$55","_el$60","_tmpl$7","_el$61","_el$62","_el$68","_el$63","_el$69","_el$65","_el$70","_el$66","conflictItemScope","_v$0","detailSection","_v$1","detailSectionHeader","_v$10","conflictList","_v$11","detailsGrid","_v$12","_v$13","_v$14","keyBreakdown","_v$15","_v$16","_v$17","_v$18","_v$19","optionRow","_v$20","optionLabel","_v$21","optionValueTrue","optionValueFalse","_v$22","_v$23","_v$24","optionValue","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","_v$37","_v$38","_v$39","_v$40","_v$41","_v$42","d","l","u","c","w","m","f","y","g","T","A","O","I","S","W","C","B","v","k","x","j","SequenceDetails","seq","sequenceRegistrations","_el$71","_tmpl$8","_el$72","_el$73","_el$74","_el$75","_el$76","_el$77","_el$78","_el$79","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_v$51","_el$80","_tmpl$9","_el$81","_el$82","_el$83","_el$84","_el$85","_el$86","_el$87","_el$88","_el$89","_el$90","_el$91","_el$92","_el$93","_el$94","_el$95","_el$96","_el$97","_el$98","_el$99","_el$100","_el$101","_el$102","_el$103","_el$104","_el$105","_el$106","_el$107","_el$108","_el$109","_el$110","step","_el$117","_tmpl$0","_el$118","timeout","_el$111","_el$112","_el$113","_el$115","_el$114","_el$116","_el$119","_el$120","_el$121","_el$127","_el$122","_el$128","_el$124","_el$129","_el$125","_el$130","_el$131","_el$132","_el$138","_el$133","_el$139","_el$135","_el$140","_el$136","_v$52","_v$53","_v$54","_v$55","_v$56","_v$57","_v$58","_v$59","_v$60","_v$61","_v$62","_v$63","_v$64","_v$65","_v$66","_v$67","_v$68","_v$69","_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","DetailsPanel","_el$141","_tmpl$1","fallback","_el$142","_tmpl$10","noSelection","stateDetails"],"sources":["../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { For, Show, createMemo } from 'solid-js'\nimport { formatForDisplay, formatHotkeySequence } from '@tanstack/hotkeys'\nimport { useStyles } from '../styles/use-styles'\nimport { useHotkeysDevtoolsState } from '../HotkeysContextProvider'\nimport { ActionButtons } from './ActionButtons'\nimport type {\n ConflictBehavior,\n HotkeyRegistration,\n HotkeySequence,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\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: (hotkey: string) => 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 keyParts = createMemo(() => {\n const parts: Array<string> = []\n const p = parsed()\n if (p.ctrl) parts.push('Ctrl')\n if (p.shift) parts.push('Shift')\n if (p.alt) parts.push('Alt')\n if (p.meta) parts.push('Meta')\n parts.push(p.key)\n return parts\n })\n\n 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().keyBreakdown}>\n <For each={keyParts()}>\n {(part, i) => (\n <>\n <Show when={i() > 0}>\n <span class={styles().keyBreakdownPlus}>+</span>\n </Show>\n <span class={styles().keyCapLarge}>{part}</span>\n </>\n )}\n </For>\n </div>\n </div>\n\n <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}>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: (hotkey: string) => string\n styles: ReturnType<typeof useStyles>\n}) {\n const reg = () => props.registration\n const targetConflicts = createMemo(() =>\n props.findSequenceTargetConflicts(\n reg(),\n props.state.sequenceRegistrations(),\n ),\n )\n const scopeConflicts = createMemo(() =>\n props.findSequenceScopeConflicts(\n reg(),\n props.state.sequenceRegistrations(),\n ),\n )\n const allConflicts = createMemo(() => [\n ...targetConflicts(),\n ...scopeConflicts(),\n ])\n const conflictBehavior = (): ConflictBehavior =>\n reg().options.conflictBehavior ?? 'warn'\n\n const styles = props.styles\n\n return (\n <>\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>\n {props.formatHotkeySequence(reg().sequence)}\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}>Sequence</div>\n <div class={styles().infoValueMono}>\n {props.formatHotkeySequence(reg().sequence)}\n </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().keyBreakdown}>\n <For each={reg().sequence}>\n {(step, i) => (\n <>\n <Show when={i() > 0}>\n <span class={styles().keyBreakdownPlus}>→</span>\n </Show>\n <span class={styles().keyCapLarge}>\n {props.formatForDisplay(step)}\n </span>\n </>\n )}\n </For>\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}>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}>timeout</span>\n <span class={styles().optionValue}>\n {reg().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 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}>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":";;;;;;;;;AAYA,SAASY,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,OAAOS,KAAK,IAAIT,OAAOS,OAAO,KAC7BT,OAAOW,YACf,IAAIX,OAAOW,UAAUC,MAAM,IAAI,CAACnB,KAAK,IAAI,KACzC;AAGN,QAAO;;AAGT,SAASoB,oBACPC,cACAC,KAC2B;AAC3B,QAAOA,IAAIC,QACRC,UACCA,MAAMR,OAAOK,aAAaL,MAC1BQ,MAAMC,WAAWJ,aAAaI,UAC9BD,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMjB,WAAWc,aAAad,OACjC;;AAGH,SAASqB,mBACPP,cACAC,KAC2B;AAC3B,QAAOA,IAAIC,QACRC,UACCA,MAAMR,OAAOK,aAAaL,MAC1BQ,MAAMC,WAAWJ,aAAaI,UAC9BD,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMjB,WAAWc,aAAad,OACjC;;AAGH,SAASsB,4BACPR,cACAC,KACiC;AACjC,QAAOA,IAAIC,QACRC,UACCA,MAAMR,OAAOK,aAAaL,MAC1BnB,YAAY2B,MAAM1B,SAAS,KAAKD,YAAYwB,aAAavB,SAAS,IAClE0B,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMjB,WAAWc,aAAad,OACjC;;AAGH,SAASuB,2BACPT,cACAC,KACiC;AACjC,QAAOA,IAAIC,QACRC,UACCA,MAAMR,OAAOK,aAAaL,MAC1BnB,YAAY2B,MAAM1B,SAAS,KAAKD,YAAYwB,aAAavB,SAAS,IAClE0B,MAAME,QAAQC,cAAcN,aAAaK,QAAQC,aACjDH,MAAMjB,WAAWc,aAAad,OACjC;;AAGH,SAASwB,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,cAAcC,OAuBpB;CACD,MAAMlC,YAAYkC,MAAMf;CACxB,MAAMuB,eAAe1C,KAAK,CAAC2C;CAC3B,MAAMC,kBAAkB3D,iBACtBiD,MAAMhB,oBAAoBlB,KAAK,EAAEkC,MAAMC,MAAMU,eAAe,CAC9D,CAAC;CACD,MAAMC,iBAAiB7D,iBACrBiD,MAAMR,mBAAmB1B,KAAK,EAAEkC,MAAMC,MAAMU,eAAe,CAC7D,CAAC;CACD,MAAME,eAAe9D,iBAAiB,CACpC,GAAG2D,iBAAiB,EACpB,GAAGE,gBAAgB,CACpB,CAAC;CACF,MAAME,yBACJhD,KAAK,CAACwB,QAAQwB,oBAAoB;CAEpC,MAAMC,WAAWhE,iBAAiB;EAChC,MAAMiE,QAAuB,EAAE;EAC/B,MAAMC,IAAIT,QAAQ;AAClB,MAAIS,EAAEC,KAAMF,OAAMG,KAAK,OAAO;AAC9B,MAAIF,EAAEG,MAAOJ,OAAMG,KAAK,QAAQ;AAChC,MAAIF,EAAEI,IAAKL,OAAMG,KAAK,MAAM;AAC5B,MAAIF,EAAEK,KAAMN,OAAMG,KAAK,OAAO;AAC9BH,QAAMG,KAAKF,EAAEM,IAAI;AACjB,SAAOP;GACP;CAEF,MAAMT,SAASP,MAAMO;AAErB,QAAA,QAAA;EAAA,IAAAiB,OAAAC,QAAA,EAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAG,aAAAC,QAAAF,MAAAD,YAAAI,QAAAD,MAAAD,aAAAG,QAAAD,MAAAF,aAAAI,QAAAD,MAAAH,aAAAK,QAAAD,MAAAJ,aAAAM,QAAAD,MAAAL;AAAAO,SAAAV,aAIS1B,MAAMhD,iBAAiBc,KAAK,CAACuB,OAAO,CAAA;AAAA+C,SAAAL,aAIAjE,KAAK,CAACc,GAAE;AAAAwD,SAAAH,aAERnE,KAAK,CAACuB,OAAM;AAAA+C,SAAAD,aAG9CnC,MAAM9B,qBAAqBJ,KAAK,CAACK,OAAO,CAAA;AAAAkE,UAAAC,QAAA;GAAA,IAAAC,MAXnChC,QAAQ,CAACiC,aAAWC,OAClBlC,QAAQ,CAACmC,YAAUC,OAGnBpC,QAAQ,CAACqC,UAAQC,OACftC,QAAQ,CAACuC,WAASC,OAClBxC,QAAQ,CAACyC,eAAaC,OACtB1C,QAAQ,CAACuC,WAASI,OAClB3C,QAAQ,CAACyC,eAAaG,OACtB5C,QAAQ,CAACuC,WAASM,OAClB7C,QAAQ,CAACyC;AAAaT,WAAAD,IAAAe,KAAAC,UAAA9B,MAAAc,IAAAe,IAAAd,IAAA;AAAAE,YAAAH,IAAAnC,KAAAmD,UAAA5B,OAAAY,IAAAnC,IAAAsC,KAAA;AAAAE,YAAAL,IAAAiB,KAAAD,UAAA1B,OAAAU,IAAAiB,IAAAZ,KAAA;AAAAE,YAAAP,IAAAkB,KAAAF,UAAAxB,OAAAQ,IAAAkB,IAAAX,KAAA;AAAAE,YAAAT,IAAAmB,KAAAH,UAAAvB,OAAAO,IAAAmB,IAAAV,KAAA;AAAAE,YAAAX,IAAAoB,KAAAJ,UAAAtB,OAAAM,IAAAoB,IAAAT,KAAA;AAAAC,YAAAZ,IAAAqB,KAAAL,UAAArB,OAAAK,IAAAqB,IAAAT,KAAA;AAAAC,YAAAb,IAAAsB,KAAAN,UAAApB,OAAAI,IAAAsB,IAAAT,KAAA;AAAAC,YAAAd,IAAAlC,KAAAkD,UAAAnB,OAAAG,IAAAlC,IAAAgD,KAAA;AAAA,UAAAd;KAAA;GAAAe,GAAAQ;GAAA1D,GAAA0D;GAAAN,GAAAM;GAAAL,GAAAK;GAAAJ,GAAAI;GAAAH,GAAAG;GAAAF,GAAAE;GAAAD,GAAAC;GAAAzD,GAAAyD;GAAA,CAAA;AAAA,SAAArC;KAAA,SAAA;EAAA,IAAAsC,QAAAC,SAAA,EAAAC,QAAAF,MAAAnC,YAAAsC,SAAAD,MAAArC,YAAAuC,SAAAD,OAAApC,aAAAsC,SAAAH,MAAAnC,aAAAuC,SAAAD,OAAAxC,YAAA0C,SAAAF,OAAAtC,aAAAyC,SAAAD,OAAA1C,YAAA6C,SAAAF,OAAAzC,YAAAF,YAAA8C,SAAAD,OAAA7C,YAAA+C,SAAAD,OAAA5C,aAAA8C,SAAAH,OAAA3C,aAAA+C,SAAAD,OAAAhD,YAAAkD,SAAAD,OAAA/C,aAAAiD,SAAAH,OAAA9C,aAAAkD,SAAAD,OAAAnD,YAAAqD,SAAAD,OAAAlD,aAAAoD,SAAAH,OAAAjD,aAAAqD,SAAAD,OAAAtD,YAAAwD,SAAAD,OAAArD,aAAAuD,SAAAH,OAAApD,aAAAwD,SAAAD,OAAAzD,YAAA2D,SAAAD,OAAAxD,aAAA0D,SAAAH,OAAAvD,aAAA2D,SAAAD,OAAA5D,YAAA8D,SAAAD,OAAA3D,aAAA6D,SAAAH,OAAA1D,aAAA8D,SAAAD,OAAA/D,YAAAiE,SAAAD,OAAA9D,aAAAgE,SAAAH,OAAA7D,aAAAiE,SAAAD,OAAAlE,YAAAoE,SAAAD,OAAAjE;AAAAO,SAAA8B,QAAA8B,gBAU/BnJ,KAAG;GAAA,IAACoJ,OAAI;AAAA,WAAElF,UAAU;;GAAAmF,WACjBC,MAAM1C,MAAC,CAAAuC,gBAEJlJ,MAAI;IAAA,IAACsJ,OAAI;AAAA,YAAE3C,GAAG,GAAG;;IAAC,IAAAyC,WAAA;KAAA,IAAAG,SAAAC,SAAA;AAAAjE,kBAAAiB,UAAA+C,QACJ9F,QAAQ,CAACgG,iBAAgB,CAAA;AAAA,YAAAF;;IAAA,CAAA,SAAA;IAAA,IAAAG,SAAAC,SAAA;AAAArE,WAAAoE,QAEJL,KAAI;AAAA9D,iBAAAiB,UAAAkD,QAA3BjG,QAAQ,CAACmG,YAAW,CAAA;AAAA,WAAAF;OAAA,CAAA;GAEpC,CAAA,CAAA;AAAApE,SAAA+B,QAAA6B,gBAOJ5I,eAAa,EAAA,IAAC6B,eAAY;AAAA,UAAEnB,KAAK;KAAA,CAAA,EAAA,KAAA;AAAAsE,SAAAsC,cAe3BiC,OAAO7I,KAAK,CAACwB,QAAQsH,YAAY,MAAM,CAAA;AAAAxE,SAAAyC,cAMvC/G,KAAK,CAACwB,QAAQC,aAAa,UAAS;AAAA6C,SAAA4C,cAYpC2B,OAAO,CAAC,CAAC7I,KAAK,CAACwB,QAAQuH,eAAe,CAAA;AAAAzE,SAAA+C,cAYtCwB,OAAO,CAAC,CAAC7I,KAAK,CAACwB,QAAQwH,gBAAgB,CAAA;AAAA1E,SAAAkD,cAYvCqB,OAAO7I,KAAK,CAACwB,QAAQyH,iBAAiB,MAAM,CAAA;AAAA3E,SAAAqD,cAY5CkB,OAAO,CAAC,CAAC7I,KAAK,CAACwB,QAAQ0H,aAAa,CAAA;AAAA5E,SAAAwD,QAKH9E,iBAAgB;AAAAsB,SAAA2D,cAWjDY,OAAO7I,KAAK,CAACmJ,SAAS,CAAA;AAAA7E,SAAA0B,OAAAkC,gBAM9BlJ,MAAI;GAAA,IAACsJ,OAAI;AAAA,WAAEvF,cAAc,CAACqG,SAAS;;GAAC,IAAAhB,WAAA;IAAA,IAAAiB,SAAAC,SAAA,EAAAC,SAAAF,OAAAxF,YAAA4F,SAAAF,OAAA1F,WAAAE;AAAA0F,WAAA1F;IAAA,IAAA4F,SAAAJ,OAAAxF;AAAAO,WAAAiF,cAGnBxG,cAAc,CAACqG,QAAMK,OAAA;AAAAnF,WAAAqF,QAAAzB,gBAGhCnJ,KAAG;KAAA,IAACoJ,OAAI;AAAA,aAAEvF,iBAAiB;;KAAAwF,WACxBwB,aAAa;MACb,MAAMC,kBACJ3H,MAAML,qBAAqBmB,kBAAkB,EAAE,KAAK;MACtD,MAAM8G,cACJ5H,MAAMF,iBAAiBgB,kBAAkB,EAAE,KAAK;AAClD,oBAAA;OAAA,IAAA+G,SAAAC,SAAA,EAAAC,SAAAF,OAAAlG,YAAAsG,SAAAF,OAAAlG,YAAAA,aAAAsG,SAAAF,OAAApG,YAAAA,aAAAwG,SAAAF,OAAAtG,YAAAA;AAAAwG,cAAAxG;AAAAO,cAAA2F,QAEWH,MAAK;AAAAxF,cAAAyF,cAAYH,SAAS9I,IAAEqJ,OAAA;AAAA7F,cAAAyF,cAClC7H,MAAMhD,iBAAiB0K,SAASrI,OAAO,EAAA8I,OAAA;AAAA/F,cAAAyF,cACvCH,SAASpI,QAAQC,aAAa,WAAS8I,OAAA;AAAAjG,cAAAyF,cACvC7H,MAAM9B,qBAAqBwJ,SAASvJ,OAAO,EAAA,KAAA;AAAAkE,oBAAAiB,UAAAuE,QAJlCtH,QAAQ,CAACoH,WAAW,EAAC,CAAA;AAAA,cAAAE;UAAA;;KAOpC,CAAA,EAAA,KAAA;AAAAzF,WAAAqF,QAAAzB,gBAEFnJ,KAAG;KAAA,IAACoJ,OAAI;AAAA,aAAErF,gBAAgB;;KAAAsF,WACvBwB,oBAAQ;MAAA,IAAAa,SAAAC,SAAA,EAAAG,SAAAJ,OAAA5G,WAAAE,YAAAA,aAAAgH,SAAAF,OAAA9G,YAAAA,aAAAkH,SAAAF,OAAAhH,YAAAA;AAAAkH,aAAAlH;AAAAO,aAAAmG,cAEcb,SAAS9I,IAAE+J,OAAA;AAAAvG,aAAAmG,cAC9BvI,MAAMhD,iBAAiB0K,SAASrI,OAAO,EAAAwJ,OAAA;AAAAzG,aAAAmG,cACvCb,SAASpI,QAAQC,aAAa,WAASwJ,OAAA;AAAA3G,aAAAmG,cACvCvI,MAAM9B,qBAAqBwJ,SAASvJ,OAAO,EAAA,KAAA;AAAAkE,mBAAAiB,UAAAiF,QAJlChI,QAAQ,CAAC0I,kBAAiB,CAAA;AAAA,aAAAV;SAAA;KAMvC,CAAA,EAAA,KAAA;AAAAlG,YAAAC,QAAA;KAAA,IAAA4G,OA7BK3I,QAAQ,CAAC4I,eAAaC,OACpB7I,QAAQ,CAAC8I,qBAAmBC,QAG5B/I,QAAQ,CAACgJ;AAAYL,cAAA5G,IAAAe,KAAAC,UAAA6D,QAAA7E,IAAAe,IAAA6F,KAAA;AAAAE,cAAA9G,IAAAnC,KAAAmD,UAAA+D,QAAA/E,IAAAnC,IAAAiJ,KAAA;AAAAE,eAAAhH,IAAAiB,KAAAD,UAAAmE,QAAAnF,IAAAiB,IAAA+F,MAAA;AAAA,YAAAhH;OAAA;KAAAe,GAAAQ;KAAA1D,GAAA0D;KAAAN,GAAAM;KAAA,CAAA;AAAA,WAAAsD;;GAAA,CAAA,EAAA,KAAA;AAAA9E,UAAAC,QAAA;GAAA,IAAAkH,QAnH3BjJ,QAAQ,CAACkJ,aAAWC,QAClBnJ,QAAQ,CAAC4I,eAAaQ,QACpBpJ,QAAQ,CAAC8I,qBAAmBO,QAC5BrJ,QAAQ,CAACsJ,cAAYC,QAcvBvJ,QAAQ,CAAC4I,eAAaY,QACpBxJ,QAAQ,CAAC8I,qBAAmBW,QAI9BzJ,QAAQ,CAAC4I,eAAac,QACpB1J,QAAQ,CAAC8I,qBAAmBa,QAE1B3J,QAAQ,CAAC4J,WAASC,QACf7J,QAAQ,CAAC8J,aAAWC,QAG7BxM,KAAK,CAACwB,QAAQsH,YAAY,QACtBrG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBC,QAMvBlK,QAAQ,CAAC4J,WAASO,QACfnK,QAAQ,CAAC8J,aAAWM,QACpBpK,QAAQ,CAACqK,aAAWC,QAIvBtK,QAAQ,CAAC4J,WAASW,QACfvK,QAAQ,CAAC8J,aAAWU,QAG7BjN,KAAK,CAACwB,QAAQuH,iBACVtG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBQ,QAMvBzK,QAAQ,CAAC4J,WAASc,QACf1K,QAAQ,CAAC8J,aAAWa,QAG7BpN,KAAK,CAACwB,QAAQwH,kBACVvG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBW,QAMvB5K,QAAQ,CAAC4J,WAASiB,QACf7K,QAAQ,CAAC8J,aAAWgB,QAG7BvN,KAAK,CAACwB,QAAQyH,iBAAiB,QAC3BxG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBc,QAMvB/K,QAAQ,CAAC4J,WAASoB,QACfhL,QAAQ,CAAC8J,aAAWmB,QAG7B1N,KAAK,CAACwB,QAAQ0H,eACVzG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBiB,QAMvBlL,QAAQ,CAAC4J,WAASuB,QACfnL,QAAQ,CAAC8J,aAAWsB,QACpBpL,QAAQ,CAACqK,aAAWgB,QAEvBrL,QAAQ,CAAC4J,WAAS0B,QACftL,QAAQ,CAAC8J,aAAWyB,QAG7BhO,KAAK,CAACmJ,WACF1G,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK;AAAgBhB,aAAAlH,IAAAe,KAAAC,UAAAQ,OAAAxB,IAAAe,IAAAmG,MAAA;AAAAE,aAAApH,IAAAnC,KAAAmD,UAAAU,OAAA1B,IAAAnC,IAAAuJ,MAAA;AAAAC,aAAArH,IAAAiB,KAAAD,UAAAW,QAAA3B,IAAAiB,IAAAoG,MAAA;AAAAC,aAAAtH,IAAAkB,KAAAF,UAAAY,QAAA5B,IAAAkB,IAAAoG,MAAA;AAAAE,aAAAxH,IAAAmB,KAAAH,UAAAa,QAAA7B,IAAAmB,IAAAqG,MAAA;AAAAC,aAAAzH,IAAAoB,KAAAJ,UAAAc,QAAA9B,IAAAoB,IAAAqG,MAAA;AAAAC,aAAA1H,IAAAqB,KAAAL,UAAAe,QAAA/B,IAAAqB,IAAAqG,MAAA;AAAAC,aAAA3H,IAAAsB,KAAAN,UAAAgB,QAAAhC,IAAAsB,IAAAqG,MAAA;AAAAC,aAAA5H,IAAAlC,KAAAkD,UAAAkB,QAAAlC,IAAAlC,IAAA8J,MAAA;AAAAE,aAAA9H,IAAAyJ,KAAAzI,UAAAmB,QAAAnC,IAAAyJ,IAAA3B,MAAA;AAAAE,aAAAhI,IAAA0J,KAAA1I,UAAAoB,QAAApC,IAAA0J,IAAA1B,MAAA;AAAAG,aAAAnI,IAAA2J,KAAA3I,UAAAqB,QAAArC,IAAA2J,IAAAxB,MAAA;AAAAC,aAAApI,IAAA4J,KAAA5I,UAAAsB,QAAAtC,IAAA4J,IAAAxB,MAAA;AAAAC,aAAArI,IAAA6J,KAAA7I,UAAAuB,QAAAvC,IAAA6J,IAAAxB,MAAA;AAAAE,aAAAvI,IAAA8J,KAAA9I,UAAAwB,QAAAxC,IAAA8J,IAAAvB,MAAA;AAAAC,aAAAxI,IAAA+J,KAAA/I,UAAAyB,QAAAzC,IAAA+J,IAAAvB,MAAA;AAAAC,aAAAzI,IAAAgK,KAAAhJ,UAAA0B,QAAA1C,IAAAgK,IAAAvB,MAAA;AAAAC,aAAA1I,IAAAiK,KAAAjJ,UAAA2B,QAAA3C,IAAAiK,IAAAvB,MAAA;AAAAC,aAAA3I,IAAArB,KAAAqC,UAAA4B,QAAA5C,IAAArB,IAAAgK,MAAA;AAAAC,aAAA5I,IAAAjC,KAAAiD,UAAA6B,QAAA7C,IAAAjC,IAAA6K,MAAA;AAAAC,aAAA7I,IAAAkK,KAAAlJ,UAAA8B,QAAA9C,IAAAkK,IAAArB,MAAA;AAAAC,aAAA9I,IAAAmK,KAAAnJ,UAAA+B,QAAA/C,IAAAmK,IAAArB,MAAA;AAAAC,aAAA/I,IAAAoK,KAAApJ,UAAAgC,QAAAhD,IAAAoK,IAAArB,MAAA;AAAAC,aAAAhJ,IAAAqK,KAAArJ,UAAAiC,QAAAjD,IAAAqK,IAAArB,MAAA;AAAAC,aAAAjJ,IAAAsK,KAAAtJ,UAAAkC,QAAAlD,IAAAsK,IAAArB,MAAA;AAAAC,aAAAlJ,IAAAuK,KAAAvJ,UAAAmC,QAAAnD,IAAAuK,IAAArB,MAAA;AAAAC,aAAAnJ,IAAAwK,KAAAxJ,UAAAoC,QAAApD,IAAAwK,IAAArB,MAAA;AAAAC,aAAApJ,IAAAyK,KAAAzJ,UAAAqC,QAAArD,IAAAyK,IAAArB,MAAA;AAAAC,aAAArJ,IAAA0K,KAAA1J,UAAAsC,QAAAtD,IAAA0K,IAAArB,MAAA;AAAAC,aAAAtJ,IAAA2K,KAAA3J,UAAAuC,QAAAvD,IAAA2K,IAAArB,MAAA;AAAAC,aAAAvJ,IAAA4K,KAAA5J,UAAAwC,QAAAxD,IAAA4K,IAAArB,MAAA;AAAAC,aAAAxJ,IAAA6K,KAAA7J,UAAAyC,QAAAzD,IAAA6K,IAAArB,MAAA;AAAA,UAAAxJ;KAAA;GAAAe,GAAAQ;GAAA1D,GAAA0D;GAAAN,GAAAM;GAAAL,GAAAK;GAAAJ,GAAAI;GAAAH,GAAAG;GAAAF,GAAAE;GAAAD,GAAAC;GAAAzD,GAAAyD;GAAAkI,GAAAlI;GAAAmI,GAAAnI;GAAAoI,GAAApI;GAAAqI,GAAArI;GAAAsI,GAAAtI;GAAAuI,GAAAvI;GAAAwI,GAAAxI;GAAAyI,GAAAzI;GAAA0I,GAAA1I;GAAA5C,GAAA4C;GAAAxD,GAAAwD;GAAA2I,GAAA3I;GAAA4I,GAAA5I;GAAA6I,GAAA7I;GAAA8I,GAAA9I;GAAA+I,GAAA/I;GAAAgJ,GAAAhJ;GAAAiJ,GAAAjJ;GAAAkJ,GAAAlJ;GAAAmJ,GAAAnJ;GAAAoJ,GAAApJ;GAAAqJ,GAAArJ;GAAAsJ,GAAAtJ;GAAA,CAAA;AAAA,SAAAC;KAAA,CAAA;;AAiD/C,SAASsJ,gBAAgBpN,OAwBtB;CACD,MAAMlC,YAAYkC,MAAMf;CACxB,MAAMyB,kBAAkB3D,iBACtBiD,MAAMP,4BACJ3B,KAAK,EACLkC,MAAMC,MAAMqN,uBACd,CACF,CAAC;CACD,MAAM1M,iBAAiB7D,iBACrBiD,MAAMN,2BACJ5B,KAAK,EACLkC,MAAMC,MAAMqN,uBACd,CACF,CAAC;CACD,MAAMzM,eAAe9D,iBAAiB,CACpC,GAAG2D,iBAAiB,EACpB,GAAGE,gBAAgB,CACpB,CAAC;CACF,MAAME,yBACJhD,KAAK,CAACwB,QAAQwB,oBAAoB;CAEpC,MAAMP,SAASP,MAAMO;AAErB,QAAA,QAAA;EAAA,IAAAgN,SAAAC,SAAA,EAAAC,SAAAF,OAAA5L,YAAA+L,SAAAD,OAAA5L,aAAA8L,SAAAD,OAAA/L,YAAAiM,SAAAD,OAAA9L,aAAAgM,SAAAD,OAAA/L,aAAAiM,SAAAD,OAAAhM,aAAAkM,SAAAD,OAAAjM,aAAAmM,SAAAD,OAAAlM;AAAAO,SAAAqL,cAISzN,MAAM/C,qBAAqBa,KAAK,CAACJ,SAAS,CAAA;AAAA0E,SAAAwL,cAIN9P,KAAK,CAACc,GAAE;AAAAwD,SAAA0L,cAG1C9N,MAAM/C,qBAAqBa,KAAK,CAACJ,SAAS,CAAA;AAAA0E,SAAA4L,cAI1ChO,MAAM9B,qBAAqBJ,KAAK,CAACK,OAAO,CAAA;AAAAkE,UAAAC,QAAA;GAAA,IAAA2L,QAbnC1N,QAAQ,CAACiC,aAAW0L,QAClB3N,QAAQ,CAACmC,YAAUyL,QAGnB5N,QAAQ,CAACqC,UAAQwL,QACf7N,QAAQ,CAACuC,WAASuL,QAClB9N,QAAQ,CAACyC,eAAasL,QACtB/N,QAAQ,CAACuC,WAASyL,QAClBhO,QAAQ,CAACyC,eAAawL,QAGtBjO,QAAQ,CAACuC,WAAS2L,QAClBlO,QAAQ,CAACyC;AAAaiL,aAAA3L,IAAAe,KAAAC,UAAAiK,QAAAjL,IAAAe,IAAA4K,MAAA;AAAAC,aAAA5L,IAAAnC,KAAAmD,UAAAmK,QAAAnL,IAAAnC,IAAA+N,MAAA;AAAAC,aAAA7L,IAAAiB,KAAAD,UAAAoK,QAAApL,IAAAiB,IAAA4K,MAAA;AAAAC,aAAA9L,IAAAkB,KAAAF,UAAAqK,QAAArL,IAAAkB,IAAA4K,MAAA;AAAAC,aAAA/L,IAAAmB,KAAAH,UAAAsK,QAAAtL,IAAAmB,IAAA4K,MAAA;AAAAC,aAAAhM,IAAAoB,KAAAJ,UAAAuK,QAAAvL,IAAAoB,IAAA4K,MAAA;AAAAC,aAAAjM,IAAAqB,KAAAL,UAAAwK,QAAAxL,IAAAqB,IAAA4K,MAAA;AAAAC,aAAAlM,IAAAsB,KAAAN,UAAAyK,QAAAzL,IAAAsB,IAAA4K,MAAA;AAAAC,aAAAnM,IAAAlC,KAAAkD,UAAA0K,QAAA1L,IAAAlC,IAAAqO,MAAA;AAAA,UAAAnM;KAAA;GAAAe,GAAAQ;GAAA1D,GAAA0D;GAAAN,GAAAM;GAAAL,GAAAK;GAAAJ,GAAAI;GAAAH,GAAAG;GAAAF,GAAAE;GAAAD,GAAAC;GAAAzD,GAAAyD;GAAA,CAAA;AAAA,SAAA0J;KAAA,SAAA;EAAA,IAAAmB,SAAAC,SAAA,EAAAC,SAAAF,OAAA/M,YAAAkN,SAAAD,OAAAjN,YAAAmN,SAAAD,OAAAhN,aAAAkN,SAAAH,OAAA/M,aAAAmN,SAAAD,OAAApN,YAAAsN,SAAAF,OAAAlN,aAAAqN,SAAAD,OAAAtN,YAAAyN,SAAAF,OAAArN,YAAAF,YAAA0N,SAAAD,OAAAzN,YAAA2N,SAAAD,OAAAxN,aAAA0N,SAAAH,OAAAvN,aAAA2N,SAAAD,OAAA5N,YAAA8N,SAAAD,OAAA3N,aAAA6N,SAAAH,OAAA1N,aAAA8N,SAAAD,OAAA/N,YAAAiO,SAAAD,OAAA9N,aAAAgO,SAAAD,OAAAjO,YAAAmO,SAAAJ,OAAA7N,aAAAkO,UAAAD,OAAAnO,YAAAqO,UAAAD,QAAAlO,aAAAoO,UAAAH,OAAAjO,aAAAqO,UAAAD,QAAAtO,YAAAwO,UAAAD,QAAArO,aAAAuO,UAAAH,QAAApO,aAAAwO,UAAAD,QAAAzO,YAAA2O,UAAAD,QAAAxO,aAAA0O,UAAAH,QAAAvO,aAAA2O,UAAAD,QAAA5O,YAAA8O,UAAAD,QAAA3O;AAAAO,SAAA0M,QAAA9I,gBAU/BnJ,KAAG;GAAA,IAACoJ,OAAI;AAAA,WAAEnI,KAAK,CAACJ;;GAAQwI,WACrBwK,MAAMjN,MAAC,CAAAuC,gBAEJlJ,MAAI;IAAA,IAACsJ,OAAI;AAAA,YAAE3C,GAAG,GAAG;;IAAC,IAAAyC,WAAA;KAAA,IAAAyK,UAAAC,SAAA;AAAAvO,kBAAAiB,UAAAqN,SACJpQ,QAAQ,CAACgG,iBAAgB,CAAA;AAAA,YAAAoK;;IAAA,CAAA,SAAA;IAAA,IAAAE,UAAApK,SAAA;AAAArE,WAAAyO,eAGrC7Q,MAAMhD,iBAAiB0T,KAAK,CAAA;AAAArO,iBAAAiB,UAAAuN,SADlBtQ,QAAQ,CAACmG,YAAW,CAAA;AAAA,WAAAmK;OAAA,CAAA;GAIpC,CAAA,CAAA;AAAAzO,SAAA2M,QAAA/I,gBAOJ5I,eAAa,EAAA,IAAC6B,eAAY;AAAA,UAAEnB,KAAK;KAAA,CAAA,EAAA,KAAA;AAAAsE,SAAAkN,cAe3B3I,OAAO7I,KAAK,CAACwB,QAAQsH,YAAY,MAAM,CAAA;AAAAxE,SAAAqN,cAMvC3R,KAAK,CAACwB,QAAQC,aAAa,UAAS;AAAA6C,SAAAwN,cAMpC9R,KAAK,CAACwB,QAAQwR,WAAW,KAAIjB,OAAA;AAAAzN,SAAA4N,eAY7BrJ,OAAO,CAAC,CAAC7I,KAAK,CAACwB,QAAQuH,eAAe,CAAA;AAAAzE,SAAA+N,eAYtCxJ,OAAO,CAAC,CAAC7I,KAAK,CAACwB,QAAQwH,gBAAgB,CAAA;AAAA1E,SAAAkO,eAYvC3J,OAAO7I,KAAK,CAACwB,QAAQyH,iBAAiB,MAAM,CAAA;AAAA3E,SAAAqO,SAKX3P,iBAAgB;AAAAsB,SAAAsM,QAAA1I,gBAKzDlJ,MAAI;GAAA,IAACsJ,OAAI;AAAA,WAAEvF,cAAc,CAACqG,SAAS;;GAAC,IAAAhB,WAAA;IAAA,IAAA6K,UAAA3J,SAAA,EAAA4J,UAAAD,QAAApP,YAAAuP,UAAAF,QAAArP,WAAAE;AAAAqP,YAAArP;IAAA,IAAAuP,UAAAJ,QAAAnP;AAAAO,WAAA4O,eAGnBnQ,cAAc,CAACqG,QAAMgK,QAAA;AAAA9O,WAAAgP,SAAApL,gBAGhCnJ,KAAG;KAAA,IAACoJ,OAAI;AAAA,aAAEvF,iBAAiB;;KAAAwF,WACxBwB,aAAa;MACb,MAAMC,kBACJ3H,MAAML,qBAAqBmB,kBAAkB,EAAE,KAAK;MACtD,MAAM8G,cACJ5H,MAAMF,iBAAiBgB,kBAAkB,EAAE,KAAK;AAClD,oBAAA;OAAA,IAAAuQ,UAAAvJ,SAAA,EAAAwJ,UAAAD,QAAA1P,YAAA6P,UAAAF,QAAAzP,YAAAA,aAAA6P,UAAAF,QAAA3P,YAAAA,aAAA+P,UAAAF,QAAA7P,YAAAA;AAAA+P,eAAA/P;AAAAO,cAAAkP,SAEW1J,MAAK;AAAAxF,cAAAiP,eAAY3J,SAAS9I,IAAE4S,QAAA;AAAApP,cAAAiP,eAClCrR,MAAM/C,qBAAqByK,SAAShK,SAAS,EAAAgU,QAAA;AAAAtP,cAAAiP,eAC7C3J,SAASpI,QAAQC,aAAa,WAASqS,QAAA;AAAAxP,cAAAiP,eACvCrR,MAAM9B,qBAAqBwJ,SAASvJ,OAAO,EAAA,KAAA;AAAAkE,oBAAAiB,UAAA+N,SAJlC9Q,QAAQ,CAACoH,WAAW,EAAC,CAAA;AAAA,cAAA0J;UAAA;;KAOpC,CAAA,EAAA,KAAA;AAAAjP,WAAAgP,SAAApL,gBAEFnJ,KAAG;KAAA,IAACoJ,OAAI;AAAA,aAAErF,gBAAgB;;KAAAsF,WACvBwB,oBAAQ;MAAA,IAAAoK,UAAAtJ,SAAA,EAAAyJ,UAAAH,QAAAnQ,WAAAE,YAAAA,aAAAsQ,UAAAF,QAAApQ,YAAAA,aAAAwQ,UAAAF,QAAAtQ,YAAAA;AAAAwQ,cAAAxQ;AAAAO,aAAA0P,eAEcpK,SAAS9I,IAAEqT,QAAA;AAAA7P,aAAA0P,eAC9B9R,MAAM/C,qBAAqByK,SAAShK,SAAS,EAAAyU,QAAA;AAAA/P,aAAA0P,eAC7CpK,SAASpI,QAAQC,aAAa,WAAS8S,QAAA;AAAAjQ,aAAA0P,eACvC9R,MAAM9B,qBAAqBwJ,SAASvJ,OAAO,EAAA,KAAA;AAAAkE,mBAAAiB,UAAAwO,SAJlCvR,QAAQ,CAAC0I,kBAAiB,CAAA;AAAA,aAAA6I;SAAA;KAMvC,CAAA,EAAA,KAAA;AAAAzP,YAAAC,QAAA;KAAA,IAAAiQ,QA7BKhS,QAAQ,CAAC4I,eAAaqJ,QACpBjS,QAAQ,CAAC8I,qBAAmBoJ,QAG5BlS,QAAQ,CAACgJ;AAAYgJ,eAAAjQ,IAAAe,KAAAC,UAAAyN,SAAAzO,IAAAe,IAAAkP,MAAA;AAAAC,eAAAlQ,IAAAnC,KAAAmD,UAAA0N,SAAA1O,IAAAnC,IAAAqS,MAAA;AAAAC,eAAAnQ,IAAAiB,KAAAD,UAAA8N,SAAA9O,IAAAiB,IAAAkP,MAAA;AAAA,YAAAnQ;OAAA;KAAAe,GAAAQ;KAAA1D,GAAA0D;KAAAN,GAAAM;KAAA,CAAA;AAAA,WAAAkN;;GAAA,CAAA,EAAA,KAAA;AAAA1O,UAAAC,QAAA;GAAA,IAAAoQ,QAnG3BnS,QAAQ,CAACkJ,aAAWkJ,QAClBpS,QAAQ,CAAC4I,eAAayJ,QACpBrS,QAAQ,CAAC8I,qBAAmBwJ,QAC5BtS,QAAQ,CAACsJ,cAAYiJ,QAgBvBvS,QAAQ,CAAC4I,eAAa4J,QACpBxS,QAAQ,CAAC8I,qBAAmB2J,QAI9BzS,QAAQ,CAAC4I,eAAa8J,QACpB1S,QAAQ,CAAC8I,qBAAmB6J,QAE1B3S,QAAQ,CAAC4J,WAASgJ,QACf5S,QAAQ,CAAC8J,aAAW+I,QAG7BtV,KAAK,CAACwB,QAAQsH,YAAY,QACtBrG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgB6I,QAMvB9S,QAAQ,CAAC4J,WAASmJ,QACf/S,QAAQ,CAAC8J,aAAWkJ,QACpBhT,QAAQ,CAACqK,aAAW4I,QAIvBjT,QAAQ,CAAC4J,WAASsJ,QACflT,QAAQ,CAAC8J,aAAWqJ,QACpBnT,QAAQ,CAACqK,aAAW+I,QAIvBpT,QAAQ,CAAC4J,WAASyJ,QACfrT,QAAQ,CAAC8J,aAAWwJ,QAG7B/V,KAAK,CAACwB,QAAQuH,iBACVtG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgBsJ,QAMvBvT,QAAQ,CAAC4J,WAAS4J,QACfxT,QAAQ,CAAC8J,aAAW2J,QAG7BlW,KAAK,CAACwB,QAAQwH,kBACVvG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgByJ,QAMvB1T,QAAQ,CAAC4J,WAAS+J,QACf3T,QAAQ,CAAC8J,aAAW8J,QAG7BrW,KAAK,CAACwB,QAAQyH,iBAAiB,QAC3BxG,QAAQ,CAACgK,kBACThK,QAAQ,CAACiK,kBAAgB4J,QAMvB7T,QAAQ,CAAC4J,WAASkK,QACf9T,QAAQ,CAAC8J,aAAWiK,QACpB/T,QAAQ,CAACqK;AAAW8H,aAAApQ,IAAAe,KAAAC,UAAAoL,QAAApM,IAAAe,IAAAqP,MAAA;AAAAC,aAAArQ,IAAAnC,KAAAmD,UAAAsL,QAAAtM,IAAAnC,IAAAwS,MAAA;AAAAC,aAAAtQ,IAAAiB,KAAAD,UAAAuL,QAAAvM,IAAAiB,IAAAqP,MAAA;AAAAC,aAAAvQ,IAAAkB,KAAAF,UAAAwL,QAAAxM,IAAAkB,IAAAqP,MAAA;AAAAC,aAAAxQ,IAAAmB,KAAAH,UAAAyL,QAAAzM,IAAAmB,IAAAqP,MAAA;AAAAC,aAAAzQ,IAAAoB,KAAAJ,UAAA0L,QAAA1M,IAAAoB,IAAAqP,MAAA;AAAAC,aAAA1Q,IAAAqB,KAAAL,UAAA2L,QAAA3M,IAAAqB,IAAAqP,MAAA;AAAAC,aAAA3Q,IAAAsB,KAAAN,UAAA4L,QAAA5M,IAAAsB,IAAAqP,MAAA;AAAAC,aAAA5Q,IAAAlC,KAAAkD,UAAA8L,QAAA9M,IAAAlC,IAAA8S,MAAA;AAAAC,aAAA7Q,IAAAyJ,KAAAzI,UAAA+L,QAAA/M,IAAAyJ,IAAAoH,MAAA;AAAAC,aAAA9Q,IAAA0J,KAAA1I,UAAAgM,QAAAhN,IAAA0J,IAAAoH,MAAA;AAAAC,aAAA/Q,IAAA2J,KAAA3I,UAAAiM,QAAAjN,IAAA2J,IAAAoH,MAAA;AAAAC,aAAAhR,IAAA4J,KAAA5I,UAAAkM,QAAAlN,IAAA4J,IAAAoH,MAAA;AAAAC,aAAAjR,IAAA6J,KAAA7I,UAAAmM,QAAAnN,IAAA6J,IAAAoH,MAAA;AAAAC,aAAAlR,IAAA8J,KAAA9I,UAAAoM,QAAApN,IAAA8J,IAAAoH,MAAA;AAAAC,aAAAnR,IAAA+J,KAAA/I,UAAAqM,QAAArN,IAAA+J,IAAAoH,MAAA;AAAAC,aAAApR,IAAAgK,KAAAhJ,UAAAsM,QAAAtN,IAAAgK,IAAAoH,MAAA;AAAAC,aAAArR,IAAAiK,KAAAjJ,UAAAwM,QAAAxN,IAAAiK,IAAAoH,MAAA;AAAAC,aAAAtR,IAAArB,KAAAqC,UAAAyM,SAAAzN,IAAArB,IAAA2S,MAAA;AAAAC,aAAAvR,IAAAjC,KAAAiD,UAAA0M,SAAA1N,IAAAjC,IAAAwT,MAAA;AAAAC,aAAAxR,IAAAkK,KAAAlJ,UAAA2M,SAAA3N,IAAAkK,IAAAsH,MAAA;AAAAC,aAAAzR,IAAAmK,KAAAnJ,UAAA4M,SAAA5N,IAAAmK,IAAAsH,MAAA;AAAAC,aAAA1R,IAAAoK,KAAApJ,UAAA6M,SAAA7N,IAAAoK,IAAAsH,MAAA;AAAAC,aAAA3R,IAAAqK,KAAArJ,UAAA8M,SAAA9N,IAAAqK,IAAAsH,MAAA;AAAAC,aAAA5R,IAAAsK,KAAAtJ,UAAA+M,SAAA/N,IAAAsK,IAAAsH,MAAA;AAAAC,aAAA7R,IAAAuK,KAAAvJ,UAAAgN,SAAAhO,IAAAuK,IAAAsH,MAAA;AAAAC,aAAA9R,IAAAwK,KAAAxJ,UAAAiN,SAAAjO,IAAAwK,IAAAsH,MAAA;AAAAC,aAAA/R,IAAAyK,KAAAzJ,UAAAkN,SAAAlO,IAAAyK,IAAAsH,MAAA;AAAAC,aAAAhS,IAAA0K,KAAA1J,UAAAmN,SAAAnO,IAAA0K,IAAAsH,MAAA;AAAA,UAAAhS;KAAA;GAAAe,GAAAQ;GAAA1D,GAAA0D;GAAAN,GAAAM;GAAAL,GAAAK;GAAAJ,GAAAI;GAAAH,GAAAG;GAAAF,GAAAE;GAAAD,GAAAC;GAAAzD,GAAAyD;GAAAkI,GAAAlI;GAAAmI,GAAAnI;GAAAoI,GAAApI;GAAAqI,GAAArI;GAAAsI,GAAAtI;GAAAuI,GAAAvI;GAAAwI,GAAAxI;GAAAyI,GAAAzI;GAAA0I,GAAA1I;GAAA5C,GAAA4C;GAAAxD,GAAAwD;GAAA2I,GAAA3I;GAAA4I,GAAA5I;GAAA6I,GAAA7I;GAAA8I,GAAA9I;GAAA+I,GAAA/I;GAAAgJ,GAAAhJ;GAAAiJ,GAAAjJ;GAAAkJ,GAAAlJ;GAAAmJ,GAAAnJ;GAAA,CAAA;AAAA,SAAA6K;KAAA,CAAA;;AA6C/C,SAAgB6F,aAAavU,OAA0B;CACrD,MAAMO,SAASrD,WAAW;CAC1B,MAAM+C,QAAQ9C,yBAAyB;AAEvC,eAAA;EAAA,IAAAqX,UAAAC,SAAA;AAAArS,SAAAoS,SAAAxO,gBAEKlJ,MAAI;GAAA,IACHsJ,OAAI;AAAA,WAAEpG,MAAM/B,sBAAsB;;GAAA,IAClCyW,WAAQ;AAAA,kBAAA;KAAA,IAAAC,UAAAC,UAAA;AAAAvS,kBAAAiB,UAAAqR,SACMpU,QAAQ,CAACsU,YAAW,CAAA;AAAA,YAAAF;QAAA;;GAAAzO,WAKhCpI,QAAGkI,gBACFlJ,MAAI;IAAA,IACHsJ,OAAI;AAAA,YAAEvI,uBAAuBC,KAAK,CAAC;;IAAA,IACnC4W,WAAQ;AAAA,YAAA1O,gBACLjG,eAAa;MAAA,IACZd,eAAY;AAAA,cAAEnB,KAAK;;MACZmC;MACe/B;MACDc;MACDQ;MACEG;MACJG;MACA9C;MACVuD;MAAM,CAAA;;IAAA,IAAA2F,WAAA;AAAA,YAAAF,gBAIjBoH,iBAAe;MAAA,IACdnO,eAAY;AAAA,cAAEnB,KAAK;;MACZmC;MACe/B;MACOuB;MACDC;MACNC;MACJG;MACI7C;MACJD;MACVuD;MAAM,CAAA;;IAAA,CAAA;GAGnB,CAAA,CAAA;AAAA8B,eAAAiB,UAAAkR,SAvCOjU,QAAQ,CAACuU,aAAY,CAAA;AAAA,SAAAN;KAAA"}
1
+ {"version":3,"file":"DetailsPanel.js","names":["For","Show","createMemo","clsx","formatForDisplay","formatHotkeySequence","useStyles","useHotkeysDevtoolsState","effectiveSequenceMatchedSteps","ActionButtons","ConflictBehavior","HotkeyRegistration","HotkeySequence","SequenceRegistrationView","sequenceKey","sequence","Array","join","isSequenceRegistration","reg","isArray","DetailsPanelProps","selectedRegistration","getTargetDescription","target","HTMLElement","Document","Window","document","window","tag","tagName","toLowerCase","id","cls","className","split","findTargetConflicts","registration","all","filter","other","hotkey","options","eventType","findScopeConflicts","findSequenceTargetConflicts","findSequenceScopeConflicts","getConflictItemStyle","behavior","isSameTarget","getConflictLabel","HotkeyDetails","props","state","ReturnType","t","r","b","same","styles","parsed","parsedHotkey","targetConflicts","registrations","scopeConflicts","allConflicts","conflictBehavior","keyParts","parts","p","ctrl","push","shift","alt","meta","key","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_$insert","_$effect","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","_v$9","e","_$className","a","o","i","n","s","h","undefined","_el$0","_tmpl$3","_el$1","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$22","_el$23","_el$24","_el$25","_el$26","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","_$createComponent","each","children","part","when","_el$47","_tmpl$4","keyBreakdownPlus","_el$48","_tmpl$5","keyCapLarge","String","enabled","preventDefault","stopPropagation","ignoreInputs","requireReset","hasFired","length","_el$41","_tmpl$2","_el$42","_el$43","_el$45","_el$44","_el$46","conflict","itemStyle","label","_el$49","_tmpl$6","_el$50","_el$51","_el$57","_el$52","_el$58","_el$54","_el$59","_el$55","_el$60","_tmpl$7","_el$61","_el$62","_el$68","_el$63","_el$69","_el$65","_el$70","_el$66","conflictItemScope","_v$0","detailSection","_v$1","detailSectionHeader","_v$10","conflictList","_v$11","detailsGrid","_v$12","_v$13","_v$14","keyBreakdown","_v$15","_v$16","_v$17","_v$18","_v$19","optionRow","_v$20","optionLabel","_v$21","optionValueTrue","optionValueFalse","_v$22","_v$23","_v$24","optionValue","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","_v$37","_v$38","_v$39","_v$40","_v$41","_v$42","d","l","u","c","w","m","f","y","g","T","A","O","I","S","W","C","B","v","k","x","j","SequenceDetails","seq","liveReg","sequenceRegistrations","find","matchedSteps","sequenceProgressNow","_el$71","_tmpl$8","_el$72","_el$73","_el$74","_el$75","_el$76","_el$77","_el$78","_el$79","step","_el$117","_tmpl$0","_el$118","sequenceStepMatched","_el$119","_el$120","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_v$51","_el$80","_tmpl$9","_el$81","_el$82","_el$83","_el$84","_el$85","_el$86","_el$87","_el$88","_el$89","_el$90","_el$91","_el$92","_el$93","_el$94","_el$95","_el$96","_el$97","_el$98","_el$99","_el$100","_el$101","_el$102","_el$103","_el$104","_el$105","_el$106","_el$107","_el$108","_el$109","_el$110","_el$121","_tmpl$1","_el$122","keyCapLargeInProgress","timeout","_el$111","_el$112","_el$113","_el$115","_el$114","_el$116","_el$123","_el$124","_el$125","_el$131","_el$126","_el$132","_el$128","_el$133","_el$129","_el$134","_el$135","_el$136","_el$142","_el$137","_el$143","_el$139","_el$144","_el$140","_v$52","_v$53","_v$54","_v$55","_v$56","_v$57","_v$58","_v$59","_v$60","_v$61","_v$62","_v$63","_v$64","_v$65","_v$66","_v$67","_v$68","_v$69","_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","DetailsPanel","_el$145","_tmpl$10","fallback","_el$146","_tmpl$11","noSelection","stateDetails"],"sources":["../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { For, Show, createMemo } from 'solid-js'\nimport clsx from 'clsx'\nimport { formatForDisplay, formatHotkeySequence } 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 HotkeyRegistration,\n HotkeySequence,\n SequenceRegistrationView,\n} from '@tanstack/hotkeys'\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: (hotkey: string) => 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 keyParts = createMemo(() => {\n const parts: Array<string> = []\n const p = parsed()\n if (p.ctrl) parts.push('Ctrl')\n if (p.shift) parts.push('Shift')\n if (p.alt) parts.push('Alt')\n if (p.meta) parts.push('Meta')\n parts.push(p.key)\n return parts\n })\n\n 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().keyBreakdown}>\n <For each={keyParts()}>\n {(part, i) => (\n <>\n <Show when={i() > 0}>\n <span class={styles().keyBreakdownPlus}>+</span>\n </Show>\n <span class={styles().keyCapLarge}>{part}</span>\n </>\n )}\n </For>\n </div>\n </div>\n\n <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}>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: (hotkey: string) => 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 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 </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}>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":"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"}