@assistant-ui/react-devtools 1.2.12 → 1.2.13

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.
@@ -137,12 +137,13 @@ const ScopeFilterBar = (t0) => {
137
137
  if ($[5] !== toggleEventType || $[6] !== toggleScope || $[7] !== unselectedEventTypes) {
138
138
  t2 = (t3) => {
139
139
  const [scope, types] = t3;
140
+ const allSelected = types.every((type) => !unselectedEventTypes.has(type));
140
141
  return /* @__PURE__ */ jsxs("div", {
141
142
  className: "flex flex-wrap items-center gap-1.5",
142
143
  children: [/* @__PURE__ */ jsx("button", {
143
144
  type: "button",
144
145
  onClick: () => toggleScope(types),
145
- className: clsx("rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors", types.every((type) => !unselectedEventTypes.has(type)) ? "bg-accent text-foreground" : "text-muted-foreground"),
146
+ className: clsx("rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors", allSelected ? "bg-accent text-foreground" : "text-muted-foreground"),
146
147
  children: scope
147
148
  }), types.map((eventType) => /* @__PURE__ */ jsxs("label", {
148
149
  title: eventType,
@@ -1 +1 @@
1
- {"version":3,"file":"EventLogRow.js","names":["clsx","eventScope","formatClockTime","EventLogEntry","PartDisclosure","PayloadDiff","Chip","JSONTree","EventLogRow","t0","$","_c","log","previous","showDiff","t1","timeLabel","undefined","t2","event","scope","t3","length","slice","suffix","t4","time","t5","t6","t7","t8","t9","data","t10","t11","t12","ScopeFilterBar","eventTypesByScope","unselectedEventTypes","toggleScope","toggleEventType","types","allSelected","every","type","has","map","eventType"],"sources":["../../../src/views/activity/EventLogRow.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { eventScope, formatClockTime } from \"../../utils/common\";\nimport type { EventLogEntry } from \"../../data/types\";\nimport { PartDisclosure } from \"../message/PartDisclosure\";\nimport { PayloadDiff } from \"../runs/PayloadDiff\";\nimport { Chip, JSONTree } from \"../ui\";\n\nexport const EventLogRow = ({\n log,\n previous,\n showDiff = false,\n timeLabel,\n}: {\n log: EventLogEntry;\n previous?: EventLogEntry | undefined;\n showDiff?: boolean;\n /** Overrides the default clock time label. */\n timeLabel?: string | undefined;\n}) => {\n const scope = eventScope(log.event);\n const suffix = log.event.slice(scope.length + 1) || log.event;\n\n return (\n <div className=\"flex flex-col gap-1 py-1.5\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <span className=\"text-muted-foreground w-16 shrink-0 font-mono text-[10px] tabular-nums\">\n {timeLabel ?? formatClockTime(log.time)}\n </span>\n <Chip className=\"shrink-0\">{scope}</Chip>\n <span className=\"text-foreground min-w-0 truncate text-[11px] font-medium\">\n {suffix}\n </span>\n </div>\n <div className=\"ps-[4.5rem]\">\n <PartDisclosure label=\"Payload\">\n <JSONTree value={log.data} openDepth={0} compact />\n </PartDisclosure>\n {showDiff && previous ? (\n <div className=\"mt-1\">\n <PartDisclosure label=\"Diff\">\n <PayloadDiff before={previous.data} after={log.data} />\n </PartDisclosure>\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport const ScopeFilterBar = ({\n eventTypesByScope,\n unselectedEventTypes,\n toggleScope,\n toggleEventType,\n}: {\n eventTypesByScope: readonly (readonly [string, string[]])[];\n unselectedEventTypes: ReadonlySet<string>;\n toggleScope: (types: string[]) => void;\n toggleEventType: (eventType: string) => void;\n}) => {\n if (!eventTypesByScope.length) return null;\n\n return (\n <div className=\"flex flex-col gap-2 px-3 py-2\">\n {eventTypesByScope.map(([scope, types]) => {\n const allSelected = types.every(\n (type) => !unselectedEventTypes.has(type),\n );\n return (\n <div key={scope} className=\"flex flex-wrap items-center gap-1.5\">\n <button\n type=\"button\"\n onClick={() => toggleScope(types)}\n className={clsx(\n \"rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors\",\n allSelected\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {scope}\n </button>\n {types.map((eventType) => (\n <label\n key={eventType}\n title={eventType}\n className={clsx(\n \"flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors\",\n !unselectedEventTypes.has(eventType)\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n <input\n type=\"checkbox\"\n checked={!unselectedEventTypes.has(eventType)}\n onChange={() => toggleEventType(eventType)}\n className=\"accent-foreground size-3 rounded\"\n />\n <span>{eventType.slice(scope.length + 1) || eventType}</span>\n </label>\n ))}\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"EventLogRow.js","names":["clsx","eventScope","formatClockTime","EventLogEntry","PartDisclosure","PayloadDiff","Chip","JSONTree","EventLogRow","t0","$","_c","log","previous","showDiff","t1","timeLabel","undefined","t2","event","scope","t3","length","slice","suffix","t4","time","t5","t6","t7","t8","t9","data","t10","t11","t12","ScopeFilterBar","eventTypesByScope","unselectedEventTypes","toggleScope","toggleEventType","types","allSelected","every","type","has","map","eventType"],"sources":["../../../src/views/activity/EventLogRow.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { eventScope, formatClockTime } from \"../../utils/common\";\nimport type { EventLogEntry } from \"../../data/types\";\nimport { PartDisclosure } from \"../message/PartDisclosure\";\nimport { PayloadDiff } from \"../runs/PayloadDiff\";\nimport { Chip, JSONTree } from \"../ui\";\n\nexport const EventLogRow = ({\n log,\n previous,\n showDiff = false,\n timeLabel,\n}: {\n log: EventLogEntry;\n previous?: EventLogEntry | undefined;\n showDiff?: boolean;\n /** Overrides the default clock time label. */\n timeLabel?: string | undefined;\n}) => {\n const scope = eventScope(log.event);\n const suffix = log.event.slice(scope.length + 1) || log.event;\n\n return (\n <div className=\"flex flex-col gap-1 py-1.5\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <span className=\"text-muted-foreground w-16 shrink-0 font-mono text-[10px] tabular-nums\">\n {timeLabel ?? formatClockTime(log.time)}\n </span>\n <Chip className=\"shrink-0\">{scope}</Chip>\n <span className=\"text-foreground min-w-0 truncate text-[11px] font-medium\">\n {suffix}\n </span>\n </div>\n <div className=\"ps-[4.5rem]\">\n <PartDisclosure label=\"Payload\">\n <JSONTree value={log.data} openDepth={0} compact />\n </PartDisclosure>\n {showDiff && previous ? (\n <div className=\"mt-1\">\n <PartDisclosure label=\"Diff\">\n <PayloadDiff before={previous.data} after={log.data} />\n </PartDisclosure>\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport const ScopeFilterBar = ({\n eventTypesByScope,\n unselectedEventTypes,\n toggleScope,\n toggleEventType,\n}: {\n eventTypesByScope: readonly (readonly [string, string[]])[];\n unselectedEventTypes: ReadonlySet<string>;\n toggleScope: (types: string[]) => void;\n toggleEventType: (eventType: string) => void;\n}) => {\n if (!eventTypesByScope.length) return null;\n\n return (\n <div className=\"flex flex-col gap-2 px-3 py-2\">\n {eventTypesByScope.map(([scope, types]) => {\n const allSelected = types.every(\n (type) => !unselectedEventTypes.has(type),\n );\n return (\n <div key={scope} className=\"flex flex-wrap items-center gap-1.5\">\n <button\n type=\"button\"\n onClick={() => toggleScope(types)}\n className={clsx(\n \"rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors\",\n allSelected\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {scope}\n </button>\n {types.map((eventType) => (\n <label\n key={eventType}\n title={eventType}\n className={clsx(\n \"flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-medium transition-colors\",\n !unselectedEventTypes.has(eventType)\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n <input\n type=\"checkbox\"\n checked={!unselectedEventTypes.has(eventType)}\n onChange={() => toggleEventType(eventType)}\n className=\"accent-foreground size-3 rounded\"\n />\n <span>{eventType.slice(scope.length + 1) || eventType}</span>\n </label>\n ))}\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  const formatBytes = (bytes) => {
3
3
  if (bytes === void 0 || bytes <= 0) return void 0;
4
4
  if (bytes < 1024) return `${bytes} B`;
5
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
6
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
5
+ if (bytes < 1048576) return `${(bytes / 1024).toFixed(1)} KB`;
6
+ return `${(bytes / 1048576).toFixed(1)} MB`;
7
7
  };
8
8
  /** Rough size from base64 payload (no decoding). */
9
9
  const estimateBase64Bytes = (data) => Math.max(0, Math.floor(data.length * 3 / 4));
@@ -1 +1 @@
1
- {"version":3,"file":"formatBytes.js","names":["formatBytes","bytes","undefined","toFixed","estimateBase64Bytes","data","Math","max","floor","length","isSafeImagePreviewUrl","url","test"],"sources":["../../../src/views/attachments/formatBytes.ts"],"sourcesContent":["export const formatBytes = (bytes: number | undefined): string | undefined => {\n if (bytes === undefined || bytes <= 0) return undefined;\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n};\n\n/** Rough size from base64 payload (no decoding). */\nexport const estimateBase64Bytes = (data: string): number =>\n Math.max(0, Math.floor((data.length * 3) / 4));\n\nexport const isSafeImagePreviewUrl = (url: string): boolean =>\n /^data:image\\//i.test(url) || /^https?:\\/\\//i.test(url);\n"],"mappings":";AAAA,MAAaA,eAAeC,UAAkD;CAC5E,IAAIA,UAAUC,KAAAA,KAAaD,SAAS,GAAG,OAAOC,KAAAA;CAC9C,IAAID,QAAQ,MAAM,OAAO,GAAGA,MAAK;CACjC,IAAIA,QAAQ,OAAO,MAAM,OAAO,IAAIA,QAAQ,KAAA,CAAME,QAAQ,CAAC,EAAC;CAC5D,OAAO,IAAIF,SAAS,OAAO,MAAA,CAAOE,QAAQ,CAAC,EAAC;AAC9C;;AAGA,MAAaC,uBAAuBC,SAClCC,KAAKC,IAAI,GAAGD,KAAKE,MAAOH,KAAKI,SAAS,IAAK,CAAC,CAAC;AAE/C,MAAaC,yBAAyBC,QACpC,iBAAiBC,KAAKD,GAAG,KAAK,gBAAgBC,KAAKD,GAAG"}
1
+ {"version":3,"file":"formatBytes.js","names":["formatBytes","bytes","undefined","toFixed","estimateBase64Bytes","data","Math","max","floor","length","isSafeImagePreviewUrl","url","test"],"sources":["../../../src/views/attachments/formatBytes.ts"],"sourcesContent":["export const formatBytes = (bytes: number | undefined): string | undefined => {\n if (bytes === undefined || bytes <= 0) return undefined;\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n};\n\n/** Rough size from base64 payload (no decoding). */\nexport const estimateBase64Bytes = (data: string): number =>\n Math.max(0, Math.floor((data.length * 3) / 4));\n\nexport const isSafeImagePreviewUrl = (url: string): boolean =>\n /^data:image\\//i.test(url) || /^https?:\\/\\//i.test(url);\n"],"mappings":";AAAA,MAAaA,eAAeC,UAAkD;CAC5E,IAAIA,UAAUC,KAAAA,KAAaD,SAAS,GAAG,OAAOC,KAAAA;CAC9C,IAAID,QAAQ,MAAM,OAAO,GAAGA,MAAK;CACjC,IAAIA,QAAQ,SAAa,OAAO,IAAIA,QAAQ,KAAA,CAAME,QAAQ,CAAC,EAAC;CAC5D,OAAO,IAAIF,QAAS,QAAA,CAAcE,QAAQ,CAAC,EAAC;AAC9C;;AAGA,MAAaC,uBAAuBC,SAClCC,KAAKC,IAAI,GAAGD,KAAKE,MAAOH,KAAKI,SAAS,IAAK,CAAC,CAAC;AAE/C,MAAaC,yBAAyBC,QACpC,iBAAiBC,KAAKD,GAAG,KAAK,gBAAgBC,KAAKD,GAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react-devtools",
3
- "version": "1.2.12",
3
+ "version": "1.2.13",
4
4
  "description": "React development tools for assistant-ui components",
5
5
  "keywords": [
6
6
  "assistant-ui",
@@ -48,16 +48,16 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@tailwindcss/cli": "^4.3.3",
51
- "@types/node": "^26.1.1",
52
- "@types/react": "^19.2.17",
53
- "@types/react-dom": "^19.2.3",
51
+ "@types/node": "^26.1.2",
52
+ "@types/react": "^19.2.18",
53
+ "@types/react-dom": "^19.2.4",
54
54
  "react": "^19.2.8",
55
55
  "react-dom": "^19.2.8",
56
56
  "tailwindcss": "^4.3.3",
57
57
  "vitest": "^4.1.10",
58
- "@assistant-ui/react": "0.15.1",
59
- "@assistant-ui/tap": "0.9.8",
60
- "@assistant-ui/x-buildutils": "0.0.20"
58
+ "@assistant-ui/react": "0.15.11",
59
+ "@assistant-ui/tap": "0.9.11",
60
+ "@assistant-ui/x-buildutils": "0.0.22"
61
61
  },
62
62
  "publishConfig": {
63
63
  "access": "public",