From 02e699aad51aecf0ff13497188a0fe2bd16d7f67 Mon Sep 17 00:00:00 2001 From: padreug Date: Tue, 11 Feb 2025 01:41:12 +0100 Subject: [PATCH] add quick town selection and category selection from homescreen with localstorage! --- dev-dist/sw.js | 2 +- src/assets/index.css | 16 ++ src/components/directory/DirectoryFilter.vue | 27 ++- src/components/directory/DirectoryGrid.vue | 6 - src/components/theme-provider/index.ts | 10 +- src/components/ui/select/Select.vue | 15 ++ src/components/ui/select/SelectContent.vue | 56 +++++ src/components/ui/select/SelectGroup.vue | 19 ++ src/components/ui/select/SelectItem.vue | 46 ++++ src/components/ui/select/SelectItemText.vue | 11 + src/components/ui/select/SelectLabel.vue | 13 ++ .../ui/select/SelectScrollDownButton.vue | 24 ++ .../ui/select/SelectScrollUpButton.vue | 24 ++ src/components/ui/select/SelectSeparator.vue | 17 ++ src/components/ui/select/SelectTrigger.vue | 31 +++ src/components/ui/select/SelectValue.vue | 11 + src/components/ui/select/index.ts | 11 + src/data/directory.ts | 206 +++++++++--------- src/i18n/locales/en.ts | 7 +- src/i18n/locales/es.ts | 19 +- src/locales/en.json | 8 + src/locales/es.json | 8 + src/pages/Directory.vue | 61 +++++- src/pages/Home.vue | 108 ++++++++- 24 files changed, 619 insertions(+), 137 deletions(-) create mode 100644 src/components/ui/select/Select.vue create mode 100644 src/components/ui/select/SelectContent.vue create mode 100644 src/components/ui/select/SelectGroup.vue create mode 100644 src/components/ui/select/SelectItem.vue create mode 100644 src/components/ui/select/SelectItemText.vue create mode 100644 src/components/ui/select/SelectLabel.vue create mode 100644 src/components/ui/select/SelectScrollDownButton.vue create mode 100644 src/components/ui/select/SelectScrollUpButton.vue create mode 100644 src/components/ui/select/SelectSeparator.vue create mode 100644 src/components/ui/select/SelectTrigger.vue create mode 100644 src/components/ui/select/SelectValue.vue create mode 100644 src/components/ui/select/index.ts diff --git a/dev-dist/sw.js b/dev-dist/sw.js index 2841431..7961c04 100644 --- a/dev-dist/sw.js +++ b/dev-dist/sw.js @@ -79,7 +79,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; */ workbox.precacheAndRoute([{ "url": "index.html", - "revision": "0.st6kb6leuvo" + "revision": "0.6qk4tc3oa08" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/src/assets/index.css b/src/assets/index.css index b40cff0..5abffd2 100644 --- a/src/assets/index.css +++ b/src/assets/index.css @@ -24,6 +24,11 @@ --color-input: #bcc0cc; --color-ring: #1e66f5; --radius: 0.5rem; + --popover: 220 23% 95%; + --popover-foreground: 234 16% 35%; + /* Fallback colors for older browsers */ + --fallback-background: #ffffff; + --fallback-popover: #f5f5f5; } .dark { @@ -47,6 +52,11 @@ --color-border: #363a4f; --color-input: #363a4f; --color-ring: #8aadf4; + --popover: 240 21% 15%; + --popover-foreground: 226 64% 88%; + /* Fallback colors for older browsers */ + --fallback-background: #1e1e2e; + --fallback-popover: #313244; } * { @@ -147,3 +157,9 @@ /* --color-input: hsl(24 10% 51%); /* fg4 */ */ /* --color-ring: hsl(6 93% 59%); /* red */ */ /* } */ + +@supports not (backdrop-filter: blur(1px)) { + .select-content { + background-color: var(--fallback-background) !important; + } +} diff --git a/src/components/directory/DirectoryFilter.vue b/src/components/directory/DirectoryFilter.vue index d05176c..8b05803 100644 --- a/src/components/directory/DirectoryFilter.vue +++ b/src/components/directory/DirectoryFilter.vue @@ -87,9 +87,9 @@ const towns = computed(() => [ - - -
- -
diff --git a/src/components/directory/DirectoryGrid.vue b/src/components/directory/DirectoryGrid.vue index 31d37ae..c7ec44d 100644 --- a/src/components/directory/DirectoryGrid.vue +++ b/src/components/directory/DirectoryGrid.vue @@ -3,7 +3,6 @@ import { ref, computed } from 'vue' import Fuse from 'fuse.js' import DirectoryCard from './DirectoryCard.vue' import { type DirectoryItem } from '@/types/directory' -import DirectoryFilter from './DirectoryFilter.vue' const selectedCategory = ref('all') const selectedTown = ref('all') @@ -54,11 +53,6 @@ const filteredItems = computed(() => {