@motiadev/plugin-logs 0.8.2-beta.140-957262 → 0.8.2-beta.140-111855

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.
Files changed (36) hide show
  1. package/README.md +8 -7
  2. package/dist/components/log-detail.d.ts +1 -3
  3. package/dist/components/log-detail.d.ts.map +1 -1
  4. package/dist/components/log-level-badge.d.ts +1 -1
  5. package/dist/components/log-level-badge.d.ts.map +1 -1
  6. package/dist/components/logs-tab-label.d.ts +1 -1
  7. package/dist/index.cjs +22 -0
  8. package/dist/index.d.ts +0 -7
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +419 -10
  11. package/dist/plugin-logs.css +1 -0
  12. package/dist/plugin.cjs +1 -0
  13. package/dist/plugin.d.ts +3 -0
  14. package/dist/plugin.d.ts.map +1 -0
  15. package/dist/plugin.js +16 -0
  16. package/dist/stores/use-logs-store.d.ts +1 -1
  17. package/dist/stores/use-logs-store.d.ts.map +1 -1
  18. package/package.json +25 -14
  19. package/dist/components/log-detail.js +0 -37
  20. package/dist/components/log-detail.js.map +0 -1
  21. package/dist/components/log-level-badge.js +0 -12
  22. package/dist/components/log-level-badge.js.map +0 -1
  23. package/dist/components/logs-page.js +0 -27
  24. package/dist/components/logs-page.js.map +0 -1
  25. package/dist/components/logs-tab-label.js +0 -6
  26. package/dist/components/logs-tab-label.js.map +0 -1
  27. package/dist/index.js.map +0 -1
  28. package/dist/stores/use-logs-store.js +0 -13
  29. package/dist/stores/use-logs-store.js.map +0 -1
  30. package/dist/styles.css +0 -675
  31. package/dist/types/log.js +0 -2
  32. package/dist/types/log.js.map +0 -1
  33. package/dist/utils/format-timestamp.js +0 -5
  34. package/dist/utils/format-timestamp.js.map +0 -1
  35. package/dist/utils/init-log-listener.js +0 -11
  36. package/dist/utils/init-log-listener.js.map +0 -1
package/README.md CHANGED
@@ -8,20 +8,21 @@ This package includes TailwindCSS compilation to ensure all Tailwind classes use
8
8
 
9
9
  ### Build Process
10
10
 
11
- The build process includes two steps:
11
+ The build process uses Vite with integrated CSS compilation:
12
12
 
13
- 1. **CSS Compilation**: Compiles `src/styles.css` using PostCSS and TailwindCSS
14
- 2. **TypeScript Compilation**: Compiles TypeScript files to JavaScript
13
+ 1. **Vite Build**: Compiles TypeScript, CSS, and generates type declarations
14
+ 2. **Output Formats**: Generates both ES modules and CommonJS formats
15
+ 3. **Type Declarations**: Automatically generates `.d.ts` files
15
16
 
16
17
  ### Development
17
18
 
18
- - `pnpm run build` - Build both CSS and TypeScript
19
- - `pnpm run dev` - Watch mode for both CSS and TypeScript
20
- - `pnpm run build:css` - Build only CSS
21
- - `pnpm run dev:css` - Watch mode for CSS only
19
+ - `pnpm run build` - Build all files using Vite
20
+ - `pnpm run dev` - Watch mode for development
21
+ - `pnpm run clean` - Remove the dist directory
22
22
 
23
23
  ### Configuration Files
24
24
 
25
+ - `vite.config.ts` - Vite configuration with TailwindCSS plugin
25
26
  - `src/styles.css` - Main CSS entry point with Tailwind imports
26
27
 
27
28
  ## Features
@@ -1,6 +1,4 @@
1
- import React from 'react';
2
- import 'react18-json-view/src/dark.css';
3
- import 'react18-json-view/src/style.css';
1
+ import { default as React } from 'react';
4
2
  import { Log } from '../types/log';
