1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00
budibase/packages/builder/src/userInterface/ComponentSearch.svelte

68 lines
1.3 KiB
Svelte
Raw Normal View History

<script>
import { searchAllComponents } from "./pagesParsing/searchComponents";
2019-08-17 02:48:45 +12:00
import { store } from "../builderStore";
export let onComponentChosen = () => {};
let components = [];
let phrase = "";
2019-08-17 02:48:45 +12:00
store.subscribe(s => {
components = s.components;
2019-08-17 02:48:45 +12:00
});
$: filteredComponents =
!phrase
? []
: searchAllComponents(components, phrase);
</script>
<div class="root">
2019-08-15 09:11:59 +12:00
<form class="uk-search uk-search-large">
<span uk-search-icon></span>
<input class="uk-search-input"
type="search"
placeholder="Based on component..."
bind:value={phrase}>
</form>
<div>
{#each filteredComponents as component}
<div class="component" on:click={() => onComponentChosen(component)}>
<div class="title">{component.name}</div>
<div class="description">{component.description}</div>
</div>
{/each}
</div>
</div>
<style>
.component {
padding:5px;
border-style: solid;
border-width: 0 0 1px 0;
border-color: var(--lightslate);
cursor: pointer;
}
.component:hover {
background-color: var(--primary10);
}
.component > .title {
font-size: 13pt;
color: var(--secondary100);
}
.component > .description {
font-size: 10pt;
color: var(--primary75);
font-style: italic;
}
</style>