Final few components

This commit is contained in:
Jai A
2023-03-14 14:22:50 -07:00
parent f5cbe0c4fe
commit dcc2a5afe0
12 changed files with 408 additions and 2 deletions

View File

@@ -22,6 +22,8 @@ export default {
{ text: 'Card', link: '/components/card' },
{ text: 'Checkbox', link: '/components/checkbox' },
{ text: 'Chips', link: '/components/chips' },
{ text: 'File Input', link: '/components/file-input' },
{ text: 'Drop Area', link: '/components/drop-area' },
{ text: 'Icons', link: '/components/icons' },
{ text: 'Pagination', link: '/components/pagination' },
{ text: 'Project Card', link: '/components/project-card' },
@@ -31,6 +33,7 @@ export default {
{ text: 'Text Logo', link: '/components/text-logo' },
{ text: 'Slider', link: '/components/slider' },
{ text: 'Text Inputs', link: '/components/text-inputs' },
{ text: 'Search Filter', link: '/components/search-filter' },
],
},
],

View File

@@ -1,5 +1,5 @@
<template>
<div class="demo bg-raised radius-lg padding-md"><slot /></div>
<div class="demo"><slot /></div>
</template>
<script>
@@ -8,8 +8,11 @@ export default {}
<style lang="scss" scoped>
.demo {
background: var(--color-raised-bg);
border: 1px solid var(--color-button-bg);
border-radius: var(--gap-lg);
display: flex;
padding: var(--gap-md);
gap: var(--gap-md);
align-items: center;
flex-wrap: wrap;

View File

@@ -22,3 +22,26 @@
class="tags"
/>
</DemoContainer>
```vue
<Categories
:categories="[{
name: 'magic',
icon: '<svg viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'currentColor\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'><path d=\'M15 4V2\'></path><path d=\'M15 16v-2\'></path><path d=\'M8 9h2\'></path><path d=\'M20 9h2\'></path><path d=\'M17.8 11.8 19 13\'></path><path d=\'M15 9h0\'></path><path d=\'M17.8 6.2 19 5\'></path><path d=\'m3 21 9-9\'></path><path d=\'M12.2 6.2 11 5\'></path></svg>',
},
{
icon: '<svg viewBox=\'0 0 24 24\' fill=\'none\' stroke=\'currentColor\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'><rect x=\'2\' y=\'7\' width=\'20\' height=\'14\' rx=\'2\' ry=\'2\'/><path d=\'M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\'/></svg>',
name: 'utility',
},
{
icon: '<svg xmlns=\'http://www.w3.org/2000/svg\' xml:space=\'preserve\' fill-rule=\'evenodd\' stroke-linecap=\'round\' stroke-linejoin=\'round\' clip-rule=\'evenodd\' viewBox=\'0 0 24 24\'>\n <path fill=\'none\' d=\'M0 0h24v24H0z\'/>\n <path fill=\'none\' stroke=\'currentColor\' stroke-width=\'23\' d=\'m820 761-85.6-87.6c-4.6-4.7-10.4-9.6-25.9 1-19.9 13.6-8.4 21.9-5.2 25.4 8.2 9 84.1 89 97.2 104 2.5 2.8-20.3-22.5-6.5-39.7 5.4-7 18-12 26-3 6.5 7.3 10.7 18-3.4 29.7-24.7 20.4-102 82.4-127 103-12.5 10.3-28.5 2.3-35.8-6-7.5-8.9-30.6-34.6-51.3-58.2-5.5-6.3-4.1-19.6 2.3-25 35-30.3 91.9-73.8 111.9-90.8\' transform=\'matrix(.08671 0 0 .0867 -49.8 -56)\'/>\n</svg>',
name: 'fabric',
},
{
icon: '<svg xml:space=\'preserve\' fill-rule=\'evenodd\' stroke-linecap=\'round\' stroke-linejoin=\'round\' stroke-miterlimit=\'1.5\' clip-rule=\'evenodd\' viewBox=\'0 0 24 24\'>\n <path fill=\'none\' d=\'M0 0h24v24H0z\'></path>\n <path fill=\'none\' stroke=\'currentColor\' stroke-width=\'2\' d=\'M2 7.5h8v-2h12v2s-7 3.4-7 6 3.1 3.1 3.1 3.1l.9 3.9H5l1-4.1s3.8.1 4-2.9c.2-2.7-6.5-.7-8-6Z\'></path>\n</svg>',
name: 'forge'
}]"
type="mod"
class="tags"
/>
```

View File

@@ -0,0 +1,11 @@
# Drop Area
<DemoContainer>
<InfoIcon /> Click to choose a file or drag one onto this page
<DropArea accept="*" />
</DemoContainer>
```vue
<InfoIcon /> Click to choose a file or drag one onto this page
<DropArea accept="*" />
```

View File

@@ -0,0 +1,23 @@
# File Input
<DemoContainer>
<FileInput
:max-size="262144"
accept="image/png,image/jpeg,image/gif,image/webp"
class="btn"
prompt="Upload icon"
>
<UploadIcon />
</FileInput>
</DemoContainer>
```vue
<FileInput
:max-size="262144"
accept="image/png,image/jpeg,image/gif,image/webp"
class="btn"
prompt="Upload icon"
>
<UploadIcon />
</FileInput>
```

View File

@@ -0,0 +1,53 @@
# Search Filter
<script setup>
import { ref } from "vue";
const activeFilters = ref([]);
function toggleFilter(filter) {
const index = activeFilters.value.indexOf(filter);
if (index !== -1) {
activeFilters.value.splice(index, 1)
} else {
activeFilters.value.push(filter)
}
}
</script>
<DemoContainer>
<SearchFilter
:active-filters="activeFilters"
display-name="Client"
facet-name="client"
@toggle="toggleFilter"
>
<ClientIcon aria-hidden="true" />
</SearchFilter>
</DemoContainer>
```vue
<script setup>
import { ref } from "vue";
const activeFilters = ref([]);
function toggleFilter(filter) {
const index = activeFilters.value.indexOf(filter);
if (index !== -1) {
activeFilters.value.splice(index, 1)
} else {
activeFilters.value.push(filter)
}
}
</script>
<SearchFilter
:active-filters="activeFilters"
display-name="Client"
facet-name="client"
@toggle="toggleFilter"
>
<ClientIcon aria-hidden="true" />
</SearchFilter>
```