5
3
  type Props = {
6
4
  log?: Log;
@@ -1 +1 @@
1
- {"version":3,"file":"log-detail.d.ts","sourceRoot":"","sources":["../../src/components/log-detail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAEhD,OAAO,gCAAgC,CAAA;AACvC,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAGlC,KAAK,KAAK,GAAG;IACX,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAID,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiDrC,CAAA"}
1
+ {"version":3,"file":"log-detail.d.ts","sourceRoot":"","sources":["../../src/components/log-detail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,gCAAgC,CAAA;AACvC,OAAO,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAGvC,KAAK,KAAK,GAAG;IACX,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAID,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiDrC,CAAA"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  export declare const LogLevelBadge: React.FC<{
3
3
  level: string;
4
4
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"log-level-badge.d.ts","sourceRoot":"","sources":["../../src/components/log-level-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAMzE,CAAA"}
1
+ {"version":3,"file":"log-level-badge.d.ts","sourceRoot":"","sources":["../../src/components/log-level-badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAMzE,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const LogsTabLabel: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
1
+ export declare const LogsTabLabel: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
2
2
  //# sourceMappingURL=logs-tab-label.d.ts.map
package/dist/index.cjs ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ne=require("@motiadev/stream-client-browser"),le=require("zustand"),T=require("react"),m=require("@motiadev/ui"),S=require("lucide-react"),ce=require("react18-json-view"),x=le.create()(t=>({logs:[],selectedLogId:void 0,addLog:l=>t(u=>({logs:[l,...u.logs]})),resetLogs:()=>{t({logs:[]})},selectLogId:l=>t({selectedLogId:l})})),ie="__motia.logs",ue="default",de="log",fe=()=>{new ne.Stream(window.location.origin.replace("http","ws")).subscribeGroup(ie,ue).onEvent(de,x.getState().addLog)};var j={exports:{}},_={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var W;function me(){if(W)return _;W=1;var t=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function u(b,d,n){var f=null;if(n!==void 0&&(f=""+n),d.key!==void 0&&(f=""+d.key),"key"in d){n={};for(var p in d)p!=="key"&&(n[p]=d[p])}else n=d;return d=n.ref,{$$typeof:t,type:b,key:f,ref:d!==void 0?d:null,props:n}}return _.Fragment=l,_.jsx=u,_.jsxs=u,_}var R={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var z;function be(){return z||(z=1,process.env.NODE_ENV!=="production"&&function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ae?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case k:return"Fragment";case B:return"Profiler";case X:return"StrictMode";case K:return"Suspense";case ee:return"SuspenseList";case te:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case V:return"Portal";case Z:return(e.displayName||"Context")+".Provider";case H:return(e._context.displayName||"Context")+".Consumer";case Q:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case re:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case D:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function l(e){return""+e}function u(e){try{l(e);var r=!1}catch{r=!0}if(r){r=console;var s=r.error,c=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return s.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",c),l(e)}}function b(e){if(e===k)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===D)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function d(){var e=O.A;return e===null?null:e.getOwner()}function n(){return Error("react-stack-top-frame")}function f(e){if($.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function p(e,r){function s(){Y||(Y=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}s.isReactWarning=!0,Object.defineProperty(e,"key",{get:s,configurable:!0})}function a(){var e=t(this.type);return M[e]||(M[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function h(e,r,s,c,g,v,P,C){return s=v.ref,e={$$typeof:I,type:e,key:r,props:v,_owner:g},(s!==void 0?s:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:a}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:P}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:C}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,r,s,c,g,v,P,C){var i=r.children;if(i!==void 0)if(c)if(oe(i)){for(c=0;c<i.length;c++)A(i[c]);Object.freeze&&Object.freeze(i)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else A(i);if($.call(r,"key")){i=t(e);var E=Object.keys(r).filter(function(se){return se!=="key"});c=0<E.length?"{key: someKey, "+E.join(": ..., ")+": ...}":"{key: someKey}",U[i+c]||(E=0<E.length?"{"+E.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,c,i,E,i),U[i+c]=!0)}if(i=null,s!==void 0&&(u(s),i=""+s),f(r)&&(u(r.key),i=""+r.key),"key"in r){s={};for(var L in r)L!=="key"&&(s[L]=r[L])}else s=r;return i&&p(s,typeof e=="function"?e.displayName||e.name||"Unknown":e),h(e,i,v,g,d(),s,P,C)}function A(e){typeof e=="object"&&e!==null&&e.$$typeof===I&&e._store&&(e._store.validated=1)}var w=T,I=Symbol.for("react.transitional.element"),V=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),X=Symbol.for("react.strict_mode"),B=Symbol.for("react.profiler"),H=Symbol.for("react.consumer"),Z=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),re=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),te=Symbol.for("react.activity"),ae=Symbol.for("react.client.reference"),O=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,oe=Array.isArray,N=console.createTask?console.createTask:function(){return null};w={react_stack_bottom_frame:function(e){return e()}};var Y,M={},F=w.react_stack_bottom_frame.bind(w,n)(),q=N(b(n)),U={};R.Fragment=k,R.jsx=function(e,r,s,c,g){var v=1e4>O.recentlyCreatedOwnerStacks++;return y(e,r,s,!1,c,g,v?Error("react-stack-top-frame"):F,v?N(b(e)):q)},R.jsxs=function(e,r,s,c,g){var v=1e4>O.recentlyCreatedOwnerStacks++;return y(e,r,s,!0,c,g,v?Error("react-stack-top-frame"):F,v?N(b(e)):q)}}()),R}var J;function pe(){return J||(J=1,process.env.NODE_ENV==="production"?j.exports=me():j.exports=be()),j.exports}var o=pe();const G=t=>{const l=new Date(Number(t));return`${l.toLocaleDateString("en-US",{year:void 0,month:"short",day:"2-digit"})}, ${l.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h24"})}.${l.getMilliseconds().toString().padStart(3,"0")}`},ve=["id","msg","time","level","step","flows","traceId"],ge=({log:t,onClose:l})=>{const[u,b]=T.useState(!1),d=T.useMemo(()=>{if(!t)return null;const n=Object.keys(t??{}).filter(f=>!ve.includes(f));return b(n.length>0),n.reduce((f,p)=>(f[p]=t[p],f),{})},[t]);return t?o.jsx(m.Sidebar,{onClose:l,title:"Logs Details",subtitle:"Details including custom properties",actions:[{icon:o.jsx(S.X,{}),onClick:l,label:"Close"}],details:[{label:"Level",value:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(m.LevelDot,{level:t.level}),o.jsx("div",{className:"capitalize",children:t.level})]})},{label:"Time",value:G(t.time)},{label:"Step",value:t.step},{label:"Flows",value:t.flows.join(", ")},{label:"Trace ID",value:t.traceId}],children:u&&o.jsx(ce,{src:d,theme:"default",enableClipboard:!0})}):null},he=()=>{const t=x(a=>a.logs),l=x(a=>a.resetLogs),u=x(a=>a.selectedLogId),b=x(a=>a.selectLogId),d=T.useMemo(()=>u?t.find(a=>a.id===u):void 0,[t,u]),[n,f]=T.useState(""),p=T.useMemo(()=>t.filter(a=>a.msg.toLowerCase().includes(n.toLowerCase())||a.traceId.toLowerCase().includes(n.toLowerCase())||a.step.toLowerCase().includes(n.toLowerCase())),[t,n]);return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"grid grid-rows-[auto_1fr] h-full","data-testid":"logs-container",children:[o.jsxs("div",{className:"flex p-2 border-b gap-2","data-testid":"logs-search-container",children:[o.jsxs("div",{className:"flex-1 relative",children:[o.jsx(m.Input,{variant:"shade",value:n,onChange:a=>f(a.target.value),className:"px-9 font-medium",placeholder:"Search by Trace ID or Message"}),o.jsx(S.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50"}),o.jsx(S.X,{className:"cursor-pointer absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50 hover:text-muted-foreground",onClick:()=>f("")})]}),o.jsxs(m.Button,{variant:"default",onClick:l,className:"h-[34px]",children:[o.jsx(S.Trash,{})," Clear"]})]}),o.jsx(m.Table,{children:o.jsx(m.TableBody,{className:"font-mono font-medium",children:p.map((a,h)=>o.jsxs(m.TableRow,{"data-testid":"log-row",className:m.cn("font-mono font-semibold cursor-pointer border-0",{"bg-muted-foreground/10 hover:bg-muted-foreground/20":u===a.id,"hover:bg-muted-foreground/10":u!==a.id}),onClick:()=>b(a.id),children:[o.jsxs(m.TableCell,{"data-testid":`time-${h}`,className:"whitespace-nowrap flex items-center gap-2 text-muted-foreground",children:[o.jsx(m.LevelDot,{level:a.level}),G(a.time)]}),o.jsx(m.TableCell,{"data-testid":`trace-${a.traceId}`,className:"whitespace-nowrap cursor-pointer hover:text-primary text-muted-foreground",onClick:()=>f(a.traceId),children:a.traceId}),o.jsx(m.TableCell,{"data-testid":`step-${h}`,"aria-label":a.step,className:"whitespace-nowrap",children:a.step}),o.jsx(m.TableCell,{"data-testid":`msg-${h}`,"aria-label":a.msg,className:"whitespace-nowrap max-w-[500px] truncate w-full",children:a.msg})]},h))})})]}),o.jsx(ge,{log:d,onClose:()=>b(void 0)})]})};fe();exports.LogsPage=he;
package/dist/index.d.ts CHANGED
@@ -1,10 +1,3 @@
1
- import './styles.css';
2
1
  export { LogsPage } from './components/logs-page';
3
2
  export type { Log } from './types/log';
4
- export declare const config: {
5
- label: string;
6
- position: string;
7
- componentName: string;
8
- labelIcon: string;
9
- };
10
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAItC,eAAO,MAAM,MAAM;;;;;CAKlB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,11 +1,420 @@
1
- import './styles.css';
2
- import { initLogListener } from './utils/init-log-listener';
3
- export { LogsPage } from './components/logs-page';
4
- initLogListener();
5
- export const config = {
6
- label: 'Logs',
7
- position: 'bottom',
8
- componentName: 'LogsPage',
9
- labelIcon: 'logs',
1
+ import { Stream as ce } from "@motiadev/stream-client-browser";
2
+ import { create as ie } from "zustand";
3
+ import ue, { useState as z, useMemo as L } from "react";
4
+ import { Sidebar as de, LevelDot as G, Input as fe, Button as me, Table as pe, TableBody as be, TableRow as ve, cn as he, TableCell as T } from "@motiadev/ui";
5
+ import { X as V, Search as ge, Trash as Ee } from "lucide-react";
6
+ import _e from "react18-json-view";
7
+ const x = ie()((t) => ({
8
+ logs: [],
9
+ selectedLogId: void 0,
10
+ addLog: (l) => t((u) => ({
11
+ logs: [l, ...u.logs]
12
+ })),
13
+ resetLogs: () => {
14
+ t({ logs: [] });
15
+ },
16
+ selectLogId: (l) => t({ selectedLogId: l })
17
+ })), xe = "__motia.logs", Re = "default", Te = "log", we = () => {
18
+ new ce(window.location.origin.replace("http", "ws")).subscribeGroup(xe, Re).onEvent(Te, x.getState().addLog);
19
+ };
20
+ var w = { exports: {} }, E = {};
21
+ /**
22
+ * @license React
23
+ * react-jsx-runtime.production.js
24
+ *
25
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
30
+ var W;
31
+ function je() {
32
+ if (W) return E;
33
+ W = 1;
34
+ var t = Symbol.for("react.transitional.element"), l = Symbol.for("react.fragment");
35
+ function u(m, d, s) {
36
+ var f = null;
37
+ if (s !== void 0 && (f = "" + s), d.key !== void 0 && (f = "" + d.key), "key" in d) {
38
+ s = {};
39
+ for (var p in d)
40
+ p !== "key" && (s[p] = d[p]);
41
+ } else s = d;
42
+ return d = s.ref, {
43
+ $$typeof: t,
44
+ type: m,
45
+ key: f,
46
+ ref: d !== void 0 ? d : null,
47
+ props: s
48
+ };
49
+ }
50
+ return E.Fragment = l, E.jsx = u, E.jsxs = u, E;
51
+ }
52
+ var _ = {};
53
+ /**
54
+ * @license React
55
+ * react-jsx-runtime.development.js
56
+ *
57
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
58
+ *
59
+ * This source code is licensed under the MIT license found in the
60
+ * LICENSE file in the root directory of this source tree.
61
+ */
62
+ var J;
63
+ function Se() {
64
+ return J || (J = 1, process.env.NODE_ENV !== "production" && function() {
65
+ function t(e) {
66
+ if (e == null) return null;
67
+ if (typeof e == "function")
68
+ return e.$$typeof === ne ? null : e.displayName || e.name || null;
69
+ if (typeof e == "string") return e;
70
+ switch (e) {
71
+ case j:
72
+ return "Fragment";
73
+ case Z:
74
+ return "Profiler";
75
+ case H:
76
+ return "StrictMode";
77
+ case re:
78
+ return "Suspense";
79
+ case te:
80
+ return "SuspenseList";
81
+ case oe:
82
+ return "Activity";
83
+ }
84
+ if (typeof e == "object")
85
+ switch (typeof e.tag == "number" && console.error(
86
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
87
+ ), e.$$typeof) {
88
+ case B:
89
+ return "Portal";
90
+ case K:
91
+ return (e.displayName || "Context") + ".Provider";
92
+ case Q:
93
+ return (e._context.displayName || "Context") + ".Consumer";
94
+ case ee:
95
+ var r = e.render;
96
+ return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
97
+ case ae:
98
+ return r = e.displayName || null, r !== null ? r : t(e.type) || "Memo";
99
+ case I:
100
+ r = e._payload, e = e._init;
101
+ try {
102
+ return t(e(r));
103
+ } catch {
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ function l(e) {
109
+ return "" + e;
110
+ }
111
+ function u(e) {
112
+ try {
113
+ l(e);
114
+ var r = !1;
115
+ } catch {
116
+ r = !0;
117
+ }
118
+ if (r) {
119
+ r = console;
120
+ var n = r.error, c = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
121
+ return n.call(
122
+ r,
123
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
124
+ c
125
+ ), l(e);
126
+ }
127
+ }
128
+ function m(e) {
129
+ if (e === j) return "<>";
130
+ if (typeof e == "object" && e !== null && e.$$typeof === I)
131
+ return "<...>";
132
+ try {
133
+ var r = t(e);
134
+ return r ? "<" + r + ">" : "<...>";
135
+ } catch {
136
+ return "<...>";
137
+ }
138
+ }
139
+ function d() {
140
+ var e = S.A;
141
+ return e === null ? null : e.getOwner();
142
+ }
143
+ function s() {
144
+ return Error("react-stack-top-frame");
145
+ }
146
+ function f(e) {
147
+ if ($.call(e, "key")) {
148
+ var r = Object.getOwnPropertyDescriptor(e, "key").get;
149
+ if (r && r.isReactWarning) return !1;
150
+ }
151
+ return e.key !== void 0;
152
+ }
153
+ function p(e, r) {
154
+ function n() {
155
+ D || (D = !0, console.error(
156
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
157
+ r
158
+ ));
159
+ }
160
+ n.isReactWarning = !0, Object.defineProperty(e, "key", {
161
+ get: n,
162
+ configurable: !0
163
+ });
164
+ }
165
+ function a() {
166
+ var e = t(this.type);
167
+ return Y[e] || (Y[e] = !0, console.error(
168
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
169
+ )), e = this.props.ref, e !== void 0 ? e : null;
170
+ }
171
+ function h(e, r, n, c, v, b, N, O) {
172
+ return n = b.ref, e = {
173
+ $$typeof: y,
174
+ type: e,
175
+ key: r,
176
+ props: b,
177
+ _owner: v
178
+ }, (n !== void 0 ? n : null) !== null ? Object.defineProperty(e, "ref", {
179
+ enumerable: !1,
180
+ get: a
181
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
182
+ configurable: !1,
183
+ enumerable: !1,
184
+ writable: !0,
185
+ value: 0
186
+ }), Object.defineProperty(e, "_debugInfo", {
187
+ configurable: !1,
188
+ enumerable: !1,
189
+ writable: !0,
190
+ value: null
191
+ }), Object.defineProperty(e, "_debugStack", {
192
+ configurable: !1,
193
+ enumerable: !1,
194
+ writable: !0,
195
+ value: N
196
+ }), Object.defineProperty(e, "_debugTask", {
197
+ configurable: !1,
198
+ enumerable: !1,
199
+ writable: !0,
200
+ value: O
201
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
202
+ }
203
+ function A(e, r, n, c, v, b, N, O) {
204
+ var i = r.children;
205
+ if (i !== void 0)
206
+ if (c)
207
+ if (se(i)) {
208
+ for (c = 0; c < i.length; c++)
209
+ C(i[c]);
210
+ Object.freeze && Object.freeze(i);
211
+ } else
212
+ console.error(
213
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
214
+ );
215
+ else C(i);
216
+ if ($.call(r, "key")) {
217
+ i = t(e);
218
+ var g = Object.keys(r).filter(function(le) {
219
+ return le !== "key";
220
+ });
221
+ c = 0 < g.length ? "{key: someKey, " + g.join(": ..., ") + ": ...}" : "{key: someKey}", U[i + c] || (g = 0 < g.length ? "{" + g.join(": ..., ") + ": ...}" : "{}", console.error(
222
+ `A props object containing a "key" prop is being spread into JSX:
223
+ let props = %s;
224
+ <%s {...props} />
225
+ React keys must be passed directly to JSX without using spread:
226
+ let props = %s;
227
+ <%s key={someKey} {...props} />`,
228
+ c,
229
+ i,
230
+ g,
231
+ i
232
+ ), U[i + c] = !0);
233
+ }
234
+ if (i = null, n !== void 0 && (u(n), i = "" + n), f(r) && (u(r.key), i = "" + r.key), "key" in r) {
235
+ n = {};
236
+ for (var P in r)
237
+ P !== "key" && (n[P] = r[P]);
238
+ } else n = r;
239
+ return i && p(
240
+ n,
241
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
242
+ ), h(
243
+ e,
244
+ i,
245
+ b,
246
+ v,
247
+ d(),
248
+ n,
249
+ N,
250
+ O
251
+ );
252
+ }
253
+ function C(e) {
254
+ typeof e == "object" && e !== null && e.$$typeof === y && e._store && (e._store.validated = 1);
255
+ }
256
+ var R = ue, y = Symbol.for("react.transitional.element"), B = Symbol.for("react.portal"), j = Symbol.for("react.fragment"), H = Symbol.for("react.strict_mode"), Z = Symbol.for("react.profiler"), Q = Symbol.for("react.consumer"), K = Symbol.for("react.context"), ee = Symbol.for("react.forward_ref"), re = Symbol.for("react.suspense"), te = Symbol.for("react.suspense_list"), ae = Symbol.for("react.memo"), I = Symbol.for("react.lazy"), oe = Symbol.for("react.activity"), ne = Symbol.for("react.client.reference"), S = R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, $ = Object.prototype.hasOwnProperty, se = Array.isArray, k = console.createTask ? console.createTask : function() {
257
+ return null;
258
+ };
259
+ R = {
260
+ react_stack_bottom_frame: function(e) {
261
+ return e();
262
+ }
263
+ };
264
+ var D, Y = {}, F = R.react_stack_bottom_frame.bind(
265
+ R,
266
+ s
267
+ )(), M = k(m(s)), U = {};
268
+ _.Fragment = j, _.jsx = function(e, r, n, c, v) {
269
+ var b = 1e4 > S.recentlyCreatedOwnerStacks++;
270
+ return A(
271
+ e,
272
+ r,
273
+ n,
274
+ !1,
275
+ c,
276
+ v,
277
+ b ? Error("react-stack-top-frame") : F,
278
+ b ? k(m(e)) : M
279
+ );
280
+ }, _.jsxs = function(e, r, n, c, v) {
281
+ var b = 1e4 > S.recentlyCreatedOwnerStacks++;
282
+ return A(
283
+ e,
284
+ r,
285
+ n,
286
+ !0,
287
+ c,
288
+ v,
289
+ b ? Error("react-stack-top-frame") : F,
290
+ b ? k(m(e)) : M
291
+ );
292
+ };
293
+ }()), _;
294
+ }
295
+ var q;
296
+ function ke() {
297
+ return q || (q = 1, process.env.NODE_ENV === "production" ? w.exports = je() : w.exports = Se()), w.exports;
298
+ }
299
+ var o = ke();
300
+ const X = (t) => {
301
+ const l = new Date(Number(t));
302
+ return `${l.toLocaleDateString("en-US", { year: void 0, month: "short", day: "2-digit" })}, ${l.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", second: "2-digit", hourCycle: "h24" })}.${l.getMilliseconds().toString().padStart(3, "0")}`;
303
+ }, Ne = ["id", "msg", "time", "level", "step", "flows", "traceId"], Oe = ({ log: t, onClose: l }) => {
304
+ const [u, m] = z(!1), d = L(() => {
305
+ if (!t)
306
+ return null;
307
+ const s = Object.keys(t ?? {}).filter((f) => !Ne.includes(f));
308
+ return m(s.length > 0), s.reduce(
309
+ (f, p) => (f[p] = t[p], f),
310
+ {}
311
+ );
312
+ }, [t]);
313
+ return t ? /* @__PURE__ */ o.jsx(
314
+ de,
315
+ {
316
+ onClose: l,
317
+ title: "Logs Details",
318
+ subtitle: "Details including custom properties",
319
+ actions: [{ icon: /* @__PURE__ */ o.jsx(V, {}), onClick: l, label: "Close" }],
320
+ details: [
321
+ {
322
+ label: "Level",
323
+ value: /* @__PURE__ */ o.jsxs("div", { className: "flex items-center gap-2", children: [
324
+ /* @__PURE__ */ o.jsx(G, { level: t.level }),
325
+ /* @__PURE__ */ o.jsx("div", { className: "capitalize", children: t.level })
326
+ ] })
327
+ },
328
+ { label: "Time", value: X(t.time) },
329
+ { label: "Step", value: t.step },
330
+ { label: "Flows", value: t.flows.join(", ") },
331
+ { label: "Trace ID", value: t.traceId }
332
+ ],
333
+ children: u && /* @__PURE__ */ o.jsx(_e, { src: d, theme: "default", enableClipboard: !0 })
334
+ }
335
+ ) : null;
336
+ }, $e = () => {
337
+ const t = x((a) => a.logs), l = x((a) => a.resetLogs), u = x((a) => a.selectedLogId), m = x((a) => a.selectLogId), d = L(
338
+ () => u ? t.find((a) => a.id === u) : void 0,
339
+ [t, u]
340
+ ), [s, f] = z(""), p = L(() => t.filter((a) => a.msg.toLowerCase().includes(s.toLowerCase()) || a.traceId.toLowerCase().includes(s.toLowerCase()) || a.step.toLowerCase().includes(s.toLowerCase())), [t, s]);
341
+ return /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
342
+ /* @__PURE__ */ o.jsxs("div", { className: "grid grid-rows-[auto_1fr] h-full", "data-testid": "logs-container", children: [
343
+ /* @__PURE__ */ o.jsxs("div", { className: "flex p-2 border-b gap-2", "data-testid": "logs-search-container", children: [
344
+ /* @__PURE__ */ o.jsxs("div", { className: "flex-1 relative", children: [
345
+ /* @__PURE__ */ o.jsx(
346
+ fe,
347
+ {
348
+ variant: "shade",
349
+ value: s,
350
+ onChange: (a) => f(a.target.value),
351
+ className: "px-9 font-medium",
352
+ placeholder: "Search by Trace ID or Message"
353
+ }
354
+ ),
355
+ /* @__PURE__ */ o.jsx(ge, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50" }),
356
+ /* @__PURE__ */ o.jsx(
357
+ V,
358
+ {
359
+ className: "cursor-pointer absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50 hover:text-muted-foreground",
360
+ onClick: () => f("")
361
+ }
362
+ )
363
+ ] }),
364
+ /* @__PURE__ */ o.jsxs(me, { variant: "default", onClick: l, className: "h-[34px]", children: [
365
+ /* @__PURE__ */ o.jsx(Ee, {}),
366
+ " Clear"
367
+ ] })
368
+ ] }),
369
+ /* @__PURE__ */ o.jsx(pe, { children: /* @__PURE__ */ o.jsx(be, { className: "font-mono font-medium", children: p.map((a, h) => /* @__PURE__ */ o.jsxs(
370
+ ve,
371
+ {
372
+ "data-testid": "log-row",
373
+ className: he("font-mono font-semibold cursor-pointer border-0", {
374
+ "bg-muted-foreground/10 hover:bg-muted-foreground/20": u === a.id,
375
+ "hover:bg-muted-foreground/10": u !== a.id
376
+ }),
377
+ onClick: () => m(a.id),
378
+ children: [
379
+ /* @__PURE__ */ o.jsxs(
380
+ T,
381
+ {
382
+ "data-testid": `time-${h}`,
383
+ className: "whitespace-nowrap flex items-center gap-2 text-muted-foreground",
384
+ children: [
385
+ /* @__PURE__ */ o.jsx(G, { level: a.level }),
386
+ X(a.time)
387
+ ]
388
+ }
389
+ ),
390
+ /* @__PURE__ */ o.jsx(
391
+ T,
392
+ {
393
+ "data-testid": `trace-${a.traceId}`,
394
+ className: "whitespace-nowrap cursor-pointer hover:text-primary text-muted-foreground",
395
+ onClick: () => f(a.traceId),
396
+ children: a.traceId
397
+ }
398
+ ),
399
+ /* @__PURE__ */ o.jsx(T, { "data-testid": `step-${h}`, "aria-label": a.step, className: "whitespace-nowrap", children: a.step }),
400
+ /* @__PURE__ */ o.jsx(
401
+ T,
402
+ {
403
+ "data-testid": `msg-${h}`,
404
+ "aria-label": a.msg,
405
+ className: "whitespace-nowrap max-w-[500px] truncate w-full",
406
+ children: a.msg
407
+ }
408
+ )
409
+ ]
410
+ },
411
+ h
412
+ )) }) })
413
+ ] }),
414
+ /* @__PURE__ */ o.jsx(Oe, { log: d, onClose: () => m(void 0) })
415
+ ] });
416
+ };
417
+ we();
418
+ export {
419
+ $e as LogsPage
10
420
  };
11
- //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-weight-500:var(--font-weight-500);--font-weight-600:var(--font-weight-600);--font-weight-700:var(--font-weight-700)}}@layer base{*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-1\/2{top:50%}.right-3{right:calc(var(--spacing)*3)}.left-3{left:calc(var(--spacing)*3)}.flex{display:flex}.grid{display:grid}.h-4{height:calc(var(--spacing)*4)}.h-\[34px\]{height:34px}.h-full{height:100%}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.max-w-\[500px\]{max-width:500px}.flex-1{flex:1}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.cursor-pointer{cursor:pointer}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing)*2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border-0{border-style:var(--tw-border-style);border-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-muted-foreground\/10{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/10{background-color:color-mix(in oklab,var(--muted-foreground)10%,transparent)}}.p-2{padding:calc(var(--spacing)*2)}.px-9{padding-inline:calc(var(--spacing)*9)}.font-mono{font-family:var(--font-mono)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.capitalize{text-transform:capitalize}@media (hover:hover){.hover\:bg-muted-foreground\/10:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted-foreground\/10:hover{background-color:color-mix(in oklab,var(--muted-foreground)10%,transparent)}}.hover\:bg-muted-foreground\/20:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted-foreground\/20:hover{background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover{color:var(--primary)}}}:root{--default-font-family:"DM Sans",ui-sans-serif,sans-serif;--font-dm-mono:"DM Mono",ui-monospace,monospace;color-scheme:light dark;font-size:16px;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"),serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--font-weight-500:500;--font-weight-600:600;--font-weight-700:700;--accent-1000:#2862fe;--accent-970:#2862fef7;--accent-950:#2862fef2;--accent-900:#2862fee5;--accent-800:#2862fecc;--accent-700:#2862feb2;--accent-600:#2862fe99;--accent-500:#2862fe80;--accent-400:#2862fe66;--accent-300:#2862fe4d;--accent-200:#2862fe33;--accent-100:#2862fe1a;--accent-50:#2862fe0d;--accent-30:#2862fe08;--dark-1000:#0a0a0a;--dark-970:#0a0a0af7;--dark-950:#0a0a0af2;--dark-900:#0a0a0ae5;--dark-800:#0a0a0acc;--dark-700:#0a0a0ab2;--dark-600:#0a0a0a99;--dark-500:#0a0a0a80;--dark-400:#0a0a0a66;--dark-300:#0a0a0a4d;--dark-200:#0a0a0a33;--dark-100:#0a0a0a1a;--dark-50:#0a0a0a0d;--dark-30:#0a0a0a08;--light-1000:#fff;--light-970:#fffffff7;--light-950:#fffffff2;--light-900:#ffffffe5;--light-800:#fffc;--light-700:#ffffffb2;--light-600:#fff9;--light-500:#ffffff80;--light-400:#fff6;--light-300:#ffffff4d;--light-200:#fff3;--light-100:#ffffff1a;--light-50:#ffffff0d;--light-30:#ffffff08;--error:#d61355;--canvas-background:#ebebeb;--background:var(--light-1000);--foreground:var(--dark-1000);--surface-content:var(--dark-30);--surface-component:var(--dark-50);--surface-light-100:var(--dark-100);--surface-light-200:var(--dark-200);--border:var(--dark-100);--border-accent:var(--accent-1000);--states-hover:var(--dark-30);--states-selected:var(--dark-100);--states-active:var(--accent-1000);--text-header:var(--dark-1000);--text-body:var(--dark-600);--text-placeholder:var(--dark-400);--text-accent:var(--accent-1000);--text-error:var(--error);--icon-active:var(--dark-1000);--icon-light:var(--dark-600);--icon-component:var(--dark-400);--icon-accent:var(--accent-1000);--primary:var(--accent-1000);--primary-foreground:var(--light-1000);--secondary:var(--surface-component);--secondary-foreground:var(--text-body);--muted:var(--surface-light-100);--muted-foreground:var(--text-body);--accent:var(--accent-1000);--accent-foreground:var(--light-1000);--destructive:var(--error);--destructive-foreground:var(--light-1000);--card:var(--surface-content);--card-foreground:var(--foreground);--popover:var(--surface-content);--popover-foreground:var(--foreground);--input:var(--states-hover);--ring:var(--border-accent);--chart-1:var(--accent-1000);--chart-2:var(--accent-800);--chart-3:var(--accent-600);--chart-4:var(--accent-400);--chart-5:var(--accent-200);--header:var(--background);--header-foreground:var(--text-header);--header-primary:var(--primary);--header-primary-foreground:var(--primary-foreground);--header-accent:var(--surface-component);--header-accent-foreground:var(--text-body);--header-border:var(--border);--header-ring:var(--ring);--sidebar:var(--background);--sidebar-foreground:var(--text-header);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:var(--surface-component);--sidebar-accent-foreground:var(--text-body);--sidebar-border:var(--border);--sidebar-ring:var(--ring);width:100%}.dark{--canvas-background:#030303;--background:var(--dark-1000);--foreground:var(--light-1000);--surface-content:var(--light-30);--surface-component:var(--light-50);--surface-light-100:var(--light-100);--surface-light-200:var(--light-200);--border:var(--light-100);--states-hover:var(--light-30);--states-selected:var(--light-100);--text-header:var(--light-1000);--text-body:var(--light-600);--text-placeholder:var(--light-400);--icon-active:var(--light-1000);--icon-light:var(--light-600);--icon-component:var(--light-400);--secondary-foreground:var(--light-600);--muted-foreground:var(--light-600);--card:var(--surface-content);--card-foreground:var(--foreground);--popover:var(--surface-content);--popover-foreground:var(--foreground);--input:var(--states-hover);--ring:var(--border-accent);--chart-1:var(--accent-1000);--chart-2:var(--accent-800);--chart-3:var(--accent-600);--chart-4:var(--accent-400);--chart-5:var(--accent-200);--header:var(--background);--header-foreground:var(--text-header);--header-primary:var(--primary);--header-primary-foreground:var(--primary-foreground);--header-accent:var(--surface-component);--header-accent-foreground:var(--text-body);--header-border:var(--border);--header-ring:var(--ring);--sidebar:var(--background);--sidebar-foreground:var(--text-header);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:var(--surface-component);--sidebar-accent-foreground:var(--text-body);--sidebar-border:var(--border);--sidebar-ring:var(--ring)}.json-view{background-color:#0000!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}:is(.dark .json-view,.dark.json-view){color:#d1d1d1;--json-property: #009033;--json-index: #5d75f2;--json-number: #5d75f2;--json-string: #c57e29;--json-boolean: #e4407b;--json-null: #e4407b}:is(.dark .json-view_a11y,.dark.json-view_a11y){color:#d1d1d1;--json-property: #ffd700;--json-index: #00e0e0;--json-number: #00e0e0;--json-string: #abe338;--json-boolean: #ffa07a;--json-null: #ffa07a}:is(.dark .json-view_github,.dark.json-view_github){color:#79b8ff;--json-property: #79b8ff;--json-index: #79b8ff;--json-number: #79b8ff;--json-string: #9ecbff;--json-boolean: #79b8ff;--json-null: #79b8ff}:is(.dark .json-view_vscode,.dark.json-view_vscode){color:orchid;--json-property: #9cdcfe;--json-index: #b5cea8;--json-number: #b5cea8;--json-string: #ce9178;--json-boolean: #569cd6;--json-null: #569cd6}:is(.dark .json-view_atom,.dark.json-view_atom){color:#abb2bf;--json-property: #e06c75;--json-index: #d19a66;--json-number: #d19a66;--json-string: #98c379;--json-boolean: #56b6c2;--json-null: #56b6c2}:is(.dark .json-view_winter-is-coming,.dark.json-view_winter-is-coming){color:#a7dbf7;--json-property: #91dacd;--json-index: #8dec95;--json-number: #8dec95;--json-string: #e0aff5;--json-boolean: #f29fd8;--json-null: #f29fd8}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property: #009033;--json-index: #676dff;--json-number: #676dff;--json-string: #b2762e;--json-boolean: #dc155e;--json-null: #dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover,.json-view .jv-size:hover+.jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy,.json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover,.json-view--pair:hover)>:is(.json-view--copy,.json-view--edit),:is(.json-view:hover,.json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer;color:inherit}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property: #aa5d00;--json-index: #007299;--json-number: #007299;--json-string: #008000;--json-boolean: #d91e18;--json-null: #d91e18}.json-view_github{color:#005cc5;--json-property: #005cc5;--json-index: #005cc5;--json-number: #005cc5;--json-string: #032f62;--json-boolean: #005cc5;--json-null: #005cc5}.json-view_vscode{color:#005cc5;--json-property: #0451a5;--json-index: #0000ff;--json-number: #0000ff;--json-string: #a31515;--json-boolean: #0000ff;--json-null: #0000ff}.json-view_atom{color:#383a42;--json-property: #e45649;--json-index: #986801;--json-number: #986801;--json-string: #50a14f;--json-boolean: #0184bc;--json-null: #0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property: #3a9685;--json-index: #ae408b;--json-number: #ae408b;--json-string: #8123a9;--json-boolean: #0184bc;--json-null: #0184bc}
@@ -0,0 +1 @@
1
+ "use strict";function o(e){return{workbench:[{packageName:"@motiadev/plugin-logs",label:"Logs",position:"bottom",componentName:"LogsPage",labelIcon:"logs"}]}}module.exports=o;
@@ -0,0 +1,3 @@
1
+ import { MotiaPlugin, MotiaPluginContext } from '@motiadev/core';
2
+ export default function plugin(motia: MotiaPluginContext): MotiaPlugin;
3
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAErE,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW,CAYrE"}
package/dist/plugin.js ADDED
@@ -0,0 +1,16 @@
1
+ function e(o) {
2
+ return {
3
+ workbench: [
4
+ {
5
+ packageName: "@motiadev/plugin-logs",
6
+ label: "Logs",
7
+ position: "bottom",
8
+ componentName: "LogsPage",
9
+ labelIcon: "logs"
10
+ }
11
+ ]
12
+ };
13
+ }
14
+ export {
15
+ e as default
16
+ };
@@ -6,5 +6,5 @@ export type LogsState = {
6
6
  resetLogs: () => void;
7
7
  selectLogId: (logId?: string) => void;
8
8
  };
9
- export declare const useLogsStore: import("zustand").UseBoundStore<import("zustand").StoreApi<LogsState>>;
9
+ export declare const useLogsStore: import('zustand').UseBoundStore<import('zustand').StoreApi<LogsState>>;
10
10
  //# sourceMappingURL=use-logs-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-logs-store.d.ts","sourceRoot":"","sources":["../../src/stores/use-logs-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,YAAY,wEAWtB,CAAA"}
1
+ {"version":3,"file":"use-logs-store.d.ts","sourceRoot":"","sources":["../../src/stores/use-logs-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,YAAY,wEAWtB,CAAA"}