@adea-ai/ui 0.25.12 → 0.25.14
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/dist/components/on-screen-controls.js +5 -5
- package/dist/components/ui/dialog.js +2 -2
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/dropdown-menu.js +1 -1
- package/dist/components/ui/tooltip.js +1 -1
- package/dist/components/version-dialog.js +4 -4
- package/package.json +1 -1
- package/src/components/on-screen-controls.tsx +5 -5
- package/src/components/ui/dialog.tsx +2 -2
- package/src/components/ui/drawer.tsx +2 -2
- package/src/components/ui/dropdown-menu.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/version-dialog.tsx +6 -9
- package/src/styles/base.css +2 -0
- package/src/styles/globals.css +5 -91
- package/src/styles/theme.css +15 -0
|
@@ -5,8 +5,8 @@ import { ZoomIn, ZoomOut } from "lucide-solid";
|
|
|
5
5
|
import { Show, onCleanup } from "solid-js";
|
|
6
6
|
//#region src/components/on-screen-controls.tsx
|
|
7
7
|
var _tmpl$ = /*#__PURE__*/ template(`<button type=button>`);
|
|
8
|
-
var _tmpl$2 = /*#__PURE__*/ template(`<div class="pointer-events-auto grid grid-cols-3 gap-1.5 rounded-3xl bg-
|
|
9
|
-
var _tmpl$3 = /*#__PURE__*/ template(`<div class="flex items-center gap-1.5 rounded-2xl bg-
|
|
8
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<div class="pointer-events-auto grid grid-cols-3 gap-1.5 rounded-3xl bg-scrim/20 p-2 backdrop-blur-[2px]"><span></span><span>`);
|
|
9
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<div class="flex items-center gap-1.5 rounded-2xl bg-scrim/20 p-1.5 backdrop-blur-[2px]"role=group aria-label="Camera zoom">`);
|
|
10
10
|
var _tmpl$4 = /*#__PURE__*/ template(`<div data-agent-hq-on-screen-controls class="pointer-events-none fixed inset-x-4 bottom-4 z-30 flex select-none items-end justify-between gap-4 pb-[env(safe-area-inset-bottom)] sm:inset-x-6 sm:bottom-6 [-webkit-touch-callout:none] [-webkit-user-select:none]"><div class="pointer-events-auto ml-auto flex flex-col items-end gap-2">`);
|
|
11
11
|
function sendKeyEvent(type, code) {
|
|
12
12
|
window.dispatchEvent(new KeyboardEvent(type, {
|
|
@@ -54,7 +54,7 @@ function ControlButton(props) {
|
|
|
54
54
|
_el$.$$contextmenu = (event) => event.preventDefault();
|
|
55
55
|
insert(_el$, () => props.children);
|
|
56
56
|
effect((_p$) => {
|
|
57
|
-
var _v$ = props.label, _v$2 = cn("flex size-14 touch-none select-none items-center justify-center rounded-2xl border border-
|
|
57
|
+
var _v$ = props.label, _v$2 = cn("flex size-14 touch-none select-none items-center justify-center rounded-2xl border border-scrim-edge/25 bg-scrim/65 p-2 text-scrim-foreground shadow-lg backdrop-blur-sm transition active:scale-95 [-webkit-touch-callout:none] [-webkit-user-select:none]", props.class);
|
|
58
58
|
_v$ !== _p$.e && setAttribute(_el$, "aria-label", _p$.e = _v$);
|
|
59
59
|
_v$2 !== _p$.t && className(_el$, _p$.t = _v$2);
|
|
60
60
|
return _p$;
|
|
@@ -116,7 +116,7 @@ function OnScreenControls(props) {
|
|
|
116
116
|
size: "icon-lg",
|
|
117
117
|
"aria-label": "Zoom out",
|
|
118
118
|
title: "Zoom out",
|
|
119
|
-
"class": "border border-
|
|
119
|
+
"class": "border border-scrim-edge/25 bg-scrim/65 text-scrim-foreground shadow-lg backdrop-blur-sm hover:bg-scrim/80",
|
|
120
120
|
onClick: () => props.onZoomOut?.(),
|
|
121
121
|
get children() {
|
|
122
122
|
return createComponent(ZoomOut, { "aria-hidden": "true" });
|
|
@@ -128,7 +128,7 @@ function OnScreenControls(props) {
|
|
|
128
128
|
size: "icon-lg",
|
|
129
129
|
"aria-label": "Zoom in",
|
|
130
130
|
title: "Zoom in",
|
|
131
|
-
"class": "border border-
|
|
131
|
+
"class": "border border-scrim-edge/25 bg-scrim/65 text-scrim-foreground shadow-lg backdrop-blur-sm hover:bg-scrim/80",
|
|
132
132
|
onClick: () => props.onZoomIn?.(),
|
|
133
133
|
get children() {
|
|
134
134
|
return createComponent(ZoomIn, { "aria-hidden": "true" });
|
|
@@ -4,7 +4,7 @@ import { X } from "lucide-solid";
|
|
|
4
4
|
import { splitProps } from "solid-js";
|
|
5
5
|
import { Dialog as Dialog$1 } from "@kobalte/core/dialog";
|
|
6
6
|
//#region src/components/ui/dialog.tsx
|
|
7
|
-
var _tmpl$ = /*#__PURE__*/ template(`<div class="fixed inset-0 z-
|
|
7
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div class="fixed inset-0 z-(--z-dialog) flex items-center justify-center p-4">`);
|
|
8
8
|
var _tmpl$2 = /*#__PURE__*/ template(`<div data-slot=dialog-header>`);
|
|
9
9
|
var _tmpl$3 = /*#__PURE__*/ template(`<div data-slot=dialog-footer>`);
|
|
10
10
|
function Dialog(props) {
|
|
@@ -27,7 +27,7 @@ function DialogOverlay(props) {
|
|
|
27
27
|
return createComponent(Dialog$1.Overlay, mergeProps({
|
|
28
28
|
"data-slot": "dialog-overlay",
|
|
29
29
|
get ["class"]() {
|
|
30
|
-
return cn("fixed inset-0 z-
|
|
30
|
+
return cn("fixed inset-0 z-(--z-dialog) bg-scrim/55 backdrop-blur-[2px]", local.class);
|
|
31
31
|
}
|
|
32
32
|
}, rest));
|
|
33
33
|
}
|
|
@@ -36,7 +36,7 @@ function DrawerOverlay(props) {
|
|
|
36
36
|
return createComponent(DrawerPrimitive.Overlay, mergeProps({
|
|
37
37
|
"data-slot": "drawer-overlay",
|
|
38
38
|
get ["class"]() {
|
|
39
|
-
return cn("fixed inset-0 z-
|
|
39
|
+
return cn("fixed inset-0 z-(--z-drawer) bg-scrim/10 backdrop-blur-xs transition-opacity duration-300 data-closed:opacity-0", local.class);
|
|
40
40
|
}
|
|
41
41
|
}, rest));
|
|
42
42
|
}
|
|
@@ -63,7 +63,7 @@ function DrawerContent(props) {
|
|
|
63
63
|
return [createComponent(DrawerOverlay, {}), createComponent(DrawerPrimitive.Content, mergeProps({
|
|
64
64
|
"data-slot": "drawer-content",
|
|
65
65
|
get ["class"]() {
|
|
66
|
-
return cn("group/drawer-content fixed z-
|
|
66
|
+
return cn("group/drawer-content fixed z-(--z-drawer) flex flex-col overflow-hidden bg-popover text-sm text-popover-foreground shadow-lg outline-none transition-transform duration-300 ease-out will-change-transform", SIDE_CLASSES[side()], local.class);
|
|
67
67
|
}
|
|
68
68
|
}, rest, { get children() {
|
|
69
69
|
return [createComponent(Show, {
|
|
@@ -35,7 +35,7 @@ function DropdownMenuContent(props) {
|
|
|
35
35
|
return local.sideOffset ?? 4;
|
|
36
36
|
},
|
|
37
37
|
get ["class"]() {
|
|
38
|
-
return cn("z-
|
|
38
|
+
return cn("z-(--z-menu) max-h-(--kb-popper-available-height) min-w-32 origin-(--kb-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95", local.class);
|
|
39
39
|
}
|
|
40
40
|
}, rest, { get children() {
|
|
41
41
|
return local.children;
|
|
@@ -44,7 +44,7 @@ function TooltipContent(props) {
|
|
|
44
44
|
return local.sideOffset ?? 4;
|
|
45
45
|
},
|
|
46
46
|
get ["class"]() {
|
|
47
|
-
return cn("z-
|
|
47
|
+
return cn("z-(--z-tooltip) max-w-72 rounded-md bg-popover px-2.5 py-1.5 text-sm leading-5 text-popover-foreground shadow-md ring-1 ring-foreground/10 data-closed:animate-out data-closed:fade-out-0 data-expanded:animate-in data-expanded:fade-in-0", local.class);
|
|
48
48
|
}
|
|
49
49
|
}, rest, { get children() {
|
|
50
50
|
return local.children;
|
|
@@ -6,11 +6,11 @@ import { Check, Download, ExternalLink, FileText, LoaderCircle, RefreshCw, Spark
|
|
|
6
6
|
import { Show, createEffect, createMemo, createSignal } from "solid-js";
|
|
7
7
|
//#region src/components/version-dialog.tsx
|
|
8
8
|
var _tmpl$ = /*#__PURE__*/ template(`<div class="flex items-center gap-3"><span class="flex size-10 items-center justify-center rounded-xl bg-primary text-primary-foreground"></span><div>`);
|
|
9
|
-
var _tmpl$2 = /*#__PURE__*/ template(`<section class="rounded-xl border border-primary/35 bg-primary/8 p-4"aria-label="Available update"><div class="flex flex-wrap items-start justify-between gap-4"><div class=
|
|
10
|
-
var _tmpl$3 = /*#__PURE__*/ template(`<p class="flex items-center gap-2 text-sm text-
|
|
9
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<section class="rounded-xl border border-primary/35 bg-primary/8 p-4"aria-label="Available update"><div class="flex flex-wrap items-start justify-between gap-4"><div class="flex flex-col gap-1"><p class="flex items-center gap-2 text-sm font-semibold">Version <!> is ready</p><p class="text-sm text-muted-foreground">The signed installer will be verified before Adea restarts.`);
|
|
10
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<p class="flex items-center gap-2 text-sm text-success"role=status>Adea is up to date.`);
|
|
11
11
|
var _tmpl$4 = /*#__PURE__*/ template(`<p class="rounded-lg border border-destructive/35 bg-destructive/8 px-3 py-2 text-sm text-destructive"role=alert>`);
|
|
12
|
-
var _tmpl$5 = /*#__PURE__*/ template(`<section class=
|
|
13
|
-
var _tmpl$6 = /*#__PURE__*/ template(`<div class="min-h-0
|
|
12
|
+
var _tmpl$5 = /*#__PURE__*/ template(`<section class="flex flex-col gap-2"aria-labelledby=adea-release-notes><div><h2 id=adea-release-notes class="text-sm font-semibold">What changed in this release</h2><p class="text-xs text-muted-foreground">Release notes are shown as readable text.</p></div><div class="max-h-52 overflow-y-auto whitespace-pre-wrap rounded-xl border bg-background/45 p-4 font-mono text-xs leading-5 text-muted-foreground">`);
|
|
13
|
+
var _tmpl$6 = /*#__PURE__*/ template(`<div class="flex min-h-0 flex-col gap-5 overflow-y-auto p-6"><section class="rounded-xl border bg-background/45 p-4"aria-label="Version status"><div class="flex flex-wrap items-start justify-between gap-4"><div class="flex flex-col gap-1"><p class="text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground">Installed version</p><p class="text-xl font-semibold tracking-tight">v</p><p class="text-sm text-muted-foreground"></p></div></div></section><section class="flex flex-col gap-2"aria-labelledby=agent-hq-changelog><div><h2 id=agent-hq-changelog class="text-sm font-semibold">Installed changelog</h2><p class="text-xs text-muted-foreground">A plain-text history of the installed channel.</p></div><div class="max-h-72 overflow-y-auto whitespace-pre-wrap rounded-xl border bg-background/45 p-4 font-mono text-xs leading-5 text-muted-foreground">`);
|
|
14
14
|
var _tmpl$7 = /*#__PURE__*/ template(`<p class="text-xs text-muted-foreground">Released `);
|
|
15
15
|
function errorMessage(caught, fallback) {
|
|
16
16
|
if (caught instanceof Error && caught.message) return caught.message;
|
package/package.json
CHANGED
|
@@ -58,7 +58,7 @@ function ControlButton(props: ControlButtonProps) {
|
|
|
58
58
|
type="button"
|
|
59
59
|
aria-label={props.label}
|
|
60
60
|
class={cn(
|
|
61
|
-
'flex size-14 touch-none select-none items-center justify-center rounded-2xl border border-
|
|
61
|
+
'flex size-14 touch-none select-none items-center justify-center rounded-2xl border border-scrim-edge/25 bg-scrim/65 p-2 text-scrim-foreground shadow-lg backdrop-blur-sm transition active:scale-95 [-webkit-touch-callout:none] [-webkit-user-select:none]',
|
|
62
62
|
props.class
|
|
63
63
|
)}
|
|
64
64
|
onContextMenu={(event) => event.preventDefault()}
|
|
@@ -90,7 +90,7 @@ export function OnScreenControls(props: OnScreenControlsProps) {
|
|
|
90
90
|
class="pointer-events-none fixed inset-x-4 bottom-4 z-30 flex select-none items-end justify-between gap-4 pb-[env(safe-area-inset-bottom)] sm:inset-x-6 sm:bottom-6 [-webkit-touch-callout:none] [-webkit-user-select:none]"
|
|
91
91
|
>
|
|
92
92
|
<Show when={showMovementControls()}>
|
|
93
|
-
<div class="pointer-events-auto grid grid-cols-3 gap-1.5 rounded-3xl bg-
|
|
93
|
+
<div class="pointer-events-auto grid grid-cols-3 gap-1.5 rounded-3xl bg-scrim/20 p-2 backdrop-blur-[2px]">
|
|
94
94
|
<span />
|
|
95
95
|
<ControlButton code="KeyW" label="Move forward" class="size-12 rounded-xl text-xl">
|
|
96
96
|
▲
|
|
@@ -110,7 +110,7 @@ export function OnScreenControls(props: OnScreenControlsProps) {
|
|
|
110
110
|
<div class="pointer-events-auto ml-auto flex flex-col items-end gap-2">
|
|
111
111
|
<Show when={showZoomControls()}>
|
|
112
112
|
<div
|
|
113
|
-
class="flex items-center gap-1.5 rounded-2xl bg-
|
|
113
|
+
class="flex items-center gap-1.5 rounded-2xl bg-scrim/20 p-1.5 backdrop-blur-[2px]"
|
|
114
114
|
role="group"
|
|
115
115
|
aria-label="Camera zoom"
|
|
116
116
|
>
|
|
@@ -120,7 +120,7 @@ export function OnScreenControls(props: OnScreenControlsProps) {
|
|
|
120
120
|
size="icon-lg"
|
|
121
121
|
aria-label="Zoom out"
|
|
122
122
|
title="Zoom out"
|
|
123
|
-
class="border border-
|
|
123
|
+
class="border border-scrim-edge/25 bg-scrim/65 text-scrim-foreground shadow-lg backdrop-blur-sm hover:bg-scrim/80"
|
|
124
124
|
onClick={() => props.onZoomOut?.()}
|
|
125
125
|
>
|
|
126
126
|
<ZoomOut aria-hidden="true" />
|
|
@@ -131,7 +131,7 @@ export function OnScreenControls(props: OnScreenControlsProps) {
|
|
|
131
131
|
size="icon-lg"
|
|
132
132
|
aria-label="Zoom in"
|
|
133
133
|
title="Zoom in"
|
|
134
|
-
class="border border-
|
|
134
|
+
class="border border-scrim-edge/25 bg-scrim/65 text-scrim-foreground shadow-lg backdrop-blur-sm hover:bg-scrim/80"
|
|
135
135
|
onClick={() => props.onZoomIn?.()}
|
|
136
136
|
>
|
|
137
137
|
<ZoomIn aria-hidden="true" />
|
|
@@ -31,7 +31,7 @@ function DialogOverlay(props: ComponentProps<typeof DialogPrimitive.Overlay>) {
|
|
|
31
31
|
return (
|
|
32
32
|
<DialogPrimitive.Overlay
|
|
33
33
|
data-slot="dialog-overlay"
|
|
34
|
-
class={cn('fixed inset-0 z-
|
|
34
|
+
class={cn('fixed inset-0 z-(--z-dialog) bg-scrim/55 backdrop-blur-[2px]', local.class)}
|
|
35
35
|
{...rest}
|
|
36
36
|
/>
|
|
37
37
|
)
|
|
@@ -46,7 +46,7 @@ function DialogContent(
|
|
|
46
46
|
<DialogOverlay />
|
|
47
47
|
{/* Flex centering keeps the dialog on whole pixels; a translate-based
|
|
48
48
|
center can land on a half pixel and shift every edge. */}
|
|
49
|
-
<div class="fixed inset-0 z-
|
|
49
|
+
<div class="fixed inset-0 z-(--z-dialog) flex items-center justify-center p-4">
|
|
50
50
|
<DialogPrimitive.Content
|
|
51
51
|
data-slot="dialog-content"
|
|
52
52
|
class={cn(
|
|
@@ -56,7 +56,7 @@ function DrawerOverlay(props: ComponentProps<typeof DrawerPrimitive.Overlay>) {
|
|
|
56
56
|
// The scrim keeps the pre-Solid 10% black the committed screenshots
|
|
57
57
|
// were taken against; 25% dimmed the page behind every drawer.
|
|
58
58
|
class={cn(
|
|
59
|
-
'fixed inset-0 z-
|
|
59
|
+
'fixed inset-0 z-(--z-drawer) bg-scrim/10 backdrop-blur-xs transition-opacity duration-300 data-closed:opacity-0',
|
|
60
60
|
local.class
|
|
61
61
|
)}
|
|
62
62
|
{...rest}
|
|
@@ -93,7 +93,7 @@ function DrawerContent(props: DrawerContentProps) {
|
|
|
93
93
|
<DrawerPrimitive.Content
|
|
94
94
|
data-slot="drawer-content"
|
|
95
95
|
class={cn(
|
|
96
|
-
'group/drawer-content fixed z-
|
|
96
|
+
'group/drawer-content fixed z-(--z-drawer) flex flex-col overflow-hidden bg-popover text-sm text-popover-foreground shadow-lg outline-none transition-transform duration-300 ease-out will-change-transform',
|
|
97
97
|
SIDE_CLASSES[side()],
|
|
98
98
|
local.class
|
|
99
99
|
)}
|
|
@@ -34,7 +34,7 @@ function DropdownMenuContent(props: DropdownMenuContentProps) {
|
|
|
34
34
|
placement={placement()}
|
|
35
35
|
gutter={local.sideOffset ?? 4}
|
|
36
36
|
class={cn(
|
|
37
|
-
'z-
|
|
37
|
+
'z-(--z-menu) max-h-(--kb-popper-available-height) min-w-32 origin-(--kb-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95',
|
|
38
38
|
local.class
|
|
39
39
|
)}
|
|
40
40
|
{...rest}
|
|
@@ -47,7 +47,7 @@ function TooltipContent(props: TooltipContentProps) {
|
|
|
47
47
|
placement={placement()}
|
|
48
48
|
gutter={local.sideOffset ?? 4}
|
|
49
49
|
class={cn(
|
|
50
|
-
'z-
|
|
50
|
+
'z-(--z-tooltip) max-w-72 rounded-md bg-popover px-2.5 py-1.5 text-sm leading-5 text-popover-foreground shadow-md ring-1 ring-foreground/10 data-closed:animate-out data-closed:fade-out-0 data-expanded:animate-in data-expanded:fade-in-0',
|
|
51
51
|
local.class
|
|
52
52
|
)}
|
|
53
53
|
{...rest}
|
|
@@ -213,10 +213,10 @@ export function VersionDialog(props: {
|
|
|
213
213
|
</div>
|
|
214
214
|
</DialogHeader>
|
|
215
215
|
|
|
216
|
-
<div class="min-h-0
|
|
216
|
+
<div class="flex min-h-0 flex-col gap-5 overflow-y-auto p-6">
|
|
217
217
|
<section class="rounded-xl border bg-background/45 p-4" aria-label="Version status">
|
|
218
218
|
<div class="flex flex-wrap items-start justify-between gap-4">
|
|
219
|
-
<div class="
|
|
219
|
+
<div class="flex flex-col gap-1">
|
|
220
220
|
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground">
|
|
221
221
|
Installed version
|
|
222
222
|
</p>
|
|
@@ -267,7 +267,7 @@ export function VersionDialog(props: {
|
|
|
267
267
|
aria-label="Available update"
|
|
268
268
|
>
|
|
269
269
|
<div class="flex flex-wrap items-start justify-between gap-4">
|
|
270
|
-
<div class="
|
|
270
|
+
<div class="flex flex-col gap-1">
|
|
271
271
|
<p class="flex items-center gap-2 text-sm font-semibold">
|
|
272
272
|
<Sparkles class="size-4 text-primary" aria-hidden="true" />
|
|
273
273
|
Version {update()?.available_version} is ready
|
|
@@ -300,10 +300,7 @@ export function VersionDialog(props: {
|
|
|
300
300
|
</Show>
|
|
301
301
|
|
|
302
302
|
<Show when={update()?.phase === 'current'}>
|
|
303
|
-
<p
|
|
304
|
-
class="flex items-center gap-2 text-sm text-emerald-700 dark:text-emerald-300"
|
|
305
|
-
role="status"
|
|
306
|
-
>
|
|
303
|
+
<p class="flex items-center gap-2 text-sm text-success" role="status">
|
|
307
304
|
<Check class="size-4" aria-hidden="true" />
|
|
308
305
|
Adea is up to date.
|
|
309
306
|
</p>
|
|
@@ -319,7 +316,7 @@ export function VersionDialog(props: {
|
|
|
319
316
|
</Show>
|
|
320
317
|
|
|
321
318
|
<Show when={releaseNotes()}>
|
|
322
|
-
<section class="
|
|
319
|
+
<section class="flex flex-col gap-2" aria-labelledby="adea-release-notes">
|
|
323
320
|
<div>
|
|
324
321
|
<h2 id="adea-release-notes" class="text-sm font-semibold">
|
|
325
322
|
What changed in this release
|
|
@@ -334,7 +331,7 @@ export function VersionDialog(props: {
|
|
|
334
331
|
</section>
|
|
335
332
|
</Show>
|
|
336
333
|
|
|
337
|
-
<section class="
|
|
334
|
+
<section class="flex flex-col gap-2" aria-labelledby="agent-hq-changelog">
|
|
338
335
|
<div>
|
|
339
336
|
<h2 id="agent-hq-changelog" class="text-sm font-semibold">
|
|
340
337
|
Installed changelog
|
package/src/styles/base.css
CHANGED
package/src/styles/globals.css
CHANGED
|
@@ -1,93 +1,7 @@
|
|
|
1
|
+
/* Prebuilt sheet for consumers that want the full kit: Tailwind, the neutral
|
|
2
|
+
base layer, and the shared tokens/base styles from theme.css. Keep tokens in
|
|
3
|
+
theme.css only — this file must not duplicate them. */
|
|
4
|
+
|
|
1
5
|
@import 'tailwindcss';
|
|
2
6
|
@import './base.css';
|
|
3
|
-
|
|
4
|
-
/* Include shared components when this stylesheet is consumed by an app. */
|
|
5
|
-
@source "../";
|
|
6
|
-
|
|
7
|
-
@custom-variant dark (&:is(.dark *));
|
|
8
|
-
|
|
9
|
-
@theme inline {
|
|
10
|
-
--color-background: var(--background);
|
|
11
|
-
--color-foreground: var(--foreground);
|
|
12
|
-
--color-card: var(--card);
|
|
13
|
-
--color-card-foreground: var(--card-foreground);
|
|
14
|
-
--color-popover: var(--popover);
|
|
15
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
16
|
-
--color-primary: var(--primary);
|
|
17
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
18
|
-
--color-secondary: var(--secondary);
|
|
19
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
20
|
-
--color-muted: var(--muted);
|
|
21
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
22
|
-
--color-accent: var(--accent);
|
|
23
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
24
|
-
--color-destructive: var(--destructive);
|
|
25
|
-
--color-border: var(--border);
|
|
26
|
-
--color-input: var(--input);
|
|
27
|
-
--color-ring: var(--ring);
|
|
28
|
-
--radius-sm: calc(var(--radius) - 4px);
|
|
29
|
-
--radius-md: calc(var(--radius) - 2px);
|
|
30
|
-
--radius-lg: var(--radius);
|
|
31
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
:root {
|
|
35
|
-
--radius: 0.75rem;
|
|
36
|
-
--background: oklch(1 0 0);
|
|
37
|
-
--foreground: oklch(0.145 0 0);
|
|
38
|
-
--card: oklch(1 0 0);
|
|
39
|
-
--card-foreground: oklch(0.145 0 0);
|
|
40
|
-
--popover: oklch(1 0 0);
|
|
41
|
-
--popover-foreground: oklch(0.145 0 0);
|
|
42
|
-
--primary: oklch(0.205 0 0);
|
|
43
|
-
--primary-foreground: oklch(0.985 0 0);
|
|
44
|
-
--secondary: oklch(0.97 0 0);
|
|
45
|
-
--secondary-foreground: oklch(0.205 0 0);
|
|
46
|
-
--muted: oklch(0.97 0 0);
|
|
47
|
-
--muted-foreground: oklch(0.556 0 0);
|
|
48
|
-
--accent: oklch(0.97 0 0);
|
|
49
|
-
--accent-foreground: oklch(0.205 0 0);
|
|
50
|
-
--destructive: oklch(0.577 0.245 27.325);
|
|
51
|
-
--border: oklch(0.922 0 0);
|
|
52
|
-
--input: oklch(0.922 0 0);
|
|
53
|
-
--ring: oklch(0.708 0 0);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.dark {
|
|
57
|
-
--background: oklch(0.145 0 0);
|
|
58
|
-
--foreground: oklch(0.985 0 0);
|
|
59
|
-
--card: oklch(0.205 0 0);
|
|
60
|
-
--card-foreground: oklch(0.985 0 0);
|
|
61
|
-
--popover: oklch(0.205 0 0);
|
|
62
|
-
--popover-foreground: oklch(0.985 0 0);
|
|
63
|
-
--primary: oklch(0.922 0 0);
|
|
64
|
-
--primary-foreground: oklch(0.205 0 0);
|
|
65
|
-
--secondary: oklch(0.269 0 0);
|
|
66
|
-
--secondary-foreground: oklch(0.985 0 0);
|
|
67
|
-
--muted: oklch(0.269 0 0);
|
|
68
|
-
--muted-foreground: oklch(0.708 0 0);
|
|
69
|
-
--accent: oklch(0.269 0 0);
|
|
70
|
-
--accent-foreground: oklch(0.985 0 0);
|
|
71
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
72
|
-
--border: oklch(1 0 0 / 10%);
|
|
73
|
-
--input: oklch(1 0 0 / 15%);
|
|
74
|
-
--ring: oklch(0.556 0 0);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@layer base {
|
|
78
|
-
* {
|
|
79
|
-
border-color: var(--border);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
html,
|
|
83
|
-
body {
|
|
84
|
-
min-height: 100%;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
body {
|
|
88
|
-
position: relative;
|
|
89
|
-
margin: 0;
|
|
90
|
-
background: var(--background);
|
|
91
|
-
color: var(--foreground);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
7
|
+
@import './theme.css';
|
package/src/styles/theme.css
CHANGED
|
@@ -22,6 +22,9 @@
|
|
|
22
22
|
--color-accent-foreground: var(--accent-foreground);
|
|
23
23
|
--color-destructive: var(--destructive);
|
|
24
24
|
--color-success: var(--success);
|
|
25
|
+
--color-scrim: var(--scrim);
|
|
26
|
+
--color-scrim-foreground: var(--scrim-foreground);
|
|
27
|
+
--color-scrim-edge: var(--scrim-edge);
|
|
25
28
|
--color-border: var(--border);
|
|
26
29
|
--color-input: var(--input);
|
|
27
30
|
--color-ring: var(--ring);
|
|
@@ -50,6 +53,12 @@
|
|
|
50
53
|
--destructive: oklch(0.577 0.245 27.325);
|
|
51
54
|
/* Mirrors the literals the success button variant used to carry. */
|
|
52
55
|
--success: #1a7f37;
|
|
56
|
+
/* Theme-invariant dark glass for overlays and on-screen controls
|
|
57
|
+
(Tailwind slate-950). Same value in light and dark themes; the
|
|
58
|
+
foreground/edge tokens are the text and hairline drawn on it. */
|
|
59
|
+
--scrim: oklch(0.129 0.042 264.695);
|
|
60
|
+
--scrim-foreground: #fff;
|
|
61
|
+
--scrim-edge: #fff;
|
|
53
62
|
--border: oklch(0.922 0 0);
|
|
54
63
|
--input: oklch(0.922 0 0);
|
|
55
64
|
--ring: oklch(0.708 0 0);
|
|
@@ -57,6 +66,12 @@
|
|
|
57
66
|
values the logo used to hardcode. */
|
|
58
67
|
--workspace-logo-surface: #111827;
|
|
59
68
|
--workspace-logo-foreground: #f8fafc;
|
|
69
|
+
/* Overlay stacking scale — reference it as z-(--z-drawer) etc. in
|
|
70
|
+
components; do not add one-off z-[N] values. */
|
|
71
|
+
--z-drawer: 110;
|
|
72
|
+
--z-dialog: 120;
|
|
73
|
+
--z-menu: 140;
|
|
74
|
+
--z-tooltip: 160;
|
|
60
75
|
}
|
|
61
76
|
|
|
62
77
|
.dark {
|