@tangle-network/sandbox-ui 0.23.0 → 0.23.2
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/assets.d.ts +276 -0
- package/dist/assets.js +946 -0
- package/dist/{chunk-CB3KBKYN.js → chunk-MBYBQWRN.js} +71 -31
- package/dist/dashboard.d.ts +2 -0
- package/dist/dashboard.js +1 -1
- package/dist/globals.css +92 -0
- package/dist/index.js +1 -1
- package/dist/styles.css +92 -0
- package/package.json +5 -1
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
DropdownMenuSeparator,
|
|
18
18
|
DropdownMenuTrigger
|
|
19
19
|
} from "@tangle-network/ui/primitives";
|
|
20
|
-
import { Skeleton } from "@tangle-network/ui/primitives";
|
|
20
|
+
import { Skeleton, useTheme } from "@tangle-network/ui/primitives";
|
|
21
21
|
|
|
22
22
|
// src/dashboard/sidebar-context.tsx
|
|
23
23
|
import * as React from "react";
|
|
@@ -142,6 +142,41 @@ function LogOutIcon({ className }) {
|
|
|
142
142
|
/* @__PURE__ */ jsx2("line", { x1: "21", x2: "9", y1: "12", y2: "12" })
|
|
143
143
|
] });
|
|
144
144
|
}
|
|
145
|
+
function SunIcon({ className }) {
|
|
146
|
+
return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: [
|
|
147
|
+
/* @__PURE__ */ jsx2("title", { children: "Light mode icon" }),
|
|
148
|
+
/* @__PURE__ */ jsx2("circle", { cx: "12", cy: "12", r: "4" }),
|
|
149
|
+
/* @__PURE__ */ jsx2("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41" })
|
|
150
|
+
] });
|
|
151
|
+
}
|
|
152
|
+
function MoonIcon({ className }) {
|
|
153
|
+
return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className, children: [
|
|
154
|
+
/* @__PURE__ */ jsx2("title", { children: "Dark mode icon" }),
|
|
155
|
+
/* @__PURE__ */ jsx2("path", { d: "M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" })
|
|
156
|
+
] });
|
|
157
|
+
}
|
|
158
|
+
function RailThemeToggle({ className }) {
|
|
159
|
+
const { theme, setTheme } = useTheme();
|
|
160
|
+
const [mounted, setMounted] = React2.useState(false);
|
|
161
|
+
React2.useEffect(() => setMounted(true), []);
|
|
162
|
+
const isDark = mounted && (theme === "dark" || theme === "system" && typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
163
|
+
return /* @__PURE__ */ jsx2(
|
|
164
|
+
"button",
|
|
165
|
+
{
|
|
166
|
+
type: "button",
|
|
167
|
+
onClick: () => setTheme(isDark ? "light" : "dark"),
|
|
168
|
+
"aria-label": "Toggle theme",
|
|
169
|
+
title: isDark ? "Switch to light mode" : "Switch to dark mode",
|
|
170
|
+
className: cn(
|
|
171
|
+
"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors",
|
|
172
|
+
"hover:bg-[var(--accent-surface-soft)] hover:text-[var(--accent-text)]",
|
|
173
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
|
|
174
|
+
className
|
|
175
|
+
),
|
|
176
|
+
children: isDark ? /* @__PURE__ */ jsx2(SunIcon, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx2(MoonIcon, { className: "h-4 w-4" })
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
}
|
|
145
180
|
function Sidebar({ children, className, style }) {
|
|
146
181
|
const { panelOpen, hidden, hasPanels, railWidth } = useSidebar();
|
|
147
182
|
return /* @__PURE__ */ jsx2(
|
|
@@ -174,20 +209,20 @@ function SidebarRail({ children, className, wide = false }) {
|
|
|
174
209
|
);
|
|
175
210
|
}
|
|
176
211
|
function SidebarRailHeader({ children, className }) {
|
|
177
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 items-center justify-center border-b border-border", className), children });
|
|
212
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 shrink-0 items-center justify-center border-b border-border", className), children });
|
|
178
213
|
}
|
|
179
214
|
function SidebarRailNav({ children, className }) {
|
|
180
|
-
return /* @__PURE__ */ jsx2("nav", { className: cn("flex flex-col items-center gap-1 py-3 flex-1", className), children });
|
|
215
|
+
return /* @__PURE__ */ jsx2("nav", { className: cn("flex flex-col items-center gap-1 py-3 flex-1 min-h-0 overflow-y-auto", className), children });
|
|
181
216
|
}
|
|
182
217
|
function SidebarRailFooter({ children, className }) {
|
|
183
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("flex flex-col items-center gap-1 pb-3", className), children });
|
|
218
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("flex flex-col items-center gap-1 pb-3 shrink-0", className), children });
|
|
184
219
|
}
|
|
185
220
|
function RailSeparator({ className }) {
|
|
186
221
|
return /* @__PURE__ */ jsx2("div", { className: cn("my-2 h-px w-10 bg-[var(--md3-outline-variant)]", className) });
|
|
187
222
|
}
|
|
188
223
|
function RailButton({ icon: Icon, label, isActive, badge, onClick, className, showLabel, asChild, children }) {
|
|
189
224
|
const classes = cn(
|
|
190
|
-
"group relative flex items-center justify-center rounded-xl transition-all duration-200",
|
|
225
|
+
"group relative flex shrink-0 items-center justify-center rounded-xl transition-all duration-200",
|
|
191
226
|
showLabel ? "w-full justify-start px-3 h-11 gap-3" : "w-11 h-11 justify-center",
|
|
192
227
|
"hover:bg-[var(--accent-surface-soft)] hover:text-[var(--accent-text)]",
|
|
193
228
|
"active:scale-95",
|
|
@@ -289,13 +324,7 @@ function ProfileAvatar({
|
|
|
289
324
|
user?.avatarUrl && /* @__PURE__ */ jsx2(AvatarImage, { src: user.avatarUrl, alt: "" }),
|
|
290
325
|
/* @__PURE__ */ jsx2(AvatarFallback, { className: "text-[10px] bg-violet-500/20 text-violet-300", children: getInitials(user?.name, user?.email) })
|
|
291
326
|
] }),
|
|
292
|
-
showDetails && /* @__PURE__ */ jsx2("div", { className: "min-w-0 flex-1", children: isLoading ? /* @__PURE__ */
|
|
293
|
-
/* @__PURE__ */ jsx2(Skeleton, { className: "mb-1 h-3.5 w-20" }),
|
|
294
|
-
/* @__PURE__ */ jsx2(Skeleton, { className: "h-3 w-28" })
|
|
295
|
-
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
296
|
-
/* @__PURE__ */ jsx2("p", { className: "truncate text-sm font-medium text-foreground", children: user?.name ?? user?.email ?? "Not signed in" }),
|
|
297
|
-
user?.email && user?.name && /* @__PURE__ */ jsx2("p", { className: "truncate text-xs text-muted-foreground", children: user.email })
|
|
298
|
-
] }) })
|
|
327
|
+
showDetails && /* @__PURE__ */ jsx2("div", { className: "min-w-0 flex-1", children: isLoading ? /* @__PURE__ */ jsx2(Skeleton, { className: "h-3.5 w-24" }) : /* @__PURE__ */ jsx2("p", { className: "truncate text-sm font-medium text-foreground", children: user?.name ?? user?.email ?? "Not signed in" }) })
|
|
299
328
|
]
|
|
300
329
|
}
|
|
301
330
|
) }),
|
|
@@ -1562,6 +1591,7 @@ function SidebarLayoutInner({
|
|
|
1562
1591
|
onSettingsClick,
|
|
1563
1592
|
settingsHref,
|
|
1564
1593
|
profileMenuItems,
|
|
1594
|
+
showThemeToggle = false,
|
|
1565
1595
|
railFooter,
|
|
1566
1596
|
LinkComponent,
|
|
1567
1597
|
hideBelow,
|
|
@@ -1603,19 +1633,29 @@ function SidebarLayoutInner({
|
|
|
1603
1633
|
) }),
|
|
1604
1634
|
(railFooter !== void 0 || hasProfile) && /* @__PURE__ */ jsxs13(SidebarRailFooter, { className: cn("border-t border-border pt-2", railLabels && "items-stretch px-2"), children: [
|
|
1605
1635
|
railFooter,
|
|
1606
|
-
hasProfile &&
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1636
|
+
hasProfile && (() => {
|
|
1637
|
+
const profile = /* @__PURE__ */ jsx14(
|
|
1638
|
+
ProfileAvatar,
|
|
1639
|
+
{
|
|
1640
|
+
user: user ?? void 0,
|
|
1641
|
+
isLoading,
|
|
1642
|
+
onLogout,
|
|
1643
|
+
onSettingsClick,
|
|
1644
|
+
settingsHref,
|
|
1645
|
+
showDetails: railLabels,
|
|
1646
|
+
LinkComponent: Link,
|
|
1647
|
+
children: profileMenuItems
|
|
1648
|
+
}
|
|
1649
|
+
);
|
|
1650
|
+
if (!showThemeToggle) return profile;
|
|
1651
|
+
return railLabels ? /* @__PURE__ */ jsxs13("div", { className: "flex w-full items-center gap-1", children: [
|
|
1652
|
+
/* @__PURE__ */ jsx14("div", { className: "min-w-0 flex-1", children: profile }),
|
|
1653
|
+
/* @__PURE__ */ jsx14(RailThemeToggle, {})
|
|
1654
|
+
] }) : /* @__PURE__ */ jsxs13("div", { className: "flex flex-col items-center gap-1", children: [
|
|
1655
|
+
/* @__PURE__ */ jsx14(RailThemeToggle, {}),
|
|
1656
|
+
profile
|
|
1657
|
+
] });
|
|
1658
|
+
})()
|
|
1619
1659
|
] })
|
|
1620
1660
|
] }),
|
|
1621
1661
|
panel != null && /* @__PURE__ */ jsx14(SidebarPanel, { children: panel })
|
|
@@ -2177,14 +2217,14 @@ function VariantList({
|
|
|
2177
2217
|
|
|
2178
2218
|
// src/dashboard/system-logs.tsx
|
|
2179
2219
|
import { Terminal as Terminal3 } from "lucide-react";
|
|
2180
|
-
import { useEffect as
|
|
2220
|
+
import { useEffect as useEffect3, useRef as useRef2, useState as useState5 } from "react";
|
|
2181
2221
|
import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2182
2222
|
function SystemLogsViewer({ apiUrl, token, className }) {
|
|
2183
|
-
const [logs, setLogs] =
|
|
2184
|
-
const [error, setError] =
|
|
2185
|
-
const [isFollowing, setIsFollowing] =
|
|
2223
|
+
const [logs, setLogs] = useState5([]);
|
|
2224
|
+
const [error, setError] = useState5(null);
|
|
2225
|
+
const [isFollowing, setIsFollowing] = useState5(true);
|
|
2186
2226
|
const scrollRef = useRef2(null);
|
|
2187
|
-
|
|
2227
|
+
useEffect3(() => {
|
|
2188
2228
|
let timeoutId;
|
|
2189
2229
|
let backoff = 2e3;
|
|
2190
2230
|
const controller = new AbortController();
|
|
@@ -2220,7 +2260,7 @@ function SystemLogsViewer({ apiUrl, token, className }) {
|
|
|
2220
2260
|
clearTimeout(timeoutId);
|
|
2221
2261
|
};
|
|
2222
2262
|
}, [apiUrl, token]);
|
|
2223
|
-
|
|
2263
|
+
useEffect3(() => {
|
|
2224
2264
|
if (isFollowing && scrollRef.current) {
|
|
2225
2265
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
2226
2266
|
}
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -535,6 +535,8 @@ interface SidebarLayoutProps {
|
|
|
535
535
|
settingsHref?: string;
|
|
536
536
|
/** Extra items rendered before settings/logout in the profile menu. */
|
|
537
537
|
profileMenuItems?: React.ReactNode;
|
|
538
|
+
/** Render a light/dark theme switch in the profile menu (uses the shared `useTheme`). */
|
|
539
|
+
showThemeToggle?: boolean;
|
|
538
540
|
/** Extra content in the rail footer, above the profile avatar. */
|
|
539
541
|
railFooter?: React.ReactNode;
|
|
540
542
|
LinkComponent?: React.ComponentType<any>;
|
package/dist/dashboard.js
CHANGED
package/dist/globals.css
CHANGED
|
@@ -365,6 +365,9 @@
|
|
|
365
365
|
.bottom-0 {
|
|
366
366
|
bottom: calc(var(--spacing) * 0);
|
|
367
367
|
}
|
|
368
|
+
.bottom-2 {
|
|
369
|
+
bottom: calc(var(--spacing) * 2);
|
|
370
|
+
}
|
|
368
371
|
.bottom-4 {
|
|
369
372
|
bottom: calc(var(--spacing) * 4);
|
|
370
373
|
}
|
|
@@ -380,12 +383,18 @@
|
|
|
380
383
|
.left-0\.5 {
|
|
381
384
|
left: calc(var(--spacing) * 0.5);
|
|
382
385
|
}
|
|
386
|
+
.left-1 {
|
|
387
|
+
left: calc(var(--spacing) * 1);
|
|
388
|
+
}
|
|
383
389
|
.left-1\/2 {
|
|
384
390
|
left: calc(1 / 2 * 100%);
|
|
385
391
|
}
|
|
386
392
|
.left-2 {
|
|
387
393
|
left: calc(var(--spacing) * 2);
|
|
388
394
|
}
|
|
395
|
+
.left-2\.5 {
|
|
396
|
+
left: calc(var(--spacing) * 2.5);
|
|
397
|
+
}
|
|
389
398
|
.left-3 {
|
|
390
399
|
left: calc(var(--spacing) * 3);
|
|
391
400
|
}
|
|
@@ -602,6 +611,9 @@
|
|
|
602
611
|
.table {
|
|
603
612
|
display: table;
|
|
604
613
|
}
|
|
614
|
+
.aspect-\[9\/16\] {
|
|
615
|
+
aspect-ratio: 9/16;
|
|
616
|
+
}
|
|
605
617
|
.aspect-square {
|
|
606
618
|
aspect-ratio: 1 / 1;
|
|
607
619
|
}
|
|
@@ -723,6 +735,9 @@
|
|
|
723
735
|
.h-screen {
|
|
724
736
|
height: 100vh;
|
|
725
737
|
}
|
|
738
|
+
.max-h-40 {
|
|
739
|
+
max-height: calc(var(--spacing) * 40);
|
|
740
|
+
}
|
|
726
741
|
.max-h-48 {
|
|
727
742
|
max-height: calc(var(--spacing) * 48);
|
|
728
743
|
}
|
|
@@ -777,6 +792,9 @@
|
|
|
777
792
|
.min-h-\[44px\] {
|
|
778
793
|
min-height: 44px;
|
|
779
794
|
}
|
|
795
|
+
.min-h-\[60px\] {
|
|
796
|
+
min-height: 60px;
|
|
797
|
+
}
|
|
780
798
|
.min-h-\[72px\] {
|
|
781
799
|
min-height: 72px;
|
|
782
800
|
}
|
|
@@ -792,6 +810,9 @@
|
|
|
792
810
|
.min-h-\[200px\] {
|
|
793
811
|
min-height: 200px;
|
|
794
812
|
}
|
|
813
|
+
.min-h-\[300px\] {
|
|
814
|
+
min-height: 300px;
|
|
815
|
+
}
|
|
795
816
|
.min-h-full {
|
|
796
817
|
min-height: 100%;
|
|
797
818
|
}
|
|
@@ -1065,6 +1086,9 @@
|
|
|
1065
1086
|
.min-w-4 {
|
|
1066
1087
|
min-width: calc(var(--spacing) * 4);
|
|
1067
1088
|
}
|
|
1089
|
+
.min-w-40 {
|
|
1090
|
+
min-width: calc(var(--spacing) * 40);
|
|
1091
|
+
}
|
|
1068
1092
|
.min-w-\[8rem\] {
|
|
1069
1093
|
min-width: 8rem;
|
|
1070
1094
|
}
|
|
@@ -1614,6 +1638,10 @@
|
|
|
1614
1638
|
border-left-style: var(--tw-border-style);
|
|
1615
1639
|
border-left-width: 1px;
|
|
1616
1640
|
}
|
|
1641
|
+
.border-l-2 {
|
|
1642
|
+
border-left-style: var(--tw-border-style);
|
|
1643
|
+
border-left-width: 2px;
|
|
1644
|
+
}
|
|
1617
1645
|
.border-dashed {
|
|
1618
1646
|
--tw-border-style: dashed;
|
|
1619
1647
|
border-style: dashed;
|
|
@@ -1931,6 +1959,9 @@
|
|
|
1931
1959
|
background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
|
|
1932
1960
|
}
|
|
1933
1961
|
}
|
|
1962
|
+
.bg-black {
|
|
1963
|
+
background-color: var(--color-black);
|
|
1964
|
+
}
|
|
1934
1965
|
.bg-black\/40 {
|
|
1935
1966
|
background-color: color-mix(in srgb, #000 40%, transparent);
|
|
1936
1967
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2039,6 +2070,12 @@
|
|
|
2039
2070
|
background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
|
|
2040
2071
|
}
|
|
2041
2072
|
}
|
|
2073
|
+
.bg-white\/40 {
|
|
2074
|
+
background-color: color-mix(in srgb, #fff 40%, transparent);
|
|
2075
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2076
|
+
background-color: color-mix(in oklab, var(--color-white) 40%, transparent);
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2042
2079
|
.bg-yellow-500 {
|
|
2043
2080
|
background-color: var(--color-yellow-500);
|
|
2044
2081
|
}
|
|
@@ -2078,6 +2115,9 @@
|
|
|
2078
2115
|
.object-contain {
|
|
2079
2116
|
object-fit: contain;
|
|
2080
2117
|
}
|
|
2118
|
+
.object-cover {
|
|
2119
|
+
object-fit: cover;
|
|
2120
|
+
}
|
|
2081
2121
|
.p-0 {
|
|
2082
2122
|
padding: calc(var(--spacing) * 0);
|
|
2083
2123
|
}
|
|
@@ -2270,6 +2310,9 @@
|
|
|
2270
2310
|
.pt-16 {
|
|
2271
2311
|
padding-top: calc(var(--spacing) * 16);
|
|
2272
2312
|
}
|
|
2313
|
+
.pr-1 {
|
|
2314
|
+
padding-right: calc(var(--spacing) * 1);
|
|
2315
|
+
}
|
|
2273
2316
|
.pr-2 {
|
|
2274
2317
|
padding-right: calc(var(--spacing) * 2);
|
|
2275
2318
|
}
|
|
@@ -2309,6 +2352,9 @@
|
|
|
2309
2352
|
.pl-2 {
|
|
2310
2353
|
padding-left: calc(var(--spacing) * 2);
|
|
2311
2354
|
}
|
|
2355
|
+
.pl-3 {
|
|
2356
|
+
padding-left: calc(var(--spacing) * 3);
|
|
2357
|
+
}
|
|
2312
2358
|
.pl-4 {
|
|
2313
2359
|
padding-left: calc(var(--spacing) * 4);
|
|
2314
2360
|
}
|
|
@@ -2678,6 +2724,9 @@
|
|
|
2678
2724
|
.text-blue-400 {
|
|
2679
2725
|
color: var(--color-blue-400);
|
|
2680
2726
|
}
|
|
2727
|
+
.text-blue-500 {
|
|
2728
|
+
color: var(--color-blue-500);
|
|
2729
|
+
}
|
|
2681
2730
|
.text-emerald-400 {
|
|
2682
2731
|
color: var(--color-emerald-400);
|
|
2683
2732
|
}
|
|
@@ -2735,6 +2784,9 @@
|
|
|
2735
2784
|
.italic {
|
|
2736
2785
|
font-style: italic;
|
|
2737
2786
|
}
|
|
2787
|
+
.not-italic {
|
|
2788
|
+
font-style: normal;
|
|
2789
|
+
}
|
|
2738
2790
|
.tabular-nums {
|
|
2739
2791
|
--tw-numeric-spacing: tabular-nums;
|
|
2740
2792
|
font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
|
|
@@ -2758,6 +2810,9 @@
|
|
|
2758
2810
|
.opacity-30 {
|
|
2759
2811
|
opacity: 30%;
|
|
2760
2812
|
}
|
|
2813
|
+
.opacity-40 {
|
|
2814
|
+
opacity: 40%;
|
|
2815
|
+
}
|
|
2761
2816
|
.opacity-50 {
|
|
2762
2817
|
opacity: 50%;
|
|
2763
2818
|
}
|
|
@@ -3204,6 +3259,16 @@
|
|
|
3204
3259
|
}
|
|
3205
3260
|
}
|
|
3206
3261
|
}
|
|
3262
|
+
.hover\:bg-black\/60 {
|
|
3263
|
+
&:hover {
|
|
3264
|
+
@media (hover: hover) {
|
|
3265
|
+
background-color: color-mix(in srgb, #000 60%, transparent);
|
|
3266
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3267
|
+
background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
|
|
3268
|
+
}
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3207
3272
|
.hover\:bg-blue-600\/30 {
|
|
3208
3273
|
&:hover {
|
|
3209
3274
|
@media (hover: hover) {
|
|
@@ -3224,6 +3289,16 @@
|
|
|
3224
3289
|
}
|
|
3225
3290
|
}
|
|
3226
3291
|
}
|
|
3292
|
+
.hover\:bg-green-600\/5 {
|
|
3293
|
+
&:hover {
|
|
3294
|
+
@media (hover: hover) {
|
|
3295
|
+
background-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 5%, transparent);
|
|
3296
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3297
|
+
background-color: color-mix(in oklab, var(--color-green-600) 5%, transparent);
|
|
3298
|
+
}
|
|
3299
|
+
}
|
|
3300
|
+
}
|
|
3301
|
+
}
|
|
3227
3302
|
.hover\:bg-green-600\/30 {
|
|
3228
3303
|
&:hover {
|
|
3229
3304
|
@media (hover: hover) {
|
|
@@ -3282,6 +3357,13 @@
|
|
|
3282
3357
|
}
|
|
3283
3358
|
}
|
|
3284
3359
|
}
|
|
3360
|
+
.hover\:text-green-600 {
|
|
3361
|
+
&:hover {
|
|
3362
|
+
@media (hover: hover) {
|
|
3363
|
+
color: var(--color-green-600);
|
|
3364
|
+
}
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3285
3367
|
.hover\:underline {
|
|
3286
3368
|
&:hover {
|
|
3287
3369
|
@media (hover: hover) {
|
|
@@ -3607,6 +3689,11 @@
|
|
|
3607
3689
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3608
3690
|
}
|
|
3609
3691
|
}
|
|
3692
|
+
.sm\:grid-cols-3 {
|
|
3693
|
+
@media (width >= 40rem) {
|
|
3694
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3695
|
+
}
|
|
3696
|
+
}
|
|
3610
3697
|
.sm\:grid-cols-4 {
|
|
3611
3698
|
@media (width >= 40rem) {
|
|
3612
3699
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
@@ -3793,6 +3880,11 @@
|
|
|
3793
3880
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3794
3881
|
}
|
|
3795
3882
|
}
|
|
3883
|
+
.xl\:grid-cols-5 {
|
|
3884
|
+
@media (width >= 80rem) {
|
|
3885
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
3886
|
+
}
|
|
3887
|
+
}
|
|
3796
3888
|
.dark\:text-neutral-500 {
|
|
3797
3889
|
@media (prefers-color-scheme: dark) {
|
|
3798
3890
|
color: var(--color-neutral-500);
|
package/dist/index.js
CHANGED
package/dist/styles.css
CHANGED
|
@@ -365,6 +365,9 @@
|
|
|
365
365
|
.bottom-0 {
|
|
366
366
|
bottom: calc(var(--spacing) * 0);
|
|
367
367
|
}
|
|
368
|
+
.bottom-2 {
|
|
369
|
+
bottom: calc(var(--spacing) * 2);
|
|
370
|
+
}
|
|
368
371
|
.bottom-4 {
|
|
369
372
|
bottom: calc(var(--spacing) * 4);
|
|
370
373
|
}
|
|
@@ -380,12 +383,18 @@
|
|
|
380
383
|
.left-0\.5 {
|
|
381
384
|
left: calc(var(--spacing) * 0.5);
|
|
382
385
|
}
|
|
386
|
+
.left-1 {
|
|
387
|
+
left: calc(var(--spacing) * 1);
|
|
388
|
+
}
|
|
383
389
|
.left-1\/2 {
|
|
384
390
|
left: calc(1 / 2 * 100%);
|
|
385
391
|
}
|
|
386
392
|
.left-2 {
|
|
387
393
|
left: calc(var(--spacing) * 2);
|
|
388
394
|
}
|
|
395
|
+
.left-2\.5 {
|
|
396
|
+
left: calc(var(--spacing) * 2.5);
|
|
397
|
+
}
|
|
389
398
|
.left-3 {
|
|
390
399
|
left: calc(var(--spacing) * 3);
|
|
391
400
|
}
|
|
@@ -602,6 +611,9 @@
|
|
|
602
611
|
.table {
|
|
603
612
|
display: table;
|
|
604
613
|
}
|
|
614
|
+
.aspect-\[9\/16\] {
|
|
615
|
+
aspect-ratio: 9/16;
|
|
616
|
+
}
|
|
605
617
|
.aspect-square {
|
|
606
618
|
aspect-ratio: 1 / 1;
|
|
607
619
|
}
|
|
@@ -723,6 +735,9 @@
|
|
|
723
735
|
.h-screen {
|
|
724
736
|
height: 100vh;
|
|
725
737
|
}
|
|
738
|
+
.max-h-40 {
|
|
739
|
+
max-height: calc(var(--spacing) * 40);
|
|
740
|
+
}
|
|
726
741
|
.max-h-48 {
|
|
727
742
|
max-height: calc(var(--spacing) * 48);
|
|
728
743
|
}
|
|
@@ -777,6 +792,9 @@
|
|
|
777
792
|
.min-h-\[44px\] {
|
|
778
793
|
min-height: 44px;
|
|
779
794
|
}
|
|
795
|
+
.min-h-\[60px\] {
|
|
796
|
+
min-height: 60px;
|
|
797
|
+
}
|
|
780
798
|
.min-h-\[72px\] {
|
|
781
799
|
min-height: 72px;
|
|
782
800
|
}
|
|
@@ -792,6 +810,9 @@
|
|
|
792
810
|
.min-h-\[200px\] {
|
|
793
811
|
min-height: 200px;
|
|
794
812
|
}
|
|
813
|
+
.min-h-\[300px\] {
|
|
814
|
+
min-height: 300px;
|
|
815
|
+
}
|
|
795
816
|
.min-h-full {
|
|
796
817
|
min-height: 100%;
|
|
797
818
|
}
|
|
@@ -1065,6 +1086,9 @@
|
|
|
1065
1086
|
.min-w-4 {
|
|
1066
1087
|
min-width: calc(var(--spacing) * 4);
|
|
1067
1088
|
}
|
|
1089
|
+
.min-w-40 {
|
|
1090
|
+
min-width: calc(var(--spacing) * 40);
|
|
1091
|
+
}
|
|
1068
1092
|
.min-w-\[8rem\] {
|
|
1069
1093
|
min-width: 8rem;
|
|
1070
1094
|
}
|
|
@@ -1614,6 +1638,10 @@
|
|
|
1614
1638
|
border-left-style: var(--tw-border-style);
|
|
1615
1639
|
border-left-width: 1px;
|
|
1616
1640
|
}
|
|
1641
|
+
.border-l-2 {
|
|
1642
|
+
border-left-style: var(--tw-border-style);
|
|
1643
|
+
border-left-width: 2px;
|
|
1644
|
+
}
|
|
1617
1645
|
.border-dashed {
|
|
1618
1646
|
--tw-border-style: dashed;
|
|
1619
1647
|
border-style: dashed;
|
|
@@ -1931,6 +1959,9 @@
|
|
|
1931
1959
|
background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
|
|
1932
1960
|
}
|
|
1933
1961
|
}
|
|
1962
|
+
.bg-black {
|
|
1963
|
+
background-color: var(--color-black);
|
|
1964
|
+
}
|
|
1934
1965
|
.bg-black\/40 {
|
|
1935
1966
|
background-color: color-mix(in srgb, #000 40%, transparent);
|
|
1936
1967
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2039,6 +2070,12 @@
|
|
|
2039
2070
|
background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
|
|
2040
2071
|
}
|
|
2041
2072
|
}
|
|
2073
|
+
.bg-white\/40 {
|
|
2074
|
+
background-color: color-mix(in srgb, #fff 40%, transparent);
|
|
2075
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2076
|
+
background-color: color-mix(in oklab, var(--color-white) 40%, transparent);
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2042
2079
|
.bg-yellow-500 {
|
|
2043
2080
|
background-color: var(--color-yellow-500);
|
|
2044
2081
|
}
|
|
@@ -2078,6 +2115,9 @@
|
|
|
2078
2115
|
.object-contain {
|
|
2079
2116
|
object-fit: contain;
|
|
2080
2117
|
}
|
|
2118
|
+
.object-cover {
|
|
2119
|
+
object-fit: cover;
|
|
2120
|
+
}
|
|
2081
2121
|
.p-0 {
|
|
2082
2122
|
padding: calc(var(--spacing) * 0);
|
|
2083
2123
|
}
|
|
@@ -2270,6 +2310,9 @@
|
|
|
2270
2310
|
.pt-16 {
|
|
2271
2311
|
padding-top: calc(var(--spacing) * 16);
|
|
2272
2312
|
}
|
|
2313
|
+
.pr-1 {
|
|
2314
|
+
padding-right: calc(var(--spacing) * 1);
|
|
2315
|
+
}
|
|
2273
2316
|
.pr-2 {
|
|
2274
2317
|
padding-right: calc(var(--spacing) * 2);
|
|
2275
2318
|
}
|
|
@@ -2309,6 +2352,9 @@
|
|
|
2309
2352
|
.pl-2 {
|
|
2310
2353
|
padding-left: calc(var(--spacing) * 2);
|
|
2311
2354
|
}
|
|
2355
|
+
.pl-3 {
|
|
2356
|
+
padding-left: calc(var(--spacing) * 3);
|
|
2357
|
+
}
|
|
2312
2358
|
.pl-4 {
|
|
2313
2359
|
padding-left: calc(var(--spacing) * 4);
|
|
2314
2360
|
}
|
|
@@ -2678,6 +2724,9 @@
|
|
|
2678
2724
|
.text-blue-400 {
|
|
2679
2725
|
color: var(--color-blue-400);
|
|
2680
2726
|
}
|
|
2727
|
+
.text-blue-500 {
|
|
2728
|
+
color: var(--color-blue-500);
|
|
2729
|
+
}
|
|
2681
2730
|
.text-emerald-400 {
|
|
2682
2731
|
color: var(--color-emerald-400);
|
|
2683
2732
|
}
|
|
@@ -2735,6 +2784,9 @@
|
|
|
2735
2784
|
.italic {
|
|
2736
2785
|
font-style: italic;
|
|
2737
2786
|
}
|
|
2787
|
+
.not-italic {
|
|
2788
|
+
font-style: normal;
|
|
2789
|
+
}
|
|
2738
2790
|
.tabular-nums {
|
|
2739
2791
|
--tw-numeric-spacing: tabular-nums;
|
|
2740
2792
|
font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
|
|
@@ -2758,6 +2810,9 @@
|
|
|
2758
2810
|
.opacity-30 {
|
|
2759
2811
|
opacity: 30%;
|
|
2760
2812
|
}
|
|
2813
|
+
.opacity-40 {
|
|
2814
|
+
opacity: 40%;
|
|
2815
|
+
}
|
|
2761
2816
|
.opacity-50 {
|
|
2762
2817
|
opacity: 50%;
|
|
2763
2818
|
}
|
|
@@ -3204,6 +3259,16 @@
|
|
|
3204
3259
|
}
|
|
3205
3260
|
}
|
|
3206
3261
|
}
|
|
3262
|
+
.hover\:bg-black\/60 {
|
|
3263
|
+
&:hover {
|
|
3264
|
+
@media (hover: hover) {
|
|
3265
|
+
background-color: color-mix(in srgb, #000 60%, transparent);
|
|
3266
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3267
|
+
background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
|
|
3268
|
+
}
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3207
3272
|
.hover\:bg-blue-600\/30 {
|
|
3208
3273
|
&:hover {
|
|
3209
3274
|
@media (hover: hover) {
|
|
@@ -3224,6 +3289,16 @@
|
|
|
3224
3289
|
}
|
|
3225
3290
|
}
|
|
3226
3291
|
}
|
|
3292
|
+
.hover\:bg-green-600\/5 {
|
|
3293
|
+
&:hover {
|
|
3294
|
+
@media (hover: hover) {
|
|
3295
|
+
background-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 5%, transparent);
|
|
3296
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3297
|
+
background-color: color-mix(in oklab, var(--color-green-600) 5%, transparent);
|
|
3298
|
+
}
|
|
3299
|
+
}
|
|
3300
|
+
}
|
|
3301
|
+
}
|
|
3227
3302
|
.hover\:bg-green-600\/30 {
|
|
3228
3303
|
&:hover {
|
|
3229
3304
|
@media (hover: hover) {
|
|
@@ -3282,6 +3357,13 @@
|
|
|
3282
3357
|
}
|
|
3283
3358
|
}
|
|
3284
3359
|
}
|
|
3360
|
+
.hover\:text-green-600 {
|
|
3361
|
+
&:hover {
|
|
3362
|
+
@media (hover: hover) {
|
|
3363
|
+
color: var(--color-green-600);
|
|
3364
|
+
}
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3285
3367
|
.hover\:underline {
|
|
3286
3368
|
&:hover {
|
|
3287
3369
|
@media (hover: hover) {
|
|
@@ -3607,6 +3689,11 @@
|
|
|
3607
3689
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3608
3690
|
}
|
|
3609
3691
|
}
|
|
3692
|
+
.sm\:grid-cols-3 {
|
|
3693
|
+
@media (width >= 40rem) {
|
|
3694
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3695
|
+
}
|
|
3696
|
+
}
|
|
3610
3697
|
.sm\:grid-cols-4 {
|
|
3611
3698
|
@media (width >= 40rem) {
|
|
3612
3699
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
@@ -3793,6 +3880,11 @@
|
|
|
3793
3880
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
3794
3881
|
}
|
|
3795
3882
|
}
|
|
3883
|
+
.xl\:grid-cols-5 {
|
|
3884
|
+
@media (width >= 80rem) {
|
|
3885
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
3886
|
+
}
|
|
3887
|
+
}
|
|
3796
3888
|
.dark\:text-neutral-500 {
|
|
3797
3889
|
@media (prefers-color-scheme: dark) {
|
|
3798
3890
|
color: var(--color-neutral-500);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.2",
|
|
4
4
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -90,6 +90,10 @@
|
|
|
90
90
|
"import": "./dist/utils.js",
|
|
91
91
|
"types": "./dist/utils.d.ts"
|
|
92
92
|
},
|
|
93
|
+
"./assets": {
|
|
94
|
+
"import": "./dist/assets.js",
|
|
95
|
+
"types": "./dist/assets.d.ts"
|
|
96
|
+
},
|
|
93
97
|
"./styles": "./dist/styles.css",
|
|
94
98
|
"./globals.css": "./dist/globals.css",
|
|
95
99
|
"./tokens.css": "./dist/tokens.css",
|