@tangle-network/sandbox-ui 0.10.1 → 0.10.3
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-2XCOGNZP.js → chunk-7LBHRASD.js} +124 -74
- package/dist/{chunk-A5ALUT2B.js → chunk-HEXQVHXJ.js} +41 -34
- package/dist/dashboard.d.ts +1 -1
- package/dist/dashboard.js +3 -1
- package/dist/globals.css +16 -23
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/pages.d.ts +38 -2
- package/dist/pages.js +259 -183
- package/dist/styles.css +16 -23
- package/dist/{variant-list-BNwUOSgz.d.ts → variant-list-DHP2OXFE.d.ts} +21 -5
- package/dist/workspace.d.ts +22 -18
- package/dist/workspace.js +1 -1
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -705,6 +705,9 @@
|
|
|
705
705
|
.-top-1 {
|
|
706
706
|
top: calc(var(--spacing) * -1);
|
|
707
707
|
}
|
|
708
|
+
.-top-1\.5 {
|
|
709
|
+
top: calc(var(--spacing) * -1.5);
|
|
710
|
+
}
|
|
708
711
|
.-top-4 {
|
|
709
712
|
top: calc(var(--spacing) * -4);
|
|
710
713
|
}
|
|
@@ -744,6 +747,9 @@
|
|
|
744
747
|
.-right-1 {
|
|
745
748
|
right: calc(var(--spacing) * -1);
|
|
746
749
|
}
|
|
750
|
+
.-right-1\.5 {
|
|
751
|
+
right: calc(var(--spacing) * -1.5);
|
|
752
|
+
}
|
|
747
753
|
.right-0 {
|
|
748
754
|
right: calc(var(--spacing) * 0);
|
|
749
755
|
}
|
|
@@ -1164,9 +1170,6 @@
|
|
|
1164
1170
|
.min-h-\[200px\] {
|
|
1165
1171
|
min-height: 200px;
|
|
1166
1172
|
}
|
|
1167
|
-
.min-h-\[240px\] {
|
|
1168
|
-
min-height: 240px;
|
|
1169
|
-
}
|
|
1170
1173
|
.min-h-full {
|
|
1171
1174
|
min-height: 100%;
|
|
1172
1175
|
}
|
|
@@ -1631,6 +1634,9 @@
|
|
|
1631
1634
|
.justify-end {
|
|
1632
1635
|
justify-content: flex-end;
|
|
1633
1636
|
}
|
|
1637
|
+
.justify-start {
|
|
1638
|
+
justify-content: flex-start;
|
|
1639
|
+
}
|
|
1634
1640
|
.gap-0\.5 {
|
|
1635
1641
|
gap: calc(var(--spacing) * 0.5);
|
|
1636
1642
|
}
|
|
@@ -2116,30 +2122,18 @@
|
|
|
2116
2122
|
border-color: color-mix(in oklab, var(--color-yellow-500) 30%, transparent);
|
|
2117
2123
|
}
|
|
2118
2124
|
}
|
|
2119
|
-
.border-t-blue-500 {
|
|
2120
|
-
border-top-color: var(--color-blue-500);
|
|
2121
|
-
}
|
|
2122
2125
|
.border-t-transparent {
|
|
2123
2126
|
border-top-color: transparent;
|
|
2124
2127
|
}
|
|
2125
2128
|
.bg-\[\#8E59FF\] {
|
|
2126
2129
|
background-color: #8E59FF;
|
|
2127
2130
|
}
|
|
2128
|
-
.bg-\[\#27c93f\]\/80 {
|
|
2129
|
-
background-color: color-mix(in oklab, #27c93f 80%, transparent);
|
|
2130
|
-
}
|
|
2131
2131
|
.bg-\[\#FEBC2E\] {
|
|
2132
2132
|
background-color: #FEBC2E;
|
|
2133
2133
|
}
|
|
2134
2134
|
.bg-\[\#FF5F57\] {
|
|
2135
2135
|
background-color: #FF5F57;
|
|
2136
2136
|
}
|
|
2137
|
-
.bg-\[\#ff5f56\]\/80 {
|
|
2138
|
-
background-color: color-mix(in oklab, #ff5f56 80%, transparent);
|
|
2139
|
-
}
|
|
2140
|
-
.bg-\[\#ffbd2e\]\/80 {
|
|
2141
|
-
background-color: color-mix(in oklab, #ffbd2e 80%, transparent);
|
|
2142
|
-
}
|
|
2143
2137
|
.bg-\[color\:color-mix\(in_srgb\,var\(--bg-card\)_94\%\,transparent\)\] {
|
|
2144
2138
|
background-color: var(--bg-card);
|
|
2145
2139
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2409,9 +2403,6 @@
|
|
|
2409
2403
|
.bg-\[linear-gradient\(180deg\,rgba\(255\,255\,255\,0\.04\)\,transparent\)\] {
|
|
2410
2404
|
background-image: linear-gradient(180deg,rgba(255,255,255,0.04),transparent);
|
|
2411
2405
|
}
|
|
2412
|
-
.bg-\[radial-gradient\(circle_at_top\,rgba\(173\,163\,255\,0\.05\)_0\,transparent_100\%\)\] {
|
|
2413
|
-
background-image: radial-gradient(circle at top,rgba(173,163,255,0.05) 0,transparent 100%);
|
|
2414
|
-
}
|
|
2415
2406
|
.from-white\/5 {
|
|
2416
2407
|
--tw-gradient-from: color-mix(in srgb, #fff 5%, transparent);
|
|
2417
2408
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2651,9 +2642,6 @@
|
|
|
2651
2642
|
.pl-2 {
|
|
2652
2643
|
padding-left: calc(var(--spacing) * 2);
|
|
2653
2644
|
}
|
|
2654
|
-
.pl-3 {
|
|
2655
|
-
padding-left: calc(var(--spacing) * 3);
|
|
2656
|
-
}
|
|
2657
2645
|
.pl-4 {
|
|
2658
2646
|
padding-left: calc(var(--spacing) * 4);
|
|
2659
2647
|
}
|
|
@@ -4186,9 +4174,9 @@
|
|
|
4186
4174
|
grid-column: span 1 / span 1;
|
|
4187
4175
|
}
|
|
4188
4176
|
}
|
|
4189
|
-
.lg\:
|
|
4177
|
+
.lg\:ml-\[var\(--sb-content-margin\,0px\)\] {
|
|
4190
4178
|
@media (width >= 64rem) {
|
|
4191
|
-
|
|
4179
|
+
margin-left: var(--sb-content-margin,0px);
|
|
4192
4180
|
}
|
|
4193
4181
|
}
|
|
4194
4182
|
.lg\:flex {
|
|
@@ -4226,6 +4214,11 @@
|
|
|
4226
4214
|
padding: calc(var(--spacing) * 4);
|
|
4227
4215
|
}
|
|
4228
4216
|
}
|
|
4217
|
+
.lg\:px-8 {
|
|
4218
|
+
@media (width >= 64rem) {
|
|
4219
|
+
padding-inline: calc(var(--spacing) * 8);
|
|
4220
|
+
}
|
|
4221
|
+
}
|
|
4229
4222
|
.xl\:col-span-4 {
|
|
4230
4223
|
@media (width >= 80rem) {
|
|
4231
4224
|
grid-column: span 4 / span 4;
|
|
@@ -16,8 +16,14 @@ declare function Sidebar({ children, className, style }: SidebarProps): react_js
|
|
|
16
16
|
interface SidebarRailProps {
|
|
17
17
|
children: React.ReactNode;
|
|
18
18
|
className?: string;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Render the rail at the wider mobile-drawer width so labels fit
|
|
21
|
+
* beside the icons. Defaults to the 64px icon-only rail used on
|
|
22
|
+
* desktop.
|
|
23
|
+
*/
|
|
24
|
+
wide?: boolean;
|
|
25
|
+
}
|
|
26
|
+
declare function SidebarRail({ children, className, wide }: SidebarRailProps): react_jsx_runtime.JSX.Element;
|
|
21
27
|
interface SidebarRailHeaderProps {
|
|
22
28
|
children: React.ReactNode;
|
|
23
29
|
className?: string;
|
|
@@ -46,8 +52,10 @@ interface RailButtonProps {
|
|
|
46
52
|
badge?: number;
|
|
47
53
|
onClick?: () => void;
|
|
48
54
|
className?: string;
|
|
55
|
+
/** Show label text next to icon (for mobile drawer) */
|
|
56
|
+
showLabel?: boolean;
|
|
49
57
|
}
|
|
50
|
-
declare function RailButton({ icon: Icon, label, isActive, badge, onClick, className }: RailButtonProps): react_jsx_runtime.JSX.Element;
|
|
58
|
+
declare function RailButton({ icon: Icon, label, isActive, badge, onClick, className, showLabel }: RailButtonProps): react_jsx_runtime.JSX.Element;
|
|
51
59
|
interface RailModeButtonProps {
|
|
52
60
|
mode: string;
|
|
53
61
|
icon: React.ComponentType<{
|
|
@@ -56,8 +64,10 @@ interface RailModeButtonProps {
|
|
|
56
64
|
label: string;
|
|
57
65
|
badge?: number;
|
|
58
66
|
className?: string;
|
|
67
|
+
/** Show label text next to icon (for mobile drawer) */
|
|
68
|
+
showLabel?: boolean;
|
|
59
69
|
}
|
|
60
|
-
declare function RailModeButton({ mode, icon, label, badge, className }: RailModeButtonProps): react_jsx_runtime.JSX.Element;
|
|
70
|
+
declare function RailModeButton({ mode, icon, label, badge, className, showLabel }: RailModeButtonProps): react_jsx_runtime.JSX.Element;
|
|
61
71
|
interface SidebarPanelProps {
|
|
62
72
|
children: React.ReactNode;
|
|
63
73
|
className?: string;
|
|
@@ -96,6 +106,12 @@ declare function ProfileAvatar({ user, isLoading, onLogout, onSettingsClick, set
|
|
|
96
106
|
declare const SIDEBAR_RAIL_WIDTH = 64;
|
|
97
107
|
declare const SIDEBAR_PANEL_WIDTH = 260;
|
|
98
108
|
declare const SIDEBAR_TOTAL_WIDTH: number;
|
|
109
|
+
/**
|
|
110
|
+
* Width of the mobile drawer when the rail is rendered with labels
|
|
111
|
+
* (`showLabel` on {@link RailButton}). The standard 64px rail is only
|
|
112
|
+
* wide enough for icons; labels need a wider container to avoid truncation.
|
|
113
|
+
*/
|
|
114
|
+
declare const SIDEBAR_MOBILE_WIDTH = 256;
|
|
99
115
|
interface SidebarContextValue {
|
|
100
116
|
/** Whether the content panel beside the rail is open */
|
|
101
117
|
panelOpen: boolean;
|
|
@@ -389,4 +405,4 @@ interface VariantListProps {
|
|
|
389
405
|
}
|
|
390
406
|
declare function VariantList({ variants, selectedId, onSelect, onAccept, onReject, isActioning, className, }: VariantListProps): react_jsx_runtime.JSX.Element;
|
|
391
407
|
|
|
392
|
-
export { type
|
|
408
|
+
export { type SidebarPanelHeaderProps as $, type RailSeparatorProps as A, type Backend as B, ClusterStatusBar as C, DashboardLayout as D, ResourceMeter as E, type ResourceMeterProps as F, SIDEBAR_PANEL_WIDTH as G, SIDEBAR_RAIL_WIDTH as H, type Invoice as I, SIDEBAR_TOTAL_WIDTH as J, SandboxCard as K, type SandboxCardData as L, type SandboxCardProps as M, type NavItem as N, type SandboxStatus as O, type PanelConfig as P, SandboxTable as Q, RailButton as R, SIDEBAR_MOBILE_WIDTH as S, type SandboxTableProps as T, Sidebar as U, SidebarContent as V, type SidebarContentProps as W, SidebarPanel as X, SidebarPanelContent as Y, type SidebarPanelContentProps as Z, SidebarPanelHeader as _, BackendSelector as a, type SidebarPanelProps as a0, type SidebarProps as a1, SidebarProvider as a2, type SidebarProviderProps as a3, SidebarRail as a4, SidebarRailFooter as a5, type SidebarRailFooterProps as a6, SidebarRailHeader as a7, type SidebarRailHeaderProps as a8, SidebarRailNav as a9, type SidebarRailNavProps as aa, type SidebarRailProps as ab, type SidebarUser as ac, type TopNavLink as ad, VariantList as ae, type VariantListProps as af, useSidebar as ag, type Profile as ah, type PlanFeature as ai, type Variant as aj, type VariantOutcome as ak, type VariantStatus as al, type BackendSelectorProps as b, type ClusterStatusBarProps as c, type ClusterStatusItem as d, CreditBalance as e, type CreditBalanceProps as f, type DashboardLayoutProps as g, type DashboardUser as h, InvoiceTable as i, type InvoiceTableProps as j, NewSandboxCard as k, type NewSandboxCardProps as l, type PlanCardData as m, PlanCards as n, type PlanCardsProps as o, type ProductVariant as p, ProfileAvatar as q, type ProfileAvatarProps as r, ProfileComparison as s, type ProfileComparisonProps as t, ProfileSelector as u, type ProfileSelectorProps as v, type RailButtonProps as w, RailModeButton as x, type RailModeButtonProps as y, RailSeparator as z };
|
package/dist/workspace.d.ts
CHANGED
|
@@ -348,13 +348,11 @@ interface TaskBoardItem {
|
|
|
348
348
|
tags?: string[];
|
|
349
349
|
dueDate?: Date | null;
|
|
350
350
|
assigneeId?: string | null;
|
|
351
|
-
/** Arbitrary metadata rendered by renderItemMeta */
|
|
352
351
|
meta?: Record<string, unknown>;
|
|
353
352
|
}
|
|
354
353
|
interface TaskBoardColumn {
|
|
355
354
|
id: string;
|
|
356
355
|
label: string;
|
|
357
|
-
/** Tailwind border-top color class, e.g. "border-t-blue-500" */
|
|
358
356
|
accent?: string;
|
|
359
357
|
}
|
|
360
358
|
interface TaskBoardProps {
|
|
@@ -363,27 +361,33 @@ interface TaskBoardProps {
|
|
|
363
361
|
className?: string;
|
|
364
362
|
onMoveItem?: (itemId: string, toColumnId: string) => void;
|
|
365
363
|
onClickItem?: (item: TaskBoardItem) => void;
|
|
366
|
-
/** Render custom content inside each card below the title/description */
|
|
367
364
|
renderItemMeta?: (item: TaskBoardItem) => ReactNode;
|
|
368
|
-
/** Render actions in the column header (e.g. "+" button) */
|
|
369
365
|
renderColumnAction?: (column: TaskBoardColumn) => ReactNode;
|
|
370
|
-
/** Badge renderer for priority/tags — receives the raw value */
|
|
371
366
|
renderBadge?: (value: string, type: "priority" | "tag") => ReactNode;
|
|
372
|
-
/** Empty state shown when a column has no items */
|
|
373
367
|
columnEmptyState?: ReactNode;
|
|
374
|
-
/** Header slot above the board */
|
|
375
368
|
header?: ReactNode;
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
369
|
+
/**
|
|
370
|
+
* Wrap each column's item list container. Use this to inject a DnD
|
|
371
|
+
* droppable zone (e.g. Droppable from @hello-pangea/dnd).
|
|
372
|
+
*
|
|
373
|
+
* Receives the column ID, the default item list element, and the column's items.
|
|
374
|
+
* Return a ReactNode that wraps/replaces the default element.
|
|
375
|
+
*
|
|
376
|
+
* If not provided, the default unstyled div is rendered.
|
|
377
|
+
*/
|
|
378
|
+
renderColumnBody?: (columnId: string, defaultChildren: ReactNode, items: TaskBoardItem[]) => ReactNode;
|
|
379
|
+
/**
|
|
380
|
+
* Wrap each item card. Use this to inject a DnD draggable
|
|
381
|
+
* (e.g. Draggable from @hello-pangea/dnd).
|
|
382
|
+
*
|
|
383
|
+
* Receives the item, its index, and the default card element.
|
|
384
|
+
* Return a ReactNode that wraps/replaces the default element.
|
|
385
|
+
*
|
|
386
|
+
* If not provided, the default button card is rendered.
|
|
387
|
+
*/
|
|
388
|
+
renderItemWrapper?: (item: TaskBoardItem, index: number, defaultCard: ReactNode) => ReactNode;
|
|
389
|
+
}
|
|
390
|
+
declare function TaskBoard({ items, columns, className, onMoveItem, onClickItem, renderItemMeta, renderColumnAction, renderBadge, columnEmptyState, header, renderColumnBody, renderItemWrapper, }: TaskBoardProps): react_jsx_runtime.JSX.Element;
|
|
387
391
|
|
|
388
392
|
interface CalendarEvent {
|
|
389
393
|
id: string;
|
package/dist/workspace.js
CHANGED
package/package.json
CHANGED