@tangle-network/sandbox-ui 0.35.0 → 0.36.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/dist/{chunk-7ZA5SEK3.js → chunk-QHIA75U3.js} +88 -0
- package/dist/{chunk-75Z5H43I.js → chunk-Y2G5LHYJ.js} +45 -7
- package/dist/dashboard.d.ts +17 -1
- package/dist/dashboard.js +2 -2
- package/dist/globals.css +62 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/logo-CZ6moVvw.d.ts +18 -0
- package/dist/pages.js +57 -54
- package/dist/primitives.d.ts +53 -11
- package/dist/primitives.js +9 -1
- package/dist/styles.css +62 -9
- package/package.json +1 -1
|
@@ -147,9 +147,97 @@ function Logo({ variant = "sandbox", size = "md", className, iconOnly = false })
|
|
|
147
147
|
}
|
|
148
148
|
Logo.displayName = "Logo";
|
|
149
149
|
|
|
150
|
+
// src/primitives/heading.tsx
|
|
151
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
152
|
+
var ROLE_CLASS = {
|
|
153
|
+
display: "font-display font-bold text-foreground text-[length:var(--font-size-display,3rem)] leading-[var(--line-height-display,1.05)] tracking-[var(--tracking-tight,-0.02em)]",
|
|
154
|
+
hero: "font-display font-bold text-foreground text-[length:var(--font-size-hero,2.5rem)] leading-[1.1] tracking-[var(--tracking-tight,-0.02em)]",
|
|
155
|
+
page: "font-display font-semibold text-foreground text-[length:var(--font-size-3xl,1.875rem)] leading-[var(--line-height-heading,1.15)] tracking-[var(--tracking-tight,-0.02em)]",
|
|
156
|
+
section: "font-display font-semibold text-foreground text-[length:var(--font-size-xl,1.25rem)] leading-[1.3] tracking-[var(--tracking-snug,-0.01em)]",
|
|
157
|
+
subsection: "font-semibold text-foreground text-[length:var(--font-size-lg,1rem)] leading-[1.4]",
|
|
158
|
+
eyebrow: "font-semibold uppercase text-muted-foreground text-[length:var(--font-size-sm,0.75rem)] leading-none tracking-[var(--tracking-wide,0.08em)]"
|
|
159
|
+
};
|
|
160
|
+
var DEFAULT_TAG = {
|
|
161
|
+
display: "h1",
|
|
162
|
+
hero: "h2",
|
|
163
|
+
page: "h1",
|
|
164
|
+
section: "h2",
|
|
165
|
+
subsection: "h3",
|
|
166
|
+
eyebrow: "p"
|
|
167
|
+
};
|
|
168
|
+
function Heading({ role, as, className, children, ...rest }) {
|
|
169
|
+
const Tag = as ?? DEFAULT_TAG[role];
|
|
170
|
+
return /* @__PURE__ */ jsx2(Tag, { className: cn(ROLE_CLASS[role], className), ...rest, children });
|
|
171
|
+
}
|
|
172
|
+
function PageHeader({
|
|
173
|
+
title,
|
|
174
|
+
description,
|
|
175
|
+
eyebrow,
|
|
176
|
+
action,
|
|
177
|
+
className,
|
|
178
|
+
titleAs
|
|
179
|
+
}) {
|
|
180
|
+
return /* @__PURE__ */ jsxs2(
|
|
181
|
+
"div",
|
|
182
|
+
{
|
|
183
|
+
className: cn(
|
|
184
|
+
"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
|
|
185
|
+
className
|
|
186
|
+
),
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsxs2("div", { className: "space-y-1.5", children: [
|
|
189
|
+
eyebrow ? /* @__PURE__ */ jsx2(Heading, { role: "eyebrow", children: eyebrow }) : null,
|
|
190
|
+
/* @__PURE__ */ jsx2(Heading, { role: "page", as: titleAs, children: title }),
|
|
191
|
+
description ? /* @__PURE__ */ jsx2("p", { className: "max-w-2xl text-[length:var(--font-size-base,0.9375rem)] text-muted-foreground leading-relaxed", children: description }) : null
|
|
192
|
+
] }),
|
|
193
|
+
action ? /* @__PURE__ */ jsx2("div", { className: "flex shrink-0 items-center gap-2", children: action }) : null
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
function SectionTitle({
|
|
199
|
+
title,
|
|
200
|
+
description,
|
|
201
|
+
action,
|
|
202
|
+
className
|
|
203
|
+
}) {
|
|
204
|
+
return /* @__PURE__ */ jsxs2(
|
|
205
|
+
"div",
|
|
206
|
+
{
|
|
207
|
+
className: cn(
|
|
208
|
+
"flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between",
|
|
209
|
+
className
|
|
210
|
+
),
|
|
211
|
+
children: [
|
|
212
|
+
/* @__PURE__ */ jsxs2("div", { className: "space-y-1", children: [
|
|
213
|
+
/* @__PURE__ */ jsx2(Heading, { role: "section", children: title }),
|
|
214
|
+
description ? /* @__PURE__ */ jsx2("p", { className: "max-w-xl text-[length:var(--font-size-sm,0.75rem)] text-muted-foreground", children: description }) : null
|
|
215
|
+
] }),
|
|
216
|
+
action ? /* @__PURE__ */ jsx2("div", { className: "shrink-0", children: action }) : null
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
function PageShell({ children, className }) {
|
|
222
|
+
return /* @__PURE__ */ jsx2(
|
|
223
|
+
"div",
|
|
224
|
+
{
|
|
225
|
+
className: cn(
|
|
226
|
+
"mx-auto w-full max-w-6xl space-y-8 px-6 py-8 lg:px-8",
|
|
227
|
+
className
|
|
228
|
+
),
|
|
229
|
+
children
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
150
234
|
export {
|
|
151
235
|
TangleKnot,
|
|
152
236
|
Logo,
|
|
237
|
+
Heading,
|
|
238
|
+
PageHeader,
|
|
239
|
+
SectionTitle,
|
|
240
|
+
PageShell,
|
|
153
241
|
Avatar,
|
|
154
242
|
AvatarFallback,
|
|
155
243
|
AvatarImage,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Button,
|
|
3
3
|
Logo
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QHIA75U3.js";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
7
|
} from "./chunk-EI44GEQ5.js";
|
|
@@ -1496,6 +1496,9 @@ function DashboardLayoutInner({
|
|
|
1496
1496
|
topNavLinks,
|
|
1497
1497
|
activeTopNavHref,
|
|
1498
1498
|
LinkComponent = DefaultLink2,
|
|
1499
|
+
logoHref = "/",
|
|
1500
|
+
onLogoClick,
|
|
1501
|
+
labeledRail = false,
|
|
1499
1502
|
footer,
|
|
1500
1503
|
railFooter,
|
|
1501
1504
|
profileMenuItems,
|
|
@@ -1522,7 +1525,7 @@ function DashboardLayoutInner({
|
|
|
1522
1525
|
document.removeEventListener("keydown", keyHandler);
|
|
1523
1526
|
};
|
|
1524
1527
|
}, [notificationsOpen]);
|
|
1525
|
-
const { contentMargin, hidden, mode, hasPanels, panelOpen } = useSidebar();
|
|
1528
|
+
const { contentMargin, hidden, mode, hasPanels, panelOpen, toggleRail, railCollapsed } = useSidebar();
|
|
1526
1529
|
const modeSet = React6.useMemo(() => new Set(modeItems), [modeItems]);
|
|
1527
1530
|
const sidebarUser = React6.useMemo(
|
|
1528
1531
|
() => user ? { email: user.email, name: user.name, tier: user.tier, avatarUrl: user.avatarUrl } : void 0,
|
|
@@ -1532,7 +1535,34 @@ function DashboardLayoutInner({
|
|
|
1532
1535
|
const buildSidebarContent = React6.useCallback(
|
|
1533
1536
|
(showLabels) => /* @__PURE__ */ jsxs13(Fragment8, { children: [
|
|
1534
1537
|
/* @__PURE__ */ jsxs13(SidebarRail, { wide: showLabels, children: [
|
|
1535
|
-
/* @__PURE__ */ jsx14(SidebarRailHeader, { children:
|
|
1538
|
+
/* @__PURE__ */ jsx14(SidebarRailHeader, { children: onLogoClick ? /* @__PURE__ */ jsx14(
|
|
1539
|
+
"button",
|
|
1540
|
+
{
|
|
1541
|
+
type: "button",
|
|
1542
|
+
onClick: onLogoClick,
|
|
1543
|
+
"aria-label": "Toggle navigation",
|
|
1544
|
+
className: "p-1 rounded-md transition-colors hover:bg-muted/50",
|
|
1545
|
+
children: /* @__PURE__ */ jsx14(Logo, { variant, size: "sm", iconOnly: true })
|
|
1546
|
+
}
|
|
1547
|
+
) : labeledRail ? /* @__PURE__ */ jsx14(
|
|
1548
|
+
"button",
|
|
1549
|
+
{
|
|
1550
|
+
type: "button",
|
|
1551
|
+
onClick: toggleRail,
|
|
1552
|
+
"aria-label": railCollapsed ? "Expand navigation" : "Collapse navigation",
|
|
1553
|
+
"aria-expanded": !railCollapsed,
|
|
1554
|
+
className: "p-1 rounded-md transition-colors hover:bg-muted/50",
|
|
1555
|
+
children: /* @__PURE__ */ jsx14(Logo, { variant, size: "sm", iconOnly: true })
|
|
1556
|
+
}
|
|
1557
|
+
) : /* @__PURE__ */ jsx14(
|
|
1558
|
+
Link,
|
|
1559
|
+
{
|
|
1560
|
+
href: logoHref,
|
|
1561
|
+
to: logoHref,
|
|
1562
|
+
className: "p-1 rounded-md transition-colors hover:bg-muted/50",
|
|
1563
|
+
children: /* @__PURE__ */ jsx14(Logo, { variant, size: "sm", iconOnly: true })
|
|
1564
|
+
}
|
|
1565
|
+
) }),
|
|
1536
1566
|
/* @__PURE__ */ jsx14(SidebarRailNav, { children: navItems.map((item, i) => {
|
|
1537
1567
|
const isMode = modeSet.has(item.id);
|
|
1538
1568
|
const prevIsMode = i > 0 && modeSet.has(navItems[i - 1].id);
|
|
@@ -1586,6 +1616,11 @@ function DashboardLayoutInner({
|
|
|
1586
1616
|
[
|
|
1587
1617
|
Link,
|
|
1588
1618
|
variant,
|
|
1619
|
+
onLogoClick,
|
|
1620
|
+
logoHref,
|
|
1621
|
+
labeledRail,
|
|
1622
|
+
toggleRail,
|
|
1623
|
+
railCollapsed,
|
|
1589
1624
|
navItems,
|
|
1590
1625
|
modeSet,
|
|
1591
1626
|
activeNavId,
|
|
@@ -1602,7 +1637,10 @@ function DashboardLayoutInner({
|
|
|
1602
1637
|
mode
|
|
1603
1638
|
]
|
|
1604
1639
|
);
|
|
1605
|
-
const sidebarContent = React6.useMemo(
|
|
1640
|
+
const sidebarContent = React6.useMemo(
|
|
1641
|
+
() => buildSidebarContent(labeledRail && !railCollapsed),
|
|
1642
|
+
[buildSidebarContent, labeledRail, railCollapsed]
|
|
1643
|
+
);
|
|
1606
1644
|
const mobileSidebarContent = React6.useMemo(() => buildSidebarContent(true), [buildSidebarContent]);
|
|
1607
1645
|
return /* @__PURE__ */ jsxs13("div", { className: cn("min-h-screen bg-background text-foreground", className), children: [
|
|
1608
1646
|
/* @__PURE__ */ jsxs13(
|
|
@@ -1615,7 +1653,7 @@ function DashboardLayoutInner({
|
|
|
1615
1653
|
},
|
|
1616
1654
|
children: [
|
|
1617
1655
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-8", children: [
|
|
1618
|
-
/* @__PURE__ */ jsx14(Link, { href:
|
|
1656
|
+
/* @__PURE__ */ jsx14(Link, { href: logoHref, to: logoHref, className: "lg:hidden flex items-center p-1 rounded-md hover:bg-muted/50 transition-colors", children: /* @__PURE__ */ jsx14(Logo, { variant, size: "sm", iconOnly: true }) }),
|
|
1619
1657
|
topNavLinks && topNavLinks.length > 0 && /* @__PURE__ */ jsx14("div", { className: "hidden md:flex gap-6", children: topNavLinks.map((link) => /* @__PURE__ */ jsx14(
|
|
1620
1658
|
Link,
|
|
1621
1659
|
{
|
|
@@ -1732,8 +1770,8 @@ function DashboardLayoutInner({
|
|
|
1732
1770
|
footer
|
|
1733
1771
|
] });
|
|
1734
1772
|
}
|
|
1735
|
-
function DashboardLayout({ defaultPanelOpen, defaultMode, ...props }) {
|
|
1736
|
-
return /* @__PURE__ */ jsx14(SidebarProvider, { defaultPanelOpen, defaultMode, hasPanels: (props.panels?.length ?? 0) > 0, children: /* @__PURE__ */ jsx14(DashboardLayoutInner, { defaultPanelOpen, defaultMode, ...props }) });
|
|
1773
|
+
function DashboardLayout({ defaultPanelOpen, defaultMode, labeledRail, ...props }) {
|
|
1774
|
+
return /* @__PURE__ */ jsx14(SidebarProvider, { defaultPanelOpen, defaultMode, labeledRail, hasPanels: (props.panels?.length ?? 0) > 0, children: /* @__PURE__ */ jsx14(DashboardLayoutInner, { defaultPanelOpen, defaultMode, labeledRail, ...props }) });
|
|
1737
1775
|
}
|
|
1738
1776
|
|
|
1739
1777
|
// src/dashboard/sidebar-layout.tsx
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -654,6 +654,22 @@ interface DashboardLayoutProps {
|
|
|
654
654
|
topNavLinks?: TopNavLink[];
|
|
655
655
|
activeTopNavHref?: string;
|
|
656
656
|
LinkComponent?: React.ComponentType<any>;
|
|
657
|
+
/**
|
|
658
|
+
* Where the in-app logo links. Defaults to "/" (backward compatible);
|
|
659
|
+
* pass an in-app path (e.g. "/dashboard") so the logo never bounces an
|
|
660
|
+
* authenticated user back out to the public marketing homepage.
|
|
661
|
+
*/
|
|
662
|
+
logoHref?: string;
|
|
663
|
+
/**
|
|
664
|
+
* If provided, the rail logo becomes a button calling this instead of
|
|
665
|
+
* navigating — e.g. to toggle the sidebar. Takes precedence over logoHref.
|
|
666
|
+
*/
|
|
667
|
+
onLogoClick?: () => void;
|
|
668
|
+
/**
|
|
669
|
+
* Let the icon rail expand to a labeled rail. When true, the rail logo
|
|
670
|
+
* toggles between icon-only and labeled instead of navigating.
|
|
671
|
+
*/
|
|
672
|
+
labeledRail?: boolean;
|
|
657
673
|
footer?: React.ReactNode;
|
|
658
674
|
defaultPanelOpen?: boolean;
|
|
659
675
|
defaultMode?: string;
|
|
@@ -675,7 +691,7 @@ interface DashboardLayoutProps {
|
|
|
675
691
|
onMarkAllRead?: () => void;
|
|
676
692
|
};
|
|
677
693
|
}
|
|
678
|
-
declare function DashboardLayout({ defaultPanelOpen, defaultMode, ...props }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
|
|
694
|
+
declare function DashboardLayout({ defaultPanelOpen, defaultMode, labeledRail, ...props }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
|
|
679
695
|
|
|
680
696
|
/** A sub-destination revealed inside a nav item's right-flyout. */
|
|
681
697
|
interface SidebarLayoutFlyoutItem {
|
package/dist/dashboard.js
CHANGED
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
canAdminSandbox,
|
|
53
53
|
parseInsufficientBalance,
|
|
54
54
|
useSidebar
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-Y2G5LHYJ.js";
|
|
56
56
|
import {
|
|
57
57
|
BillingDashboard,
|
|
58
58
|
InfoPanel,
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
UsageChart,
|
|
62
62
|
formatPrice
|
|
63
63
|
} from "./chunk-2XNT74ZX.js";
|
|
64
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-QHIA75U3.js";
|
|
65
65
|
import {
|
|
66
66
|
BackendSelector,
|
|
67
67
|
HARNESS_BRAND,
|
package/dist/globals.css
CHANGED
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
--container-sm: 24rem;
|
|
40
40
|
--container-md: 28rem;
|
|
41
41
|
--container-lg: 32rem;
|
|
42
|
+
--container-xl: 36rem;
|
|
42
43
|
--container-2xl: 42rem;
|
|
43
44
|
--container-3xl: 48rem;
|
|
44
45
|
--container-4xl: 56rem;
|
|
45
46
|
--container-5xl: 64rem;
|
|
46
47
|
--container-6xl: 72rem;
|
|
47
|
-
--container-7xl: 80rem;
|
|
48
48
|
--text-xs: 0.75rem;
|
|
49
49
|
--text-xs--line-height: calc(1 / 0.75);
|
|
50
50
|
--text-sm: 0.875rem;
|
|
@@ -1033,9 +1033,6 @@
|
|
|
1033
1033
|
.max-w-6xl {
|
|
1034
1034
|
max-width: var(--container-6xl);
|
|
1035
1035
|
}
|
|
1036
|
-
.max-w-7xl {
|
|
1037
|
-
max-width: var(--container-7xl);
|
|
1038
|
-
}
|
|
1039
1036
|
.max-w-\[14rem\] {
|
|
1040
1037
|
max-width: 14rem;
|
|
1041
1038
|
}
|
|
@@ -1093,6 +1090,9 @@
|
|
|
1093
1090
|
.max-w-sm {
|
|
1094
1091
|
max-width: var(--container-sm);
|
|
1095
1092
|
}
|
|
1093
|
+
.max-w-xl {
|
|
1094
|
+
max-width: var(--container-xl);
|
|
1095
|
+
}
|
|
1096
1096
|
.min-w-0 {
|
|
1097
1097
|
min-width: calc(var(--spacing) * 0);
|
|
1098
1098
|
}
|
|
@@ -2475,6 +2475,27 @@
|
|
|
2475
2475
|
.text-\[calc\(var\(--font-size-xs\)-1px\)\] {
|
|
2476
2476
|
font-size: calc(var(--font-size-xs) - 1px);
|
|
2477
2477
|
}
|
|
2478
|
+
.text-\[length\:var\(--font-size-3xl\,1\.875rem\)\] {
|
|
2479
|
+
font-size: var(--font-size-3xl,1.875rem);
|
|
2480
|
+
}
|
|
2481
|
+
.text-\[length\:var\(--font-size-base\,0\.9375rem\)\] {
|
|
2482
|
+
font-size: var(--font-size-base,0.9375rem);
|
|
2483
|
+
}
|
|
2484
|
+
.text-\[length\:var\(--font-size-display\,3rem\)\] {
|
|
2485
|
+
font-size: var(--font-size-display,3rem);
|
|
2486
|
+
}
|
|
2487
|
+
.text-\[length\:var\(--font-size-hero\,2\.5rem\)\] {
|
|
2488
|
+
font-size: var(--font-size-hero,2.5rem);
|
|
2489
|
+
}
|
|
2490
|
+
.text-\[length\:var\(--font-size-lg\,1rem\)\] {
|
|
2491
|
+
font-size: var(--font-size-lg,1rem);
|
|
2492
|
+
}
|
|
2493
|
+
.text-\[length\:var\(--font-size-sm\,0\.75rem\)\] {
|
|
2494
|
+
font-size: var(--font-size-sm,0.75rem);
|
|
2495
|
+
}
|
|
2496
|
+
.text-\[length\:var\(--font-size-xl\,1\.25rem\)\] {
|
|
2497
|
+
font-size: var(--font-size-xl,1.25rem);
|
|
2498
|
+
}
|
|
2478
2499
|
.leading-6 {
|
|
2479
2500
|
--tw-leading: calc(var(--spacing) * 6);
|
|
2480
2501
|
line-height: calc(var(--spacing) * 6);
|
|
@@ -2487,6 +2508,18 @@
|
|
|
2487
2508
|
--tw-leading: calc(var(--spacing) * 7);
|
|
2488
2509
|
line-height: calc(var(--spacing) * 7);
|
|
2489
2510
|
}
|
|
2511
|
+
.leading-\[1\.1\] {
|
|
2512
|
+
--tw-leading: 1.1;
|
|
2513
|
+
line-height: 1.1;
|
|
2514
|
+
}
|
|
2515
|
+
.leading-\[1\.3\] {
|
|
2516
|
+
--tw-leading: 1.3;
|
|
2517
|
+
line-height: 1.3;
|
|
2518
|
+
}
|
|
2519
|
+
.leading-\[1\.4\] {
|
|
2520
|
+
--tw-leading: 1.4;
|
|
2521
|
+
line-height: 1.4;
|
|
2522
|
+
}
|
|
2490
2523
|
.leading-\[1\.6\] {
|
|
2491
2524
|
--tw-leading: 1.6;
|
|
2492
2525
|
line-height: 1.6;
|
|
@@ -2499,6 +2532,14 @@
|
|
|
2499
2532
|
--tw-leading: var(--line-height-base);
|
|
2500
2533
|
line-height: var(--line-height-base);
|
|
2501
2534
|
}
|
|
2535
|
+
.leading-\[var\(--line-height-display\,1\.05\)\] {
|
|
2536
|
+
--tw-leading: var(--line-height-display,1.05);
|
|
2537
|
+
line-height: var(--line-height-display,1.05);
|
|
2538
|
+
}
|
|
2539
|
+
.leading-\[var\(--line-height-heading\,1\.15\)\] {
|
|
2540
|
+
--tw-leading: var(--line-height-heading,1.15);
|
|
2541
|
+
line-height: var(--line-height-heading,1.15);
|
|
2542
|
+
}
|
|
2502
2543
|
.leading-none {
|
|
2503
2544
|
--tw-leading: 1;
|
|
2504
2545
|
line-height: 1;
|
|
@@ -2583,6 +2624,18 @@
|
|
|
2583
2624
|
--tw-tracking: var(--chat-label-tracking,0.16em);
|
|
2584
2625
|
letter-spacing: var(--chat-label-tracking,0.16em);
|
|
2585
2626
|
}
|
|
2627
|
+
.tracking-\[var\(--tracking-snug\,-0\.01em\)\] {
|
|
2628
|
+
--tw-tracking: var(--tracking-snug,-0.01em);
|
|
2629
|
+
letter-spacing: var(--tracking-snug,-0.01em);
|
|
2630
|
+
}
|
|
2631
|
+
.tracking-\[var\(--tracking-tight\,-0\.02em\)\] {
|
|
2632
|
+
--tw-tracking: var(--tracking-tight,-0.02em);
|
|
2633
|
+
letter-spacing: var(--tracking-tight,-0.02em);
|
|
2634
|
+
}
|
|
2635
|
+
.tracking-\[var\(--tracking-wide\,0\.08em\)\] {
|
|
2636
|
+
--tw-tracking: var(--tracking-wide,0.08em);
|
|
2637
|
+
letter-spacing: var(--tracking-wide,0.08em);
|
|
2638
|
+
}
|
|
2586
2639
|
.tracking-normal {
|
|
2587
2640
|
--tw-tracking: var(--tracking-normal);
|
|
2588
2641
|
letter-spacing: var(--tracking-normal);
|
|
@@ -3762,6 +3815,11 @@
|
|
|
3762
3815
|
align-items: center;
|
|
3763
3816
|
}
|
|
3764
3817
|
}
|
|
3818
|
+
.sm\:items-start {
|
|
3819
|
+
@media (width >= 40rem) {
|
|
3820
|
+
align-items: flex-start;
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3765
3823
|
.sm\:justify-between {
|
|
3766
3824
|
@media (width >= 40rem) {
|
|
3767
3825
|
justify-content: space-between;
|
|
@@ -3863,11 +3921,6 @@
|
|
|
3863
3921
|
align-items: center;
|
|
3864
3922
|
}
|
|
3865
3923
|
}
|
|
3866
|
-
.md\:items-end {
|
|
3867
|
-
@media (width >= 48rem) {
|
|
3868
|
-
align-items: flex-end;
|
|
3869
|
-
}
|
|
3870
|
-
}
|
|
3871
3924
|
.md\:justify-between {
|
|
3872
3925
|
@media (width >= 48rem) {
|
|
3873
3926
|
justify-content: space-between;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ArtifactPane, ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalDisplay, TerminalCursor as TerminalDisplayCursor, TerminalInput as TerminalDisplayInput, TerminalLine as TerminalDisplayLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
|
|
2
|
-
export { Logo, LogoProps, TangleKnot } from './
|
|
2
|
+
export { L as Logo, a as LogoProps, T as TangleKnot } from './logo-CZ6moVvw.js';
|
|
3
3
|
export { CodeBlock as CodeBlockDisplay, Markdown, MarkdownProps } from '@tangle-network/ui/markdown';
|
|
4
4
|
export { AgentWorkbench, ApprovalConfidenceStat, ApprovalItem, ApprovalQueue, ApprovalQueueProps, AuditCheck, AuditResults, AuditResultsProps, BannerType, CalendarEvent, CalendarView, CalendarViewProps, ContextBadge, DirectoryPane, DirectoryPaneProps, FormAudit, RuntimePane, RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, SandboxWorkbenchArtifact, SandboxWorkbenchCustomArtifact, SandboxWorkbenchFileArtifact, SandboxWorkbenchLayoutOptions, SandboxWorkbenchMarkdownArtifact, SandboxWorkbenchOpenUIArtifact, SandboxWorkbenchProps, SandboxWorkbenchSessionProps, SessionActivityMonitor, SessionActivityMonitorProps, SessionCreatedDetail, SessionOptimisticController, SessionSidebar, SessionSidebarBadge, SessionSidebarFilter, SessionSidebarItem, SessionSidebarLink, SessionSidebarProps, ShellShouldRevalidateArgs, ShellShouldRevalidateOptions, StatusBanner, StatusBannerProps, StatusBar, StatusBarProps, TaskBoard, TaskBoardColumn, TaskBoardItem, TaskBoardProps, TerminalLine, TerminalPanel, TerminalProps, UseOptimisticSessionItemsOptions, WorkspaceLayout, WorkspaceLayoutProps, createShellShouldRevalidate, dispatchSessionCreated, shellShouldRevalidate, useOptimisticSessionItems } from './workspace.js';
|
|
5
5
|
export { OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode } from '@tangle-network/ui/openui';
|
package/dist/index.js
CHANGED
|
@@ -199,7 +199,7 @@ import {
|
|
|
199
199
|
canAdminSandbox,
|
|
200
200
|
parseInsufficientBalance,
|
|
201
201
|
useSidebar
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-Y2G5LHYJ.js";
|
|
203
203
|
import {
|
|
204
204
|
BillingDashboard,
|
|
205
205
|
InfoPanel,
|
|
@@ -294,7 +294,7 @@ import {
|
|
|
294
294
|
buttonVariants,
|
|
295
295
|
useTheme,
|
|
296
296
|
useToast
|
|
297
|
-
} from "./chunk-
|
|
297
|
+
} from "./chunk-QHIA75U3.js";
|
|
298
298
|
import {
|
|
299
299
|
BackendSelector,
|
|
300
300
|
HARNESS_BRAND,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface LogoProps {
|
|
4
|
+
variant?: "sandbox";
|
|
5
|
+
size?: "sm" | "md" | "lg" | "xl";
|
|
6
|
+
className?: string;
|
|
7
|
+
iconOnly?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function TangleKnot({ size, className }: {
|
|
10
|
+
size: number;
|
|
11
|
+
className?: string;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
declare function Logo({ variant, size, className, iconOnly }: LogoProps): react_jsx_runtime.JSX.Element;
|
|
14
|
+
declare namespace Logo {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { Logo as L, TangleKnot as T, type LogoProps as a };
|
package/dist/pages.js
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
DialogHeader,
|
|
16
16
|
DialogTitle,
|
|
17
17
|
Input,
|
|
18
|
+
PageHeader,
|
|
18
19
|
Select,
|
|
19
20
|
SelectContent,
|
|
20
21
|
SelectItem,
|
|
@@ -22,7 +23,7 @@ import {
|
|
|
22
23
|
SelectValue,
|
|
23
24
|
Switch,
|
|
24
25
|
Textarea
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-QHIA75U3.js";
|
|
26
27
|
import "./chunk-NMR2CTGP.js";
|
|
27
28
|
import {
|
|
28
29
|
cn
|
|
@@ -2547,7 +2548,7 @@ function parseEnvText(text) {
|
|
|
2547
2548
|
}
|
|
2548
2549
|
|
|
2549
2550
|
// src/pages/secrets-page.tsx
|
|
2550
|
-
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2551
|
+
import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2551
2552
|
var MAX_IMPORT_FILE_BYTES = 256 * 1024;
|
|
2552
2553
|
function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
2553
2554
|
const [secrets, setSecrets] = React6.useState([]);
|
|
@@ -2724,39 +2725,40 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2724
2725
|
return dateStr;
|
|
2725
2726
|
}
|
|
2726
2727
|
};
|
|
2727
|
-
return /* @__PURE__ */ jsxs7("div", { className: cn("mx-auto w-full max-w-
|
|
2728
|
-
/* @__PURE__ */
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2728
|
+
return /* @__PURE__ */ jsxs7("div", { className: cn("mx-auto w-full max-w-6xl space-y-8", className), children: [
|
|
2729
|
+
/* @__PURE__ */ jsx7(
|
|
2730
|
+
PageHeader,
|
|
2731
|
+
{
|
|
2732
|
+
title: "Environment Secrets",
|
|
2733
|
+
description: "Secrets are securely stored and automatically exposed as environment variables across all your sandboxes.",
|
|
2734
|
+
action: /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
2735
|
+
/* @__PURE__ */ jsxs7(
|
|
2736
|
+
"button",
|
|
2737
|
+
{
|
|
2738
|
+
type: "button",
|
|
2739
|
+
onClick: () => setIsImportOpen(true),
|
|
2740
|
+
className: "inline-flex items-center gap-2 rounded-lg border border-border bg-card px-4 py-2.5 text-sm font-semibold text-foreground hover:bg-muted transition-colors active:scale-[0.97]",
|
|
2741
|
+
children: [
|
|
2742
|
+
/* @__PURE__ */ jsx7(Upload, { className: "h-4 w-4" }),
|
|
2743
|
+
"Import .env"
|
|
2744
|
+
]
|
|
2745
|
+
}
|
|
2746
|
+
),
|
|
2747
|
+
/* @__PURE__ */ jsxs7(
|
|
2748
|
+
"button",
|
|
2749
|
+
{
|
|
2750
|
+
type: "button",
|
|
2751
|
+
onClick: () => setIsCreateOpen(true),
|
|
2752
|
+
className: "inline-flex items-center gap-2 rounded-lg bg-[var(--btn-primary-bg)] border border-[var(--border-accent,transparent)] px-5 py-2.5 text-sm font-semibold text-[var(--btn-primary-text)] hover:bg-[var(--btn-primary-hover)] transition-colors active:scale-[0.97]",
|
|
2753
|
+
children: [
|
|
2754
|
+
/* @__PURE__ */ jsx7(Plus3, { className: "h-4 w-4" }),
|
|
2755
|
+
"New Secret"
|
|
2756
|
+
]
|
|
2757
|
+
}
|
|
2758
|
+
)
|
|
2759
|
+
] })
|
|
2760
|
+
}
|
|
2761
|
+
),
|
|
2760
2762
|
teamSecretsHint && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-3 rounded-lg border border-border bg-[var(--accent-surface-soft)]/40 px-4 py-3", children: [
|
|
2761
2763
|
/* @__PURE__ */ jsx7(Users, { className: "h-5 w-5 shrink-0 text-[var(--accent-text)]", "aria-hidden": "true" }),
|
|
2762
2764
|
/* @__PURE__ */ jsxs7("div", { className: "flex-1 text-sm", children: [
|
|
@@ -3571,25 +3573,26 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3571
3573
|
}));
|
|
3572
3574
|
};
|
|
3573
3575
|
const activeCount = scripts.filter((s) => s.enabled).length;
|
|
3574
|
-
return /* @__PURE__ */ jsxs9("div", { className: cn("mx-auto w-full max-w-
|
|
3575
|
-
/* @__PURE__ */
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3576
|
+
return /* @__PURE__ */ jsxs9("div", { className: cn("mx-auto w-full max-w-6xl space-y-8", className), children: [
|
|
3577
|
+
/* @__PURE__ */ jsx9(
|
|
3578
|
+
PageHeader,
|
|
3579
|
+
{
|
|
3580
|
+
title: "Startup Scripts",
|
|
3581
|
+
description: "Define scripts that run automatically when your sandboxes start. Scripts can access your encrypted secrets.",
|
|
3582
|
+
action: /* @__PURE__ */ jsxs9(
|
|
3583
|
+
"button",
|
|
3584
|
+
{
|
|
3585
|
+
type: "button",
|
|
3586
|
+
onClick: openCreate,
|
|
3587
|
+
className: "inline-flex items-center gap-2 rounded-lg bg-[var(--btn-primary-bg)] px-4 py-2.5 text-sm font-bold text-[var(--btn-primary-text)] shadow-sm transition-colors hover:bg-[var(--btn-primary-hover)]",
|
|
3588
|
+
children: [
|
|
3589
|
+
/* @__PURE__ */ jsx9(Plus4, { className: "h-4 w-4" }),
|
|
3590
|
+
"New Script"
|
|
3591
|
+
]
|
|
3592
|
+
}
|
|
3593
|
+
)
|
|
3594
|
+
}
|
|
3595
|
+
),
|
|
3593
3596
|
/* @__PURE__ */ jsxs9("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-4", children: [
|
|
3594
3597
|
/* @__PURE__ */ jsxs9("div", { className: "rounded-lg border border-border bg-card p-5 shadow-[var(--shadow-card)]", children: [
|
|
3595
3598
|
/* @__PURE__ */ jsx9("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Total Scripts" }),
|
package/dist/primitives.d.ts
CHANGED
|
@@ -1,19 +1,61 @@
|
|
|
1
1
|
export { Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
|
|
2
|
+
export { L as Logo, a as LogoProps, T as TangleKnot } from './logo-CZ6moVvw.js';
|
|
2
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
import { ElementType, ReactNode } from 'react';
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Canonical type roles for the Tangle design system. Every title in every
|
|
8
|
+
* product app should be a Heading (or a PageHeader / SectionTitle composite
|
|
9
|
+
* built on it) so size, weight, tracking, and leading stay identical across
|
|
10
|
+
* surfaces. Sizes/leadings/tracking resolve from @tangle-network/brand tokens
|
|
11
|
+
* (with literal fallbacks so the component still renders if brand styles are
|
|
12
|
+
* absent, e.g. in isolation tests or Storybook).
|
|
13
|
+
*
|
|
14
|
+
* Weights are deliberately quiet (Tangle Quiet): heroes at 700, titles at 600
|
|
15
|
+
* — never extrabold.
|
|
16
|
+
*/
|
|
17
|
+
type HeadingRole = "display" | "hero" | "page" | "section" | "subsection" | "eyebrow";
|
|
18
|
+
interface HeadingProps {
|
|
19
|
+
role: HeadingRole;
|
|
20
|
+
/** Override the rendered element (defaults to the semantic tag for the role). */
|
|
21
|
+
as?: ElementType;
|
|
7
22
|
className?: string;
|
|
8
|
-
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
id?: string;
|
|
9
25
|
}
|
|
10
|
-
declare function
|
|
11
|
-
|
|
26
|
+
declare function Heading({ role, as, className, children, ...rest }: HeadingProps): react_jsx_runtime.JSX.Element;
|
|
27
|
+
interface PageHeaderProps {
|
|
28
|
+
title: ReactNode;
|
|
29
|
+
description?: ReactNode;
|
|
30
|
+
/** Uppercase label rendered above the title. */
|
|
31
|
+
eyebrow?: ReactNode;
|
|
32
|
+
/** Primary action(s), right-aligned on wide viewports. */
|
|
33
|
+
action?: ReactNode;
|
|
12
34
|
className?: string;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
declare namespace Logo {
|
|
16
|
-
var displayName: string;
|
|
35
|
+
/** Override the title element (default h1). */
|
|
36
|
+
titleAs?: ElementType;
|
|
17
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Standard page header: one title size, one description style, one action
|
|
40
|
+
* slot — used by every page so titles never drift between surfaces.
|
|
41
|
+
*/
|
|
42
|
+
declare function PageHeader({ title, description, eyebrow, action, className, titleAs, }: PageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
43
|
+
interface SectionTitleProps {
|
|
44
|
+
title: ReactNode;
|
|
45
|
+
description?: ReactNode;
|
|
46
|
+
action?: ReactNode;
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
49
|
+
/** Section heading inside a page — smaller than PageHeader, same rhythm. */
|
|
50
|
+
declare function SectionTitle({ title, description, action, className, }: SectionTitleProps): react_jsx_runtime.JSX.Element;
|
|
51
|
+
interface PageShellProps {
|
|
52
|
+
children: ReactNode;
|
|
53
|
+
className?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Canonical page container — one max-width, one gutter, one vertical rhythm
|
|
57
|
+
* so every page sits on the same grid. Gutter widens on large viewports.
|
|
58
|
+
*/
|
|
59
|
+
declare function PageShell({ children, className }: PageShellProps): react_jsx_runtime.JSX.Element;
|
|
18
60
|
|
|
19
|
-
export {
|
|
61
|
+
export { Heading, type HeadingProps, type HeadingRole, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, SectionTitle, type SectionTitleProps };
|
package/dist/primitives.js
CHANGED
|
@@ -39,11 +39,15 @@ import {
|
|
|
39
39
|
DropdownMenuSubTrigger,
|
|
40
40
|
DropdownMenuTrigger,
|
|
41
41
|
EmptyState,
|
|
42
|
+
Heading,
|
|
42
43
|
InlineCode,
|
|
43
44
|
Input,
|
|
44
45
|
Label,
|
|
45
46
|
Logo,
|
|
47
|
+
PageHeader,
|
|
48
|
+
PageShell,
|
|
46
49
|
Progress,
|
|
50
|
+
SectionTitle,
|
|
47
51
|
SegmentedControl,
|
|
48
52
|
Select,
|
|
49
53
|
SelectContent,
|
|
@@ -87,7 +91,7 @@ import {
|
|
|
87
91
|
buttonVariants,
|
|
88
92
|
useTheme,
|
|
89
93
|
useToast
|
|
90
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-QHIA75U3.js";
|
|
91
95
|
import "./chunk-EI44GEQ5.js";
|
|
92
96
|
export {
|
|
93
97
|
Avatar,
|
|
@@ -130,11 +134,15 @@ export {
|
|
|
130
134
|
DropdownMenuSubTrigger,
|
|
131
135
|
DropdownMenuTrigger,
|
|
132
136
|
EmptyState,
|
|
137
|
+
Heading,
|
|
133
138
|
InlineCode,
|
|
134
139
|
Input,
|
|
135
140
|
Label,
|
|
136
141
|
Logo,
|
|
142
|
+
PageHeader,
|
|
143
|
+
PageShell,
|
|
137
144
|
Progress,
|
|
145
|
+
SectionTitle,
|
|
138
146
|
SegmentedControl,
|
|
139
147
|
Select,
|
|
140
148
|
SelectContent,
|
package/dist/styles.css
CHANGED
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
--container-sm: 24rem;
|
|
40
40
|
--container-md: 28rem;
|
|
41
41
|
--container-lg: 32rem;
|
|
42
|
+
--container-xl: 36rem;
|
|
42
43
|
--container-2xl: 42rem;
|
|
43
44
|
--container-3xl: 48rem;
|
|
44
45
|
--container-4xl: 56rem;
|
|
45
46
|
--container-5xl: 64rem;
|
|
46
47
|
--container-6xl: 72rem;
|
|
47
|
-
--container-7xl: 80rem;
|
|
48
48
|
--text-xs: 0.75rem;
|
|
49
49
|
--text-xs--line-height: calc(1 / 0.75);
|
|
50
50
|
--text-sm: 0.875rem;
|
|
@@ -1033,9 +1033,6 @@
|
|
|
1033
1033
|
.max-w-6xl {
|
|
1034
1034
|
max-width: var(--container-6xl);
|
|
1035
1035
|
}
|
|
1036
|
-
.max-w-7xl {
|
|
1037
|
-
max-width: var(--container-7xl);
|
|
1038
|
-
}
|
|
1039
1036
|
.max-w-\[14rem\] {
|
|
1040
1037
|
max-width: 14rem;
|
|
1041
1038
|
}
|
|
@@ -1093,6 +1090,9 @@
|
|
|
1093
1090
|
.max-w-sm {
|
|
1094
1091
|
max-width: var(--container-sm);
|
|
1095
1092
|
}
|
|
1093
|
+
.max-w-xl {
|
|
1094
|
+
max-width: var(--container-xl);
|
|
1095
|
+
}
|
|
1096
1096
|
.min-w-0 {
|
|
1097
1097
|
min-width: calc(var(--spacing) * 0);
|
|
1098
1098
|
}
|
|
@@ -2475,6 +2475,27 @@
|
|
|
2475
2475
|
.text-\[calc\(var\(--font-size-xs\)-1px\)\] {
|
|
2476
2476
|
font-size: calc(var(--font-size-xs) - 1px);
|
|
2477
2477
|
}
|
|
2478
|
+
.text-\[length\:var\(--font-size-3xl\,1\.875rem\)\] {
|
|
2479
|
+
font-size: var(--font-size-3xl,1.875rem);
|
|
2480
|
+
}
|
|
2481
|
+
.text-\[length\:var\(--font-size-base\,0\.9375rem\)\] {
|
|
2482
|
+
font-size: var(--font-size-base,0.9375rem);
|
|
2483
|
+
}
|
|
2484
|
+
.text-\[length\:var\(--font-size-display\,3rem\)\] {
|
|
2485
|
+
font-size: var(--font-size-display,3rem);
|
|
2486
|
+
}
|
|
2487
|
+
.text-\[length\:var\(--font-size-hero\,2\.5rem\)\] {
|
|
2488
|
+
font-size: var(--font-size-hero,2.5rem);
|
|
2489
|
+
}
|
|
2490
|
+
.text-\[length\:var\(--font-size-lg\,1rem\)\] {
|
|
2491
|
+
font-size: var(--font-size-lg,1rem);
|
|
2492
|
+
}
|
|
2493
|
+
.text-\[length\:var\(--font-size-sm\,0\.75rem\)\] {
|
|
2494
|
+
font-size: var(--font-size-sm,0.75rem);
|
|
2495
|
+
}
|
|
2496
|
+
.text-\[length\:var\(--font-size-xl\,1\.25rem\)\] {
|
|
2497
|
+
font-size: var(--font-size-xl,1.25rem);
|
|
2498
|
+
}
|
|
2478
2499
|
.leading-6 {
|
|
2479
2500
|
--tw-leading: calc(var(--spacing) * 6);
|
|
2480
2501
|
line-height: calc(var(--spacing) * 6);
|
|
@@ -2487,6 +2508,18 @@
|
|
|
2487
2508
|
--tw-leading: calc(var(--spacing) * 7);
|
|
2488
2509
|
line-height: calc(var(--spacing) * 7);
|
|
2489
2510
|
}
|
|
2511
|
+
.leading-\[1\.1\] {
|
|
2512
|
+
--tw-leading: 1.1;
|
|
2513
|
+
line-height: 1.1;
|
|
2514
|
+
}
|
|
2515
|
+
.leading-\[1\.3\] {
|
|
2516
|
+
--tw-leading: 1.3;
|
|
2517
|
+
line-height: 1.3;
|
|
2518
|
+
}
|
|
2519
|
+
.leading-\[1\.4\] {
|
|
2520
|
+
--tw-leading: 1.4;
|
|
2521
|
+
line-height: 1.4;
|
|
2522
|
+
}
|
|
2490
2523
|
.leading-\[1\.6\] {
|
|
2491
2524
|
--tw-leading: 1.6;
|
|
2492
2525
|
line-height: 1.6;
|
|
@@ -2499,6 +2532,14 @@
|
|
|
2499
2532
|
--tw-leading: var(--line-height-base);
|
|
2500
2533
|
line-height: var(--line-height-base);
|
|
2501
2534
|
}
|
|
2535
|
+
.leading-\[var\(--line-height-display\,1\.05\)\] {
|
|
2536
|
+
--tw-leading: var(--line-height-display,1.05);
|
|
2537
|
+
line-height: var(--line-height-display,1.05);
|
|
2538
|
+
}
|
|
2539
|
+
.leading-\[var\(--line-height-heading\,1\.15\)\] {
|
|
2540
|
+
--tw-leading: var(--line-height-heading,1.15);
|
|
2541
|
+
line-height: var(--line-height-heading,1.15);
|
|
2542
|
+
}
|
|
2502
2543
|
.leading-none {
|
|
2503
2544
|
--tw-leading: 1;
|
|
2504
2545
|
line-height: 1;
|
|
@@ -2583,6 +2624,18 @@
|
|
|
2583
2624
|
--tw-tracking: var(--chat-label-tracking,0.16em);
|
|
2584
2625
|
letter-spacing: var(--chat-label-tracking,0.16em);
|
|
2585
2626
|
}
|
|
2627
|
+
.tracking-\[var\(--tracking-snug\,-0\.01em\)\] {
|
|
2628
|
+
--tw-tracking: var(--tracking-snug,-0.01em);
|
|
2629
|
+
letter-spacing: var(--tracking-snug,-0.01em);
|
|
2630
|
+
}
|
|
2631
|
+
.tracking-\[var\(--tracking-tight\,-0\.02em\)\] {
|
|
2632
|
+
--tw-tracking: var(--tracking-tight,-0.02em);
|
|
2633
|
+
letter-spacing: var(--tracking-tight,-0.02em);
|
|
2634
|
+
}
|
|
2635
|
+
.tracking-\[var\(--tracking-wide\,0\.08em\)\] {
|
|
2636
|
+
--tw-tracking: var(--tracking-wide,0.08em);
|
|
2637
|
+
letter-spacing: var(--tracking-wide,0.08em);
|
|
2638
|
+
}
|
|
2586
2639
|
.tracking-normal {
|
|
2587
2640
|
--tw-tracking: var(--tracking-normal);
|
|
2588
2641
|
letter-spacing: var(--tracking-normal);
|
|
@@ -3762,6 +3815,11 @@
|
|
|
3762
3815
|
align-items: center;
|
|
3763
3816
|
}
|
|
3764
3817
|
}
|
|
3818
|
+
.sm\:items-start {
|
|
3819
|
+
@media (width >= 40rem) {
|
|
3820
|
+
align-items: flex-start;
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3765
3823
|
.sm\:justify-between {
|
|
3766
3824
|
@media (width >= 40rem) {
|
|
3767
3825
|
justify-content: space-between;
|
|
@@ -3863,11 +3921,6 @@
|
|
|
3863
3921
|
align-items: center;
|
|
3864
3922
|
}
|
|
3865
3923
|
}
|
|
3866
|
-
.md\:items-end {
|
|
3867
|
-
@media (width >= 48rem) {
|
|
3868
|
-
align-items: flex-end;
|
|
3869
|
-
}
|
|
3870
|
-
}
|
|
3871
3924
|
.md\:justify-between {
|
|
3872
3925
|
@media (width >= 48rem) {
|
|
3873
3926
|
justify-content: space-between;
|
package/package.json
CHANGED