diff --git a/.Jules/palette.md b/.Jules/palette.md new file mode 100644 index 00000000..d43e2bf3 --- /dev/null +++ b/.Jules/palette.md @@ -0,0 +1,3 @@ +## 2024-05-24 - Add aria-pressed to visual toggle buttons +**Learning:** Elements functioning as standalone toggle buttons (such as the filter pills in `src/components/dashboard/filter-pills.tsx`) must use the `aria-pressed` attribute to indicate their toggled state to screen readers. +**Action:** Always add `aria-pressed={isActive}` when creating buttons that function as state toggles, ensuring their active/inactive state is exposed correctly to assistive technologies. diff --git a/FEATURES_GUIDE.md b/FEATURES_GUIDE.md index abfbab07..b65c196a 100644 --- a/FEATURES_GUIDE.md +++ b/FEATURES_GUIDE.md @@ -469,7 +469,7 @@ import { useUserPreferences, useAutoRefresh } from '@/hooks/useUserPreferences' function Dashboard() { const { preferences, updatePreferences } = useUserPreferences() - + // Auto-refresh based on user preference useAutoRefresh(() => refreshData()) @@ -615,4 +615,3 @@ interface ThemeToggleProps { --- **Built with ❤️ for FluxLens AI v1.0.2** - diff --git a/src/components/dashboard/filter-pills.tsx b/src/components/dashboard/filter-pills.tsx index d09effbe..f0515108 100644 --- a/src/components/dashboard/filter-pills.tsx +++ b/src/components/dashboard/filter-pills.tsx @@ -34,6 +34,7 @@ export function FilterPills({ options, selected, onToggle, onClear, className }: onToggle(option.id)} + aria-pressed={isSelected} transition={{ duration: 0.15 }} className={cn( 'inline-flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all', diff --git a/src/components/empty/loading-section.tsx b/src/components/empty/loading-section.tsx index 0c5b835a..d2c60a80 100644 --- a/src/components/empty/loading-section.tsx +++ b/src/components/empty/loading-section.tsx @@ -48,4 +48,3 @@ export function LoadingSection() { ) } - diff --git a/src/components/overlay/modal.tsx b/src/components/overlay/modal.tsx index b5d9e895..5f67b0e4 100644 --- a/src/components/overlay/modal.tsx +++ b/src/components/overlay/modal.tsx @@ -68,4 +68,3 @@ export function Modal({ ) } - diff --git a/src/lib/integrations/adapters/resend.ts b/src/lib/integrations/adapters/resend.ts index 76200bf3..5ca7fab5 100644 --- a/src/lib/integrations/adapters/resend.ts +++ b/src/lib/integrations/adapters/resend.ts @@ -39,7 +39,7 @@ export const resendAdapter: WebhookAdapter = { return match[1] } - // 2. Fallback: If sent to "fluxlensai@gmail.com" or generic "inbound@", + // 2. Fallback: If sent to "fluxlensai@gmail.com" or generic "inbound@", // we assign it to the default/demo org or a specific Admin Org. if (process.env.NEXT_PUBLIC_DEFAULT_ORG_ID) { return process.env.NEXT_PUBLIC_DEFAULT_ORG_ID diff --git a/src/lib/reports/pdfGenerator.ts b/src/lib/reports/pdfGenerator.ts index 486c818b..77701ef9 100644 --- a/src/lib/reports/pdfGenerator.ts +++ b/src/lib/reports/pdfGenerator.ts @@ -1,6 +1,6 @@ /** * Enhanced PDF Report Generator for FluxLens v1.0.2 - * + * * Generates professional PDF reports with: * - Executive summary with key metrics * - Department health breakdown with visual indicators