@tangle-network/ui 9.1.3 → 10.0.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/CHANGELOG.md +13 -0
- package/dist/chat.js +1 -1
- package/dist/{chunk-7BMLW3H2.js → chunk-KHO7DYXH.js} +1 -1
- package/dist/{chunk-XY2FP763.js → chunk-XZFJAF6G.js} +1 -0
- package/dist/index.js +2 -2
- package/dist/primitives.js +1 -1
- package/package.json +2 -2
- package/src/chat/agent-timeline.tsx +7 -2
- package/src/primitives/toast.tsx +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @tangle-network/ui
|
|
2
2
|
|
|
3
|
+
## 10.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 68e5053: Transcript spacing, markdown styling, and the remaining WCAG AA fixes.
|
|
8
|
+
|
|
9
|
+
- **Markdown was unstyled**: `@tailwindcss/typography` isn't loaded and `tangle-prose` was undefined, so structured markdown had no styling — table cells collided (no dividers/padding) and text ran flush into code blocks. Defined `tangle-prose` (self-contained, theme-tokened): tables get border-collapse hairline dividers + cell padding, and blocks (headings, paragraphs, lists, `pre`, code) get proper vertical rhythm. Links use `--accent-text` (readable in every theme).
|
|
10
|
+
- **Timeline spacing**: user messages sat flush against the status/tool/agent row below them. They're off-spine, so they now carry their own vertical rhythm (`mt-6 mb-4`).
|
|
11
|
+
- **WCAG AA (measured live across 7 themes)**: `--btn-primary-*` (dark + all named themes were 4.47/2.98 → now ≥5.9 via `#5B4ED4`/`#4F46E5`); `--hsl-destructive` button/badge (3.67 → ≥4.5); named light themes now carry light-tuned `--hsl-destructive`/`--hsl-secondary-foreground`/`--surface-neutral-text` (were inheriting dark values, secondary badge ~1.05); input borders (`--input` → `--hsl-muted-foreground`) now clear 1.4.11 3:1 as visible field boundaries.
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [68e5053]
|
|
14
|
+
- @tangle-network/brand@0.9.0
|
|
15
|
+
|
|
3
16
|
## 9.1.3
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/chat.js
CHANGED
|
@@ -242,7 +242,7 @@ function AgentTimeline({
|
|
|
242
242
|
const timelineItems = renderedItems.filter((item) => !(item.kind === "message" && item.role === "user"));
|
|
243
243
|
return /* @__PURE__ */ jsx4("div", { className: cn("mx-auto w-full max-w-5xl px-4 py-4", className), children: renderedItems.map((item, index) => {
|
|
244
244
|
if (item.kind === "message" && item.role === "user") {
|
|
245
|
-
return /* @__PURE__ */ jsx4(UserMessage, { content: item.content, timestamp: item.timestamp }, item.id);
|
|
245
|
+
return /* @__PURE__ */ jsx4("div", { className: "mt-6 mb-4 first:mt-0", children: /* @__PURE__ */ jsx4(UserMessage, { content: item.content, timestamp: item.timestamp }) }, item.id);
|
|
246
246
|
}
|
|
247
247
|
const timelineIndex = timelineItems.indexOf(item);
|
|
248
248
|
const isLast = timelineIndex === timelineItems.length - 1;
|
|
@@ -610,6 +610,7 @@ function ToastContainer({ toasts, onDismiss }) {
|
|
|
610
610
|
return /* @__PURE__ */ jsx8(
|
|
611
611
|
"div",
|
|
612
612
|
{
|
|
613
|
+
role: "region",
|
|
613
614
|
className: "fixed right-4 bottom-4 z-50 flex max-w-md flex-col gap-2",
|
|
614
615
|
"aria-label": "Notifications",
|
|
615
616
|
children: toasts.map((toast) => /* @__PURE__ */ jsx8(ToastComponent, { ...toast, onDismiss }, toast.id))
|
package/dist/index.js
CHANGED
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
UploadProgress,
|
|
110
110
|
useTheme,
|
|
111
111
|
useToast
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-XZFJAF6G.js";
|
|
113
113
|
import {
|
|
114
114
|
Avatar,
|
|
115
115
|
AvatarFallback,
|
|
@@ -137,7 +137,7 @@ import {
|
|
|
137
137
|
MessageList,
|
|
138
138
|
ThinkingIndicator,
|
|
139
139
|
UserMessage
|
|
140
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-KHO7DYXH.js";
|
|
141
141
|
import {
|
|
142
142
|
useAutoScroll,
|
|
143
143
|
useRunCollapseState,
|
package/dist/primitives.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"description": "Generic React UI components for Tangle products — primitives, chat, run, files, editor, markdown.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"react": "^18 || ^19",
|
|
133
133
|
"react-dom": "^18 || ^19",
|
|
134
134
|
"react-router": "^7",
|
|
135
|
-
"@tangle-network/brand": "^0.
|
|
135
|
+
"@tangle-network/brand": "^0.9.0"
|
|
136
136
|
},
|
|
137
137
|
"peerDependenciesMeta": {
|
|
138
138
|
"@nanostores/react": {
|
|
@@ -265,9 +265,14 @@ export function AgentTimeline({
|
|
|
265
265
|
return (
|
|
266
266
|
<div className={cn("mx-auto w-full max-w-5xl px-4 py-4", className)}>
|
|
267
267
|
{renderedItems.map((item, index) => {
|
|
268
|
-
// User messages: right-aligned bubble,
|
|
268
|
+
// User messages: right-aligned bubble, off-spine — needs its own vertical
|
|
269
|
+
// rhythm so it doesn't sit flush against the status/tool/agent row below.
|
|
269
270
|
if (item.kind === "message" && item.role === "user") {
|
|
270
|
-
return
|
|
271
|
+
return (
|
|
272
|
+
<div key={item.id} className="mt-6 mb-4 first:mt-0">
|
|
273
|
+
<UserMessage content={item.content} timestamp={item.timestamp} />
|
|
274
|
+
</div>
|
|
275
|
+
);
|
|
271
276
|
}
|
|
272
277
|
|
|
273
278
|
const timelineIndex = timelineItems.indexOf(item);
|
package/src/primitives/toast.tsx
CHANGED
|
@@ -93,6 +93,11 @@ interface ToastContainerProps {
|
|
|
93
93
|
export function ToastContainer({ toasts, onDismiss }: ToastContainerProps) {
|
|
94
94
|
return (
|
|
95
95
|
<div
|
|
96
|
+
// A generic div can't carry aria-label (WCAG 4.1.2 / axe
|
|
97
|
+
// aria-prohibited-attr); role="region" makes it a valid, navigable
|
|
98
|
+
// landmark. Live announcement stays on each toast (role="alert"
|
|
99
|
+
// aria-live="polite"), so the region itself is not a live region.
|
|
100
|
+
role="region"
|
|
96
101
|
className="fixed right-4 bottom-4 z-50 flex max-w-md flex-col gap-2"
|
|
97
102
|
aria-label="Notifications"
|
|
98
103
|
>
|