vue-tailwindcss-typeahead
Just another vue&tailwind component that present you complete typeahead/autocomplete input.
Explore the docs »
View Demo on Codesandbox · Report Bug · Request Feature
Table of Contents
About The Project I can't find any independent typeahead/autocomplete input component. All of them comes with UI libraries.
Built With
- Vue
- Tailwindcss
Getting Started
To get a local copy up and running follow these simple steps.
Installation
- Get package from npm
npm install vue-tailwindcss-typeahead
Default Import
Install the component:
import Vue from 'vue'
import VueTailwindcssTypeahead from '@/vue-tailwindcsscss-typeahead.vue';
Vue.use(VueTailwindcssTypeahead)
Browser
<link rel="stylesheet" href="vue-tailwindcss-typeahead/dist/vue-tailwindcss-typeahead.css"/>
<script src="vue.js"></script>
<script src="vue-tailwindcss-typeahead/dist/vue-tailwindcss-typeahead.min.js"></script>
If Vue is detected, the plugin will be installed automatically. If not, install the component:
Vue.use(VueTailwindcssTypeahead)
Usage
Call the component on parent
<vue-tailwindcsscss-typeahead
:lists="list"
@selected="selectedData"
:ignoredList="selectedItemIds"
:clearInputWhenClicked="false"
:inputClass="['w-full','px-3','py-2','border','border-gray-400','rounded-lg','outline-none','focus:shadow-outline']"
placeholder="Please write a city name">
</vue-tailwindcsscss-typeahead>
Code on parent component
<script>
import Vue from 'vue';
import VueTailwindcssTypeahead from '@/vue-tailwindcsscss-typeahead.vue';
export default Vue.extend({
name: 'ParentComponent',
components: {
VueTailwindcssTypeahead
},
data() {
return {
list: [
{
id: 1,
name: "Amsterdam",
},
{
id: 2,
name: "Berlin",
},
{
id: 3,
name: "Istanbul",
},
],
selectedItemIds: [],
selectedItem: null
};
},
methods: {
selectedData(value) {
this.selectedItem = value
},
},
});
</script>
Properties
props | description | Type |
---|---|---|
lists | pass an array of data. id and name attribute must be passed | Array |
ignoredList | selected item's id will be passed to this variable and this item will not be showed if user want to change it | Array |
clearInputWhenClicked | If this is set to true, input will be cleared after selection. Best for multiple selections | Boolean |
inputClass | Tailwindcss classes can be passed to change input's class | Array |
placeholder | placeholder text for input | String |
@selected | point method on parent component for custom operations |
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Twitter - @basarozcan
Getting Dependency Not Found
Hi, I want to use this in my nuxt project.
Installed it using npm package and then
i have created a plugin tailwind-typeahead.js and included the plugin file in nuxt.config.js
but getting error as follows,
Error "ClickOutside is not defined"
I installed as follows:
Have to use --force, otherwise I get dependency errors. In my main.js I have this:
However, the browser shows this error:
I am using VueJS 3. Is this compatible with VueJS 3 at all?
Few feature requests
Hi @basarozcan, great component! I have a few feature requests: