Skip to content

Commit e48ff52

Browse files
feat: Add Preact adapter (#32)
* Implement preact packages * Add preact examples * Add docs * rewrite preact useHotkeySequence * update docs for preact and solid * add devtools to preact examles, fix example versions * format --------- Co-authored-by: Kevin Van Cott <kevinvandy656@gmail.com>
1 parent dc259e0 commit e48ff52

101 files changed

Lines changed: 7991 additions & 38 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ Type-safe keyboard shortcuts for the web. Template-string bindings, parsed objec
5454
> You may know **TanStack Hotkeys** by our adapter names, too!
5555
>
5656
> - [**React Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/react/react-hotkeys)
57-
> - Solid Hotkeys – needs a contributor!
57+
> - [**Preact Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/preact/preact-hotkeys)
58+
> - [**Solid Hotkeys**](https://tanstack.com/hotkeys/latest/docs/framework/solid/solid-hotkeys)
5859
> - Angular Hotkeys – needs a contributor!
5960
> - Svelte Hotkeys – needs a contributor!
6061
> - Vue Hotkeys – needs a contributor!

docs/config.json

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,24 @@
3131
"to": "framework/react/quick-start"
3232
}
3333
]
34+
},
35+
{
36+
"label": "preact",
37+
"children": [
38+
{
39+
"label": "Preact Hooks",
40+
"to": "framework/preact/reference/index"
41+
}
42+
]
43+
},
44+
{
45+
"label": "solid",
46+
"children": [
47+
{
48+
"label": "Solid Primitives",
49+
"to": "framework/solid/reference/index"
50+
}
51+
]
3452
}
3553
]
3654
},
@@ -62,6 +80,56 @@
6280
"to": "framework/react/guides/formatting-display"
6381
}
6482
]
83+
},
84+
{
85+
"label": "preact",
86+
"children": [
87+
{
88+
"label": "Hotkeys",
89+
"to": "framework/preact/guides/hotkeys"
90+
},
91+
{
92+
"label": "Sequences",
93+
"to": "framework/preact/guides/sequences"
94+
},
95+
{
96+
"label": "Hotkey Recording",
97+
"to": "framework/preact/guides/hotkey-recording"
98+
},
99+
{
100+
"label": "Key State Tracking",
101+
"to": "framework/preact/guides/key-state-tracking"
102+
},
103+
{
104+
"label": "Formatting & Display",
105+
"to": "framework/preact/guides/formatting-display"
106+
}
107+
]
108+
},
109+
{
110+
"label": "solid",
111+
"children": [
112+
{
113+
"label": "Hotkeys",
114+
"to": "framework/solid/guides/hotkeys"
115+
},
116+
{
117+
"label": "Sequences",
118+
"to": "framework/solid/guides/sequences"
119+
},
120+
{
121+
"label": "Hotkey Recording",
122+
"to": "framework/solid/guides/hotkey-recording"
123+
},
124+
{
125+
"label": "Key State Tracking",
126+
"to": "framework/solid/guides/key-state-tracking"
127+
},
128+
{
129+
"label": "Formatting & Display",
130+
"to": "framework/solid/guides/formatting-display"
131+
}
132+
]
65133
}
66134
]
67135
},
@@ -82,6 +150,24 @@
82150
"to": "framework/react/reference/index"
83151
}
84152
]
153+
},
154+
{
155+
"label": "preact",
156+
"children": [
157+
{
158+
"label": "Preact Hooks",
159+
"to": "framework/preact/reference/index"
160+
}
161+
]
162+
},
163+
{
164+
"label": "solid",
165+
"children": [
166+
{
167+
"label": "Solid Primitives",
168+
"to": "framework/solid/reference/index"
169+
}
170+
]
85171
}
86172
]
87173
},
@@ -136,6 +222,32 @@
136222
"to": "framework/react/reference/interfaces/UseHotkeyOptions"
137223
}
138224
]
225+
},
226+
{
227+
"label": "preact",
228+
"children": [
229+
{
230+
"label": "useHotkey",
231+
"to": "framework/preact/reference/functions/useHotkey"
232+
},
233+
{
234+
"label": "UseHotkeyOptions",
235+
"to": "framework/preact/reference/interfaces/UseHotkeyOptions"
236+
}
237+
]
238+
},
239+
{
240+
"label": "solid",
241+
"children": [
242+
{
243+
"label": "createHotkey",
244+
"to": "framework/solid/reference/functions/createHotkey"
245+
},
246+
{
247+
"label": "CreateHotkeyOptions",
248+
"to": "framework/solid/reference/interfaces/CreateHotkeyOptions"
249+
}
250+
]
139251
}
140252
]
141253
},
@@ -178,6 +290,32 @@
178290
"to": "framework/react/reference/interfaces/UseHotkeySequenceOptions"
179291
}
180292
]
293+
},
294+
{
295+
"label": "preact",
296+
"children": [
297+
{
298+
"label": "useHotkeySequence",
299+
"to": "framework/preact/reference/functions/useHotkeySequence"
300+
},
301+
{
302+
"label": "UseHotkeySequenceOptions",
303+
"to": "framework/preact/reference/interfaces/UseHotkeySequenceOptions"
304+
}
305+
]
306+
},
307+
{
308+
"label": "solid",
309+
"children": [
310+
{
311+
"label": "createHotkeySequence",
312+
"to": "framework/solid/reference/functions/createHotkeySequence"
313+
},
314+
{
315+
"label": "CreateHotkeySequenceOptions",
316+
"to": "framework/solid/reference/interfaces/CreateHotkeySequenceOptions"
317+
}
318+
]
181319
}
182320
]
183321
},
@@ -212,6 +350,24 @@
212350
"to": "framework/react/reference/functions/useKeyHold"
213351
}
214352
]
353+
},
354+
{
355+
"label": "preact",
356+
"children": [
357+
{
358+
"label": "useKeyHold",
359+
"to": "framework/preact/reference/functions/useKeyHold"
360+
}
361+
]
362+
},
363+
{
364+
"label": "solid",
365+
"children": [
366+
{
367+
"label": "createKeyHold",
368+
"to": "framework/solid/reference/functions/createKeyHold"
369+
}
370+
]
215371
}
216372
]
217373
},
@@ -250,6 +406,32 @@
250406
"to": "framework/react/reference/functions/useHeldKeyCodes"
251407
}
252408
]
409+
},
410+
{
411+
"label": "preact",
412+
"children": [
413+
{
414+
"label": "useHeldKeys",
415+
"to": "framework/preact/reference/functions/useHeldKeys"
416+
},
417+
{
418+
"label": "useHeldKeyCodes",
419+
"to": "framework/preact/reference/functions/useHeldKeyCodes"
420+
}
421+
]
422+
},
423+
{
424+
"label": "solid",
425+
"children": [
426+
{
427+
"label": "createHeldKeys",
428+
"to": "framework/solid/reference/functions/createHeldKeys"
429+
},
430+
{
431+
"label": "createHeldKeyCodes",
432+
"to": "framework/solid/reference/functions/createHeldKeyCodes"
433+
}
434+
]
253435
}
254436
]
255437
},
@@ -284,6 +466,32 @@
284466
"to": "framework/react/reference/interfaces/ReactHotkeyRecorder"
285467
}
286468
]
469+
},
470+
{
471+
"label": "preact",
472+
"children": [
473+
{
474+
"label": "useHotkeyRecorder",
475+
"to": "framework/preact/reference/functions/useHotkeyRecorder"
476+
},
477+
{
478+
"label": "PreactHotkeyRecorder",
479+
"to": "framework/preact/reference/interfaces/PreactHotkeyRecorder"
480+
}
481+
]
482+
},
483+
{
484+
"label": "solid",
485+
"children": [
486+
{
487+
"label": "createHotkeyRecorder",
488+
"to": "framework/solid/reference/functions/createHotkeyRecorder"
489+
},
490+
{
491+
"label": "SolidHotkeyRecorder",
492+
"to": "framework/solid/reference/interfaces/SolidHotkeyRecorder"
493+
}
494+
]
287495
}
288496
]
289497
},
@@ -374,6 +582,56 @@
374582
"to": "framework/react/examples/useKeyhold"
375583
}
376584
]
585+
},
586+
{
587+
"label": "preact",
588+
"children": [
589+
{
590+
"label": "useHotkey",
591+
"to": "framework/preact/examples/useHotkey"
592+
},
593+
{
594+
"label": "useHotkeySequence",
595+
"to": "framework/preact/examples/useHotkeySequence"
596+
},
597+
{
598+
"label": "useHotkeyRecorder",
599+
"to": "framework/preact/examples/useHotkeyRecorder"
600+
},
601+
{
602+
"label": "useHeldKeys",
603+
"to": "framework/preact/examples/useHeldKeys"
604+
},
605+
{
606+
"label": "useKeyHold",
607+
"to": "framework/preact/examples/useKeyhold"
608+
}
609+
]
610+
},
611+
{
612+
"label": "solid",
613+
"children": [
614+
{
615+
"label": "createHotkey",
616+
"to": "framework/solid/examples/createHotkey"
617+
},
618+
{
619+
"label": "createHotkeySequence",
620+
"to": "framework/solid/examples/createHotkeySequence"
621+
},
622+
{
623+
"label": "createHotkeyRecorder",
624+
"to": "framework/solid/examples/createHotkeyRecorder"
625+
},
626+
{
627+
"label": "createHeldKeys",
628+
"to": "framework/solid/examples/createHeldKeys"
629+
},
630+
{
631+
"label": "createKeyHold",
632+
"to": "framework/solid/examples/createKeyHold"
633+
}
634+
]
377635
}
378636
]
379637
}

0 commit comments

Comments
 (0)