@tangle-network/sandbox-ui 0.133.2 → 0.133.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/globals.css +361 -108
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/integrations.d.ts +17 -1
- package/dist/integrations.js +112 -48
- package/dist/styles.css +361 -108
- package/dist/tokens.css +88 -7
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +2 -2
- package/package.json +5 -5
package/dist/tokens.css
CHANGED
|
@@ -129,8 +129,10 @@
|
|
|
129
129
|
contrast floor against the L2 card. */
|
|
130
130
|
--hsl-accent: 249 24% 16%; /* neutral hover (indigo lives in accent-surface-strong) */
|
|
131
131
|
--hsl-accent-foreground: 0 0% 90.1961%;
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
/* Light red carrying dark ink, as the dark primary does: it must read as
|
|
133
|
+
* error TEXT on every dark plane (AA) and still carry its foreground as a fill. */
|
|
134
|
+
--hsl-destructive: 0 90% 77%;
|
|
135
|
+
--hsl-destructive-foreground: 0 60% 10%;
|
|
134
136
|
/* Quiet on purpose: 1.5:1 against the resting card. Shadow does no work on a
|
|
135
137
|
* dark canvas, so the hairline is what states where a plane ends. */
|
|
136
138
|
--hsl-border: 243 20% 20%; /* #2a293d = --md3-outline-variant */
|
|
@@ -464,7 +466,7 @@
|
|
|
464
466
|
--shell-inset-gutter: 0.5rem; /* 8px */
|
|
465
467
|
/* Transcript: the person's and the agent's messages share one family, size
|
|
466
468
|
and leading; they differ only by alignment and surface. */
|
|
467
|
-
--transcript-font-size:
|
|
469
|
+
--transcript-font-size: 1rem; /* 16px: the chat reading size */
|
|
468
470
|
--transcript-line-height: var(--line-height-base);
|
|
469
471
|
|
|
470
472
|
/* Typography scale — override per-app for custom type hierarchy.
|
|
@@ -548,8 +550,8 @@
|
|
|
548
550
|
--transition-medium: 0.24s ease;
|
|
549
551
|
|
|
550
552
|
/* Fonts — unified on Inter (dark + light) */
|
|
551
|
-
--font-sans: "Inter", "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
552
|
-
--font-display: "Inter", "Geist", sans-serif;
|
|
553
|
+
--font-sans: "Inter Variable", "Inter", "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
554
|
+
--font-display: "Inter Variable", "Inter", "Geist", sans-serif;
|
|
553
555
|
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
554
556
|
}
|
|
555
557
|
|
|
@@ -877,8 +879,8 @@
|
|
|
877
879
|
--accent-text: #3c32e9;
|
|
878
880
|
|
|
879
881
|
/* Typography — unified on Inter */
|
|
880
|
-
--font-sans: "Inter", "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
881
|
-
--font-display: "Inter", "Geist", sans-serif;
|
|
882
|
+
--font-sans: "Inter Variable", "Inter", "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
883
|
+
--font-display: "Inter Variable", "Inter", "Geist", sans-serif;
|
|
882
884
|
--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;
|
|
883
885
|
|
|
884
886
|
/* Radius — unified chrome scale (matches dark; 8px md) */
|
|
@@ -938,6 +940,85 @@
|
|
|
938
940
|
--border-strong: color-mix(in srgb, hsl(var(--hsl-border)), hsl(var(--hsl-foreground)) 20%);
|
|
939
941
|
}
|
|
940
942
|
|
|
943
|
+
/* Surface ladder and interaction states — the palette behind @tangle-network/ui's
|
|
944
|
+
* interaction helpers (`ixControl`, `ixField`, `ixSelected`, `ixRow` … in ui's
|
|
945
|
+
* lib/interaction.ts) and the Card primitive's surface context.
|
|
946
|
+
*
|
|
947
|
+
* LADDER. A card (`[data-slot="card"]`) re-declares two context variables for
|
|
948
|
+
* everything inside it, so nesting needs no app selector:
|
|
949
|
+
* --card the plane a nested card or `bg-card` box paints: --hsl-raised one
|
|
950
|
+
* level in, --hsl-raised-2 two levels in.
|
|
951
|
+
* --well the field fill: --well-page on the page, --well-card in a card,
|
|
952
|
+
* --well-raised in a card in a card, --well-raised-2 deeper still.
|
|
953
|
+
* A theme that tunes its ladder (Hospitality) sets these per mode. The defaults
|
|
954
|
+
* below reproduce the plain spine exactly — every level paints the card and
|
|
955
|
+
* every well is --bg-input — so a theme that does not set them looks as it did.
|
|
956
|
+
*
|
|
957
|
+
* INTERACTION. Four states, all from the focus ring hue (--hsl-ring), so one
|
|
958
|
+
* green or one indigo marks every interactive thing in a theme:
|
|
959
|
+
* hover 1px edge at .45 plus a 4px halo at .16 (--ix-hover)
|
|
960
|
+
* press 1px edge at .95 plus a 4px halo at .30 (--ix-press)
|
|
961
|
+
* after a mouse-focused control keeps a 1px .60 / 3px .14 ring (--ix-after)
|
|
962
|
+
* selected a .13 tint (.18 in dark) with a 1px inset ring at .85
|
|
963
|
+
* Keyboard focus-visible keeps --focus-border / --focus-halo above.
|
|
964
|
+
*
|
|
965
|
+
* Declared on every scope that can redefine --hsl-ring or the ladder, as the
|
|
966
|
+
* focus rule is, because a custom property is resolved where it is declared. */
|
|
967
|
+
:root,
|
|
968
|
+
.dark,
|
|
969
|
+
.light,
|
|
970
|
+
[data-sandbox-ui],
|
|
971
|
+
[data-sandbox-theme],
|
|
972
|
+
[data-theme] {
|
|
973
|
+
--hsl-raised: var(--hsl-card);
|
|
974
|
+
--hsl-raised-2: var(--hsl-card);
|
|
975
|
+
--well-page: var(--bg-input);
|
|
976
|
+
--well-card: var(--bg-input);
|
|
977
|
+
--well-raised: var(--bg-input);
|
|
978
|
+
--well-raised-2: var(--bg-input);
|
|
979
|
+
--well: var(--well-page);
|
|
980
|
+
--field-border: hsl(var(--hsl-border));
|
|
981
|
+
--shadow-raised: var(--shadow-card);
|
|
982
|
+
/* A shadow token joins a comma list, so "none" would void the whole list. */
|
|
983
|
+
--shadow-well: 0 0 0 0 transparent;
|
|
984
|
+
--edge-highlight: 0 0 0 0 transparent;
|
|
985
|
+
--ix-hover: 0 0 0 1px hsl(var(--hsl-ring) / 0.45), 0 0 0 4px hsl(var(--hsl-ring) / 0.16);
|
|
986
|
+
--ix-hover-border: hsl(var(--hsl-ring) / 0.7);
|
|
987
|
+
--ix-press: 0 0 0 1px hsl(var(--hsl-ring) / 0.95), 0 0 0 4px hsl(var(--hsl-ring) / 0.3);
|
|
988
|
+
--ix-after: 0 0 0 1px hsl(var(--hsl-ring) / 0.6), 0 0 0 3px hsl(var(--hsl-ring) / 0.14);
|
|
989
|
+
--ix-sel-ring: hsl(var(--hsl-ring) / 0.85);
|
|
990
|
+
--ix-sel-bg: hsl(var(--hsl-ring) / 0.18);
|
|
991
|
+
--ix-hover-bg: hsl(var(--hsl-ring) / 0.08);
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/* Light planes need less tint for the same step. Same scope list as the chart
|
|
995
|
+
* light rule below; dark is the default. */
|
|
996
|
+
[data-sandbox-theme="vault"]:where(:not(.dark)),
|
|
997
|
+
[data-sandbox-theme="dawn"]:where(:not(.dark)),
|
|
998
|
+
[data-theme="hospitality"]:where(:not(.dark)),
|
|
999
|
+
[data-theme="website"]:where(:not(.dark)),
|
|
1000
|
+
[data-theme="light"],
|
|
1001
|
+
.light,
|
|
1002
|
+
[data-theme$="-light"] {
|
|
1003
|
+
--ix-sel-bg: hsl(var(--hsl-ring) / 0.13);
|
|
1004
|
+
--ix-hover-bg: hsl(var(--hsl-ring) / 0.07);
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
/* Surface context: keyed only on the Card primitive's data-slot, never on app
|
|
1008
|
+
* classes. :where(*) keeps it at the specificity of one attribute, so a theme
|
|
1009
|
+
* scope opened inside a card still wins. */
|
|
1010
|
+
[data-slot="card"] :where(*) {
|
|
1011
|
+
--card: var(--hsl-raised);
|
|
1012
|
+
--well: var(--well-card);
|
|
1013
|
+
}
|
|
1014
|
+
[data-slot="card"] [data-slot="card"] :where(*) {
|
|
1015
|
+
--card: var(--hsl-raised-2);
|
|
1016
|
+
--well: var(--well-raised);
|
|
1017
|
+
}
|
|
1018
|
+
[data-slot="card"] [data-slot="card"] [data-slot="card"] :where(*) {
|
|
1019
|
+
--well: var(--well-raised-2);
|
|
1020
|
+
}
|
|
1021
|
+
|
|
941
1022
|
/* Chart marks — the palette behind @tangle-network/charts.
|
|
942
1023
|
*
|
|
943
1024
|
* One accent marks the measure a reader decides on (a rate bar, a frontier
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText } from "@tangle-network/ui/utils";
|
|
2
|
-
export { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText };
|
|
1
|
+
import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, timeAgo, truncateText } from "@tangle-network/ui/utils";
|
|
2
|
+
export { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, timeAgo, truncateText };
|
package/dist/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText } from "@tangle-network/ui/utils";
|
|
2
|
-
export { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText };
|
|
1
|
+
import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, timeAgo, truncateText } from "@tangle-network/ui/utils";
|
|
2
|
+
export { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, timeAgo, truncateText };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.133.
|
|
3
|
+
"version": "0.133.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
6
6
|
"repository": {
|
|
@@ -133,8 +133,8 @@
|
|
|
133
133
|
"@hocuspocus/provider": ">=2.15.0 <5.0.0",
|
|
134
134
|
"@nanostores/react": ">=0.8.4 <2.0.0",
|
|
135
135
|
"@tangle-network/agent-interface": "^1.0.0 || ^2.0.0 || ^3.0.0",
|
|
136
|
-
"@tangle-network/brand": "^1.
|
|
137
|
-
"@tangle-network/ui": "^11.
|
|
136
|
+
"@tangle-network/brand": "^1.23.0",
|
|
137
|
+
"@tangle-network/ui": "^11.33.0",
|
|
138
138
|
"@tanstack/react-query": "^5.0.0",
|
|
139
139
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
140
140
|
"@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
|
|
@@ -223,8 +223,8 @@
|
|
|
223
223
|
"@storybook/react-vite": "^10.6.0",
|
|
224
224
|
"@tailwindcss/postcss": "^4.3.3",
|
|
225
225
|
"@tangle-network/agent-interface": "3.0.0",
|
|
226
|
-
"@tangle-network/brand": "1.
|
|
227
|
-
"@tangle-network/ui": "11.
|
|
226
|
+
"@tangle-network/brand": "1.23.0",
|
|
227
|
+
"@tangle-network/ui": "11.33.0",
|
|
228
228
|
"@tanstack/react-query": "^5.104.0",
|
|
229
229
|
"@testing-library/dom": "^10.4.2",
|
|
230
230
|
"@testing-library/jest-dom": "^7.0.1",
|