From fb0caf522033c0c1de0c4885dc71bdca13c19865 Mon Sep 17 00:00:00 2001 From: Jeton Korenica Date: Tue, 14 Jul 2026 11:01:33 +0200 Subject: [PATCH] feat(select): add trigger sizes + error state, align with COSS Match the COSS UI select docs (coss.com/ui/docs/components/select): SelectTrigger: - Add size prop ('sm' | 'default' | 'lg') via cva, with responsive min-heights matching our button sizing (min-h-9 sm:min-h-8, etc.) - Switch trigger affordance to the ChevronsUpDown icon (COSS's select affordance) and add the COSS before-highlight inset shadow - Add aria-invalid/error styling (destructive border + ring) Demos (the COSS docs examples our set lacked): - Select52: small size - Select53: large size - Select54: error / aria-invalid state The existing 51 demos already cover the other documented patterns (icons, groups, labels, multiple, object values, combobox, etc.). type-check, lint and build pass; verified in-browser (all three sizes distinct, error border, dropdown opens on the sized trigger). --- src/components/selects/Select52.vue | 21 +++++++++++++++ src/components/selects/Select53.vue | 21 +++++++++++++++ src/components/selects/Select54.vue | 22 +++++++++++++++ src/components/ui/Select/SelectTrigger.vue | 31 +++++++++++++++------- src/views/Selects.vue | 5 +++- 5 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 src/components/selects/Select52.vue create mode 100644 src/components/selects/Select53.vue create mode 100644 src/components/selects/Select54.vue diff --git a/src/components/selects/Select52.vue b/src/components/selects/Select52.vue new file mode 100644 index 0000000..6151539 --- /dev/null +++ b/src/components/selects/Select52.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/components/selects/Select53.vue b/src/components/selects/Select53.vue new file mode 100644 index 0000000..96f2f3a --- /dev/null +++ b/src/components/selects/Select53.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/components/selects/Select54.vue b/src/components/selects/Select54.vue new file mode 100644 index 0000000..925b06d --- /dev/null +++ b/src/components/selects/Select54.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/components/ui/Select/SelectTrigger.vue b/src/components/ui/Select/SelectTrigger.vue index e53f26f..404a8b7 100644 --- a/src/components/ui/Select/SelectTrigger.vue +++ b/src/components/ui/Select/SelectTrigger.vue @@ -1,25 +1,36 @@ diff --git a/src/views/Selects.vue b/src/views/Selects.vue index 4e9db78..d456e8d 100644 --- a/src/views/Selects.vue +++ b/src/views/Selects.vue @@ -94,7 +94,10 @@ const selectFiles = ref([ 'Select48', 'Select49', 'Select50', - 'Select51' + 'Select51', + 'Select52', + 'Select53', + 'Select54' ]) const directory = 'selects'