@adea-ai/ui 0.61.1 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -6
- package/dist/LICENSE +201 -0
- package/dist/NOTICE +101 -0
- package/dist/components/composites/account-menu/index.js +2 -0
- package/dist/components/composites/appearance-editor/appearance-choices.d.ts +5 -0
- package/dist/components/composites/appearance-editor/appearance-choices.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-choices.js +211 -0
- package/dist/components/composites/appearance-editor/appearance-choices.js.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-editor.d.ts +15 -0
- package/dist/components/composites/appearance-editor/appearance-editor.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-editor.js +280 -0
- package/dist/components/composites/appearance-editor/appearance-editor.js.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-rows.d.ts +18 -0
- package/dist/components/composites/appearance-editor/appearance-rows.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-rows.js +101 -0
- package/dist/components/composites/appearance-editor/appearance-rows.js.map +1 -0
- package/dist/components/composites/appearance-editor/appearance-types.d.ts +42 -0
- package/dist/components/composites/appearance-editor/appearance-types.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/index.d.ts +4 -0
- package/dist/components/composites/appearance-editor/index.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/index.js +3 -0
- package/dist/components/composites/appearance-editor/theme-preview.d.ts +17 -0
- package/dist/components/composites/appearance-editor/theme-preview.d.ts.map +1 -0
- package/dist/components/composites/appearance-editor/theme-preview.js +158 -0
- package/dist/components/composites/appearance-editor/theme-preview.js.map +1 -0
- package/dist/components/composites/list-row/index.js +2 -0
- package/dist/components/composites/settings/index.js +2 -0
- package/dist/components/composites/stat/index.js +2 -0
- package/dist/components/composites/update-dialog/index.js +2 -0
- package/dist/components/composites/workspace-mark/index.js +2 -0
- package/dist/components/conversation/index.js +6 -0
- package/dist/components/layout/app-shell/index.js +2 -0
- package/dist/components/layout/page/index.js +2 -0
- package/dist/components/layout/panel/index.js +2 -0
- package/dist/components/layout/side-rail/index.js +3 -0
- package/dist/components/layout/sidebar-nav/index.js +2 -0
- package/dist/components/layout/status-bar/index.js +2 -0
- package/dist/components/layout/top-bar/index.js +2 -0
- package/dist/components/motion/index.js +2 -2
- package/dist/components/theme/index.js +5 -0
- package/dist/components/ui/accordion/index.js +2 -0
- package/dist/components/ui/alert/index.js +2 -0
- package/dist/components/ui/alert-dialog/index.js +2 -0
- package/dist/components/ui/aspect-ratio/index.js +2 -0
- package/dist/components/ui/avatar/index.js +2 -0
- package/dist/components/ui/badge/index.js +2 -0
- package/dist/components/ui/board/index.js +2 -0
- package/dist/components/ui/breadcrumb/index.js +2 -0
- package/dist/components/ui/button/index.js +2 -0
- package/dist/components/ui/button-group/index.js +2 -0
- package/dist/components/ui/calendar/index.js +2 -0
- package/dist/components/ui/card/index.js +2 -0
- package/dist/components/ui/carousel/index.js +2 -0
- package/dist/components/ui/chart/index.js +2 -0
- package/dist/components/ui/checkbox/index.js +2 -0
- package/dist/components/ui/code-block/index.js +2 -0
- package/dist/components/ui/collapsible/index.js +2 -0
- package/dist/components/ui/combobox/index.js +2 -0
- package/dist/components/ui/command/index.js +2 -0
- package/dist/components/ui/context-menu/index.js +2 -0
- package/dist/components/ui/detail-panel/index.js +2 -0
- package/dist/components/ui/dialog/index.js +2 -0
- package/dist/components/ui/diff-block/index.js +2 -0
- package/dist/components/ui/drawer/index.js +2 -0
- package/dist/components/ui/dropdown-menu/index.js +2 -0
- package/dist/components/ui/empty/index.js +2 -0
- package/dist/components/ui/entity-icon/index.js +2 -0
- package/dist/components/ui/field/index.js +2 -0
- package/dist/components/ui/hover-card/index.js +2 -0
- package/dist/components/ui/input/index.js +2 -0
- package/dist/components/ui/input-group/index.js +2 -0
- package/dist/components/ui/input-otp/index.js +2 -0
- package/dist/components/ui/item/index.js +2 -0
- package/dist/components/ui/kbd/index.js +2 -0
- package/dist/components/ui/label/index.js +2 -0
- package/dist/components/ui/menubar/index.js +2 -0
- package/dist/components/ui/modal-dialog/index.js +2 -0
- package/dist/components/ui/navigation-menu/index.js +2 -0
- package/dist/components/ui/pagination/index.js +2 -0
- package/dist/components/ui/popover/index.js +2 -0
- package/dist/components/ui/progress/index.js +2 -0
- package/dist/components/ui/radio-group/index.js +2 -0
- package/dist/components/ui/resizable/index.js +2 -0
- package/dist/components/ui/scroll-area/index.js +2 -0
- package/dist/components/ui/select/index.js +2 -0
- package/dist/components/ui/select/select.d.ts +5 -1
- package/dist/components/ui/select/select.d.ts.map +1 -1
- package/dist/components/ui/select/select.js +24 -20
- package/dist/components/ui/select/select.js.map +1 -1
- package/dist/components/ui/separator/index.js +2 -0
- package/dist/components/ui/sheet/index.js +2 -0
- package/dist/components/ui/skeleton/index.js +2 -0
- package/dist/components/ui/slider/index.js +2 -0
- package/dist/components/ui/spinner/index.js +2 -0
- package/dist/components/ui/status-chip/index.js +2 -0
- package/dist/components/ui/switch/index.js +2 -0
- package/dist/components/ui/table/index.js +2 -0
- package/dist/components/ui/tabs/index.js +2 -0
- package/dist/components/ui/textarea/index.js +2 -0
- package/dist/components/ui/toast/index.js +2 -0
- package/dist/components/ui/toggle/index.js +2 -0
- package/dist/components/ui/toggle-group/index.js +2 -0
- package/dist/components/ui/tooltip/index.js +2 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/r/appearance-editor.json +51 -0
- package/dist/r/lib.json +1 -1
- package/dist/r/registry.json +52 -1
- package/dist/r/src/components/composites/appearance-editor/appearance-choices.tsx +173 -0
- package/dist/r/src/components/composites/appearance-editor/appearance-editor.tsx +239 -0
- package/dist/r/src/components/composites/appearance-editor/appearance-rows.tsx +122 -0
- package/dist/r/src/components/composites/appearance-editor/appearance-types.ts +40 -0
- package/dist/r/src/components/composites/appearance-editor/index.ts +12 -0
- package/dist/r/src/components/composites/appearance-editor/theme-preview.tsx +128 -0
- package/dist/r/src/components/ui/select/select.tsx +8 -3
- package/package.json +11 -9
- package/registry.json +52 -1
- package/src/components/composites/appearance-editor/appearance-choices.tsx +173 -0
- package/src/components/composites/appearance-editor/appearance-editor.tsx +239 -0
- package/src/components/composites/appearance-editor/appearance-rows.tsx +122 -0
- package/src/components/composites/appearance-editor/appearance-types.ts +40 -0
- package/src/components/composites/appearance-editor/index.ts +12 -0
- package/src/components/composites/appearance-editor/theme-preview.tsx +128 -0
- package/src/components/ui/select/select.tsx +8 -3
- package/src/index.ts +3 -4
- package/dist/components/ui/diff-block/diff-block.test.d.ts +0 -2
- package/dist/components/ui/diff-block/diff-block.test.d.ts.map +0 -1
- package/dist/lib/keyed-rows.test.d.ts +0 -2
- package/dist/lib/keyed-rows.test.d.ts.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { Sheet, SheetBody, SheetCloseButton, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, sheetVariants } from "./sheet.js";
|
|
2
|
+
export { Sheet, SheetBody, SheetCloseButton, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, sheetVariants };
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* import '@adea-ai/ui/fonts.css'
|
|
11
11
|
*
|
|
12
12
|
* Everything here is covered by the Storybook workshop in `apps/storybook`,
|
|
13
|
-
* which is also where the reasoning behind each component is written down.
|
|
14
|
-
* component
|
|
13
|
+
* which is also where the reasoning behind each component is written down. An
|
|
14
|
+
* optional-peer component lives on its documented component subpath rather than here.
|
|
15
15
|
*/
|
|
16
16
|
export * from './components/ui/accordion';
|
|
17
17
|
export * from './components/ui/alert';
|
|
@@ -24,8 +24,6 @@ export * from './components/ui/breadcrumb';
|
|
|
24
24
|
export * from './components/ui/button';
|
|
25
25
|
export * from './components/ui/button-group';
|
|
26
26
|
export * from './components/ui/calendar';
|
|
27
|
-
export * from './components/ui/carousel';
|
|
28
|
-
export * from './components/ui/chart';
|
|
29
27
|
export * from './components/ui/card';
|
|
30
28
|
export * from './components/ui/checkbox';
|
|
31
29
|
export * from './components/ui/collapsible';
|
|
@@ -86,6 +84,7 @@ export * from './components/composites/account-menu';
|
|
|
86
84
|
export * from './components/composites/list-row';
|
|
87
85
|
export * from './components/composites/settings';
|
|
88
86
|
export * from './components/composites/stat';
|
|
87
|
+
export * from './components/composites/appearance-editor';
|
|
89
88
|
export * from './components/composites/update-dialog';
|
|
90
89
|
export * from './components/composites/workspace-mark';
|
|
91
90
|
export { cn } from './lib/utils';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,8 +12,6 @@ import { Button, buttonVariants } from "./components/ui/button/button.js";
|
|
|
12
12
|
import { Separator } from "./components/ui/separator/separator.js";
|
|
13
13
|
import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "./components/ui/button-group/button-group.js";
|
|
14
14
|
import { CalendarSurface, DatePicker } from "./components/ui/calendar/calendar.js";
|
|
15
|
-
import { Carousel, CarouselSlide } from "./components/ui/carousel/carousel.js";
|
|
16
|
-
import { BarChart, BubbleChart, ChartFrame, ChartLegend, DonutChart, LineChart, PolarAreaChart, RadarChart, ScatterChart, chartOptions, chartSeriesColors, registerChartPiece } from "./components/ui/chart/chart.js";
|
|
17
15
|
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/ui/card/card.js";
|
|
18
16
|
import { Checkbox, CheckboxDescription, CheckboxLabel } from "./components/ui/checkbox/checkbox.js";
|
|
19
17
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/ui/collapsible/collapsible.js";
|
|
@@ -84,8 +82,10 @@ import { AccountMenu } from "./components/composites/account-menu/account-menu.j
|
|
|
84
82
|
import { ListGroup, ListRow } from "./components/composites/list-row/list-row.js";
|
|
85
83
|
import { SettingsField, SettingsPage, SettingsRow, SettingsSection } from "./components/composites/settings/settings.js";
|
|
86
84
|
import { PropertyList, PropertyRow, PropertyTerm, PropertyValue, Stat, StatGroup } from "./components/composites/stat/stat.js";
|
|
85
|
+
import { PalettePreview, ThemeMiniature, ThemeMiniatureSplit } from "./components/composites/appearance-editor/theme-preview.js";
|
|
86
|
+
import { AppearanceEditor, AppearancePopover } from "./components/composites/appearance-editor/appearance-editor.js";
|
|
87
87
|
import { formatBytes, formatReleaseDate, plainTextFromMarkdown } from "./lib/version-notes.js";
|
|
88
88
|
import { UpdateDialog } from "./components/composites/update-dialog/update-dialog.js";
|
|
89
89
|
import { WorkspaceMark } from "./components/composites/workspace-mark/workspace-mark.js";
|
|
90
90
|
import { keyedRows } from "./lib/keyed-rows.js";
|
|
91
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountMenu, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppShell, AppShellBody, AppShellContent, AppShellMain, AppearancePanel, AspectRatio, AttachmentCard, Avatar, AvatarFallback, AvatarImage, Badge,
|
|
91
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountMenu, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppShell, AppShellBody, AppShellContent, AppShellMain, AppearanceEditor, AppearancePanel, AppearancePopover, AspectRatio, AttachmentCard, Avatar, AvatarFallback, AvatarImage, Badge, Board, BoardCardBody, BoardCardTitle, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CalendarSurface, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxDescription, CheckboxLabel, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxClear, ComboboxContent, ComboboxControl, ComboboxInput, ComboboxItem, ComboboxSection, ComboboxTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut, ComposerAttachmentButton, ComposerHint, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationAvatar, ConversationSurface, DatePicker, DetailPanel, DetailPanelBody, DetailPanelField, DetailPanelHeader, DetailPanelSection, Dialog, DialogClose, DialogCloseButton, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffBlock, DiffSummary, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EntityIcon, Field, FieldDescription, FieldError, FieldInput, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTextArea, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputOtp, InputOtpCaret, Item, ItemDescription, ItemEmpty, ItemGroup, ItemGroupEntry, ItemTitle, Kbd, KbdGroup, Label, ListGroup, ListRow, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessageBody, MessageComposer, MessageDayDivider, MessageGroup, MessageRow, ModalDialog, Motion, NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationMenuGroupLabel, NavigationMenuItem, NavigationMenuMenu, NavigationMenuSeparator, NavigationMenuTrigger, NavigationMenuViewport, Page, PageHeader, PageHeaderActions, PageHeaderContent, PageHeaderDescription, PageHeaderTitle, PageSection, Pagination, PaginationEllipsis, PaginationItem, PaginationNext, PaginationPrevious, PalettePreview, Panel, PanelActions, PanelBody, PanelCard, PanelDescription, PanelFooter, PanelHeader, PanelPlaceholder, PanelTitle, PanelToolbar, Popover, PopoverAnchor, PopoverCloseButton, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger, Presence, Progress, PropertyList, PropertyRow, PropertyTerm, PropertyValue, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, Select, SelectChevronsUpDown, SelectContent, SelectItem, SelectLabel, SelectSection, SelectTrigger, SelectValue, Separator, SettingsField, SettingsPage, SettingsRow, SettingsSection, Sheet, SheetBody, SheetCloseButton, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SideRail, SideRailButton, SideRailContent, SideRailFooter, SideRailHeader, SideRailItem, SideRailSection, SidebarNav, SidebarNavButton, SidebarNavContent, SidebarNavFooter, SidebarNavHeader, SidebarNavItem, SidebarNavSection, SidebarNavTitle, Skeleton, Slider, Spinner, Stat, StatGroup, StatusBar, StatusBarItem, StatusBarSpacer, StatusChip, StatusList, Switch, SwitchDescription, SwitchLabel, TALL_CODE_BLOCK_PX, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableNumericCell, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeMiniature, ThemeMiniatureSplit, ThemePicker, ThemePreview, ThemeProvider, ThemeSwatch, ThemeToggle, ThreadPanel, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, TopBarBreadcrumb, TopBarPill, TopBarSearch, TopBarSection, TopBarTitle, UpdateDialog, WorkspaceMark, accentPresets, alertVariants, allTokens, badgeVariants, boardCardTitleVariants, builtinThemes, buttonVariants, cn, colorTokens, contrastRatio, controlInteractive, controlSize, controlSizeIcon, controlSizes, cva, defaultDarkThemeId, defaultLightThemeId, defaultThemeSelection, densityTokens, designTokens, diffLineVariants, diffStats, diffTargetPath, elevationTokens, entityIconVariants, fontOptions, formatBytes, formatReleaseDate, initialsFrom, inlineScriptLiteral, itemVariants, keyedRows, monogram, motionTokens, parseDiff, plainTextFromMarkdown, radiusTokens, resolvedDensity, sheetVariants, sidebarNavItemClass, sidebarNavItemStateClass, statusDotVariants, surfaceInteractive, themeById, themeCssVariables, themeFamilies, themeScript, themesForAppearance, toast, toaster, toggleVariants, typographyTokens, undocumentedTokenAliases, useSideRail, useTheme, validateTheme, validateThemeRegistry, zIndexTokens };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "appearance-editor",
|
|
3
|
+
"type": "registry:ui",
|
|
4
|
+
"title": "Appearance Editor",
|
|
5
|
+
"description": "",
|
|
6
|
+
"dependencies": [
|
|
7
|
+
"@adea-ai/themes@^0.5.0",
|
|
8
|
+
"@kobalte/core@^0.13.14",
|
|
9
|
+
"lucide-solid@^1.48.0"
|
|
10
|
+
],
|
|
11
|
+
"registryDependencies": [
|
|
12
|
+
"@adea-ai/ui/button",
|
|
13
|
+
"@adea-ai/ui/input",
|
|
14
|
+
"@adea-ai/ui/popover",
|
|
15
|
+
"@adea-ai/ui/select",
|
|
16
|
+
"@adea-ai/ui/switch",
|
|
17
|
+
"lib"
|
|
18
|
+
],
|
|
19
|
+
"files": [
|
|
20
|
+
{
|
|
21
|
+
"path": "src/components/composites/appearance-editor/appearance-choices.tsx",
|
|
22
|
+
"type": "registry:ui",
|
|
23
|
+
"target": "components/composites/appearance-editor/appearance-choices.tsx"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"path": "src/components/composites/appearance-editor/appearance-editor.tsx",
|
|
27
|
+
"type": "registry:ui",
|
|
28
|
+
"target": "components/composites/appearance-editor/appearance-editor.tsx"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"path": "src/components/composites/appearance-editor/appearance-rows.tsx",
|
|
32
|
+
"type": "registry:ui",
|
|
33
|
+
"target": "components/composites/appearance-editor/appearance-rows.tsx"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"path": "src/components/composites/appearance-editor/appearance-types.ts",
|
|
37
|
+
"type": "registry:ui",
|
|
38
|
+
"target": "components/composites/appearance-editor/appearance-types.ts"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"path": "src/components/composites/appearance-editor/index.ts",
|
|
42
|
+
"type": "registry:ui",
|
|
43
|
+
"target": "components/composites/appearance-editor/index.ts"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"path": "src/components/composites/appearance-editor/theme-preview.tsx",
|
|
47
|
+
"type": "registry:ui",
|
|
48
|
+
"target": "components/composites/appearance-editor/theme-preview.tsx"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
package/dist/r/lib.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"title": "Class-name and token helpers",
|
|
5
5
|
"description": "The private helpers the components import: the class-name merge, the variant recipes, the token manifest and the theme bridge. Installed automatically as a peer of any component that needs it.",
|
|
6
6
|
"dependencies": [
|
|
7
|
-
"@adea-ai/themes@^0.
|
|
7
|
+
"@adea-ai/themes@^0.5.0",
|
|
8
8
|
"class-variance-authority@^0.7.1",
|
|
9
9
|
"clsx@^2.1.1",
|
|
10
10
|
"tailwind-merge@^3.7.0"
|
package/dist/r/registry.json
CHANGED
|
@@ -1599,6 +1599,57 @@
|
|
|
1599
1599
|
}
|
|
1600
1600
|
]
|
|
1601
1601
|
},
|
|
1602
|
+
{
|
|
1603
|
+
"name": "appearance-editor",
|
|
1604
|
+
"type": "registry:ui",
|
|
1605
|
+
"title": "Appearance Editor",
|
|
1606
|
+
"description": "",
|
|
1607
|
+
"dependencies": [
|
|
1608
|
+
"@adea-ai/themes@^0.5.0",
|
|
1609
|
+
"@kobalte/core@^0.13.14",
|
|
1610
|
+
"lucide-solid@^1.48.0"
|
|
1611
|
+
],
|
|
1612
|
+
"registryDependencies": [
|
|
1613
|
+
"@adea-ai/ui/button",
|
|
1614
|
+
"@adea-ai/ui/input",
|
|
1615
|
+
"@adea-ai/ui/popover",
|
|
1616
|
+
"@adea-ai/ui/select",
|
|
1617
|
+
"@adea-ai/ui/switch",
|
|
1618
|
+
"lib"
|
|
1619
|
+
],
|
|
1620
|
+
"files": [
|
|
1621
|
+
{
|
|
1622
|
+
"path": "src/components/composites/appearance-editor/appearance-choices.tsx",
|
|
1623
|
+
"type": "registry:ui",
|
|
1624
|
+
"target": "components/composites/appearance-editor/appearance-choices.tsx"
|
|
1625
|
+
},
|
|
1626
|
+
{
|
|
1627
|
+
"path": "src/components/composites/appearance-editor/appearance-editor.tsx",
|
|
1628
|
+
"type": "registry:ui",
|
|
1629
|
+
"target": "components/composites/appearance-editor/appearance-editor.tsx"
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
"path": "src/components/composites/appearance-editor/appearance-rows.tsx",
|
|
1633
|
+
"type": "registry:ui",
|
|
1634
|
+
"target": "components/composites/appearance-editor/appearance-rows.tsx"
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"path": "src/components/composites/appearance-editor/appearance-types.ts",
|
|
1638
|
+
"type": "registry:ui",
|
|
1639
|
+
"target": "components/composites/appearance-editor/appearance-types.ts"
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"path": "src/components/composites/appearance-editor/index.ts",
|
|
1643
|
+
"type": "registry:ui",
|
|
1644
|
+
"target": "components/composites/appearance-editor/index.ts"
|
|
1645
|
+
},
|
|
1646
|
+
{
|
|
1647
|
+
"path": "src/components/composites/appearance-editor/theme-preview.tsx",
|
|
1648
|
+
"type": "registry:ui",
|
|
1649
|
+
"target": "components/composites/appearance-editor/theme-preview.tsx"
|
|
1650
|
+
}
|
|
1651
|
+
]
|
|
1652
|
+
},
|
|
1602
1653
|
{
|
|
1603
1654
|
"name": "list-row",
|
|
1604
1655
|
"type": "registry:ui",
|
|
@@ -1875,7 +1926,7 @@
|
|
|
1875
1926
|
"title": "Class-name and token helpers",
|
|
1876
1927
|
"description": "The private helpers the components import: the class-name merge, the variant recipes, the token manifest and the theme bridge. Installed automatically as a peer of any component that needs it.",
|
|
1877
1928
|
"dependencies": [
|
|
1878
|
-
"@adea-ai/themes@^0.
|
|
1929
|
+
"@adea-ai/themes@^0.5.0",
|
|
1879
1930
|
"class-variance-authority@^0.7.1",
|
|
1880
1931
|
"clsx@^2.1.1",
|
|
1881
1932
|
"tailwind-merge@^3.7.0"
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* MIT License
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2026 Wing
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
* copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
* SOFTWARE.
|
|
23
|
+
*/
|
|
24
|
+
// Pinned mode-card, accent-swatch, and glass-chip composition. Kobalte replaces
|
|
25
|
+
// the app port's manual roving focus; it does not replace the donor hierarchy.
|
|
26
|
+
import { RadioGroup as Radio } from '@kobalte/core/radio-group'
|
|
27
|
+
import { For, Show } from 'solid-js'
|
|
28
|
+
import type { AppearanceEditorProps } from './appearance-types'
|
|
29
|
+
import { ThemeMiniature, ThemeMiniatureSplit } from './theme-preview'
|
|
30
|
+
|
|
31
|
+
const MODES = [
|
|
32
|
+
{ value: 'system', label: 'System' },
|
|
33
|
+
{ value: 'light', label: 'Light' },
|
|
34
|
+
{ value: 'dark', label: 'Dark' },
|
|
35
|
+
] as const
|
|
36
|
+
const SURFACES = [
|
|
37
|
+
{ value: 'theme', label: 'Theme default' },
|
|
38
|
+
{ value: 'frosted', label: 'Frosted' },
|
|
39
|
+
{ value: 'opaque', label: 'Opaque' },
|
|
40
|
+
] as const
|
|
41
|
+
|
|
42
|
+
export function ModeChoices(props: AppearanceEditorProps) {
|
|
43
|
+
return (
|
|
44
|
+
<Radio
|
|
45
|
+
value={props.draft.mode}
|
|
46
|
+
disabled={props.saving}
|
|
47
|
+
orientation="horizontal"
|
|
48
|
+
aria-label="Appearance mode"
|
|
49
|
+
onChange={(mode) => {
|
|
50
|
+
const option = MODES.find((candidate) => candidate.value === mode)
|
|
51
|
+
if (option) props.onChange({ mode: option.value })
|
|
52
|
+
}}
|
|
53
|
+
class="grid grid-cols-1 gap-3 px-4 py-4 sm:grid-cols-3"
|
|
54
|
+
>
|
|
55
|
+
<For each={MODES}>
|
|
56
|
+
{(option) => (
|
|
57
|
+
<Radio.Item
|
|
58
|
+
value={option.value}
|
|
59
|
+
data-mode={option.value}
|
|
60
|
+
class="min-w-0 rounded-lg focus-within:ring-3 focus-within:ring-ring/50"
|
|
61
|
+
>
|
|
62
|
+
<Radio.ItemInput />
|
|
63
|
+
<Radio.ItemLabel class="flex cursor-pointer flex-col gap-2 rounded-lg border p-2 text-center text-xs data-[checked]:border-primary data-[checked]:ring-1 data-[checked]:ring-primary data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50">
|
|
64
|
+
<span class="block h-20 w-full">
|
|
65
|
+
<Show
|
|
66
|
+
when={option.value === 'system'}
|
|
67
|
+
fallback={
|
|
68
|
+
<ThemeMiniature
|
|
69
|
+
theme={option.value === 'light' ? props.lightTheme : props.darkTheme}
|
|
70
|
+
/>
|
|
71
|
+
}
|
|
72
|
+
>
|
|
73
|
+
<ThemeMiniatureSplit light={props.lightTheme} dark={props.darkTheme} />
|
|
74
|
+
</Show>
|
|
75
|
+
</span>
|
|
76
|
+
<span>{option.label}</span>
|
|
77
|
+
</Radio.ItemLabel>
|
|
78
|
+
</Radio.Item>
|
|
79
|
+
)}
|
|
80
|
+
</For>
|
|
81
|
+
</Radio>
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function AccentChoices(props: AppearanceEditorProps) {
|
|
86
|
+
const custom = () =>
|
|
87
|
+
props.draft.accent !== 'theme' &&
|
|
88
|
+
!props.accentOptions.some((option) => option.id === props.draft.accent)
|
|
89
|
+
const accentSelection = () => (custom() ? 'custom' : props.draft.accent)
|
|
90
|
+
return (
|
|
91
|
+
<Radio
|
|
92
|
+
value={accentSelection()}
|
|
93
|
+
disabled={props.saving}
|
|
94
|
+
orientation="horizontal"
|
|
95
|
+
aria-label="Accent"
|
|
96
|
+
class="flex flex-wrap items-center gap-2"
|
|
97
|
+
onChange={(accent) =>
|
|
98
|
+
props.onChange({
|
|
99
|
+
accent: accent === 'custom' ? (props.customAccentValue ?? '') : accent,
|
|
100
|
+
})
|
|
101
|
+
}
|
|
102
|
+
>
|
|
103
|
+
<Radio.Item value="theme">
|
|
104
|
+
<Radio.ItemInput />
|
|
105
|
+
<Radio.ItemLabel class="flex h-7 cursor-pointer items-center rounded-md border px-2 text-xs data-[checked]:border-primary data-[checked]:ring-1 data-[checked]:ring-primary">
|
|
106
|
+
Theme default
|
|
107
|
+
</Radio.ItemLabel>
|
|
108
|
+
</Radio.Item>
|
|
109
|
+
<For each={props.accentOptions}>
|
|
110
|
+
{(option) => (
|
|
111
|
+
<Radio.Item
|
|
112
|
+
value={option.id}
|
|
113
|
+
class="rounded-full focus-within:ring-3 focus-within:ring-ring/50"
|
|
114
|
+
>
|
|
115
|
+
<Radio.ItemInput />
|
|
116
|
+
<Radio.ItemLabel class="block size-7 cursor-pointer rounded-full border p-0.5 data-[checked]:border-primary data-[checked]:ring-1 data-[checked]:ring-primary">
|
|
117
|
+
<span
|
|
118
|
+
class="block size-full rounded-full"
|
|
119
|
+
aria-hidden="true"
|
|
120
|
+
style={{
|
|
121
|
+
'background-color':
|
|
122
|
+
(props.draft.mode === 'system'
|
|
123
|
+
? props.resolvedAppearance
|
|
124
|
+
: props.draft.mode) === 'light'
|
|
125
|
+
? option.light
|
|
126
|
+
: option.dark,
|
|
127
|
+
}}
|
|
128
|
+
/>
|
|
129
|
+
<span class="sr-only">{option.label}</span>
|
|
130
|
+
</Radio.ItemLabel>
|
|
131
|
+
</Radio.Item>
|
|
132
|
+
)}
|
|
133
|
+
</For>
|
|
134
|
+
<Radio.Item value="custom">
|
|
135
|
+
<Radio.ItemInput />
|
|
136
|
+
<Radio.ItemLabel class="flex h-7 cursor-pointer items-center rounded-md border px-2 text-xs data-[checked]:border-primary data-[checked]:ring-1 data-[checked]:ring-primary">
|
|
137
|
+
Custom
|
|
138
|
+
</Radio.ItemLabel>
|
|
139
|
+
</Radio.Item>
|
|
140
|
+
</Radio>
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export function GlassChoices(props: AppearanceEditorProps) {
|
|
145
|
+
return (
|
|
146
|
+
<Radio
|
|
147
|
+
value={props.draft.surface}
|
|
148
|
+
disabled={props.saving}
|
|
149
|
+
orientation="horizontal"
|
|
150
|
+
aria-label="Glass"
|
|
151
|
+
class="flex flex-wrap gap-1"
|
|
152
|
+
onChange={(surface) => {
|
|
153
|
+
const option = SURFACES.find((candidate) => candidate.value === surface)
|
|
154
|
+
if (option) props.onChange({ surface: option.value })
|
|
155
|
+
}}
|
|
156
|
+
>
|
|
157
|
+
<For each={SURFACES}>
|
|
158
|
+
{(option) => (
|
|
159
|
+
<Radio.Item
|
|
160
|
+
value={option.value}
|
|
161
|
+
disabled={option.value === 'frosted' && !props.surfaceCapability.frosted}
|
|
162
|
+
class="rounded-md focus-within:ring-3 focus-within:ring-ring/50"
|
|
163
|
+
>
|
|
164
|
+
<Radio.ItemInput />
|
|
165
|
+
<Radio.ItemLabel class="flex h-7 cursor-pointer items-center rounded-md border px-2 text-xs data-[checked]:border-primary data-[checked]:ring-1 data-[checked]:ring-primary data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50">
|
|
166
|
+
{option.label}
|
|
167
|
+
</Radio.ItemLabel>
|
|
168
|
+
</Radio.Item>
|
|
169
|
+
)}
|
|
170
|
+
</For>
|
|
171
|
+
</Radio>
|
|
172
|
+
)
|
|
173
|
+
}
|