From 153e0aa08021269f40a0c3f142c065f8630c814f Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 25 Jun 2025 22:27:16 -0400 Subject: [PATCH] refactor: create BaseSegmentedController and refactor AdminSegmentedController MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Created BaseSegmentedController with shared logic for all segmented controls - Refactored AdminSegmentedController to use BaseSegmentedController - Added keyboard navigation support (arrow keys, Home/End) - Added size variants (small, medium, large) - Added support for custom pill colors - Added proper ARIA attributes for accessibility - Fixed missing CSS variables ($red-error, $shadow-*) This eliminates significant code duplication and provides a consistent foundation for all segmented control patterns. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/assets/styles/variables.scss | 7 + .../admin/AdminSegmentedController.svelte | 167 +++------ .../admin/BaseSegmentedController.svelte | 340 ++++++++++++++++++ .../admin/InlineComposerModal.svelte | 2 +- 4 files changed, 403 insertions(+), 113 deletions(-) create mode 100644 src/lib/components/admin/BaseSegmentedController.svelte diff --git a/src/assets/styles/variables.scss b/src/assets/styles/variables.scss index 36ea274..2469618 100644 --- a/src/assets/styles/variables.scss +++ b/src/assets/styles/variables.scss @@ -312,3 +312,10 @@ $screen-lg-min: 1200px; $orange-red: $red-70; $salmon-pink: $red-95; // Desaturated salmon pink for hover states $gray-5: $gray-97; // Was an old variable between 95 and 100 +$red-error: #dc2626; // Error state color + +// Shadow variables +$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); +$shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1); +$shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1); +$shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15); diff --git a/src/lib/components/admin/AdminSegmentedController.svelte b/src/lib/components/admin/AdminSegmentedController.svelte index 26485f0..82e4b77 100644 --- a/src/lib/components/admin/AdminSegmentedController.svelte +++ b/src/lib/components/admin/AdminSegmentedController.svelte @@ -1,70 +1,40 @@ -