@motiadev/plugin-observability 0.15.6-beta.174 → 0.16.0-beta.175
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/index.d.ts.map +1 -1
- package/dist/index.js +440 -391
- package/dist/index.js.map +1 -1
- package/dist/styles.css +28 -0
- package/package.json +5 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["create","ObservabilityState","selectedTraceGroupId","selectedTraceId","search","selectTraceGroupId","groupId","selectTraceId","traceId","setSearch","clearTraces","useObservabilityStore","set","undefined","fetch","method","Button","cn","Input","Search","Trash","X","memo","useObservabilityStore","SearchBar","$","_c","$i","Symbol","for","search","_temp","setSearch","_temp2","clearTraces","_temp3","t0","e","target","value","t1","t2","t3","t4","t5","visible","invisible","t6","t7","t8","t9","t10","t11","displayName","state","state_0","state_1","memo","useObservabilityStore","TraceEmptyState","React","FC","$","_c","$i","Symbol","for","selectedGroupId","_temp","t0","displayName","state","selectedTraceGroupId","useEffect","useRef","useState","TraceGroup","useGetEndTime","group","$","_c","$i","Symbol","for","groupEndTime","endTime","t0","Date","now","setEndTime","intervalRef","t1","t2","current","clearInterval","setInterval","formatDuration","duration","undefined","toFixed","cn","React","memo","useCallback","useMemo","GRADIENT_CLASSES","running","completed","failed","const","Props","traceId","traceName","traceStatus","traceStartTime","traceEndTime","groupStartTime","groupEndTime","onExpand","TraceItem","FC","t0","$","_c","$i","Symbol","for","t1","handleClick","t2","t3","barClassName","t4","t5","Date","now","t6","marginLeft","width","barStyle","t7","t8","t9","displayName","MessageCircle","Package","Radio","ScrollText","React","TraceEvent","TraceEventType","Props","event","EventIcon","FC","t0","$","_c","$i","Symbol","for","type","t1","Button","cn","Check","Copy","useCallback","useState","CopyButtonProps","textToCopy","className","title","CopyButton","React","FC","t0","$","_c","$i","Symbol","for","copied","setCopied","t1","navigator","clipboard","writeText","setTimeout","t2","error","console","handleCopy","t3","t4","t5","cn","PopoverPrimitive","ComponentProps","FC","Popover","Root","t0","$","_c","$i","Symbol","for","props","t1","PopoverTrigger","Trigger","PopoverContent","Content","className","t2","align","sideOffset","undefined","t3","t4","PopoverAnchor","Anchor","formatArgumentValue","arg","JSON","stringify","toString","memo","useMemo","ReactJson","CopyButton","Popover","PopoverContent","PopoverTrigger","formatArgumentValue","ArgumentProps","arg","popover","Argument","React","FC","t0","$","_c","$i","Symbol","for","t1","undefined","isObject","t2","value","t3","JSON","stringify","textToCopy","t4","padding","t5","t6","displayName","memo","ClosingParenthesisProps","callsQuantity","noQuantity","ClosingParenthesis","React","FC","t0","$","_c","$i","Symbol","for","t1","undefined","hasCalls","t2","t3","t4","displayName","cn","forwardRef","FunctionCallContentProps","topLevelClassName","objectName","functionName","className","FunctionCallContent","HTMLDivElement","t0","ref","$","_c","$i","Symbol","for","props","t1","t2","t3","t4","t5","t6","displayName","Fragment","memo","useMemo","CopyButton","Popover","PopoverContent","PopoverTrigger","Argument","ClosingParenthesis","FunctionCallContent","Props","topLevelClassName","objectName","functionName","args","Array","callsQuantity","GRID_LAYOUT_STYLE","gridTemplateColumns","FunctionCall","React","FC","t0","$","_c","$i","Symbol","for","t1","filter","_temp","filteredArgs","t2","length","t3","argsGridStyle","t4","Boolean","prefix","join","fullPrefix","t5","map","_temp2","argsString","functionCallText","t6","t7","t8","t9","t10","t11","arg_1","index","arg","t12","t13","t14","t15","arg_2","index_0","t16","t17","displayName","undefined","arg_0","JSON","stringify","String","React","memo","useMemo","EmitEvent","FunctionCall","TraceEmitEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","topic","args","t2","displayName","LevelDot","React","memo","LogEntry","TraceLogEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","level","t2","message","displayName","React","memo","useMemo","StateEvent","FunctionCall","TraceStateEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","key","traceId","value","args","t2","operation","displayName","React","memo","useMemo","StreamEvent","FunctionCall","TraceStreamEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","Array","t2","groupId","id","args","t3","calls","operation","streamName","displayName","React","memo","TraceEvent","TraceEventType","TraceEmitEvent","TraceLogEvent","TraceStateEvent","TraceStreamEvent","FC","event","t0","$","_c","$i","Symbol","for","type","t1","displayName","React","Fragment","memo","formatDuration","TraceEvent","TraceEventType","EventIcon","Props","event","traceStartTime","TraceEventItem","FC","t0","$","_c","$i","Symbol","for","t1","t2","t3","Math","floor","timestamp","t4","t5","t6","t7","displayName","Badge","Sidebar","X","React","memo","useMemo","formatDuration","Trace","TraceEventItem","Props","trace","onClose","TraceItemDetail","FC","t0","$","_c","$i","Symbol","for","t1","t2","icon","onClick","label","actions","t3","name","t4","endTime","startTime","t5","entryPoint","type","t6","correlationId","t7","t8","events","t9","event","index","map","t10","t11","error","message","stack","t12","displayName","useStreamGroup","Button","Minus","Plus","React","memo","useMemo","useState","useGetEndTime","formatDuration","useObservabilityStore","Trace","TraceGroup","TraceItem","TraceItemDetail","TraceTimeline","FC","$","_c","$i","Symbol","for","groupId","_temp","t0","displayName","TraceTimelineComponentProps","TraceTimelineComponent","t1","streamName","traceGroupStreamArgs","data","traceGroups","t2","t3","traceGroup","id","find","group","streamGroupArgs","endTime","zoom","setZoom","selectedTraceId","_temp2","selectTraceId","_temp3","t4","trace","selectedTrace","t5","_temp4","zoomMinus","t6","_temp5","zoomPlus","t7","t8","width","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","Math","floor","startTime","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","map","trace_0","name","status","t37","t38","t39","undefined","t40","state","selectedTraceGroupId","state_0","prevZoom","prevZoom_0","useStreamGroup","useMemo","useObservabilityStore","TraceGroup","useFilteredTraceGroups","$","_c","$i","Symbol","for","t0","streamName","groupId","streamGroupArgs","data","search","_temp","t1","filter","group","name","toLowerCase","includes","id","state","Badge","BadgeProps","React","memo","TraceGroup","Props","status","duration","variantMap","running","completed","failed","default","TraceStatusBadge","FC","t0","$","_c","$i","Symbol","for","t1","t2","t3","displayName","cn","formatDistanceToNow","React","memo","useCallback","useMemo","formatDuration","useObservabilityStore","TraceStatusBadge","TraceGroupItemProps","groupId","groupName","groupStatus","groupStartTime","groupEndTime","totalSteps","activeSteps","isSelected","TraceGroupItem","FC","t0","$","_c","$i","Symbol","for","selectTraceGroupId","_temp","t1","undefined","duration","t2","onSelect","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","displayName","state","React","memo","useEffect","useMemo","useFilteredTraceGroups","useObservabilityStore","TraceGroupItem","TracesGroups","FC","$","_c","$i","Symbol","for","groups","selectedGroupId","_temp","selectTraceGroupId","_temp2","groupsLength","length","t0","bb0","lastGroup","status","id","lastRunningGroupId","t1","t2","t3","reverse","reversedGroups","t4","t5","group","name","startTime","endTime","metadata","totalSteps","activeSteps","map","displayName","state","selectedTraceGroupId","state_0","memo","SearchBar","TraceEmptyState","TraceTimeline","TracesGroups","ObservabilityPage","$","_c","$i","Symbol","for","t0","t1","t2","displayName","GanttChartSquare","memo","ObservabilityTabLabel","$","_c","$i","Symbol","for","t0","displayName"],"sources":["../src/stores/use-observability-store.ts","../src/components/search-bar.tsx","../src/components/trace-empty-state.tsx","../src/hooks/use-get-endtime.ts","../src/lib/utils.ts","../src/components/trace-item/trace-item.tsx","../src/components/events/event-icon.tsx","../src/components/ui/copy-button.tsx","../src/components/ui/popover.tsx","../src/components/events/code/utils.ts","../src/components/events/code/argument.tsx","../src/components/events/code/closing-parenthesis.tsx","../src/components/events/code/function-call-content.tsx","../src/components/events/code/function-call.tsx","../src/components/events/trace-emit-event.tsx","../src/components/events/trace-log-event.tsx","../src/components/events/trace-state-event.tsx","../src/components/events/trace-stream-event.tsx","../src/components/events/trace-event.tsx","../src/components/trace-item/trace-event-item.tsx","../src/components/trace-item/trace-item-detail.tsx","../src/components/trace-timeline.tsx","../src/hooks/use-filtered-trace-groups.ts","../src/components/trace-status.tsx","../src/components/trace-group-item.tsx","../src/components/traces-groups.tsx","../src/components/observability-page.tsx","../src/components/observability-tab-label.tsx"],"sourcesContent":["import { create } from 'zustand'\n\nexport type ObservabilityState = {\n selectedTraceGroupId: string\n selectedTraceId?: string\n search: string\n selectTraceGroupId: (groupId?: string) => void\n selectTraceId: (traceId?: string) => void\n setSearch: (search: string) => void\n clearTraces: () => void\n}\n\nexport const useObservabilityStore = create<ObservabilityState>()((set) => ({\n selectedTraceGroupId: '',\n selectedTraceId: undefined,\n search: '',\n selectTraceGroupId: (groupId) => set({ selectedTraceGroupId: groupId }),\n selectTraceId: (traceId) => set({ selectedTraceId: traceId }),\n setSearch: (search) => set({ search }),\n clearTraces: () => {\n fetch('/__motia/trace/clear', { method: 'POST' })\n },\n}))\n","import { Button, cn, Input } from '@motiadev/ui'\nimport { Search, Trash, X } from 'lucide-react'\nimport { memo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\n\nexport const SearchBar = memo(() => {\n const search = useObservabilityStore((state) => state.search)\n const setSearch = useObservabilityStore((state) => state.setSearch)\n const clearTraces = useObservabilityStore((state) => state.clearTraces)\n\n return (\n <div className=\"flex p-2 border-b gap-2\" data-testid=\"logs-search-container\">\n <div className=\"flex-1 relative\">\n <Input\n variant=\"shade\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"px-9! font-medium\"\n placeholder=\"Search by Trace ID or Step Name\"\n />\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50\" />\n <X\n className={cn(\n 'cursor-pointer absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50 hover:text-muted-foreground',\n {\n visible: search !== '',\n invisible: search === '',\n },\n )}\n onClick={() => setSearch('')}\n />\n </div>\n <Button variant=\"default\" onClick={clearTraces} className=\"h-[34px]\">\n <Trash /> Clear\n </Button>\n </div>\n )\n})\n\nSearchBar.displayName = 'SearchBar'\n","import { memo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\n\nexport const TraceEmptyState: React.FC = memo(() => {\n const selectedGroupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n\n if (selectedGroupId) {\n return null\n }\n\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-center\">\n Select a trace or trace group to view the timeline\n </div>\n )\n})\nTraceEmptyState.displayName = 'TraceEmptyState'\n","import { useEffect, useRef, useState } from 'react'\nimport type { TraceGroup } from '../types/observability'\n\nexport const useGetEndTime = (group: TraceGroup | undefined | null) => {\n const groupEndTime = group?.endTime\n const [endTime, setEndTime] = useState(() => groupEndTime || Date.now())\n const intervalRef = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n\n if (groupEndTime) {\n setEndTime(groupEndTime)\n } else {\n intervalRef.current = setInterval(() => setEndTime(Date.now()), 100)\n }\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }\n }, [groupEndTime])\n\n return endTime\n}\n","export const formatDuration = (duration?: number) => {\n if (duration === undefined || duration === null) return 'N/A'\n if (duration < 1000) return `${duration}ms`\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`\n if (duration < 3600000) return `${(duration / 60000).toFixed(1)}min`\n return `${(duration / 3600000).toFixed(1)}h`\n}\n","import { cn } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo, useCallback, useMemo } from 'react'\n\nconst GRADIENT_CLASSES = {\n running: 'bg-[repeating-linear-gradient(140deg,#BEFE29,#BEFE29_8px,#ABE625_8px,#ABE625_16px)]',\n completed: 'bg-[repeating-linear-gradient(140deg,#2862FE,#2862FE_8px,#2358E5_8px,#2358E5_16px)]',\n failed: 'bg-[repeating-linear-gradient(140deg,#EA2069,#EA2069_8px,#D41E60_8px,#D41E60_16px)]',\n} as const\n\ntype Props = {\n traceId: string\n traceName: string\n traceStatus: 'running' | 'completed' | 'failed'\n traceStartTime: number\n traceEndTime: number | undefined\n groupStartTime: number\n groupEndTime: number\n onExpand: (traceId: string) => void\n}\n\nexport const TraceItem: React.FC<Props> = memo(\n ({ traceId, traceName, traceStatus, traceStartTime, traceEndTime, groupStartTime, groupEndTime, onExpand }) => {\n const handleClick = useCallback(() => {\n onExpand(traceId)\n }, [onExpand, traceId])\n\n const barClassName = useMemo(\n () => cn('h-[24px] rounded-[4px] hover:opacity-80 transition-all duration-200', GRADIENT_CLASSES[traceStatus]),\n [traceStatus],\n )\n\n const barStyle = useMemo(\n () => ({\n marginLeft: `${((traceStartTime - groupStartTime) / (groupEndTime - groupStartTime)) * 100}%`,\n width: traceEndTime\n ? `${((traceEndTime - traceStartTime) / (groupEndTime - groupStartTime)) * 100}%`\n : `${((Date.now() - traceStartTime) / (groupEndTime - groupStartTime)) * 100}%`,\n }),\n [traceStartTime, traceEndTime, groupStartTime, groupEndTime],\n )\n\n return (\n <div\n className=\"flex hover:bg-muted-foreground/10 relative cursor-pointer\"\n onClick={handleClick}\n data-testid=\"trace-timeline-item\"\n >\n <div className=\"flex items-center min-w-[200px] max-w-[200px] h-[32px] max-h-[32px] py-4 px-2 text-sm font-semibold text-foreground sticky left-0 bg-card z-9\">\n <span className=\"truncate min-w-0\">{traceName}</span>\n </div>\n <div className=\"flex w-full flex-row items-center hover:bg-muted/50 rounded-md\">\n <div className=\"relative w-full h-[32px] flex items-center\">\n <div className={barClassName} style={barStyle} />\n </div>\n </div>\n </div>\n )\n },\n)\nTraceItem.displayName = 'TraceItem'\n","import { MessageCircle, Package, Radio, ScrollText } from 'lucide-react'\nimport type React from 'react'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\n\ntype Props = {\n event: TraceEventType\n}\n\nexport const EventIcon: React.FC<Props> = ({ event }) => {\n if (event.type === 'log') {\n return <ScrollText className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'emit') {\n return <MessageCircle className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'state') {\n return <Package className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'stream') {\n return <Radio className=\"w-4 h-4 text-muted-foreground\" />\n }\n}\n","import { Button, cn } from '@motiadev/ui'\nimport { Check, Copy } from 'lucide-react'\nimport { useCallback, useState } from 'react'\n\ntype CopyButtonProps = {\n textToCopy: string\n className?: string\n title?: string\n}\n\nexport const CopyButton: React.FC<CopyButtonProps> = ({ textToCopy, className, title }) => {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(textToCopy)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch (error) {\n console.error('Failed to copy:', error)\n }\n }, [textToCopy])\n\n return (\n <Button\n variant=\"icon\"\n size=\"icon\"\n onClick={handleCopy}\n className={cn('cursor-pointer p-3 rounded-full', className)}\n title={title ?? (copied ? 'Copied!' : 'Copy')}\n >\n {copied ? <Check className=\"w-4 h-4 text-green-500\" /> : <Copy className=\"w-4 h-4 text-gray-400\" />}\n </Button>\n )\n}\n","import { cn } from '@motiadev/ui'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport type { ComponentProps, FC } from 'react'\n\nexport const Popover: FC<ComponentProps<typeof PopoverPrimitive.Root>> = ({ ...props }) => {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nexport const PopoverTrigger: FC<ComponentProps<typeof PopoverPrimitive.Trigger>> = ({ ...props }) => {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nexport const PopoverContent: FC<ComponentProps<typeof PopoverPrimitive.Content>> = ({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}) => {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport const PopoverAnchor: FC<ComponentProps<typeof PopoverPrimitive.Anchor>> = ({ ...props }) => {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n","export const formatArgumentValue = (arg: string | object | false | null): string => {\n if (typeof arg === 'object' && arg !== null) {\n return JSON.stringify(arg, null, 1)\n }\n if (arg === null) {\n return 'null'\n }\n\n return arg.toString()\n}\n","import { memo, useMemo } from 'react'\nimport ReactJson from 'react18-json-view'\nimport { CopyButton } from '../../../components/ui/copy-button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../components/ui/popover'\nimport 'react18-json-view/src/dark.css'\nimport 'react18-json-view/src/style.css'\nimport { formatArgumentValue } from './utils'\n\ntype ArgumentProps = {\n arg: string | object | false\n popover?: boolean\n}\n\nexport const Argument: React.FC<ArgumentProps> = memo(({ arg, popover = true }) => {\n const isObject = useMemo(() => typeof arg === 'object' && arg !== null, [arg])\n\n const value = useMemo(() => formatArgumentValue(arg), [arg])\n\n const textToCopy = useMemo(() => JSON.stringify(arg, null, 2), [arg])\n\n if (!popover) {\n return (\n <>\n {isObject ? (\n <ReactJson src={arg} theme=\"default\" enableClipboard={false} style={{ padding: 0 }} />\n ) : (\n <span className=\"font-mono text-blue-500\">{value}</span>\n )}\n </>\n )\n }\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <span className=\"truncate font-mono text-blue-500 cursor-pointer inline-block\">{value}</span>\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-md w-auto max-w-2xl relative max-h-[50vh] overflow-y-auto\"\n hideWhenDetached\n >\n {isObject ? (\n <div>\n <CopyButton textToCopy={textToCopy} className=\"absolute top-4 right-4\" title=\"Copy JSON\" />\n <ReactJson src={arg} theme=\"default\" enableClipboard={false} style={{ padding: 0 }} />\n </div>\n ) : (\n <div className=\"flex items-center justify-between\">\n <span>{value}</span>\n <CopyButton textToCopy={textToCopy} className=\"ml-2\" title=\"Copy JSON\" />\n </div>\n )}\n </PopoverContent>\n </Popover>\n )\n})\nArgument.displayName = 'Argument'\n","import { memo } from 'react'\n\ntype ClosingParenthesisProps = {\n callsQuantity?: number\n noQuantity?: boolean\n}\n\nexport const ClosingParenthesis: React.FC<ClosingParenthesisProps> = memo(({ callsQuantity, noQuantity = false }) => {\n const hasCalls = callsQuantity && callsQuantity > 1\n\n return (\n <div className=\"flex items-center\">\n <span className=\"font-mono text-emerald-500\">)</span>\n {!noQuantity && hasCalls && <span className=\"font-mono text-muted-foreground\"> x{callsQuantity}</span>}\n </div>\n )\n})\nClosingParenthesis.displayName = 'ClosingParenthesis'\n","import { cn } from '@motiadev/ui'\nimport { forwardRef } from 'react'\n\ntype FunctionCallContentProps = {\n topLevelClassName?: string\n objectName?: string\n functionName: string\n className?: string\n}\n\nexport const FunctionCallContent = forwardRef<HTMLDivElement, FunctionCallContentProps>(\n ({ topLevelClassName, objectName, functionName, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('flex items-center', className)} {...props}>\n {topLevelClassName && (\n <>\n <span className=\"font-mono text-pink-500\">{topLevelClassName}</span>\n <span>.</span>\n </>\n )}\n {objectName && (\n <>\n <span className=\"font-mono text-pink-500\">{objectName}</span>\n <span>.</span>\n </>\n )}\n <span className=\"font-mono text-pink-500\">{functionName}</span>\n <span className=\"font-mono text-emerald-500\">(</span>\n </div>\n )\n },\n)\nFunctionCallContent.displayName = 'FunctionCallContent'\n","import { Fragment, memo, useMemo } from 'react'\nimport { CopyButton } from '../../../components/ui/copy-button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../components/ui/popover'\nimport { Argument } from './argument'\nimport { ClosingParenthesis } from './closing-parenthesis'\nimport { FunctionCallContent } from './function-call-content'\n\ntype Props = {\n topLevelClassName?: string\n objectName?: string\n functionName: string\n args: Array<string | object | false | undefined>\n callsQuantity?: number\n}\n\nconst GRID_LAYOUT_STYLE = { gridTemplateColumns: 'max-content 1fr max-content' }\n\nexport const FunctionCall: React.FC<Props> = memo(\n ({ topLevelClassName, objectName, functionName, args, callsQuantity }) => {\n const filteredArgs = useMemo(() => args.filter((arg) => arg !== undefined), [args])\n\n const argsGridStyle = useMemo(\n () => ({ gridTemplateColumns: `repeat(${filteredArgs.length * 2}, minmax(0, auto))` }),\n [filteredArgs.length],\n )\n\n const functionCallText = useMemo(() => {\n const prefix = [topLevelClassName, objectName].filter(Boolean).join('.')\n const fullPrefix = prefix ? `${prefix}.` : ''\n const argsString = filteredArgs\n .map((arg) => {\n if (typeof arg === 'object' && arg !== null) {\n return JSON.stringify(arg, null, 2)\n }\n if (arg === null) {\n return 'null'\n }\n if (typeof arg === 'string') {\n return `'${arg}'`\n }\n return String(arg)\n })\n .join(', ')\n return `${fullPrefix}${functionName}(${argsString})`\n }, [topLevelClassName, objectName, functionName, filteredArgs])\n\n return (\n <div className=\"grid overflow-hidden items-center\" style={GRID_LAYOUT_STYLE}>\n <Popover>\n <PopoverTrigger asChild>\n <FunctionCallContent\n className=\"cursor-pointer\"\n functionName={functionName}\n topLevelClassName={topLevelClassName}\n objectName={objectName}\n />\n </PopoverTrigger>\n <PopoverContent\n className=\"grid grid-rows-auto backdrop-blur-md w-auto max-w-2xl max-h-[50vh] overflow-y-auto\"\n hideWhenDetached\n >\n <div className=\"flex items-center justify-between gap-2\">\n <FunctionCallContent\n functionName={functionName}\n topLevelClassName={topLevelClassName}\n objectName={objectName}\n />\n <CopyButton textToCopy={functionCallText} />\n </div>\n {filteredArgs.map((arg, index) => (\n <div key={index} className=\"grid grid-cols-[auto_1fr] items-center pl-4\">\n <Argument arg={arg} popover={false} />\n {index < filteredArgs.length - 1 && <span>, </span>}\n </div>\n ))}\n <ClosingParenthesis callsQuantity={callsQuantity} noQuantity />\n </PopoverContent>\n </Popover>\n <div className=\"grid items-center min-w-0\" style={argsGridStyle}>\n {filteredArgs.map((arg, index) => (\n <Fragment key={index}>\n <Argument arg={arg} />\n {index < filteredArgs.length - 1 && <span>, </span>}\n </Fragment>\n ))}\n </div>\n <ClosingParenthesis callsQuantity={callsQuantity} />\n </div>\n )\n },\n)\nFunctionCall.displayName = 'FunctionCall'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { EmitEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\n\nexport const TraceEmitEvent: React.FC<{ event: EmitEvent }> = memo(({ event }) => {\n const args = useMemo(() => [{ topic: event.topic, data: event.data }], [event])\n return <FunctionCall functionName=\"emit\" args={args} />\n})\nTraceEmitEvent.displayName = 'TraceEmitEvent'\n","import { LevelDot } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo } from 'react'\nimport type { LogEntry } from '../../types/observability'\n\nexport const TraceLogEvent: React.FC<{ event: LogEntry }> = memo(({ event }) => {\n return (\n <div className=\"flex items-center gap-2\">\n <LevelDot level={event.level} /> {event.message}\n </div>\n )\n})\nTraceLogEvent.displayName = 'TraceLogEvent'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { StateEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\nexport const TraceStateEvent: React.FC<{ event: StateEvent }> = memo(({ event }) => {\n const args = useMemo(() => [event.data.traceId, event.data.key, event.data.value], [event])\n return <FunctionCall objectName=\"state\" functionName={event.operation} args={args} />\n})\nTraceStateEvent.displayName = 'TraceStateEvent'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { StreamEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\n\nexport const TraceStreamEvent: React.FC<{ event: StreamEvent }> = memo(({ event }) => {\n const args = useMemo(\n () => [event.data.groupId, event.data.id, event.data.data as unknown as Array<string | object | false | undefined>],\n [event],\n )\n return (\n <FunctionCall\n topLevelClassName=\"streams\"\n objectName={event.streamName}\n functionName={event.operation}\n args={args}\n callsQuantity={event.calls}\n />\n )\n})\nTraceStreamEvent.displayName = 'TraceStreamEvent'\n","import type React from 'react'\nimport { memo } from 'react'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\nimport { TraceEmitEvent } from './trace-emit-event'\nimport { TraceLogEvent } from './trace-log-event'\nimport { TraceStateEvent } from './trace-state-event'\nimport { TraceStreamEvent } from './trace-stream-event'\n\nexport const TraceEvent: React.FC<{ event: TraceEventType }> = memo(({ event }) => {\n if (event.type === 'log') {\n return <TraceLogEvent event={event} />\n } else if (event.type === 'emit') {\n return <TraceEmitEvent event={event} />\n } else if (event.type === 'state') {\n return <TraceStateEvent event={event} />\n } else if (event.type === 'stream') {\n return <TraceStreamEvent event={event} />\n }\n})\nTraceEvent.displayName = 'TraceEvent'\n","import type React from 'react'\nimport { Fragment, memo } from 'react'\nimport { formatDuration } from '../../lib/utils'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\nimport { EventIcon } from '../events/event-icon'\nimport { TraceEvent } from '../events/trace-event'\n\ntype Props = {\n event: TraceEventType\n traceStartTime: number\n}\n\nexport const TraceEventItem: React.FC<Props> = memo(({ event, traceStartTime }) => {\n return (\n <Fragment>\n <div className=\"grid place-items-center\">\n <div className=\"w-1 h-1 rounded-full bg-emerald-500 outline outline-2 outline-emerald-500/50 -ml-[26px]\"></div>\n </div>\n <div className=\"grid place-items-center\">\n <EventIcon event={event} />\n </div>\n <div className=\"grid place-items-center\">\n <span className=\"text-sm font-mono text-muted-foreground\">\n +{formatDuration(Math.floor(event.timestamp - traceStartTime))}\n </span>\n </div>\n <div className=\"grid place-items-start\">\n <TraceEvent event={event} />\n </div>\n </Fragment>\n )\n})\nTraceEventItem.displayName = 'TraceEventItem'\n","import { Badge, Sidebar } from '@motiadev/ui'\nimport { X } from 'lucide-react'\nimport type React from 'react'\nimport { memo, useMemo } from 'react'\nimport { formatDuration } from '../../lib/utils'\nimport type { Trace } from '../../types/observability'\nimport { TraceEventItem } from './trace-event-item'\n\ntype Props = {\n trace: Trace\n onClose: () => void\n}\n\nexport const TraceItemDetail: React.FC<Props> = memo(({ trace, onClose }) => {\n const actions = useMemo(() => [{ icon: <X />, onClick: onClose, label: 'Close' }], [onClose])\n return (\n <Sidebar\n onClose={onClose}\n initialWidth={600}\n title=\"Trace Details\"\n subtitle={`Viewing details from step ${trace.name}`}\n actions={actions}\n >\n <div className=\"px-2 overflow-auto\">\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground mb-4\">\n {trace.endTime && <span>Duration: {formatDuration(trace.endTime - trace.startTime)}</span>}\n <div className=\"bg-blue-500 font-bold text-xs px-[4px] py-[2px] rounded-sm text-blue-100\">\n {trace.entryPoint.type}\n </div>\n {trace.correlationId && <Badge variant=\"outline\">Correlated: {trace.correlationId}</Badge>}\n </div>\n <div className=\"grid grid-cols-[auto_auto_auto_1fr] gap-x-2 gap-y-3 font-mono text-xs border-l-1 border-gray-500/40 pl-6\">\n {trace.events.map((event, index) => (\n <TraceEventItem key={index} event={event} traceStartTime={trace.startTime} />\n ))}\n </div>\n </div>\n {trace.error && (\n <div className=\"p-4 bg-red-800/10\">\n <div className=\"text-sm text-red-800 dark:text-red-400 font-semibold\">{trace.error.message}</div>\n <div className=\"text-sm text-red-800 dark:text-red-400 pl-4\">{trace.error.stack}</div>\n </div>\n )}\n </Sidebar>\n )\n})\nTraceItemDetail.displayName = 'TraceItemDetail'\n","import { useStreamGroup } from '@motiadev/stream-client-react'\nimport { Button } from '@motiadev/ui'\nimport { Minus, Plus } from 'lucide-react'\nimport type React from 'react'\nimport { memo, useMemo, useState } from 'react'\nimport { useGetEndTime } from '../hooks/use-get-endtime'\nimport { formatDuration } from '../lib/utils'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport type { Trace, TraceGroup } from '../types/observability'\nimport { TraceItem } from './trace-item/trace-item'\nimport { TraceItemDetail } from './trace-item/trace-item-detail'\n\nexport const TraceTimeline: React.FC = memo(() => {\n const groupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n if (!groupId) return null\n return <TraceTimelineComponent groupId={groupId} />\n})\nTraceTimeline.displayName = 'TraceTimeline'\n\ninterface TraceTimelineComponentProps {\n groupId: string\n}\nconst TraceTimelineComponent: React.FC<TraceTimelineComponentProps> = memo(({ groupId }) => {\n const traceGroupStreamArgs = useMemo(() => ({ streamName: 'motia-trace-group', groupId: 'default' }), [])\n const { data: traceGroups } = useStreamGroup<TraceGroup>(traceGroupStreamArgs)\n const group = useMemo(() => traceGroups.find((traceGroup) => traceGroup.id === groupId), [traceGroups, groupId])\n\n const streamGroupArgs = useMemo(() => ({ streamName: 'motia-trace', groupId }), [groupId])\n const { data } = useStreamGroup<Trace>(streamGroupArgs)\n\n const endTime = useGetEndTime(group)\n const [zoom, setZoom] = useState(100)\n const selectedTraceId = useObservabilityStore((state) => state.selectedTraceId)\n const selectTraceId = useObservabilityStore((state) => state.selectTraceId)\n\n const selectedTrace = useMemo(() => data?.find((trace) => trace.id === selectedTraceId), [data, selectedTraceId])\n\n const zoomMinus = () => zoom > 100 && setZoom((prevZoom) => prevZoom - 10)\n const zoomPlus = () => zoom < 200 && setZoom((prevZoom) => prevZoom + 10)\n\n if (!group) return null\n\n return (\n <>\n <div className=\"flex flex-col flex-1 relative min-h-full min-w-[1000px]\">\n <div className=\"flex flex-col\" style={{ width: `${zoom}%` }}>\n <div className=\"flex flex-1 bg-background\" style={{ width: `${zoom}%` }}>\n <div className=\"shrink-0 w-[200px] h-[37px] flex items-center justify-center gap-2 sticky left-0 top-0 z-10 bg-card backdrop-blur-xs backdrop-filter\">\n <Button variant=\"icon\" size=\"sm\" className=\"px-2\" onClick={zoomMinus} disabled={zoom <= 100}>\n <Minus className=\"w-4 h-4 cursor-pointer\" />\n </Button>\n <span className=\"min-w-12 text-center select-none text-sm font-bold text-muted-foreground\">{zoom}%</span>\n <Button variant=\"icon\" size=\"sm\" className=\"px-2\" onClick={zoomPlus} disabled={zoom >= 200}>\n <Plus className=\"w-4 h-4 cursor-pointer\" />\n </Button>\n </div>\n <div className=\"flex justify-between font-mono p-2 w-full text-xs text-muted-foreground bg-card\">\n <span>0ms</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.25))}</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.5))}</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.75))}</span>\n <span>{formatDuration(Math.floor(endTime - group.startTime))}</span>\n </div>\n </div>\n\n <div className=\"flex flex-col h-full\" style={{ width: `${zoom}%` }}>\n {data?.map((trace) => (\n <TraceItem\n key={trace.id}\n traceId={trace.id}\n traceName={trace.name}\n traceStatus={trace.status}\n traceStartTime={trace.startTime}\n traceEndTime={trace.endTime}\n groupStartTime={group.startTime}\n groupEndTime={endTime}\n onExpand={selectTraceId}\n />\n ))}\n </div>\n </div>\n </div>\n {selectedTrace && <TraceItemDetail trace={selectedTrace} onClose={() => selectTraceId(undefined)} />}\n </>\n )\n})\nTraceTimelineComponent.displayName = 'TraceTimelineComponent'\n","import { useStreamGroup } from '@motiadev/stream-client-react'\nimport { useMemo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport type { TraceGroup } from '../types/observability'\n\nexport const useFilteredTraceGroups = () => {\n const streamGroupArgs = useMemo(() => ({ streamName: 'motia-trace-group', groupId: 'default' }), [])\n const { data } = useStreamGroup<TraceGroup>(streamGroupArgs)\n\n const search = useObservabilityStore((state) => state.search)\n\n return useMemo(\n () =>\n data?.filter(\n (group) =>\n group.name.toLowerCase().includes(search.toLowerCase()) ||\n group.id.toLowerCase().includes(search.toLowerCase()),\n ),\n [data, search],\n )\n}\n","import { Badge, type BadgeProps } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo } from 'react'\nimport type { TraceGroup } from '@/types/observability'\n\ntype Props = {\n status: TraceGroup['status']\n duration?: string\n}\n\nconst variantMap = {\n running: 'info',\n completed: 'success',\n failed: 'error',\n default: 'default',\n}\n\nexport const TraceStatusBadge: React.FC<Props> = memo(({ status, duration }) => (\n <Badge variant={variantMap[status] as BadgeProps['variant']}>\n {duration && status !== 'failed' ? duration : status}\n </Badge>\n))\n\nTraceStatusBadge.displayName = 'TraceStatusBadge'\n","import { cn } from '@motiadev/ui'\nimport { formatDistanceToNow } from 'date-fns'\nimport type React from 'react'\nimport { memo, useCallback, useMemo } from 'react'\nimport { formatDuration } from '../lib/utils'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport { TraceStatusBadge } from './trace-status'\n\ninterface TraceGroupItemProps {\n groupId: string\n groupName: string\n groupStatus: 'running' | 'completed' | 'failed'\n groupStartTime: number\n groupEndTime: number | undefined\n totalSteps: number\n activeSteps: number\n isSelected: boolean\n}\n\nexport const TraceGroupItem: React.FC<TraceGroupItemProps> = memo(\n ({ groupId, groupName, groupStatus, groupStartTime, groupEndTime, totalSteps, activeSteps, isSelected }) => {\n const selectTraceGroupId = useObservabilityStore((state) => state.selectTraceGroupId)\n\n const duration = useMemo(\n () => (groupEndTime ? formatDuration(groupEndTime - groupStartTime) : undefined),\n [groupEndTime, groupStartTime],\n )\n\n const onSelect = useCallback(() => {\n selectTraceGroupId(groupId)\n }, [groupId, selectTraceGroupId])\n\n return (\n <button\n type=\"button\"\n data-testid={`trace-${groupId}`}\n key={groupId}\n className={cn(\n 'motia-trace-group cursor-pointer transition-colors w-full text-left',\n isSelected ? 'bg-muted-foreground/10' : 'hover:bg-muted/70',\n )}\n onClick={onSelect}\n >\n <div className=\"p-3 flex flex-col gap-1\">\n <div className=\"flex flex-row justify-between items-center gap-2\">\n <span className=\"font-semibold text-lg truncate flex-1 min-w-0\">{groupName}</span>\n <TraceStatusBadge status={groupStatus} duration={duration} />\n </div>\n\n <div className=\"text-xs text-muted-foreground space-y-1\">\n <div className=\"flex justify-between\">\n <div data-testid=\"trace-id\" className=\"text-xs text-muted-foreground font-mono tracking-[1px]\">\n {groupId}\n </div>\n <span>{totalSteps} steps</span>\n </div>\n <div className=\"flex justify-between\">{formatDistanceToNow(groupStartTime)} ago</div>\n {activeSteps > 0 && <div className=\"text-blue-600\">{activeSteps} active</div>}\n </div>\n </div>\n </button>\n )\n },\n)\nTraceGroupItem.displayName = 'TraceGroupItem'\n","import type React from 'react'\nimport { memo, useEffect, useMemo } from 'react'\nimport { useFilteredTraceGroups } from '../hooks/use-filtered-trace-groups'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport { TraceGroupItem } from './trace-group-item'\n\nexport const TracesGroups: React.FC = memo(() => {\n const groups = useFilteredTraceGroups()\n const selectedGroupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n const selectTraceGroupId = useObservabilityStore((state) => state.selectTraceGroupId)\n\n const groupsLength = useMemo(() => groups?.length || 0, [groups])\n const lastRunningGroupId = useMemo(() => {\n if (!groups || groups.length === 0) return ''\n const lastGroup = groups[groups.length - 1]\n return lastGroup?.status === 'running' ? lastGroup.id : ''\n }, [groups])\n\n useEffect(() => {\n if (lastRunningGroupId && lastRunningGroupId !== selectedGroupId) {\n selectTraceGroupId(lastRunningGroupId)\n } else if (!lastRunningGroupId && !groupsLength && selectedGroupId) {\n selectTraceGroupId('')\n }\n }, [lastRunningGroupId, groupsLength])\n\n const reversedGroups = useMemo(() => [...groups].reverse(), [groups])\n\n if (!groups || groups.length === 0) {\n return null\n }\n\n return (\n <div className=\"overflow-auto\">\n {reversedGroups.map((group) => (\n <TraceGroupItem\n key={group.id}\n groupId={group.id}\n groupName={group.name}\n groupStatus={group.status}\n groupStartTime={group.startTime}\n groupEndTime={group.endTime}\n totalSteps={group.metadata.totalSteps}\n activeSteps={group.metadata.activeSteps}\n isSelected={selectedGroupId === group.id}\n />\n ))}\n </div>\n )\n})\nTracesGroups.displayName = 'TracesGroups'\n","import { memo } from 'react'\nimport { SearchBar } from './search-bar'\nimport { TraceEmptyState } from './trace-empty-state'\nimport { TraceTimeline } from './trace-timeline'\nimport { TracesGroups } from './traces-groups'\n\nexport const ObservabilityPage = memo(() => {\n return (\n <div className=\"grid grid-rows-[auto_1fr] h-full\">\n <SearchBar />\n\n <div className=\"grid grid-cols-[300px_1fr] overflow-hidden\">\n <div className=\"w-[300px] border-r border-border overflow-auto h-full\" data-testid=\"traces-container\">\n <TracesGroups />\n </div>\n\n <div className=\"overflow-auto\" data-testid=\"trace-details\">\n <TraceTimeline />\n <TraceEmptyState />\n </div>\n </div>\n </div>\n )\n})\nObservabilityPage.displayName = 'ObservabilityPage'\n","import { GanttChartSquare } from 'lucide-react'\nimport { memo } from 'react'\n\nexport const ObservabilityTabLabel = memo(() => (\n <div data-testid=\"observability-link\">\n <GanttChartSquare aria-hidden=\"true\" />\n <span>Tracing</span>\n </div>\n))\nObservabilityTabLabel.displayName = 'ObservabilityTabLabel'\n"],"mappings":";;;;;;;;;;;;;;AAYA,MAAaW,wBAAwBX,QAA4B,EAAEY,SAAS;CAC1EV,sBAAsB;CACtBC,iBAAiBU;CACjBT,QAAQ;CACRC,qBAAqBC,YAAYM,IAAI,EAAEV,sBAAsBI,SAAS,CAAC;CACvEC,gBAAgBC,YAAYI,IAAI,EAAET,iBAAiBK,SAAS,CAAC;CAC7DC,YAAYL,WAAWQ,IAAI,EAAER,QAAQ,CAAC;CACtCM,mBAAmB;AACjBI,QAAM,wBAAwB,EAAEC,QAAQ,QAAQ,CAAC;;CAEpD,EAAE;;;;ACjBH,MAAaS,YAAYF,WAAK;CAAA,MAAAG,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAC5B,MAAAK,SAAeP,sBAAsBQ,QAAwB;CAC7D,MAAAC,YAAkBT,sBAAsBU,SAA2B;CACnE,MAAAC,cAAoBX,sBAAsBY,SAA6B;CAAA,IAAAC;AAAA,KAAAX,EAAA,OAAAO,WAAA;AAQrDI,QAAAC,MAAOL,UAAUK,EAACC,OAAOC,MAAO;AAAAd,IAAA,KAAAO;AAAAP,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAAA,IAAAe;AAAA,KAAAf,EAAA,OAAAK,UAAAL,EAAA,OAAAW,IAAA;AAH5CI,OAAA,oBAAC;GACS,SAAA;GACDV,OAAAA;GACG,UAAAM;GACA,WAAA;GACE,aAAA;IACZ;AAAAX,IAAA,KAAAK;AAAAL,IAAA,KAAAW;AAAAX,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACFY,OAAA,oBAAC,UAAiB,WAAA,8EAA8E;AAAAhB,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAKjF,MAAAiB,KAAAZ,WAAW;CACT,MAAAa,KAAAb,WAAW;CAAE,IAAAc;AAAA,KAAAnB,EAAA,OAAAiB,MAAAjB,EAAA,OAAAkB,IAAA;AAJjBC,OAAA3B,GACT,yHACA;GAAA4B,SACWH;GAAaI,WACXH;GAEf,CAAC;AAAAlB,IAAA,KAAAiB;AAAAjB,IAAA,KAAAkB;AAAAlB,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;CAAA,IAAAsB;AAAA,KAAAtB,EAAA,QAAAO,WAAA;AACQe,aAAMf,UAAU,GAAG;AAAAP,IAAA,MAAAO;AAAAP,IAAA,MAAAsB;OAAAA,MAAAtB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,QAAAmB,MAAAnB,EAAA,QAAAsB,IAAA;AAR9BC,OAAA,oBAAC;GACY,WAAAJ;GAOF,SAAAG;IACT;AAAAtB,IAAA,MAAAmB;AAAAnB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAe,MAAAf,EAAA,QAAAuB,IAAA;AAlBJC,OAAA,qBAAA;GAAe,WAAA;;IACbT;IAOAC;IACAO;;IAUI;AAAAvB,IAAA,MAAAe;AAAAf,IAAA,MAAAuB;AAAAvB,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,QAAAG,OAAAC,IAAA,4BAAA,EAAA;AAEJqB,OAAA,oBAAC,UAAQ;AAAAzB,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAS,aAAA;AADXiB,QAAA,qBAAC;GAAe,SAAA;GAAmBjB,SAAAA;GAAuB,WAAA;cACxDgB,IAAS;IACF;AAAAzB,IAAA,MAAAS;AAAAT,IAAA,MAAA0B;OAAAA,OAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,QAAA0B,OAAA1B,EAAA,QAAAwB,IAAA;AAvBXG,QAAA,qBAAA;GAAe,WAAA;GAAsC,eAAA;cACnDH,IAoBAE;IAGI;AAAA1B,IAAA,MAAA0B;AAAA1B,IAAA,MAAAwB;AAAAxB,IAAA,MAAA2B;OAAAA,OAAA3B,EAAA;AAAA,QAxBN2B;EA0BF;AAEF5B,UAAU6B,cAAc;AAlCM,SAAAtB,QAAAuB,OAAA;AAAA,QACoBA,MAAKxB;;AADzB,SAAAG,SAAAsB,SAAA;AAAA,QAEuBD,QAAKtB;;AAF5B,SAAAG,SAAAqB,SAAA;AAAA,QAGyBF,QAAKpB;;;;;ACL5D,MAAayB,kBAA4BF,WAAK;CAAA,MAAAK,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;AAG5C,KAFwBJ,sBAAsBU,QAAsC,CAEjE,QACV;CACR,IAAAC;AAAA,KAAAP,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAGCG,OAAA,oBAAA;GAAe,WAAA;aAA4E;IAErF;AAAAP,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAAA,QAFNO;EAIF;AACFV,gBAAgBW,cAAc;AAbgB,SAAAF,QAAAG,OAAA;AAAA,QACaA,MAAKC;;;;;ACDhE,MAAaK,iBAAgBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAC3B,MAAAK,eAAqBN,OAAKO;CAAS,IAAAC;AAAA,KAAAP,EAAA,OAAAK,cAAA;AACIE,aAAMF,gBAAgBG,KAAIC,KAAM;AAAAT,IAAA,KAAAK;AAAAL,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CAAvE,MAAA,CAAAM,SAAAI,cAA8Bd,SAASW,GAAiC;CACxE,MAAAI,cAAoBhB,OAA8B,KAAK;CAAA,IAAAiB;CAAA,IAAAC;AAAA,KAAAb,EAAA,OAAAK,cAAA;AAE7CO,aAAA;AACR,OAAID,YAAWG,SAAQ;AACrBC,kBAAcJ,YAAWG,QAAS;AAClCH,gBAAWG,UAAW;;AAGxB,OAAIT,aACFK,YAAWL,aAAa;OAExBM,aAAWG,UAAWE,kBAAkBN,WAAWF,KAAIC,KAAM,CAAC,EAAE,IAA7C;AACpB,gBAEM;AACL,QAAIE,YAAWG,SAAQ;AACrBC,mBAAcJ,YAAWG,QAAS;AAClCH,iBAAWG,UAAW;;;;AAGzBD,OAAA,CAACR,aAAa;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAY;AAAAZ,IAAA,KAAAa;QAAA;AAAAD,OAAAZ,EAAA;AAAAa,OAAAb,EAAA;;AAlBjBN,WAAUkB,IAkBPC,GAAe;AAAA,QAEXP;;;;;AC5BT,MAAaW,kBAAkBC,aAAsB;AACnD,KAAIA,aAAaC,UAAaD,aAAa,KAAM,QAAO;AACxD,KAAIA,WAAW,IAAM,QAAO,GAAGA,SAAQ;AACvC,KAAIA,WAAW,IAAO,QAAO,IAAIA,WAAW,KAAME,QAAQ,EAAE,CAAA;AAC5D,KAAIF,WAAW,KAAS,QAAO,IAAIA,WAAW,KAAOE,QAAQ,EAAE,CAAA;AAC/D,QAAO,IAAIF,WAAW,MAASE,QAAQ,EAAE,CAAA;;;;;ACD3C,MAAMM,mBAAmB;CACvBC,SAAS;CACTC,WAAW;CACXC,QAAQ;CACT;AAaD,MAAaW,YAA6BjB,MACxCmB,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAX,SAAAC,WAAAC,aAAAC,gBAAAC,cAAAC,gBAAAC,cAAAC,aAAAG;CAAyG,IAAAM;AAAA,KAAAL,EAAA,OAAAJ,YAAAI,EAAA,OAAAX,SAAA;AACxEgB,aAAA;AAC9BT,YAASP,QAAQ;;AAClBW,IAAA,KAAAJ;AAAAI,IAAA,KAAAX;AAAAW,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAFD,MAAAM,cAAoBD;CAK8D,MAAAE,KAAAxB,iBAAiBQ;CAAY,IAAAiB;AAAA,KAAAR,EAAA,OAAAO,IAAA;AAAvGC,OAAA9B,GAAG,uEAAuE6B,GAA8B;AAAAP,IAAA,KAAAO;AAAAP,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CADhH,MAAAS,eACQD;CAMQ,MAAAE,KAAA,IAAKlB,iBAAiBE,mBAAmBC,eAAeD,kBAAmB,IAAG;CACnF,MAAAiB,KAAAlB,eAAA,IACEA,eAAeD,mBAAmBG,eAAeD,kBAAmB,IAAG,KADzE,IAEEkB,KAAIC,KAAM,GAAGrB,mBAAmBG,eAAeD,kBAAmB,IAAG;CAAG,IAAAoB;AAAA,KAAAd,EAAA,OAAAU,MAAAV,EAAA,OAAAW,IAAA;AAJ5EG,OAAA;GAAAC,YACOL;GAAiFM,OACtFL;GAGR;AAAAX,IAAA,KAAAU;AAAAV,IAAA,KAAAW;AAAAX,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CANH,MAAAiB,WACSH;CAOR,IAAAI;AAAA,KAAAlB,EAAA,OAAAV,WAAA;AAQG4B,OAAA,oBAAA;GAAe,WAAA;aACb,oBAAA;IAAgB,WAAA;cAAoB5B;KACtC;IAAM;AAAAU,IAAA,KAAAV;AAAAU,IAAA,MAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,QAAAS,gBAAAT,EAAA,QAAAiB,UAAA;AACNE,OAAA,oBAAA;GAAe,WAAA;aACb,oBAAA;IAAe,WAAA;cACb,oBAAA;KAAgBV,WAAAA;KAAqBQ,OAAAA;MACvC;KACF;IAAM;AAAAjB,IAAA,MAAAS;AAAAT,IAAA,MAAAiB;AAAAjB,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,QAAAM,eAAAN,EAAA,QAAAkB,MAAAlB,EAAA,QAAAmB,IAAA;AAZRC,OAAA,qBAAA;GACY,WAAA;GACDd,SAAAA;GACG,eAAA;cAEZY,IAGAC;IAKI;AAAAnB,IAAA,MAAAM;AAAAN,IAAA,MAAAkB;AAAAlB,IAAA,MAAAmB;AAAAnB,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;AAAA,QAbNoB;EAgBL;AACDvB,UAAUwB,cAAc;;;;ACpDxB,MAAaU,aAA6BE,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAJ,UAAAG;AACzC,KAAIH,MAAKS,SAAU,OAAK;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACfE,QAAA,oBAAC,cAAqB,WAAA,kCAAkC;AAAAN,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAAxDM;YACEV,MAAKS,SAAU,QAAM;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACvBE,QAAA,oBAAC,iBAAwB,WAAA,kCAAkC;AAAAN,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAA3DM;YACEV,MAAKS,SAAU,SAAO;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACxBE,QAAA,oBAAC,WAAkB,WAAA,kCAAkC;AAAAN,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAArDM;YACEV,MAAKS,SAAU,UAAQ;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACzBE,QAAA,oBAAC,SAAgB,WAAA,kCAAkC;AAAAN,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAAnDM;;;;;;ACNX,MAAaW,cAAwCG,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAP,YAAAC,WAAAC,UAAAI;CACpD,MAAA,CAAAM,QAAAC,aAA4Bf,SAAS,MAAM;CAAA,IAAAgB;AAAA,KAAAP,EAAA,OAAAP,YAAA;AAEZc,OAAA,YAAA;AAC7B,OAAA;AACE,UAAMC,UAASC,UAAUC,UAAWjB,WAAW;AAC/Ca,cAAU,KAAK;AACfK,qBAAiBL,UAAU,MAAM,EAAE,IAAK;YAAAM,MAAA;IACjCC,MAAAA,QAAAA;AACPC,YAAOD,MAAO,mBAAmBA,MAAM;;;AAE1Cb,IAAA,KAAAP;AAAAO,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CARD,MAAAe,aAAmBR;CAQH,IAAAK;AAAA,KAAAZ,EAAA,OAAAN,WAAA;AAODkB,OAAAzB,GAAG,mCAAmCO,UAAU;AAAAM,IAAA,KAAAN;AAAAM,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CACpD,MAAAgB,KAAArB,UAAUU,SAAA,YAAA;CAA4B,IAAAY;AAAA,KAAAjB,EAAA,OAAAK,QAAA;AAE5CY,OAAAZ,SAAS,oBAAC,SAAgB,WAAA,2BAAwE,GAA1C,oBAAC,QAAe,WAAA,0BAA0B;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAkB;AAAA,KAAAlB,EAAA,OAAAe,cAAAf,EAAA,OAAAY,MAAAZ,EAAA,OAAAgB,MAAAhB,EAAA,QAAAiB,IAAA;AAPrGC,OAAA,oBAAC;GACS,SAAA;GACH,MAAA;GACIH,SAAAA;GACE,WAAAH;GACJ,OAAAI;aAENC;IACM;AAAAjB,IAAA,KAAAe;AAAAf,IAAA,KAAAY;AAAAZ,IAAA,KAAAgB;AAAAhB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAkB;OAAAA,MAAAlB,EAAA;AAAA,QARTkB;;;;;ACpBJ,MAAaK,WAA4DE,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAD,IAAA;AAAC,GAAA,IAAAM,SAAAN;AAAYC,IAAA,KAAAD;AAAAC,IAAA,KAAAK;OAAAA,SAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAK,OAAA;AAC7EC,OAAA,oBAAA,iBAAA;GAAiC,aAAA;GAAS,GAAKD;IAAS;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAM;OAAAA,MAAAN,EAAA;AAAA,QAAxDM;;AAGT,MAAaC,kBAAsER,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAD,IAAA;AAAC,GAAA,IAAAM,SAAAN;AAAYC,IAAA,KAAAD;AAAAC,IAAA,KAAAK;OAAAA,SAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAK,OAAA;AACvFC,OAAA,oBAAA,iBAAA;GAAoC,aAAA;GAAiB,GAAKD;IAAS;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAM;OAAAA,MAAAN,EAAA;AAAA,QAAnEM;;AAGT,MAAaG,kBAAsEV,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAW;CAAA,IAAAN;CAAA,IAAAC;CAAA,IAAAM;AAAA,KAAAZ,EAAA,OAAAD,IAAA;AAAC,GAAA,CAAAY,WAAAE,OAAAP,IAAAQ,YAAAF,OAAAP,SAAAN;AAKnFC,IAAA,KAAAD;AAAAC,IAAA,KAAAW;AAAAX,IAAA,KAAAK;AAAAL,IAAA,KAAAM;AAAAN,IAAA,KAAAY;QAAA;AAAAD,cAAAX,EAAA;AAAAK,UAAAL,EAAA;AAAAM,OAAAN,EAAA;AAAAY,OAAAZ,EAAA;;CAHC,MAAAa,QAAAP,OAAAS,SAAA,WAAAT;CACA,MAAAQ,aAAAF,OAAAG,SAAA,IAAAH;CAAc,IAAAI;AAAA,KAAAhB,EAAA,OAAAW,WAAA;AASGK,OAAAvB,GACT,keACAkB,UACD;AAAAX,IAAA,KAAAW;AAAAX,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAa,SAAAb,EAAA,OAAAK,SAAAL,EAAA,QAAAc,cAAAd,EAAA,QAAAgB,IAAA;AARLC,OAAA,oBAAA,iBAAA,oBACE,oBAAA,iBAAA;GACY,aAAA;GACHJ;GACKC;GACD,WAAAE;GAGV,GACGX;IAER,GAA0B;AAAAL,IAAA,KAAAa;AAAAb,IAAA,KAAAK;AAAAL,IAAA,MAAAc;AAAAd,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;AAAA,QAX1BiB;;;;;ACnBJ,MAAaG,uBAAuBC,QAAgD;AAClF,KAAI,OAAOA,QAAQ,YAAYA,QAAQ,KACrC,QAAOC,KAAKC,UAAUF,KAAK,MAAM,EAAE;AAErC,KAAIA,QAAQ,KACV,QAAO;AAGT,QAAOA,IAAIG,UAAU;;;;;ACKvB,MAAaY,WAAoCX,MAAKc,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAN,KAAAC,SAAAU,OAAAN;CAAO,MAAAJ,UAAAU,OAAAC,SAAA,OAAAD;CAC5D,MAAAE,WAA+B,OAAOb,QAAQ,YAAYA,QAAQ;CAAY,IAAAc;AAAA,KAAAR,EAAA,OAAAN,KAAA;AAElDc,OAAAhB,oBAAoBE,IAAI;AAAAM,IAAA,KAAAN;AAAAM,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAApD,MAAAS,QAA4BD;CAAgC,IAAAE;AAAA,KAAAV,EAAA,OAAAN,KAAA;AAE3BgB,OAAAC,KAAIC,UAAWlB,KAAK,MAAM,EAAE;AAAAM,IAAA,KAAAN;AAAAM,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAA7D,MAAAa,aAAiCH;AAEjC,KAAI,CAACf,SAAO;EAAA,IAAAmB;AAAA,MAAAd,EAAA,OAAAN,OAAAM,EAAA,OAAAO,YAAAP,EAAA,OAAAS,OAAA;AAERK,UAAA,4CACGP,WACC,oBAAC;IAAeb,KAAAA;IAAW,OAAA;IAA2B,iBAAA;IAAc,OAAA,EAAAqB,SAAW,GAAE;KAGlF,GADC,oBAAA;IAAgB,WAAA;cAA2BN;KAC7C,GACC;AAAAT,KAAA,KAAAN;AAAAM,KAAA,KAAAO;AAAAP,KAAA,KAAAS;AAAAT,KAAA,KAAAc;QAAAA,QAAAd,EAAA;AAAA,SANHc;;CAQH,IAAAA;AAAA,KAAAd,EAAA,OAAAS,OAAA;AAIGK,OAAA,oBAAC;GAAe,SAAA;aACd,oBAAA;IAAgB,WAAA;cAAgEL;KAClF;IAAiB;AAAAT,IAAA,KAAAS;AAAAT,IAAA,MAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,QAAAN,OAAAM,EAAA,QAAAO,YAAAP,EAAA,QAAAa,cAAAb,EAAA,QAAAS,OAAA;AACjBO,OAAA,oBAAC;GACW,WAAA;GACV,kBAAA;aAECT,WACC,qBAAA,oBACE,oBAAC;IAAuBM;IAAsB,WAAA;IAA+B,OAAA;KAC7E,sBAAC;IAAenB,KAAAA;IAAW,OAAA;IAA2B,iBAAA;IAAc,OAAA,EAAAqB,SAAW,GAAE;KACnF,IAMD,GAJC,qBAAA;IAAe,WAAA;eACb,oBAAA,oBAAON,QACP,sBAAC;KAAuBI;KAAsB,WAAA;KAAa,OAAA;MAC7D;KACF;IACe;AAAAb,IAAA,MAAAN;AAAAM,IAAA,MAAAO;AAAAP,IAAA,MAAAa;AAAAb,IAAA,MAAAS;AAAAT,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,QAAAc,MAAAd,EAAA,QAAAgB,IAAA;AAnBnBC,OAAA,qBAAC,sBACCH,IAGAE,MAgBQ;AAAAhB,IAAA,MAAAc;AAAAd,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;AAAA,QApBViB;EAsBF;AACFrB,SAASsB,cAAc;;;;ACjDvB,MAAaK,qBAAwDJ,MAAKO,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAN,eAAAC,YAAAU,OAAAN;CAAiB,MAAAJ,aAAAU,OAAAC,SAAA,QAAAD;CAC1F,MAAAE,WAAiBb,iBAAiBA,gBAAgB;CAAC,IAAAc;AAAA,KAAAR,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAI/CI,OAAA,oBAAA;GAAgB,WAAA;aAA6B;IAAQ;AAAAR,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAA,IAAAS;AAAA,KAAAT,EAAA,OAAAN,iBAAAM,EAAA,OAAAO,YAAAP,EAAA,OAAAL,YAAA;AACpDc,OAAA,CAACd,cAADY,YAA2B,qBAAA;GAAgB,WAAA;cAAkC,MAAGb;IAAqB;AAAAM,IAAA,KAAAN;AAAAM,IAAA,KAAAO;AAAAP,IAAA,KAAAL;AAAAK,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAU;AAAA,KAAAV,EAAA,OAAAS,IAAA;AAFxGC,OAAA,qBAAA;GAAe,WAAA;cACbF,IACCC;IACG;AAAAT,IAAA,KAAAS;AAAAT,IAAA,KAAAU;OAAAA,MAAAV,EAAA;AAAA,QAHNU;EAKF;AACFd,mBAAmBe,cAAc;;;;ACPjC,MAAaQ,sBAAsBN,YACjCQ,IAAAC,QAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAL;CAAA,IAAAD;CAAA,IAAAD;CAAA,IAAAY;CAAA,IAAAb;AAAA,KAAAQ,EAAA,OAAAF,IAAA;AAAC,GAAA,CAAAN,mBAAAC,YAAAC,cAAAC,cAAAU,SAAAP;AAAoEE,IAAA,KAAAF;AAAAE,IAAA,KAAAL;AAAAK,IAAA,KAAAN;AAAAM,IAAA,KAAAP;AAAAO,IAAA,KAAAK;AAAAL,IAAA,KAAAR;QAAA;AAAAG,cAAAK,EAAA;AAAAN,iBAAAM,EAAA;AAAAP,eAAAO,EAAA;AAAAK,UAAAL,EAAA;AAAAR,sBAAAQ,EAAA;;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAL,WAAA;AAEvCW,OAAAjB,GAAG,qBAAqBM,UAAU;AAAAK,IAAA,KAAAL;AAAAK,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAO;AAAA,KAAAP,EAAA,OAAAR,mBAAA;AACzDe,OAAAf,qBAAA,8CAEG,oBAAA;GAAgB,WAAA;aAA2BA;IAC3C,sBAAA,oBAAM,MAAQ,IAEjB;AAAAQ,IAAA,KAAAR;AAAAQ,IAAA,MAAAO;OAAAA,MAAAP,EAAA;CAAA,IAAAQ;AAAA,KAAAR,EAAA,QAAAP,YAAA;AACAe,OAAAf,cAAA,8CAEG,oBAAA;GAAgB,WAAA;aAA2BA;IAC3C,sBAAA,oBAAM,MAAQ,IAEjB;AAAAO,IAAA,MAAAP;AAAAO,IAAA,MAAAQ;OAAAA,MAAAR,EAAA;CAAA,IAAAS;AAAA,KAAAT,EAAA,QAAAN,cAAA;AACDe,OAAA,oBAAA;GAAgB,WAAA;aAA2Bf;IAAoB;AAAAM,IAAA,MAAAN;AAAAM,IAAA,MAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAU;AAAA,KAAAV,EAAA,QAAAG,OAAAC,IAAA,4BAAA,EAAA;AAC/DM,OAAA,oBAAA;GAAgB,WAAA;aAA6B;IAAQ;AAAAV,IAAA,MAAAU;OAAAA,MAAAV,EAAA;CAAA,IAAAW;AAAA,KAAAX,EAAA,QAAAK,SAAAL,EAAA,QAAAD,OAAAC,EAAA,QAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,IAAA;AAdvDE,OAAA,qBAAA;GAAUZ;GAAgB,WAAAO;GAAkC,GAAMD;;IAC/DE;IAMAC;IAMDC;IACAC;;IACI;AAAAV,IAAA,MAAAK;AAAAL,IAAA,MAAAD;AAAAC,IAAA,MAAAM;AAAAN,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAS;AAAAT,IAAA,MAAAW;OAAAA,MAAAX,EAAA;AAAA,QAfNW;EAkBL;AACDf,oBAAoBgB,cAAc;;;;ACjBlC,MAAMkB,oBAAoB,EAAEC,qBAAqB,+BAA+B;AAEhF,MAAaC,eAAgClB,MAC3CqB,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAZ,mBAAAC,YAAAC,cAAAC,MAAAE,kBAAAM;CAAoE,IAAAM;AAAA,KAAAL,EAAA,OAAAT,MAAA;AAChCc,OAAAd,KAAIe,OAAQC,QAA2B;AAAAP,IAAA,KAAAT;AAAAS,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAA1E,MAAAQ,eAAmCH;CAGH,MAAAI,KAAA,UAAUD,aAAYE,SAAU,EAAC;CAAoB,IAAAC;AAAA,KAAAX,EAAA,OAAAS,IAAA;AAA5EE,OAAA,EAAAhB,qBAAuBc,IAAuD;AAAAT,IAAA,KAAAS;AAAAT,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CADvF,MAAAY,gBACSD;CAER,IAAAE;AAAA,KAAAb,EAAA,OAAAX,cAAAW,EAAA,OAAAZ,mBAAA;AAGgByB,OAAA,CAACzB,mBAAmBC,WAAW,CAAAiB,OAAQQ,QAAQ;AAAAd,IAAA,KAAAX;AAAAW,IAAA,KAAAZ;AAAAY,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAA9D,MAAAe,SAAeF,GAA+CG,KAAM,IAAI;CACxE,MAAAC,aAAmBF,SAAA,GAAYA,OAAM,KAAlB;CAA0B,IAAAG;AAAA,KAAAlB,EAAA,OAAAQ,cAAA;AAC1BU,OAAAV,aAAYW,IACxBC,SAWH,CAAAJ,KACI,KAAK;AAAAhB,IAAA,KAAAQ;AAAAR,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAhBf,MAAAsB,mBAiBE,GAAUL,aAAa3B,aAAY,GAdhB4B,GAc8B;CACY,IAAAK;AAAA,KAAAvB,EAAA,QAAAV,gBAAAU,EAAA,QAAAX,cAAAW,EAAA,QAAAZ,mBAAA;AAKzDmC,OAAA,oBAAC;GAAe,SAAA;aACd,oBAAC;IACW,WAAA;IACIjC;IACKF;IACPC;KAEhB;IAAiB;AAAAW,IAAA,MAAAV;AAAAU,IAAA,MAAAX;AAAAW,IAAA,MAAAZ;AAAAY,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAV,gBAAAU,EAAA,QAAAX,cAAAW,EAAA,QAAAZ,mBAAA;AAMboC,OAAA,oBAAC;GACelC;GACKF;GACPC;IACZ;AAAAW,IAAA,MAAAV;AAAAU,IAAA,MAAAX;AAAAW,IAAA,MAAAZ;AAAAY,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,QAAAsB,kBAAA;AACFG,OAAA,oBAAC,cAAuBH,YAAAA,mBAAoB;AAAAtB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAwB,MAAAxB,EAAA,QAAAyB,IAAA;AAN9CC,OAAA,qBAAA;GAAe,WAAA;cACbF,IAKAC;IACI;AAAAzB,IAAA,MAAAwB;AAAAxB,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,QAAAQ,cAAA;EAAA,IAAAoB;AAAA,MAAA5B,EAAA,QAAAQ,aAAAE,QAAA;AACYkB,YAAAC,OAAAC,UAChB,qBAAA;IAA2B,WAAA;eACzB,oBAAC;KAAcC,KAAAA;KAAc,SAAA;MAC5B,EAAAD,QAAQtB,aAAYE,SAAU,KAAK,oBAAA,oBAAM,OAAQ;MAF1CoB,MAIX;AAAA9B,KAAA,MAAAQ,aAAAE;AAAAV,KAAA,MAAA4B;QAAAA,SAAA5B,EAAA;AALA2B,QAAAnB,aAAYW,IAAKS,MAKhB;AAAA5B,IAAA,MAAAQ;AAAAR,IAAA,MAAA2B;OAAAA,OAAA3B,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,QAAAP,eAAA;AACFmC,QAAA,oBAAC;GAAkCnC;GAAe,YAAA;IAAa;AAAAO,IAAA,MAAAP;AAAAO,IAAA,MAAA4B;OAAAA,OAAA5B,EAAA;CAAA,IAAAgC;AAAA,KAAAhC,EAAA,QAAA2B,OAAA3B,EAAA,QAAA4B,OAAA5B,EAAA,QAAA0B,IAAA;AAlBjEM,QAAA,qBAAC;GACW,WAAA;GACV,kBAAA;;IAEAN;IAQCC;IAMDC;;IACe;AAAA5B,IAAA,MAAA2B;AAAA3B,IAAA,MAAA4B;AAAA5B,IAAA,MAAA0B;AAAA1B,IAAA,MAAAgC;OAAAA,OAAAhC,EAAA;CAAA,IAAAiC;AAAA,KAAAjC,EAAA,QAAAgC,OAAAhC,EAAA,QAAAuB,IAAA;AA5BnBU,QAAA,qBAAC,sBACCV,IAQAS,OAoBQ;AAAAhC,IAAA,MAAAgC;AAAAhC,IAAA,MAAAuB;AAAAvB,IAAA,MAAAiC;OAAAA,OAAAjC,EAAA;CAAA,IAAAkC;AAAA,KAAAlC,EAAA,QAAAQ,cAAA;EAAA,IAAA2B;AAAA,MAAAnC,EAAA,QAAAQ,aAAAE,QAAA;AAEUyB,YAAAC,OAAAC,YAChB,qBAAC,uBACC,oBAAC,YAAcN,KAAAA,QACd,EAAAD,UAAQtB,aAAYE,SAAU,KAAK,oBAAA,oBAAM,OAAQ,KAFrCoB,QAIhB;AAAA9B,KAAA,MAAAQ,aAAAE;AAAAV,KAAA,MAAAmC;QAAAA,SAAAnC,EAAA;AALAkC,QAAA1B,aAAYW,IAAKgB,MAKhB;AAAAnC,IAAA,MAAAQ;AAAAR,IAAA,MAAAkC;OAAAA,OAAAlC,EAAA;CAAA,IAAAmC;AAAA,KAAAnC,EAAA,QAAAY,iBAAAZ,EAAA,QAAAkC,KAAA;AANJC,QAAA,oBAAA;GAAe,WAAA;GAAmCvB,OAAAA;aAC/CsB;IAMG;AAAAlC,IAAA,MAAAY;AAAAZ,IAAA,MAAAkC;AAAAlC,IAAA,MAAAmC;OAAAA,OAAAnC,EAAA;CAAA,IAAAsC;AAAA,KAAAtC,EAAA,QAAAP,eAAA;AACN6C,QAAA,oBAAC,sBAAkC7C,gBAAiB;AAAAO,IAAA,MAAAP;AAAAO,IAAA,MAAAsC;OAAAA,OAAAtC,EAAA;CAAA,IAAAuC;AAAA,KAAAvC,EAAA,QAAAiC,OAAAjC,EAAA,QAAAmC,OAAAnC,EAAA,QAAAsC,KAAA;AAvCtDC,QAAA,qBAAA;GAAe,WAAA;GAA2C7C,OAAAA;;IACxDuC;IA8BAE;IAQAG;;IACI;AAAAtC,IAAA,MAAAiC;AAAAjC,IAAA,MAAAmC;AAAAnC,IAAA,MAAAsC;AAAAtC,IAAA,MAAAuC;OAAAA,OAAAvC,EAAA;AAAA,QAxCNuC;EA2CL;AACD3C,aAAa4C,cAAc;AAzEzB,SAAAjC,QAAAwB,KAAA;AAAA,QAC0DA,QAAQU;;AADlE,SAAArB,SAAAsB,OAAA;AAaQ,KAAI,OAAOX,UAAQ,YAAYA,UAAQ,KAAI,QAClCY,KAAIC,UAAWb,OAAK,MAAM,EAAE;AAErC,KAAIA,UAAQ,KAAI,QACP;AAET,KAAI,OAAOA,UAAQ,SAAQ,QAClB,IAAIA,MAAG;AACf,QACMc,OAAOd,MAAI;;;;;ACnC5B,MAAaoB,iBAAiDJ,MAAKO,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAF,UAAAC;CAAS,IAAAM;AAAA,KAAAL,EAAA,OAAAF,MAAAQ,QAAAN,EAAA,OAAAF,MAAAS,OAAA;AAChDF,OAAA,CAAC;GAAAE,OAAST,MAAKS;GAAMD,MAAQR,MAAKQ;GAAO,CAAC;AAAAN,IAAA,KAAAF,MAAAQ;AAAAN,IAAA,KAAAF,MAAAS;AAAAP,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAArE,MAAAQ,OAA2BH;CAAoD,IAAAI;AAAA,KAAAT,EAAA,OAAAQ,MAAA;AACxEC,OAAA,oBAAC;GAA0B,cAAA;GAAaD;IAAQ;AAAAR,IAAA,KAAAQ;AAAAR,IAAA,KAAAS;OAAAA,MAAAT,EAAA;AAAA,QAAhDS;EACP;AACFb,eAAec,cAAc;;;;ACJ7B,MAAaK,gBAA+CF,MAAKK,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAF,UAAAC;CAAS,IAAAM;AAAA,KAAAL,EAAA,OAAAF,MAAAQ,OAAA;AAGrED,OAAA,oBAAC,YAAgB,OAAAP,MAAKQ,QAAU;AAAAN,IAAA,KAAAF,MAAAQ;AAAAN,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAA,IAAAO;AAAA,KAAAP,EAAA,OAAAF,MAAAU,WAAAR,EAAA,OAAAK,IAAA;AADlCE,OAAA,qBAAA;GAAe,WAAA;;IACbF;IAAgC;IAAEP,MAAKU;;IACnC;AAAAR,IAAA,KAAAF,MAAAU;AAAAR,IAAA,KAAAK;AAAAL,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAAA,QAFNO;EAIF;AACFX,cAAca,cAAc;;;;ACR5B,MAAaM,kBAAmDJ,MAAKO,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAF,UAAAC;CAAS,IAAAM;AAAA,KAAAL,EAAA,OAAAF,MAAAQ,KAAAC,OAAAP,EAAA,OAAAF,MAAAQ,KAAAE,WAAAR,EAAA,OAAAF,MAAAQ,KAAAG,OAAA;AAClDJ,OAAA;GAACP,MAAKQ,KAAKE;GAAUV,MAAKQ,KAAKC;GAAMT,MAAKQ,KAAKG;GAAO;AAAAT,IAAA,KAAAF,MAAAQ,KAAAC;AAAAP,IAAA,KAAAF,MAAAQ,KAAAE;AAAAR,IAAA,KAAAF,MAAAQ,KAAAG;AAAAT,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAjF,MAAAU,OAA2BL;CAAgE,IAAAM;AAAA,KAAAX,EAAA,OAAAU,QAAAV,EAAA,OAAAF,MAAAc,WAAA;AACpFD,OAAA,oBAAC;GAAwB,YAAA;GAAsB,cAAAb,MAAKc;GAAkBF;IAAQ;AAAAV,IAAA,KAAAU;AAAAV,IAAA,KAAAF,MAAAc;AAAAZ,IAAA,KAAAW;OAAAA,MAAAX,EAAA;AAAA,QAA9EW;EACP;AACFf,gBAAgBiB,cAAc;;;;ACH9B,MAAaM,mBAAqDJ,MAAKO,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAF,UAAAC;CAE1B,MAAAM,KAAAP,MAAKQ,KAAKA;CAA8D,IAAAE;AAAA,KAAAR,EAAA,OAAAF,MAAAQ,KAAAG,WAAAT,EAAA,OAAAF,MAAAQ,KAAAI,MAAAV,EAAA,OAAAK,IAAA;AAA5GG,OAAA;GAACV,MAAKQ,KAAKG;GAAUX,MAAKQ,KAAKI;GAAKL;GAAyE;AAAAL,IAAA,KAAAF,MAAAQ,KAAAG;AAAAT,IAAA,KAAAF,MAAAQ,KAAAI;AAAAV,IAAA,KAAAK;AAAAL,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CADrH,MAAAW,OACQH;CAEP,IAAAI;AAAA,KAAAZ,EAAA,OAAAW,QAAAX,EAAA,OAAAF,MAAAe,SAAAb,EAAA,OAAAF,MAAAgB,aAAAd,EAAA,OAAAF,MAAAiB,YAAA;AAECH,OAAA,oBAAC;GACmB,mBAAA;GACN,YAAAd,MAAKiB;GACH,cAAAjB,MAAKgB;GACbH;GACS,eAAAb,MAAKe;IACpB;AAAAb,IAAA,KAAAW;AAAAX,IAAA,KAAAF,MAAAe;AAAAb,IAAA,KAAAF,MAAAgB;AAAAd,IAAA,KAAAF,MAAAiB;AAAAf,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;AAAA,QANFY;EAQF;AACFhB,iBAAiBoB,cAAc;;;;ACZ/B,MAAaG,aAAkDD,MAAKS,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAF,UAAAC;AACnE,KAAID,MAAKO,SAAU,OAAK;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAF,OAAA;AACfQ,QAAA,oBAAC,iBAAqBR,QAAS;AAAAE,KAAA,KAAAF;AAAAE,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAA/BM;YACER,MAAKO,SAAU,QAAM;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAF,OAAA;AACvBQ,QAAA,oBAAC,kBAAsBR,QAAS;AAAAE,KAAA,KAAAF;AAAAE,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAAhCM;YACER,MAAKO,SAAU,SAAO;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAF,OAAA;AACxBQ,QAAA,oBAAC,mBAAuBR,QAAS;AAAAE,KAAA,KAAAF;AAAAE,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAAjCM;YACER,MAAKO,SAAU,UAAQ;EAAA,IAAAC;AAAA,MAAAN,EAAA,OAAAF,OAAA;AACzBQ,QAAA,oBAAC,oBAAwBR,QAAS;AAAAE,KAAA,KAAAF;AAAAE,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAAlCM;;EAET;AACFf,WAAWgB,cAAc;;;;ACPzB,MAAaW,iBAAkCR,MAAKU,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAL,OAAAC,mBAAAG;CAAyB,IAAAM;AAAA,KAAAL,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAGxEC,OAAA,oBAAA;GAAe,WAAA;aACb,oBAAA,SAAe,WAAA,4FACjB;IAAM;AAAAL,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAL,OAAA;AACNW,OAAA,oBAAA;GAAe,WAAA;aACb,oBAAC,aAAiBX,QACpB;IAAM;AAAAK,IAAA,KAAAL;AAAAK,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAGe,MAAAO,KAAAC,KAAIC,MAAOd,MAAKe,YAAad,eAAe;CAAA,IAAAe;AAAA,KAAAX,EAAA,OAAAO,IAAA;AAA3DI,OAAArB,eAAeiB,GAA6C;AAAAP,IAAA,KAAAO;AAAAP,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAAA,IAAAY;AAAA,KAAAZ,EAAA,OAAAW,IAAA;AAFlEC,OAAA,oBAAA;GAAe,WAAA;aACb,qBAAA;IAAgB,WAAA;eAA0C,KACtDD;KAEN;IAAM;AAAAX,IAAA,KAAAW;AAAAX,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAAA,IAAAa;AAAA,KAAAb,EAAA,OAAAL,OAAA;AACNkB,OAAA,oBAAA;GAAe,WAAA;aACb,oBAAC,cAAkBlB,QACrB;IAAM;AAAAK,IAAA,KAAAL;AAAAK,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAAA,IAAAc;AAAA,KAAAd,EAAA,QAAAM,MAAAN,EAAA,QAAAY,MAAAZ,EAAA,QAAAa,IAAA;AAdRC,OAAA,qBAAC;GACCT;GAGAC;GAGAM;GAKAC;MAGS;AAAAb,IAAA,MAAAM;AAAAN,IAAA,MAAAY;AAAAZ,IAAA,MAAAa;AAAAb,IAAA,MAAAc;OAAAA,MAAAd,EAAA;AAAA,QAfXc;EAiBF;AACFjB,eAAekB,cAAc;;;;ACnB7B,MAAaa,kBAAmCR,MAAKU,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAL,OAAAC,YAAAG;CAAkB,IAAAM;AAAA,KAAAL,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAC/BC,OAAA,oBAAC,MAAI;AAAAL,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAJ,SAAA;AAAdU,OAAA,CAAC;GAAAC,MAAQF;GAAKG,SAAWZ;GAAOa,OAAS;GAAS,CAAC;AAAAT,IAAA,KAAAJ;AAAAI,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAjF,MAAAU,UAA8BJ;CAMhB,MAAAK,KAAA,6BAA6BhB,MAAKiB;CAAO,IAAAC;AAAA,KAAAb,EAAA,OAAAL,MAAAmB,WAAAd,EAAA,OAAAL,MAAAoB,WAAA;AAK9CF,OAAAlB,MAAKmB,WAAY,qBAAA,qBAAM,cAAWvB,eAAeI,MAAKmB,UAAWnB,MAAKoB,UAAU,IAAS;AAAAf,IAAA,KAAAL,MAAAmB;AAAAd,IAAA,KAAAL,MAAAoB;AAAAf,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAL,MAAAsB,WAAAC,MAAA;AAC1FF,OAAA,oBAAA;GAAe,WAAA;aACZrB,MAAKsB,WAAWC;IACb;AAAAlB,IAAA,KAAAL,MAAAsB,WAAAC;AAAAlB,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAL,MAAAyB,eAAA;AACLD,OAAAxB,MAAKyB,iBAAkB,qBAAC;GAAc,SAAA;cAAU,gBAAazB,MAAKyB;IAAuB;AAAApB,IAAA,KAAAL,MAAAyB;AAAApB,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,QAAAa,MAAAb,EAAA,QAAAgB,MAAAhB,EAAA,QAAAmB,IAAA;AAL5FE,OAAA,qBAAA;GAAe,WAAA;;IACZR;IACDG;IAGCG;;IACG;AAAAnB,IAAA,MAAAa;AAAAb,IAAA,MAAAgB;AAAAhB,IAAA,MAAAmB;AAAAnB,IAAA,MAAAqB;OAAAA,MAAArB,EAAA;CAAA,IAAAsB;AAAA,KAAAtB,EAAA,QAAAL,MAAA4B,UAAAvB,EAAA,QAAAL,MAAAoB,WAAA;EAAA,IAAAS;AAAA,MAAAxB,EAAA,QAAAL,MAAAoB,WAAA;AAEcS,WAAAC,OAAAC,UAChB,oBAAC;IAAkCD;IAAuB,gBAAA9B,MAAKoB;MAA1CW,MACtB;AAAA1B,KAAA,MAAAL,MAAAoB;AAAAf,KAAA,MAAAwB;QAAAA,QAAAxB,EAAA;AAFAsB,OAAA3B,MAAK4B,OAAOI,IAAKH,KAEhB;AAAAxB,IAAA,MAAAL,MAAA4B;AAAAvB,IAAA,MAAAL,MAAAoB;AAAAf,IAAA,MAAAsB;OAAAA,MAAAtB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAsB,IAAA;AAHJE,OAAA,oBAAA;GAAe,WAAA;aACZF;IAGG;AAAAtB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,QAAAqB,MAAArB,EAAA,QAAAwB,IAAA;AAZRI,QAAA,qBAAA;GAAe,WAAA;cACbP,IAOAG;IAKI;AAAAxB,IAAA,MAAAqB;AAAArB,IAAA,MAAAwB;AAAAxB,IAAA,MAAA4B;OAAAA,OAAA5B,EAAA;CAAA,IAAA6B;AAAA,KAAA7B,EAAA,QAAAL,MAAAmC,OAAA;AACLD,QAAAlC,MAAKmC,SACJ,qBAAA;GAAe,WAAA;cACb,oBAAA;IAAe,WAAA;cAAwDnC,MAAKmC,MAAMC;KAClF,sBAAA;IAAe,WAAA;cAA+CpC,MAAKmC,MAAME;KAC3E;IACD;AAAAhC,IAAA,MAAAL,MAAAmC;AAAA9B,IAAA,MAAA6B;OAAAA,OAAA7B,EAAA;CAAA,IAAAiC;AAAA,KAAAjC,EAAA,QAAAU,WAAAV,EAAA,QAAAJ,WAAAI,EAAA,QAAA4B,OAAA5B,EAAA,QAAA6B,OAAA7B,EAAA,QAAAW,IAAA;AA1BHsB,QAAA,qBAAC;GACUrC;GACK,cAAA;GACR,OAAA;GACI,UAAAe;GACDD;cAETkB,KAcCC;IAMO;AAAA7B,IAAA,MAAAU;AAAAV,IAAA,MAAAJ;AAAAI,IAAA,MAAA4B;AAAA5B,IAAA,MAAA6B;AAAA7B,IAAA,MAAAW;AAAAX,IAAA,MAAAiC;OAAAA,OAAAjC,EAAA;AAAA,QA3BViC;EA6BF;AACFpC,gBAAgBqC,cAAc;;;;AClC9B,MAAagB,gBAA0BV,WAAK;CAAA,MAAAY,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAC1C,MAAAK,UAAgBZ,sBAAsBa,QAAsC;AAC5E,KAAI,CAACD,QAAO,QAAS;CAAI,IAAAE;AAAA,KAAAP,EAAA,OAAAK,SAAA;AAClBE,OAAA,oBAAC,0BAAgCF,UAAW;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAAA,QAA5CO;EACP;AACFT,cAAcU,cAAc;AAK5B,MAAME,yBAAgEtB,MAAKmB,OAAA;CAAA,MAAAP,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAK,YAAAE;CAAW,IAAAI;AAAA,KAAAX,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACzCO,OAAA;GAAAC,YAAc;GAAmBP,SAAW;GAAW;AAAAL,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CACnG,MAAA,EAAAc,MAAAC,gBAA8BhC,eADc4B,GACkC;CAAA,IAAAK;AAAA,KAAAhB,EAAA,OAAAK,WAAAL,EAAA,OAAAe,aAAA;EAAA,IAAAE;AAAA,MAAAjB,EAAA,OAAAK,SAAA;AACjCY,WAAAC,eAAgBA,WAAUC,OAAQd;AAAOL,KAAA,KAAAK;AAAAL,KAAA,KAAAiB;QAAAA,QAAAjB,EAAA;AAA1DgB,OAAAD,YAAWK,KAAMH,KAA0C;AAAAjB,IAAA,KAAAK;AAAAL,IAAA,KAAAe;AAAAf,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAvF,MAAAqB,QAA4BL;CAAoF,IAAAC;AAAA,KAAAjB,EAAA,OAAAK,SAAA;AAEzEY,OAAA;GAAAL,YAAc;GAAaP;GAAW;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAC7E,MAAA,EAAAc,SAAiB/B,eADsBkC,GACgB;CAEvD,MAAAM,UAAgBhC,cAAc8B,MAAM;CACpC,MAAA,CAAAG,MAAAC,WAAwBnC,SAAS,IAAI;CACrC,MAAAoC,kBAAwBjC,sBAAsBkC,SAAiC;CAC/E,MAAAC,gBAAsBnC,sBAAsBoC,OAA+B;CAAA,IAAAC;AAAA,KAAA9B,EAAA,OAAAc,QAAAd,EAAA,QAAA0B,iBAAA;AAEvCI,OAAAhB,MAAIM,MAAOW,UAAWA,MAAKZ,OAAQO,gBAAgB;AAAA1B,IAAA,KAAAc;AAAAd,IAAA,MAAA0B;AAAA1B,IAAA,MAAA8B;OAAAA,MAAA9B,EAAA;CAAvF,MAAAgC,gBAAoCF;CAA6E,IAAAG;AAAA,KAAAjC,EAAA,QAAAwB,MAAA;AAE/FS,aAAMT,OAAO,OAAOC,QAAQS,OAA4B;AAAAlC,IAAA,MAAAwB;AAAAxB,IAAA,MAAAiC;OAAAA,MAAAjC,EAAA;CAA1E,MAAAmC,YAAkBF;CAAwD,IAAAG;AAAA,KAAApC,EAAA,QAAAwB,MAAA;AACzDY,aAAMZ,OAAO,OAAOC,QAAQY,OAA4B;AAAArC,IAAA,MAAAwB;AAAAxB,IAAA,MAAAoC;OAAAA,MAAApC,EAAA;CAAzE,MAAAsC,WAAiBF;AAEjB,KAAI,CAACf,MAAK,QAAS;CAKkC,MAAAkB,KAAA,GAAGf,KAAI;CAAG,IAAAgB;AAAA,KAAAxC,EAAA,QAAAuC,IAAA;AAAnBC,OAAA,EAAAC,OAASF,IAAY;AAAAvC,IAAA,MAAAuC;AAAAvC,IAAA,MAAAwC;OAAAA,MAAAxC,EAAA;CACE,MAAA0C,KAAA,GAAGlB,KAAI;CAAG,IAAAmB;AAAA,KAAA3C,EAAA,QAAA0C,IAAA;AAAnBC,QAAA,EAAAF,OAASC,IAAY;AAAA1C,IAAA,MAAA0C;AAAA1C,IAAA,MAAA2C;OAAAA,OAAA3C,EAAA;CAEa,MAAA4C,MAAApB,QAAQ;CAAG,IAAAqB;AAAA,KAAA7C,EAAA,QAAAG,OAAAC,IAAA,4BAAA,EAAA;AACzFyC,QAAA,oBAAC,SAAgB,WAAA,2BAA2B;AAAA7C,IAAA,MAAA6C;OAAAA,OAAA7C,EAAA;CAAA,IAAA8C;AAAA,KAAA9C,EAAA,QAAA4C,OAAA5C,EAAA,QAAAmC,WAAA;AAD9CW,QAAA,oBAAC;GAAe,SAAA;GAAY,MAAA;GAAe,WAAA;GAAgBX,SAAAA;GAAqB,UAAAS;aAC9EC;IACO;AAAA7C,IAAA,MAAA4C;AAAA5C,IAAA,MAAAmC;AAAAnC,IAAA,MAAA8C;OAAAA,OAAA9C,EAAA;CAAA,IAAA+C;AAAA,KAAA/C,EAAA,QAAAwB,MAAA;AACTuB,QAAA,qBAAA;GAAgB,WAAA;cAA4EvB,MAAK;IAAQ;AAAAxB,IAAA,MAAAwB;AAAAxB,IAAA,MAAA+C;OAAAA,OAAA/C,EAAA;CAC1B,MAAAgD,MAAAxB,QAAQ;CAAG,IAAAyB;AAAA,KAAAjD,EAAA,QAAAG,OAAAC,IAAA,4BAAA,EAAA;AACxF6C,QAAA,oBAAC,QAAe,WAAA,2BAA2B;AAAAjD,IAAA,MAAAiD;OAAAA,OAAAjD,EAAA;CAAA,IAAAkD;AAAA,KAAAlD,EAAA,QAAAgD,OAAAhD,EAAA,QAAAsC,UAAA;AAD7CY,QAAA,oBAAC;GAAe,SAAA;GAAY,MAAA;GAAe,WAAA;GAAgBZ,SAAAA;GAAoB,UAAAU;aAC7EC;IACO;AAAAjD,IAAA,MAAAgD;AAAAhD,IAAA,MAAAsC;AAAAtC,IAAA,MAAAkD;OAAAA,OAAAlD,EAAA;CAAA,IAAAmD;AAAA,KAAAnD,EAAA,QAAA8C,OAAA9C,EAAA,QAAA+C,OAAA/C,EAAA,QAAAkD,KAAA;AAPXC,QAAA,qBAAA;GAAe,WAAA;;IACbL;IAGAC;IACAG;;IAGI;AAAAlD,IAAA,MAAA8C;AAAA9C,IAAA,MAAA+C;AAAA/C,IAAA,MAAAkD;AAAAlD,IAAA,MAAAmD;OAAAA,OAAAnD,EAAA;CAAA,IAAAoD;AAAA,KAAApD,EAAA,QAAAG,OAAAC,IAAA,4BAAA,EAAA;AAEJgD,QAAA,oBAAA,oBAAM,QAAU;AAAApD,IAAA,MAAAoD;OAAAA,OAAApD,EAAA;CACM,MAAAqD,MAAAC,KAAIC,OAAQhC,UAAUF,MAAKmC,aAAc,IAAK;CAAA,IAAAC;AAAA,KAAAzD,EAAA,QAAAqD,KAAA;AAA7DI,QAAAjE,eAAe6D,IAA+C;AAAArD,IAAA,MAAAqD;AAAArD,IAAA,MAAAyD;OAAAA,OAAAzD,EAAA;CAAA,IAAA0D;AAAA,KAAA1D,EAAA,QAAAyD,KAAA;AAArEC,QAAA,oBAAA,oBAAOD,MAAsE;AAAAzD,IAAA,MAAAyD;AAAAzD,IAAA,MAAA0D;OAAAA,OAAA1D,EAAA;CACvD,MAAA2D,MAAAL,KAAIC,OAAQhC,UAAUF,MAAKmC,aAAc,GAAI;CAAA,IAAAI;AAAA,KAAA5D,EAAA,QAAA2D,KAAA;AAA5DC,QAAApE,eAAemE,IAA8C;AAAA3D,IAAA,MAAA2D;AAAA3D,IAAA,MAAA4D;OAAAA,OAAA5D,EAAA;CAAA,IAAA6D;AAAA,KAAA7D,EAAA,QAAA4D,KAAA;AAApEC,QAAA,oBAAA,oBAAOD,MAAqE;AAAA5D,IAAA,MAAA4D;AAAA5D,IAAA,MAAA6D;OAAAA,OAAA7D,EAAA;CACtD,MAAA8D,MAAAR,KAAIC,OAAQhC,UAAUF,MAAKmC,aAAc,IAAK;CAAA,IAAAO;AAAA,KAAA/D,EAAA,QAAA8D,KAAA;AAA7DC,QAAAvE,eAAesE,IAA+C;AAAA9D,IAAA,MAAA8D;AAAA9D,IAAA,MAAA+D;OAAAA,OAAA/D,EAAA;CAAA,IAAAgE;AAAA,KAAAhE,EAAA,QAAA+D,KAAA;AAArEC,QAAA,oBAAA,oBAAOD,MAAsE;AAAA/D,IAAA,MAAA+D;AAAA/D,IAAA,MAAAgE;OAAAA,OAAAhE,EAAA;CACvD,MAAAiE,MAAAX,KAAIC,MAAOhC,UAAUF,MAAKmC,UAAW;CAAA,IAAAU;AAAA,KAAAlE,EAAA,QAAAiE,KAAA;AAApDC,QAAA1E,eAAeyE,IAAsC;AAAAjE,IAAA,MAAAiE;AAAAjE,IAAA,MAAAkE;OAAAA,OAAAlE,EAAA;CAAA,IAAAmE;AAAA,KAAAnE,EAAA,QAAAkE,KAAA;AAA5DC,QAAA,oBAAA,oBAAOD,MAA6D;AAAAlE,IAAA,MAAAkE;AAAAlE,IAAA,MAAAmE;OAAAA,OAAAnE,EAAA;CAAA,IAAAoE;AAAA,KAAApE,EAAA,QAAA0D,OAAA1D,EAAA,QAAA6D,OAAA7D,EAAA,QAAAgE,OAAAhE,EAAA,QAAAmE,KAAA;AALtEC,QAAA,qBAAA;GAAe,WAAA;;IACbhB;IACAM;IACAG;IACAG;IACAG;;IACI;AAAAnE,IAAA,MAAA0D;AAAA1D,IAAA,MAAA6D;AAAA7D,IAAA,MAAAgE;AAAAhE,IAAA,MAAAmE;AAAAnE,IAAA,MAAAoE;OAAAA,OAAApE,EAAA;CAAA,IAAAqE;AAAA,KAAArE,EAAA,QAAA2C,OAAA3C,EAAA,QAAAmD,OAAAnD,EAAA,QAAAoE,KAAA;AAhBRC,QAAA,qBAAA;GAAe,WAAA;GAAmC,OAAA1B;cAChDQ,KASAiB;IAOI;AAAApE,IAAA,MAAA2C;AAAA3C,IAAA,MAAAmD;AAAAnD,IAAA,MAAAoE;AAAApE,IAAA,MAAAqE;OAAAA,OAAArE,EAAA;CAEgD,MAAAsE,MAAA,GAAG9C,KAAI;CAAG,IAAA+C;AAAA,KAAAvE,EAAA,QAAAsE,KAAA;AAAnBC,QAAA,EAAA9B,OAAS6B,KAAY;AAAAtE,IAAA,MAAAsE;AAAAtE,IAAA,MAAAuE;OAAAA,OAAAvE,EAAA;CAAA,IAAAwE;AAAA,KAAAxE,EAAA,QAAAc,QAAAd,EAAA,QAAAuB,WAAAvB,EAAA,QAAAqB,MAAAmC,aAAAxD,EAAA,QAAA4B,eAAA;AAC/D4C,QAAA1D,MAAI2D,KAAMC,YACT,oBAAC;GAEU,SAAA3C,QAAKZ;GACH,WAAAY,QAAK4C;GACH,aAAA5C,QAAK6C;GACF,gBAAA7C,QAAKyB;GACP,cAAAzB,QAAKR;GACH,gBAAAF,MAAKmC;GACPjC,cAAAA;GACJK,UAAAA;KARLG,QAAKZ,GAUb,CAAC;AAAAnB,IAAA,MAAAc;AAAAd,IAAA,MAAAuB;AAAAvB,IAAA,MAAAqB,MAAAmC;AAAAxD,IAAA,MAAA4B;AAAA5B,IAAA,MAAAwE;OAAAA,OAAAxE,EAAA;CAAA,IAAA6E;AAAA,KAAA7E,EAAA,QAAAuE,OAAAvE,EAAA,QAAAwE,KAAA;AAbJK,QAAA,oBAAA;GAAe,WAAA;GAA8B,OAAAN;aAC1CC;IAaG;AAAAxE,IAAA,MAAAuE;AAAAvE,IAAA,MAAAwE;AAAAxE,IAAA,MAAA6E;OAAAA,OAAA7E,EAAA;CAAA,IAAA8E;AAAA,KAAA9E,EAAA,QAAAqE,OAAArE,EAAA,QAAA6E,OAAA7E,EAAA,QAAAwC,IAAA;AAnCVsC,QAAA,oBAAA;GAAe,WAAA;aACb,qBAAA;IAAe,WAAA;IAAuB,OAAAtC;eACpC6B,KAmBAQ;KAgBJ;IAAM;AAAA7E,IAAA,MAAAqE;AAAArE,IAAA,MAAA6E;AAAA7E,IAAA,MAAAwC;AAAAxC,IAAA,MAAA8E;OAAAA,OAAA9E,EAAA;CAAA,IAAA+E;AAAA,KAAA/E,EAAA,QAAA4B,iBAAA5B,EAAA,QAAAgC,eAAA;AACL+C,QAAA/C,iBAAiB,oBAAC;GAAuBA,OAAAA;GAAwB,eAAMJ,cAAcoD,OAAS;IAAK;AAAAhF,IAAA,MAAA4B;AAAA5B,IAAA,MAAAgC;AAAAhC,IAAA,MAAA+E;OAAAA,OAAA/E,EAAA;CAAA,IAAAiF;AAAA,KAAAjF,EAAA,QAAA8E,OAAA9E,EAAA,QAAA+E,KAAA;AAvCtGE,QAAA,8CACEH,KAsCCC,OACA;AAAA/E,IAAA,MAAA8E;AAAA9E,IAAA,MAAA+E;AAAA/E,IAAA,MAAAiF;OAAAA,OAAAjF,EAAA;AAAA,QAxCHiF;EA0CF;AACFvE,uBAAuBF,cAAc;AA1EO,SAAAF,QAAA4E,OAAA;AAAA,QACOA,MAAKC;;AASmB,SAAAxD,SAAAuD,OAAA;AAAA,QAUhBA,MAAKxD;;AAVW,SAAAG,OAAAuD,SAAA;AAAA,QAWlBF,QAAKtD;;AAXa,SAAAM,OAAAmD,UAAA;AAAA,QAebA,WAAW;;AAfE,SAAAhD,OAAAiD,YAAA;AAAA,QAgBdD,aAAW;;;;;ACjCxE,MAAaM,+BAAyB;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACGC,OAAA;GAAAC,YAAc;GAAmBC,SAAW;GAAW;AAAAP,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAC9F,MAAA,EAAAS,SAAiBd,eADsBU,GACqB;CAE5D,MAAAK,SAAeb,sBAAsBc,QAAwB;CAAA,IAAAC;AAAA,KAAAZ,EAAA,OAAAS,QAAAT,EAAA,OAAAU,QAAA;AAIzDE,OAAAH,MAAII,QACFC,UACEA,MAAKC,KAAKC,aAAc,CAAAC,SAAUP,OAAMM,aACY,CAAC,IAArDF,MAAKI,GAAGF,aAAc,CAAAC,SAAUP,OAAMM,aAAc,CACxD,CAAC;AAAAhB,IAAA,KAAAS;AAAAT,IAAA,KAAAU;AAAAV,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;AAAA,QAJDY;;AARgC,SAAAD,QAAAQ,OAAA;AAAA,QAIYA,MAAKT;;;;;ACCvD,MAAMkB,aAAa;CACjBC,SAAS;CACTC,WAAW;CACXC,QAAQ;CACRC,SAAS;CACV;AAED,MAAaC,mBAAoCV,MAAKY,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAV,QAAAC,aAAAQ;CACrC,MAAAM,KAAAb,WAAWF;CACxB,MAAAgB,KAAAf,YAAYD,WAAW,WAAvBC,WAAAD;CAAmD,IAAAiB;AAAA,KAAAP,EAAA,OAAAK,MAAAL,EAAA,OAAAM,IAAA;AADtDC,OAAA,oBAAC;GAAe,SAAAF;aACbC;IACK;AAAAN,IAAA,KAAAK;AAAAL,IAAA,KAAAM;AAAAN,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAAA,QAFRO;EAGA;AAEFV,iBAAiBW,cAAc;;;;ACJ/B,MAAamB,iBAAgDf,MAC3DiB,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAC,MAAA,EAAAX,SAAAC,WAAAC,aAAAC,gBAAAC,cAAAC,YAAAC,aAAAC,eAAAG;CACC,MAAAM,qBAA2BnB,sBAAsBoB,QAAoC;CAAA,IAAAC;AAAA,KAAAP,EAAA,OAAAP,gBAAAO,EAAA,OAAAR,gBAAA;AAG5Ee,OAAAd,eAAeR,eAAeQ,eAAeD,eAA2B,GAAxEgB;AAAwER,IAAA,KAAAP;AAAAO,IAAA,KAAAR;AAAAQ,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CADjF,MAAAS,WACSF;CAER,IAAAG;AAAA,KAAAV,EAAA,OAAAX,WAAAW,EAAA,OAAAK,oBAAA;AAE4BK,aAAA;AAC3BL,sBAAmBhB,QAAQ;;AAC5BW,IAAA,KAAAX;AAAAW,IAAA,KAAAK;AAAAL,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAFD,MAAAW,WAAiBD;CAOA,MAAAE,KAAA,SAASvB;CAIpB,MAAAwB,KAAAjB,aAAA,2BAAA;CAA2D,IAAAkB;AAAA,KAAAd,EAAA,OAAAa,IAAA;AAFlDC,OAAAnC,GACT,uEACAkC,GACD;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAe;AAAA,KAAAf,EAAA,OAAAV,WAAA;AAKGyB,OAAA,oBAAA;GAAgB,WAAA;aAAiDzB;IAAiB;AAAAU,IAAA,KAAAV;AAAAU,IAAA,MAAAe;OAAAA,MAAAf,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,QAAAS,YAAAT,EAAA,QAAAT,aAAA;AAClFyB,OAAA,oBAAC;GAAyBzB,QAAAA;GAAuBkB;IAAY;AAAAT,IAAA,MAAAS;AAAAT,IAAA,MAAAT;AAAAS,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,QAAAe,MAAAf,EAAA,QAAAgB,IAAA;AAF/DC,OAAA,qBAAA;GAAe,WAAA;cACbF,IACAC;IACI;AAAAhB,IAAA,MAAAe;AAAAf,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAkB;AAAA,KAAAlB,EAAA,QAAAX,SAAA;AAIF6B,OAAA,oBAAA;GAAiB,eAAA;GAAqB,WAAA;aACnC7B;IACG;AAAAW,IAAA,MAAAX;AAAAW,IAAA,MAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,QAAAN,YAAA;AACNyB,QAAA,qBAAA,qBAAOzB,YAAW,YAAa;AAAAM,IAAA,MAAAN;AAAAM,IAAA,MAAAmB;OAAAA,OAAAnB,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,QAAAmB,OAAAnB,EAAA,QAAAkB,IAAA;AAJjCE,QAAA,qBAAA;GAAe,WAAA;cACbF,IAGAC;IACI;AAAAnB,IAAA,MAAAmB;AAAAnB,IAAA,MAAAkB;AAAAlB,IAAA,MAAAoB;OAAAA,OAAApB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,QAAAR,gBAAA;AACiC6B,QAAAzC,oBAAoBY,eAAe;AAAAQ,IAAA,MAAAR;AAAAQ,IAAA,MAAAqB;OAAAA,OAAArB,EAAA;CAAA,IAAAsB;AAAA,KAAAtB,EAAA,QAAAqB,KAAA;AAA1EC,QAAA,qBAAA;GAAe,WAAA;cAAwBD,KAAoC;IAAU;AAAArB,IAAA,MAAAqB;AAAArB,IAAA,MAAAsB;OAAAA,OAAAtB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,QAAAL,aAAA;AACpF4B,QAAA5B,cAAc,KAAK,qBAAA;GAAe,WAAA;cAAiBA,aAAY;IAAa;AAAAK,IAAA,MAAAL;AAAAK,IAAA,MAAAuB;OAAAA,OAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAoB,OAAApB,EAAA,QAAAsB,OAAAtB,EAAA,QAAAuB,KAAA;AAR/EC,QAAA,qBAAA;GAAe,WAAA;;IACbJ;IAMAE;IACCC;;IACG;AAAAvB,IAAA,MAAAoB;AAAApB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAwB;OAAAA,OAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,QAAAwB,OAAAxB,EAAA,QAAAiB,IAAA;AAfRQ,QAAA,qBAAA;GAAe,WAAA;cACbR,IAKAO;IAUI;AAAAxB,IAAA,MAAAwB;AAAAxB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAyB;OAAAA,OAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAX,WAAAW,EAAA,QAAAW,YAAAX,EAAA,QAAAyB,OAAAzB,EAAA,QAAAY,MAAAZ,EAAA,QAAAc,IAAA;AA1BRY,QAAA,oBAAA;GACO,MAAA;GACQ,eAAAd;GAEF,WAAAE;GAIFH,SAAAA;aAETc;KAPKpC,QAwBE;AAAAW,IAAA,MAAAX;AAAAW,IAAA,MAAAW;AAAAX,IAAA,MAAAyB;AAAAzB,IAAA,MAAAY;AAAAZ,IAAA,MAAAc;AAAAd,IAAA,MAAA0B;OAAAA,OAAA1B,EAAA;AAAA,QA3BT0B;EA8BL;AACD7B,eAAe8B,cAAc;AA5C3B,SAAArB,QAAAsB,OAAA;AAAA,QAC8DA,MAAKvB;;;;;ACfrE,MAAa+B,eAAyBN,WAAK;CAAA,MAAAQ,IAAAC,EAAA,GAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CACzC,MAAAK,SAAeV,wBAAwB;CACvC,MAAAW,kBAAwBV,sBAAsBW,MAAsC;CACpF,MAAAC,qBAA2BZ,sBAAsBa,OAAoC;CAErF,MAAAC,eAAmCL,QAAMM,UAAN;CAA8B,IAAAC;AAAAC,MAAA;AAE/D,MAAI,CAACR,UAAUA,OAAMM,WAAY,GAAC;AAAEC,QAAO;AAAP,SAAAC;;EACpC,MAAAC,YAAkBT,OAAOA,OAAMM,SAAU;AACzCC,OAAOE,WAASC,WAAa,YAAYD,UAASE,KAA3C;;CAHT,MAAAC,qBAA2BL;CAIf,IAAAM;AAAA,KAAAlB,EAAA,OAAAU,gBAAAV,EAAA,OAAAiB,sBAAAjB,EAAA,OAAAQ,sBAAAR,EAAA,OAAAM,iBAAA;AAEFY,aAAA;AACR,OAAID,sBAAsBA,uBAAuBX,gBAC/CE,oBAAmBS,mBAAmB;YAC7B,CAACA,sBAAD,CAAwBP,gBAAxBJ,gBACTE,oBAAmB,GAAG;;AAEzBR,IAAA,KAAAU;AAAAV,IAAA,KAAAiB;AAAAjB,IAAA,KAAAQ;AAAAR,IAAA,KAAAM;AAAAN,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAU,gBAAAV,EAAA,OAAAiB,oBAAA;AAAEE,OAAA,CAACF,oBAAoBP,aAAa;AAAAV,IAAA,KAAAU;AAAAV,IAAA,KAAAiB;AAAAjB,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;AANrCP,WAAUyB,IAMPC,GAAmC;CAAA,IAAAC;AAAA,KAAApB,EAAA,OAAAK,QAAA;AAEDe,OAAA,CAAA,GAAIf,OAAO,CAAAgB,SAAU;AAAArB,IAAA,KAAAK;AAAAL,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;CAA1D,MAAAsB,iBAAqCF;AAErC,KAAI,CAACf,UAAUA,OAAMM,WAAY,EAAC,QACzB;CACR,IAAAY;AAAA,KAAAvB,EAAA,QAAAsB,kBAAAtB,EAAA,QAAAM,iBAAA;EAAA,IAAAkB;AAAA,MAAAxB,EAAA,QAAAM,iBAAA;AAIuBkB,WAAAC,UAClB,oBAAC;IAEU,SAAAA,MAAKT;IACH,WAAAS,MAAKC;IACH,aAAAD,MAAKV;IACF,gBAAAU,MAAKE;IACP,cAAAF,MAAKG;IACP,YAAAH,MAAKI,SAASC;IACb,aAAAL,MAAKI,SAASE;IACf,YAAAzB,oBAAoBmB,MAAKT;MARhCS,MAAKT,GAUb;AAAAhB,KAAA,MAAAM;AAAAN,KAAA,MAAAwB;QAAAA,QAAAxB,EAAA;AAZAuB,OAAAD,eAAcU,IAAKR,KAYlB;AAAAxB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAM;AAAAN,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAuB,IAAA;AAbJC,OAAA,oBAAA;GAAe,WAAA;aACZD;IAaG;AAAAvB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;AAAA,QAdNwB;EAgBF;AACF1B,aAAamC,cAAc;AA5CgB,SAAA1B,MAAA2B,OAAA;AAAA,QAEgBA,MAAKC;;AAFrB,SAAA1B,OAAA2B,SAAA;AAAA,QAGmBF,QAAK1B;;;;;ACHnE,MAAakC,oBAAoBL,WAAK;CAAA,MAAAM,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAGhCC,OAAA,oBAAC,cAAY;AAAAL,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAGXE,OAAA,oBAAA;GAAe,WAAA;GAAoE,eAAA;aACjF,oBAAC,iBACH;IAAM;AAAAN,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAO;AAAA,KAAAP,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AANVG,OAAA,qBAAA;GAAe,WAAA;cACbF,IAEA,qBAAA;IAAe,WAAA;eACbC,IAIA,qBAAA;KAAe,WAAA;KAA4B,eAAA;gBACzC,oBAAC,kBACD,sBAAC,oBACH;MACF;KACF;IAAM;AAAAN,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAAA,QAbNO;EAeF;AACFR,kBAAkBS,cAAc;;;;ACrBhC,MAAaG,wBAAwBD,WAAK;CAAA,MAAAE,IAAAC,EAAA,EAAA;AAAA,KAAAD,EAAA,OAAA,oEAAA;AAAA,OAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,EAAAF,GAAAE,MAAAC,OAAAC,IAAA,4BAAA;AAAAJ,IAAA,KAAA;;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACxCC,OAAA,qBAAA;GAAiB,eAAA;cACf,oBAAC,oBAA6B,eAAA,SAC9B,sBAAA,oBAAM,YACR;IAAM;AAAAL,IAAA,KAAAK;OAAAA,MAAAL,EAAA;AAAA,QAHNK;EAIA;AACFN,sBAAsBO,cAAc"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["create","Trace","TraceGroup","ObservabilityState","traceGroups","traces","selectedTraceGroupId","selectedTraceId","search","setTraceGroups","groups","setTraces","selectTraceGroupId","groupId","selectTraceId","traceId","setSearch","clearTraces","useObservabilityStore","set","undefined","safeGroups","Array","isArray","safeTraces","fetch","method","Button","cn","Input","Search","Trash","X","memo","useObservabilityStore","SearchBar","$","_c","$i","Symbol","for","search","_temp","setSearch","_temp2","clearTraces","_temp3","t0","e","target","value","t1","t2","t3","t4","t5","visible","invisible","t6","t7","t8","t9","t10","t11","displayName","state","state_0","state_1","memo","useObservabilityStore","TraceEmptyState","React","FC","$","_c","$i","Symbol","for","selectedGroupId","_temp","t0","displayName","state","selectedTraceGroupId","useEffect","useRef","useState","TraceGroup","useGetEndTime","group","$","_c","$i","Symbol","for","groupEndTime","endTime","t0","Date","now","setEndTime","intervalRef","t1","t2","current","clearInterval","setInterval","useStreamGroup","useObservabilityStore","Trace","streamName","useTracesStream","$","_c","$i","Symbol","for","groupId","_temp","setData","_temp2","t0","state","selectedTraceGroupId","state_0","setTraces","formatDuration","duration","undefined","toFixed","cn","React","memo","useCallback","useMemo","GRADIENT_CLASSES","running","completed","failed","const","Props","traceId","traceName","traceStatus","traceStartTime","traceEndTime","groupStartTime","groupEndTime","onExpand","TraceItem","FC","t0","$","_c","$i","Symbol","for","t1","handleClick","t2","t3","barClassName","t4","t5","Date","now","t6","marginLeft","width","barStyle","t7","t8","t9","displayName","MessageCircle","Package","Radio","ScrollText","React","TraceEvent","TraceEventType","Props","event","EventIcon","FC","t0","$","_c","$i","Symbol","for","type","t1","Button","cn","Check","Copy","useCallback","useState","CopyButtonProps","textToCopy","className","title","CopyButton","React","FC","t0","$","_c","$i","Symbol","for","copied","setCopied","t1","navigator","clipboard","writeText","setTimeout","t2","error","console","handleCopy","t3","t4","t5","cn","PopoverPrimitive","ComponentProps","FC","Popover","Root","t0","$","_c","$i","Symbol","for","props","t1","PopoverTrigger","Trigger","PopoverContent","Content","className","t2","align","sideOffset","undefined","t3","t4","PopoverAnchor","Anchor","formatArgumentValue","arg","JSON","stringify","toString","memo","useMemo","ReactJson","CopyButton","Popover","PopoverContent","PopoverTrigger","formatArgumentValue","ArgumentProps","arg","popover","Argument","React","FC","t0","$","_c","$i","Symbol","for","t1","undefined","isObject","t2","value","t3","JSON","stringify","textToCopy","t4","padding","t5","t6","displayName","memo","ClosingParenthesisProps","callsQuantity","noQuantity","ClosingParenthesis","React","FC","t0","$","_c","$i","Symbol","for","t1","undefined","hasCalls","t2","t3","t4","displayName","cn","forwardRef","FunctionCallContentProps","topLevelClassName","objectName","functionName","className","FunctionCallContent","HTMLDivElement","t0","ref","$","_c","$i","Symbol","for","props","t1","t2","t3","t4","t5","t6","displayName","Fragment","memo","useMemo","CopyButton","Popover","PopoverContent","PopoverTrigger","Argument","ClosingParenthesis","FunctionCallContent","Props","topLevelClassName","objectName","functionName","args","Array","callsQuantity","GRID_LAYOUT_STYLE","gridTemplateColumns","FunctionCall","React","FC","t0","$","_c","$i","Symbol","for","t1","filter","_temp","filteredArgs","t2","length","t3","argsGridStyle","t4","Boolean","prefix","join","fullPrefix","t5","map","_temp2","argsString","functionCallText","t6","t7","t8","t9","t10","t11","arg_1","index","arg","t12","t13","t14","t15","arg_2","index_0","t16","t17","displayName","undefined","arg_0","JSON","stringify","String","React","memo","useMemo","EmitEvent","FunctionCall","TraceEmitEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","topic","args","t2","displayName","LevelDot","React","memo","LogEntry","TraceLogEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","level","t2","message","displayName","React","memo","useMemo","StateEvent","FunctionCall","TraceStateEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","key","traceId","value","args","t2","operation","displayName","React","memo","useMemo","StreamEvent","FunctionCall","TraceStreamEvent","FC","event","t0","$","_c","$i","Symbol","for","t1","data","Array","t2","groupId","id","args","t3","calls","operation","streamName","displayName","React","memo","TraceEvent","TraceEventType","TraceEmitEvent","TraceLogEvent","TraceStateEvent","TraceStreamEvent","FC","event","t0","$","_c","$i","Symbol","for","type","t1","displayName","React","Fragment","memo","formatDuration","TraceEvent","TraceEventType","EventIcon","Props","event","traceStartTime","TraceEventItem","FC","t0","$","_c","$i","Symbol","for","t1","t2","t3","Math","floor","timestamp","t4","t5","t6","t7","displayName","Badge","Sidebar","X","React","memo","useMemo","formatDuration","Trace","TraceEventItem","Props","trace","onClose","TraceItemDetail","FC","t0","$","_c","$i","Symbol","for","t1","t2","icon","onClick","label","actions","t3","name","t4","endTime","startTime","t5","entryPoint","type","t6","correlationId","t7","t8","events","t9","event","index","map","t10","t11","error","message","stack","t12","displayName","Button","Minus","Plus","React","memo","useMemo","useState","useGetEndTime","useTracesStream","formatDuration","useObservabilityStore","TraceItem","TraceItemDetail","TraceTimeline","FC","$","_c","$i","Symbol","for","groupId","_temp","t0","displayName","TraceTimelineComponentProps","TraceTimelineComponent","traceGroups","_temp2","traces","_temp3","t1","t2","traceGroup","id","find","group","endTime","zoom","setZoom","selectedTraceId","_temp4","selectTraceId","_temp5","t3","trace","selectedTrace","_temp6","zoomMinus","t4","_temp7","zoomPlus","t5","t6","width","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Math","floor","startTime","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","trace_0","name","status","map","t36","t37","undefined","t38","state","selectedTraceGroupId","state_0","state_1","state_2","prevZoom","prevZoom_0","useMemo","useObservabilityStore","useFilteredTraceGroups","$","_c","$i","Symbol","for","traceGroups","_temp","search","_temp2","t0","t1","group","name","toLowerCase","includes","id","filter","state","state_0","useStreamGroup","useObservabilityStore","TraceGroup","streamName","groupId","useTraceGroupsStream","$","_c","$i","Symbol","for","setData","_temp","t0","state","setTraceGroups","Badge","BadgeProps","React","memo","TraceGroup","Props","status","duration","variantMap","running","completed","failed","default","TraceStatusBadge","FC","t0","$","_c","$i","Symbol","for","t1","t2","t3","displayName","cn","formatDistanceToNow","React","memo","useCallback","useMemo","formatDuration","useObservabilityStore","TraceStatusBadge","TraceGroupItemProps","groupId","groupName","groupStatus","groupStartTime","groupEndTime","totalSteps","activeSteps","isSelected","style","CSSProperties","TraceGroupItem","FC","t0","$","_c","$i","Symbol","for","selectTraceGroupId","_temp","t1","undefined","duration","t2","onSelect","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","displayName","state","useVirtualizer","React","memo","useEffect","useMemo","useRef","useFilteredTraceGroups","useTraceGroupsStream","useObservabilityStore","TraceGroupItem","ROW_HEIGHT","TracesGroups","FC","groups","selectedGroupId","state","selectedTraceGroupId","selectTraceGroupId","scrollContainerRef","HTMLDivElement","groupsLength","length","lastRunningGroupId","lastGroup","status","id","reversedGroups","reverse","virtualizer","count","getScrollElement","current","estimateSize","overscan","virtualItems","getVirtualItems","height","getTotalSize","map","virtualRow","group","index","name","startTime","endTime","metadata","totalSteps","activeSteps","position","top","left","width","transform","start","displayName","memo","SearchBar","TraceEmptyState","TraceTimeline","TracesGroups","ObservabilityPage","$","_c","$i","Symbol","for","t0","t1","t2","displayName","GanttChartSquare","memo","ObservabilityTabLabel","$","_c","$i","Symbol","for","t0","displayName"],"sources":["../src/stores/use-observability-store.ts","../src/components/search-bar.tsx","../src/components/trace-empty-state.tsx","../src/hooks/use-get-endtime.ts","../src/hooks/use-traces-stream.ts","../src/lib/utils.ts","../src/components/trace-item/trace-item.tsx","../src/components/events/event-icon.tsx","../src/components/ui/copy-button.tsx","../src/components/ui/popover.tsx","../src/components/events/code/utils.ts","../src/components/events/code/argument.tsx","../src/components/events/code/closing-parenthesis.tsx","../src/components/events/code/function-call-content.tsx","../src/components/events/code/function-call.tsx","../src/components/events/trace-emit-event.tsx","../src/components/events/trace-log-event.tsx","../src/components/events/trace-state-event.tsx","../src/components/events/trace-stream-event.tsx","../src/components/events/trace-event.tsx","../src/components/trace-item/trace-event-item.tsx","../src/components/trace-item/trace-item-detail.tsx","../src/components/trace-timeline.tsx","../src/hooks/use-filtered-trace-groups.ts","../src/hooks/use-trace-groups-stream.ts","../src/components/trace-status.tsx","../src/components/trace-group-item.tsx","../src/components/traces-groups.tsx","../src/components/observability-page.tsx","../src/components/observability-tab-label.tsx"],"sourcesContent":["import { create } from 'zustand'\nimport type { Trace, TraceGroup } from '../types/observability'\n\nexport type ObservabilityState = {\n traceGroups: TraceGroup[]\n traces: Trace[]\n selectedTraceGroupId: string\n selectedTraceId?: string\n search: string\n setTraceGroups: (groups: TraceGroup[]) => void\n setTraces: (traces: Trace[]) => void\n selectTraceGroupId: (groupId?: string) => void\n selectTraceId: (traceId?: string) => void\n setSearch: (search: string) => void\n clearTraces: () => void\n}\n\nexport const useObservabilityStore = create<ObservabilityState>()((set) => ({\n traceGroups: [],\n traces: [],\n selectedTraceGroupId: '',\n selectedTraceId: undefined,\n search: '',\n setTraceGroups: (groups: TraceGroup[]) => {\n const safeGroups = Array.isArray(groups) ? groups : []\n set({ traceGroups: safeGroups })\n },\n setTraces: (traces: Trace[]) => {\n const safeTraces = Array.isArray(traces) ? traces : []\n set({ traces: safeTraces })\n },\n selectTraceGroupId: (groupId) => set({ selectedTraceGroupId: groupId }),\n selectTraceId: (traceId) => set({ selectedTraceId: traceId }),\n setSearch: (search) => set({ search }),\n clearTraces: () => {\n fetch('/__motia/trace/clear', { method: 'POST' })\n },\n}))\n","import { Button, cn, Input } from '@motiadev/ui'\nimport { Search, Trash, X } from 'lucide-react'\nimport { memo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\n\nexport const SearchBar = memo(() => {\n const search = useObservabilityStore((state) => state.search)\n const setSearch = useObservabilityStore((state) => state.setSearch)\n const clearTraces = useObservabilityStore((state) => state.clearTraces)\n\n return (\n <div className=\"flex p-2 border-b gap-2\" data-testid=\"logs-search-container\">\n <div className=\"flex-1 relative\">\n <Input\n variant=\"shade\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"px-9! font-medium\"\n placeholder=\"Search by Trace ID or Step Name\"\n />\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50\" />\n <X\n className={cn(\n 'cursor-pointer absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground/50 hover:text-muted-foreground',\n {\n visible: search !== '',\n invisible: search === '',\n },\n )}\n onClick={() => setSearch('')}\n />\n </div>\n <Button variant=\"default\" onClick={clearTraces} className=\"h-[34px]\">\n <Trash /> Clear\n </Button>\n </div>\n )\n})\n\nSearchBar.displayName = 'SearchBar'\n","import { memo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\n\nexport const TraceEmptyState: React.FC = memo(() => {\n const selectedGroupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n\n if (selectedGroupId) {\n return null\n }\n\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-center\">\n Select a trace or trace group to view the timeline\n </div>\n )\n})\nTraceEmptyState.displayName = 'TraceEmptyState'\n","import { useEffect, useRef, useState } from 'react'\nimport type { TraceGroup } from '../types/observability'\n\nexport const useGetEndTime = (group: TraceGroup | undefined | null) => {\n const groupEndTime = group?.endTime\n const [endTime, setEndTime] = useState(() => groupEndTime || Date.now())\n const intervalRef = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n\n if (groupEndTime) {\n setEndTime(groupEndTime)\n } else {\n intervalRef.current = setInterval(() => setEndTime(Date.now()), 100)\n }\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }\n }, [groupEndTime])\n\n return endTime\n}\n","import { useStreamGroup } from '@motiadev/stream-client-react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport type { Trace } from '../types/observability'\n\nconst streamName = 'motia-trace'\n\nexport const useTracesStream = () => {\n const groupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n const setData = useObservabilityStore((state) => state.setTraces)\n\n useStreamGroup<Trace>({\n streamName,\n groupId,\n setData,\n })\n}\n","export const formatDuration = (duration?: number) => {\n if (duration === undefined || duration === null) return 'N/A'\n if (duration < 1000) return `${duration}ms`\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`\n if (duration < 3600000) return `${(duration / 60000).toFixed(1)}min`\n return `${(duration / 3600000).toFixed(1)}h`\n}\n","import { cn } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo, useCallback, useMemo } from 'react'\n\nconst GRADIENT_CLASSES = {\n running: 'bg-[repeating-linear-gradient(140deg,#BEFE29,#BEFE29_8px,#ABE625_8px,#ABE625_16px)]',\n completed: 'bg-[repeating-linear-gradient(140deg,#2862FE,#2862FE_8px,#2358E5_8px,#2358E5_16px)]',\n failed: 'bg-[repeating-linear-gradient(140deg,#EA2069,#EA2069_8px,#D41E60_8px,#D41E60_16px)]',\n} as const\n\ntype Props = {\n traceId: string\n traceName: string\n traceStatus: 'running' | 'completed' | 'failed'\n traceStartTime: number\n traceEndTime: number | undefined\n groupStartTime: number\n groupEndTime: number\n onExpand: (traceId: string) => void\n}\n\nexport const TraceItem: React.FC<Props> = memo(\n ({ traceId, traceName, traceStatus, traceStartTime, traceEndTime, groupStartTime, groupEndTime, onExpand }) => {\n const handleClick = useCallback(() => {\n onExpand(traceId)\n }, [onExpand, traceId])\n\n const barClassName = useMemo(\n () => cn('h-[24px] rounded-[4px] hover:opacity-80 transition-all duration-200', GRADIENT_CLASSES[traceStatus]),\n [traceStatus],\n )\n\n const barStyle = useMemo(\n () => ({\n marginLeft: `${((traceStartTime - groupStartTime) / (groupEndTime - groupStartTime)) * 100}%`,\n width: traceEndTime\n ? `${((traceEndTime - traceStartTime) / (groupEndTime - groupStartTime)) * 100}%`\n : `${((Date.now() - traceStartTime) / (groupEndTime - groupStartTime)) * 100}%`,\n }),\n [traceStartTime, traceEndTime, groupStartTime, groupEndTime],\n )\n\n return (\n <div\n className=\"flex hover:bg-muted-foreground/10 relative cursor-pointer\"\n onClick={handleClick}\n data-testid=\"trace-timeline-item\"\n >\n <div className=\"flex items-center min-w-[200px] max-w-[200px] h-[32px] max-h-[32px] py-4 px-2 text-sm font-semibold text-foreground sticky left-0 bg-card z-9\">\n <span className=\"truncate min-w-0\">{traceName}</span>\n </div>\n <div className=\"flex w-full flex-row items-center hover:bg-muted/50 rounded-md\">\n <div className=\"relative w-full h-[32px] flex items-center\">\n <div className={barClassName} style={barStyle} />\n </div>\n </div>\n </div>\n )\n },\n)\nTraceItem.displayName = 'TraceItem'\n","import { MessageCircle, Package, Radio, ScrollText } from 'lucide-react'\nimport type React from 'react'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\n\ntype Props = {\n event: TraceEventType\n}\n\nexport const EventIcon: React.FC<Props> = ({ event }) => {\n if (event.type === 'log') {\n return <ScrollText className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'emit') {\n return <MessageCircle className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'state') {\n return <Package className=\"w-4 h-4 text-muted-foreground\" />\n } else if (event.type === 'stream') {\n return <Radio className=\"w-4 h-4 text-muted-foreground\" />\n }\n}\n","import { Button, cn } from '@motiadev/ui'\nimport { Check, Copy } from 'lucide-react'\nimport { useCallback, useState } from 'react'\n\ntype CopyButtonProps = {\n textToCopy: string\n className?: string\n title?: string\n}\n\nexport const CopyButton: React.FC<CopyButtonProps> = ({ textToCopy, className, title }) => {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(textToCopy)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n } catch (error) {\n console.error('Failed to copy:', error)\n }\n }, [textToCopy])\n\n return (\n <Button\n variant=\"icon\"\n size=\"icon\"\n onClick={handleCopy}\n className={cn('cursor-pointer p-3 rounded-full', className)}\n title={title ?? (copied ? 'Copied!' : 'Copy')}\n >\n {copied ? <Check className=\"w-4 h-4 text-green-500\" /> : <Copy className=\"w-4 h-4 text-gray-400\" />}\n </Button>\n )\n}\n","import { cn } from '@motiadev/ui'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport type { ComponentProps, FC } from 'react'\n\nexport const Popover: FC<ComponentProps<typeof PopoverPrimitive.Root>> = ({ ...props }) => {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nexport const PopoverTrigger: FC<ComponentProps<typeof PopoverPrimitive.Trigger>> = ({ ...props }) => {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nexport const PopoverContent: FC<ComponentProps<typeof PopoverPrimitive.Content>> = ({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}) => {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport const PopoverAnchor: FC<ComponentProps<typeof PopoverPrimitive.Anchor>> = ({ ...props }) => {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n","export const formatArgumentValue = (arg: string | object | false | null): string => {\n if (typeof arg === 'object' && arg !== null) {\n return JSON.stringify(arg, null, 1)\n }\n if (arg === null) {\n return 'null'\n }\n\n return arg.toString()\n}\n","import { memo, useMemo } from 'react'\nimport ReactJson from 'react18-json-view'\nimport { CopyButton } from '../../../components/ui/copy-button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../components/ui/popover'\nimport 'react18-json-view/src/dark.css'\nimport 'react18-json-view/src/style.css'\nimport { formatArgumentValue } from './utils'\n\ntype ArgumentProps = {\n arg: string | object | false\n popover?: boolean\n}\n\nexport const Argument: React.FC<ArgumentProps> = memo(({ arg, popover = true }) => {\n const isObject = useMemo(() => typeof arg === 'object' && arg !== null, [arg])\n\n const value = useMemo(() => formatArgumentValue(arg), [arg])\n\n const textToCopy = useMemo(() => JSON.stringify(arg, null, 2), [arg])\n\n if (!popover) {\n return (\n <>\n {isObject ? (\n <ReactJson src={arg} theme=\"default\" enableClipboard={false} style={{ padding: 0 }} />\n ) : (\n <span className=\"font-mono text-blue-500\">{value}</span>\n )}\n </>\n )\n }\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <span className=\"truncate font-mono text-blue-500 cursor-pointer inline-block\">{value}</span>\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-md w-auto max-w-2xl relative max-h-[50vh] overflow-y-auto\"\n hideWhenDetached\n >\n {isObject ? (\n <div>\n <CopyButton textToCopy={textToCopy} className=\"absolute top-4 right-4\" title=\"Copy JSON\" />\n <ReactJson src={arg} theme=\"default\" enableClipboard={false} style={{ padding: 0 }} />\n </div>\n ) : (\n <div className=\"flex items-center justify-between\">\n <span>{value}</span>\n <CopyButton textToCopy={textToCopy} className=\"ml-2\" title=\"Copy JSON\" />\n </div>\n )}\n </PopoverContent>\n </Popover>\n )\n})\nArgument.displayName = 'Argument'\n","import { memo } from 'react'\n\ntype ClosingParenthesisProps = {\n callsQuantity?: number\n noQuantity?: boolean\n}\n\nexport const ClosingParenthesis: React.FC<ClosingParenthesisProps> = memo(({ callsQuantity, noQuantity = false }) => {\n const hasCalls = callsQuantity && callsQuantity > 1\n\n return (\n <div className=\"flex items-center\">\n <span className=\"font-mono text-emerald-500\">)</span>\n {!noQuantity && hasCalls && <span className=\"font-mono text-muted-foreground\"> x{callsQuantity}</span>}\n </div>\n )\n})\nClosingParenthesis.displayName = 'ClosingParenthesis'\n","import { cn } from '@motiadev/ui'\nimport { forwardRef } from 'react'\n\ntype FunctionCallContentProps = {\n topLevelClassName?: string\n objectName?: string\n functionName: string\n className?: string\n}\n\nexport const FunctionCallContent = forwardRef<HTMLDivElement, FunctionCallContentProps>(\n ({ topLevelClassName, objectName, functionName, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('flex items-center', className)} {...props}>\n {topLevelClassName && (\n <>\n <span className=\"font-mono text-pink-500\">{topLevelClassName}</span>\n <span>.</span>\n </>\n )}\n {objectName && (\n <>\n <span className=\"font-mono text-pink-500\">{objectName}</span>\n <span>.</span>\n </>\n )}\n <span className=\"font-mono text-pink-500\">{functionName}</span>\n <span className=\"font-mono text-emerald-500\">(</span>\n </div>\n )\n },\n)\nFunctionCallContent.displayName = 'FunctionCallContent'\n","import { Fragment, memo, useMemo } from 'react'\nimport { CopyButton } from '../../../components/ui/copy-button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../components/ui/popover'\nimport { Argument } from './argument'\nimport { ClosingParenthesis } from './closing-parenthesis'\nimport { FunctionCallContent } from './function-call-content'\n\ntype Props = {\n topLevelClassName?: string\n objectName?: string\n functionName: string\n args: Array<string | object | false | undefined>\n callsQuantity?: number\n}\n\nconst GRID_LAYOUT_STYLE = { gridTemplateColumns: 'max-content 1fr max-content' }\n\nexport const FunctionCall: React.FC<Props> = memo(\n ({ topLevelClassName, objectName, functionName, args, callsQuantity }) => {\n const filteredArgs = useMemo(() => args.filter((arg) => arg !== undefined), [args])\n\n const argsGridStyle = useMemo(\n () => ({ gridTemplateColumns: `repeat(${filteredArgs.length * 2}, minmax(0, auto))` }),\n [filteredArgs.length],\n )\n\n const functionCallText = useMemo(() => {\n const prefix = [topLevelClassName, objectName].filter(Boolean).join('.')\n const fullPrefix = prefix ? `${prefix}.` : ''\n const argsString = filteredArgs\n .map((arg) => {\n if (typeof arg === 'object' && arg !== null) {\n return JSON.stringify(arg, null, 2)\n }\n if (arg === null) {\n return 'null'\n }\n if (typeof arg === 'string') {\n return `'${arg}'`\n }\n return String(arg)\n })\n .join(', ')\n return `${fullPrefix}${functionName}(${argsString})`\n }, [topLevelClassName, objectName, functionName, filteredArgs])\n\n return (\n <div className=\"grid overflow-hidden items-center\" style={GRID_LAYOUT_STYLE}>\n <Popover>\n <PopoverTrigger asChild>\n <FunctionCallContent\n className=\"cursor-pointer\"\n functionName={functionName}\n topLevelClassName={topLevelClassName}\n objectName={objectName}\n />\n </PopoverTrigger>\n <PopoverContent\n className=\"grid grid-rows-auto backdrop-blur-md w-auto max-w-2xl max-h-[50vh] overflow-y-auto\"\n hideWhenDetached\n >\n <div className=\"flex items-center justify-between gap-2\">\n <FunctionCallContent\n functionName={functionName}\n topLevelClassName={topLevelClassName}\n objectName={objectName}\n />\n <CopyButton textToCopy={functionCallText} />\n </div>\n {filteredArgs.map((arg, index) => (\n <div key={index} className=\"grid grid-cols-[auto_1fr] items-center pl-4\">\n <Argument arg={arg} popover={false} />\n {index < filteredArgs.length - 1 && <span>, </span>}\n </div>\n ))}\n <ClosingParenthesis callsQuantity={callsQuantity} noQuantity />\n </PopoverContent>\n </Popover>\n <div className=\"grid items-center min-w-0\" style={argsGridStyle}>\n {filteredArgs.map((arg, index) => (\n <Fragment key={index}>\n <Argument arg={arg} />\n {index < filteredArgs.length - 1 && <span>, </span>}\n </Fragment>\n ))}\n </div>\n <ClosingParenthesis callsQuantity={callsQuantity} />\n </div>\n )\n },\n)\nFunctionCall.displayName = 'FunctionCall'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { EmitEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\n\nexport const TraceEmitEvent: React.FC<{ event: EmitEvent }> = memo(({ event }) => {\n const args = useMemo(() => [{ topic: event.topic, data: event.data }], [event])\n return <FunctionCall functionName=\"emit\" args={args} />\n})\nTraceEmitEvent.displayName = 'TraceEmitEvent'\n","import { LevelDot } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo } from 'react'\nimport type { LogEntry } from '../../types/observability'\n\nexport const TraceLogEvent: React.FC<{ event: LogEntry }> = memo(({ event }) => {\n return (\n <div className=\"flex items-center gap-2\">\n <LevelDot level={event.level} /> {event.message}\n </div>\n )\n})\nTraceLogEvent.displayName = 'TraceLogEvent'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { StateEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\nexport const TraceStateEvent: React.FC<{ event: StateEvent }> = memo(({ event }) => {\n const args = useMemo(() => [event.data.traceId, event.data.key, event.data.value], [event])\n return <FunctionCall objectName=\"state\" functionName={event.operation} args={args} />\n})\nTraceStateEvent.displayName = 'TraceStateEvent'\n","import type React from 'react'\nimport { memo, useMemo } from 'react'\nimport type { StreamEvent } from '../../types/observability'\nimport { FunctionCall } from './code/function-call'\n\nexport const TraceStreamEvent: React.FC<{ event: StreamEvent }> = memo(({ event }) => {\n const args = useMemo(\n () => [event.data.groupId, event.data.id, event.data.data as unknown as Array<string | object | false | undefined>],\n [event],\n )\n return (\n <FunctionCall\n topLevelClassName=\"streams\"\n objectName={event.streamName}\n functionName={event.operation}\n args={args}\n callsQuantity={event.calls}\n />\n )\n})\nTraceStreamEvent.displayName = 'TraceStreamEvent'\n","import type React from 'react'\nimport { memo } from 'react'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\nimport { TraceEmitEvent } from './trace-emit-event'\nimport { TraceLogEvent } from './trace-log-event'\nimport { TraceStateEvent } from './trace-state-event'\nimport { TraceStreamEvent } from './trace-stream-event'\n\nexport const TraceEvent: React.FC<{ event: TraceEventType }> = memo(({ event }) => {\n if (event.type === 'log') {\n return <TraceLogEvent event={event} />\n } else if (event.type === 'emit') {\n return <TraceEmitEvent event={event} />\n } else if (event.type === 'state') {\n return <TraceStateEvent event={event} />\n } else if (event.type === 'stream') {\n return <TraceStreamEvent event={event} />\n }\n})\nTraceEvent.displayName = 'TraceEvent'\n","import type React from 'react'\nimport { Fragment, memo } from 'react'\nimport { formatDuration } from '../../lib/utils'\nimport type { TraceEvent as TraceEventType } from '../../types/observability'\nimport { EventIcon } from '../events/event-icon'\nimport { TraceEvent } from '../events/trace-event'\n\ntype Props = {\n event: TraceEventType\n traceStartTime: number\n}\n\nexport const TraceEventItem: React.FC<Props> = memo(({ event, traceStartTime }) => {\n return (\n <Fragment>\n <div className=\"grid place-items-center\">\n <div className=\"w-1 h-1 rounded-full bg-emerald-500 outline outline-2 outline-emerald-500/50 -ml-[26px]\"></div>\n </div>\n <div className=\"grid place-items-center\">\n <EventIcon event={event} />\n </div>\n <div className=\"grid place-items-center\">\n <span className=\"text-sm font-mono text-muted-foreground\">\n +{formatDuration(Math.floor(event.timestamp - traceStartTime))}\n </span>\n </div>\n <div className=\"grid place-items-start\">\n <TraceEvent event={event} />\n </div>\n </Fragment>\n )\n})\nTraceEventItem.displayName = 'TraceEventItem'\n","import { Badge, Sidebar } from '@motiadev/ui'\nimport { X } from 'lucide-react'\nimport type React from 'react'\nimport { memo, useMemo } from 'react'\nimport { formatDuration } from '../../lib/utils'\nimport type { Trace } from '../../types/observability'\nimport { TraceEventItem } from './trace-event-item'\n\ntype Props = {\n trace: Trace\n onClose: () => void\n}\n\nexport const TraceItemDetail: React.FC<Props> = memo(({ trace, onClose }) => {\n const actions = useMemo(() => [{ icon: <X />, onClick: onClose, label: 'Close' }], [onClose])\n return (\n <Sidebar\n onClose={onClose}\n initialWidth={600}\n title=\"Trace Details\"\n subtitle={`Viewing details from step ${trace.name}`}\n actions={actions}\n >\n <div className=\"px-2 overflow-auto\">\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground mb-4\">\n {trace.endTime && <span>Duration: {formatDuration(trace.endTime - trace.startTime)}</span>}\n <div className=\"bg-blue-500 font-bold text-xs px-[4px] py-[2px] rounded-sm text-blue-100\">\n {trace.entryPoint.type}\n </div>\n {trace.correlationId && <Badge variant=\"outline\">Correlated: {trace.correlationId}</Badge>}\n </div>\n <div className=\"grid grid-cols-[auto_auto_auto_1fr] gap-x-2 gap-y-3 font-mono text-xs border-l-1 border-gray-500/40 pl-6\">\n {trace.events.map((event, index) => (\n <TraceEventItem key={index} event={event} traceStartTime={trace.startTime} />\n ))}\n </div>\n </div>\n {trace.error && (\n <div className=\"p-4 bg-red-800/10\">\n <div className=\"text-sm text-red-800 dark:text-red-400 font-semibold\">{trace.error.message}</div>\n <div className=\"text-sm text-red-800 dark:text-red-400 pl-4\">{trace.error.stack}</div>\n </div>\n )}\n </Sidebar>\n )\n})\nTraceItemDetail.displayName = 'TraceItemDetail'\n","import { Button } from '@motiadev/ui'\nimport { Minus, Plus } from 'lucide-react'\nimport type React from 'react'\nimport { memo, useMemo, useState } from 'react'\nimport { useGetEndTime } from '../hooks/use-get-endtime'\nimport { useTracesStream } from '../hooks/use-traces-stream'\nimport { formatDuration } from '../lib/utils'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport { TraceItem } from './trace-item/trace-item'\nimport { TraceItemDetail } from './trace-item/trace-item-detail'\n\nexport const TraceTimeline: React.FC = memo(() => {\n const groupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n if (!groupId) return null\n return <TraceTimelineComponent groupId={groupId} />\n})\nTraceTimeline.displayName = 'TraceTimeline'\n\ninterface TraceTimelineComponentProps {\n groupId: string\n}\nconst TraceTimelineComponent: React.FC<TraceTimelineComponentProps> = memo(({ groupId }) => {\n useTracesStream()\n\n const traceGroups = useObservabilityStore((state) => state.traceGroups)\n const traces = useObservabilityStore((state) => state.traces)\n const group = useMemo(() => traceGroups.find((traceGroup) => traceGroup.id === groupId), [traceGroups, groupId])\n\n const endTime = useGetEndTime(group)\n const [zoom, setZoom] = useState(100)\n const selectedTraceId = useObservabilityStore((state) => state.selectedTraceId)\n const selectTraceId = useObservabilityStore((state) => state.selectTraceId)\n\n const selectedTrace = useMemo(() => traces.find((trace) => trace.id === selectedTraceId), [traces, selectedTraceId])\n\n const zoomMinus = () => zoom > 100 && setZoom((prevZoom) => prevZoom - 10)\n const zoomPlus = () => zoom < 200 && setZoom((prevZoom) => prevZoom + 10)\n\n if (!group) return null\n\n return (\n <>\n <div className=\"flex flex-col flex-1 relative min-h-full min-w-[1000px]\">\n <div className=\"flex flex-col\" style={{ width: `${zoom}%` }}>\n <div className=\"flex flex-1 bg-background\" style={{ width: `${zoom}%` }}>\n <div className=\"shrink-0 w-[200px] h-[37px] flex items-center justify-center gap-2 sticky left-0 top-0 z-10 bg-card backdrop-blur-xs backdrop-filter\">\n <Button variant=\"icon\" size=\"sm\" className=\"px-2\" onClick={zoomMinus} disabled={zoom <= 100}>\n <Minus className=\"w-4 h-4 cursor-pointer\" />\n </Button>\n <span className=\"min-w-12 text-center select-none text-sm font-bold text-muted-foreground\">{zoom}%</span>\n <Button variant=\"icon\" size=\"sm\" className=\"px-2\" onClick={zoomPlus} disabled={zoom >= 200}>\n <Plus className=\"w-4 h-4 cursor-pointer\" />\n </Button>\n </div>\n <div className=\"flex justify-between font-mono p-2 w-full text-xs text-muted-foreground bg-card\">\n <span>0ms</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.25))}</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.5))}</span>\n <span>{formatDuration(Math.floor((endTime - group.startTime) * 0.75))}</span>\n <span>{formatDuration(Math.floor(endTime - group.startTime))}</span>\n </div>\n </div>\n\n <div className=\"flex flex-col h-full\" style={{ width: `${zoom}%` }}>\n {traces.map((trace) => (\n <TraceItem\n key={trace.id}\n traceId={trace.id}\n traceName={trace.name}\n traceStatus={trace.status}\n traceStartTime={trace.startTime}\n traceEndTime={trace.endTime}\n groupStartTime={group.startTime}\n groupEndTime={endTime}\n onExpand={selectTraceId}\n />\n ))}\n </div>\n </div>\n </div>\n {selectedTrace && <TraceItemDetail trace={selectedTrace} onClose={() => selectTraceId(undefined)} />}\n </>\n )\n})\nTraceTimelineComponent.displayName = 'TraceTimelineComponent'\n","import { useMemo } from 'react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\n\nexport const useFilteredTraceGroups = () => {\n const traceGroups = useObservabilityStore((state) => state.traceGroups)\n const search = useObservabilityStore((state) => state.search)\n\n return useMemo(\n () =>\n traceGroups.filter(\n (group) =>\n group.name.toLowerCase().includes(search.toLowerCase()) ||\n group.id.toLowerCase().includes(search.toLowerCase()),\n ),\n [traceGroups, search],\n )\n}\n","import { useStreamGroup } from '@motiadev/stream-client-react'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport type { TraceGroup } from '../types/observability'\n\nconst streamName = 'motia-trace-group'\nconst groupId = 'default'\n\nexport const useTraceGroupsStream = () => {\n const setData = useObservabilityStore((state) => state.setTraceGroups)\n\n useStreamGroup<TraceGroup>({\n streamName,\n groupId,\n setData,\n })\n}\n","import { Badge, type BadgeProps } from '@motiadev/ui'\nimport type React from 'react'\nimport { memo } from 'react'\nimport type { TraceGroup } from '@/types/observability'\n\ntype Props = {\n status: TraceGroup['status']\n duration?: string\n}\n\nconst variantMap = {\n running: 'info',\n completed: 'success',\n failed: 'error',\n default: 'default',\n}\n\nexport const TraceStatusBadge: React.FC<Props> = memo(({ status, duration }) => (\n <Badge variant={variantMap[status] as BadgeProps['variant']}>\n {duration && status !== 'failed' ? duration : status}\n </Badge>\n))\n\nTraceStatusBadge.displayName = 'TraceStatusBadge'\n","import { cn } from '@motiadev/ui'\nimport { formatDistanceToNow } from 'date-fns'\nimport type React from 'react'\nimport { memo, useCallback, useMemo } from 'react'\nimport { formatDuration } from '../lib/utils'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport { TraceStatusBadge } from './trace-status'\n\ninterface TraceGroupItemProps {\n groupId: string\n groupName: string\n groupStatus: 'running' | 'completed' | 'failed'\n groupStartTime: number\n groupEndTime: number | undefined\n totalSteps: number\n activeSteps: number\n isSelected: boolean\n style?: React.CSSProperties\n}\n\nexport const TraceGroupItem: React.FC<TraceGroupItemProps> = memo(\n ({ groupId, groupName, groupStatus, groupStartTime, groupEndTime, totalSteps, activeSteps, isSelected, style }) => {\n const selectTraceGroupId = useObservabilityStore((state) => state.selectTraceGroupId)\n\n const duration = useMemo(\n () => (groupEndTime ? formatDuration(groupEndTime - groupStartTime) : undefined),\n [groupEndTime, groupStartTime],\n )\n\n const onSelect = useCallback(() => {\n selectTraceGroupId(groupId)\n }, [groupId, selectTraceGroupId])\n\n return (\n <button\n type=\"button\"\n data-testid={`trace-${groupId}`}\n key={groupId}\n className={cn(\n 'motia-trace-group cursor-pointer transition-colors w-full text-left',\n isSelected ? 'bg-muted-foreground/10' : 'hover:bg-muted/70',\n )}\n style={style}\n onClick={onSelect}\n >\n <div className=\"p-3 flex flex-col gap-1\">\n <div className=\"flex flex-row justify-between items-center gap-2\">\n <span className=\"font-semibold text-lg truncate flex-1 min-w-0\">{groupName}</span>\n <TraceStatusBadge status={groupStatus} duration={duration} />\n </div>\n\n <div className=\"text-xs text-muted-foreground space-y-1\">\n <div className=\"flex justify-between\">\n <div data-testid=\"trace-id\" className=\"text-xs text-muted-foreground font-mono tracking-[1px]\">\n {groupId}\n </div>\n <span>{totalSteps} steps</span>\n </div>\n <div className=\"flex justify-between\">{formatDistanceToNow(groupStartTime)} ago</div>\n {activeSteps > 0 && <div className=\"text-blue-600\">{activeSteps} active</div>}\n </div>\n </div>\n </button>\n )\n },\n)\nTraceGroupItem.displayName = 'TraceGroupItem'\n","import { useVirtualizer } from '@tanstack/react-virtual'\nimport type React from 'react'\nimport { memo, useEffect, useMemo, useRef } from 'react'\nimport { useFilteredTraceGroups } from '../hooks/use-filtered-trace-groups'\nimport { useTraceGroupsStream } from '../hooks/use-trace-groups-stream'\nimport { useObservabilityStore } from '../stores/use-observability-store'\nimport { TraceGroupItem } from './trace-group-item'\n\nconst ROW_HEIGHT = 110\n\nexport const TracesGroups: React.FC = memo(() => {\n useTraceGroupsStream()\n\n const groups = useFilteredTraceGroups()\n const selectedGroupId = useObservabilityStore((state) => state.selectedTraceGroupId)\n const selectTraceGroupId = useObservabilityStore((state) => state.selectTraceGroupId)\n const scrollContainerRef = useRef<HTMLDivElement>(null)\n\n const groupsLength = useMemo(() => groups?.length || 0, [groups])\n const lastRunningGroupId = useMemo(() => {\n if (!groups || groups.length === 0) return ''\n const lastGroup = groups[groups.length - 1]\n return lastGroup?.status === 'running' ? lastGroup.id : ''\n }, [groups])\n\n useEffect(() => {\n if (lastRunningGroupId && lastRunningGroupId !== selectedGroupId) {\n selectTraceGroupId(lastRunningGroupId)\n } else if (!lastRunningGroupId && !groupsLength && selectedGroupId) {\n selectTraceGroupId('')\n }\n }, [lastRunningGroupId, groupsLength, selectedGroupId, selectTraceGroupId])\n\n const reversedGroups = useMemo(() => (groups ? [...groups].reverse() : []), [groups])\n\n const virtualizer = useVirtualizer({\n count: reversedGroups.length,\n getScrollElement: () => scrollContainerRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: 5,\n })\n\n const virtualItems = virtualizer.getVirtualItems()\n\n if (!groups || groups.length === 0) {\n return null\n }\n\n return (\n <div ref={scrollContainerRef} className=\"overflow-auto h-full\">\n <div className=\"relative w-full\" style={{ height: virtualizer.getTotalSize() }}>\n {virtualItems.map((virtualRow) => {\n const group = reversedGroups[virtualRow.index]\n if (!group) return null\n return (\n <TraceGroupItem\n key={group.id}\n groupId={group.id}\n groupName={group.name}\n groupStatus={group.status}\n groupStartTime={group.startTime}\n groupEndTime={group.endTime}\n totalSteps={group.metadata.totalSteps}\n activeSteps={group.metadata.activeSteps}\n isSelected={selectedGroupId === group.id}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: ROW_HEIGHT,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n />\n )\n })}\n </div>\n </div>\n )\n})\nTracesGroups.displayName = 'TracesGroups'\n","import { memo } from 'react'\nimport { SearchBar } from './search-bar'\nimport { TraceEmptyState } from './trace-empty-state'\nimport { TraceTimeline } from './trace-timeline'\nimport { TracesGroups } from './traces-groups'\n\nexport const ObservabilityPage = memo(() => {\n return (\n <div className=\"grid grid-rows-[auto_1fr] h-full\">\n <SearchBar />\n\n <div className=\"grid grid-cols-[300px_1fr] overflow-hidden\">\n <div className=\"w-[300px] border-r border-border overflow-auto h-full\" data-testid=\"traces-container\">\n <TracesGroups />\n </div>\n\n <div className=\"overflow-auto\" data-testid=\"trace-details\">\n <TraceTimeline />\n <TraceEmptyState />\n </div>\n </div>\n </div>\n )\n})\nObservabilityPage.displayName = 'ObservabilityPage'\n","import { GanttChartSquare } from 'lucide-react'\nimport { memo } from 'react'\n\nexport const ObservabilityTabLabel = memo(() => (\n <div data-testid=\"observability-link\">\n <GanttChartSquare aria-hidden=\"true\" />\n <span>Tracing</span>\n </div>\n))\nObservabilityTabLabel.displayName = 'ObservabilityTabLabel'\n"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -335,6 +335,9 @@
|
|
|
335
335
|
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
|
336
336
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
337
337
|
}
|
|
338
|
+
.transform {
|
|
339
|
+
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
340
|
+
}
|
|
338
341
|
.cursor-pointer {
|
|
339
342
|
cursor: pointer;
|
|
340
343
|
}
|
|
@@ -1175,6 +1178,26 @@
|
|
|
1175
1178
|
inherits: false;
|
|
1176
1179
|
initial-value: 0;
|
|
1177
1180
|
}
|
|
1181
|
+
@property --tw-rotate-x {
|
|
1182
|
+
syntax: "*";
|
|
1183
|
+
inherits: false;
|
|
1184
|
+
}
|
|
1185
|
+
@property --tw-rotate-y {
|
|
1186
|
+
syntax: "*";
|
|
1187
|
+
inherits: false;
|
|
1188
|
+
}
|
|
1189
|
+
@property --tw-rotate-z {
|
|
1190
|
+
syntax: "*";
|
|
1191
|
+
inherits: false;
|
|
1192
|
+
}
|
|
1193
|
+
@property --tw-skew-x {
|
|
1194
|
+
syntax: "*";
|
|
1195
|
+
inherits: false;
|
|
1196
|
+
}
|
|
1197
|
+
@property --tw-skew-y {
|
|
1198
|
+
syntax: "*";
|
|
1199
|
+
inherits: false;
|
|
1200
|
+
}
|
|
1178
1201
|
@property --tw-space-y-reverse {
|
|
1179
1202
|
syntax: "*";
|
|
1180
1203
|
inherits: false;
|
|
@@ -1323,6 +1346,11 @@
|
|
|
1323
1346
|
--tw-translate-x: 0;
|
|
1324
1347
|
--tw-translate-y: 0;
|
|
1325
1348
|
--tw-translate-z: 0;
|
|
1349
|
+
--tw-rotate-x: initial;
|
|
1350
|
+
--tw-rotate-y: initial;
|
|
1351
|
+
--tw-rotate-z: initial;
|
|
1352
|
+
--tw-skew-x: initial;
|
|
1353
|
+
--tw-skew-y: initial;
|
|
1326
1354
|
--tw-space-y-reverse: 0;
|
|
1327
1355
|
--tw-border-style: solid;
|
|
1328
1356
|
--tw-font-weight: initial;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@motiadev/plugin-observability",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0-beta.175",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@radix-ui/react-popover": "^1.1.15",
|
|
18
|
+
"@tanstack/react-virtual": "^3.13.12",
|
|
18
19
|
"date-fns": "^4.1.0",
|
|
19
20
|
"lucide-react": "^0.555.0",
|
|
20
21
|
"react": "^19.2.0",
|
|
@@ -22,9 +23,9 @@
|
|
|
22
23
|
"zustand": "^5.0.8"
|
|
23
24
|
},
|
|
24
25
|
"peerDependencies": {
|
|
25
|
-
"@motiadev/core": "0.
|
|
26
|
-
"@motiadev/stream-client-react": "0.
|
|
27
|
-
"@motiadev/ui": "0.
|
|
26
|
+
"@motiadev/core": "0.16.0-beta.175",
|
|
27
|
+
"@motiadev/stream-client-react": "0.16.0-beta.175",
|
|
28
|
+
"@motiadev/ui": "0.16.0-beta.175"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
31
|
"@bosh-code/tsdown-plugin-inject-css": "^2.0.0",
|