diff --git a/src/app/(app)/dev/ui/page.tsx b/src/app/(app)/dev/ui/page.tsx new file mode 100644 index 0000000..25c2f3c --- /dev/null +++ b/src/app/(app)/dev/ui/page.tsx @@ -0,0 +1,5 @@ +import { UiHarness } from '@/components/dev/UiHarness'; + +export default function UiDevPage() { + return ; +} diff --git a/src/components/dev/UiHarness.tsx b/src/components/dev/UiHarness.tsx new file mode 100644 index 0000000..11b4764 --- /dev/null +++ b/src/components/dev/UiHarness.tsx @@ -0,0 +1,188 @@ +'use client'; + +import { useState } from 'react'; +import { THEMES, useTheme } from '@/contexts/ThemeContext'; +import { + Badge, + Button, + Card, + CheckItem, + Divider, + Field, + IconButton, + Input, + Panel, + Section, + Select, + Sidebar, + Surface, + Switch, + Textarea, + ToggleRow, + Toolbar, + ToolbarButton, + ToolbarGroup, + ToolbarSegment, + buttonClass, + dropzoneSurfaceClass, + popoverPanelClass, + rangeInputClass, +} from '@/components/ui'; + +const THEME_OPTIONS = THEMES.filter((theme) => theme !== 'custom'); + +export function UiHarness() { + const { theme, setTheme } = useTheme(); + const [enabled, setEnabled] = useState(true); + const [checked, setChecked] = useState(false); + const [selectValue, setSelectValue] = useState('library'); + + return ( +
+
+
+
+ Authenticated dev surface +

UI system harness

+

+ Review shared primitives, state tokens, and theme behavior from the authenticated app shell. +

+
+
+ + +
+
+ +
+
+ {THEME_OPTIONS.map((option) => ( + + ))} +
+
+ +
+ +
+ + + + + + + + × +
+ + + +
+ + + + +