UI Library for Command Palette in SolidJS webapps
Try the full demo on our documentation site.
# Core Library
npm install solid-command-palette
# Peer Dependencies
npm install solid-transition-group tinykeys fuse.js
// define actions in one module say `actions.ts`
import { defineAction } from 'solid-command-palette';
const minimalAction = defineAction({
id: 'minimal',
title: 'Minimal Action',
run: () => {
console.log('ran minimal action');
},
});
const incrementCounterAction = defineAction({
id: 'increment-counter',
title: 'Increment Counter by 1',
subtitle: 'Press CMD + E to trigger this.',
shortcut: '$mod+e', // $mod = Command on Mac & Control on Windows.
run: ({ rootContext }) => {
rootContext.increment();
},
});
export const actions = {
[minimalAction.id]: minimalAction,
[incrementCounterAction.id]: incrementCounterAction,
};
// render inside top level Solid component
import { Root, CommandPalette } from 'solid-command-palette';
import { actions } from './actions';
import 'solid-command-palette/pkg-dist/style.css';
const App = () => {
const actionsContext = {
increment() {
console.log('increment count state by 1');
},
};
return (
<div class="my-app">
<Root
actions={actions}
actionsContext={actionsContext}
>
<CommandPalette />
</Root>
</div>
);
};