@xrkseek/harness-cli 0.0.7 → 0.0.9
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/node_modules/@xrkseek/core-agent/dist/index.d.ts +6 -1
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.js +3 -0
- package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +11 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +14 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.js +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/registry.d.ts +5 -0
- package/node_modules/@xrkseek/exec-pty/dist/registry.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/registry.js +17 -1
- package/node_modules/@xrkseek/exec-pty/dist/registry.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/render.d.ts +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/render.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/render.js +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/render.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/tools.js +13 -4
- package/node_modules/@xrkseek/exec-pty/dist/tools.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +3 -2
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +12 -7
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/preset.d.ts +3 -2
- package/node_modules/@xrkseek/preset-minimal/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js +12 -7
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.js +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.js +50 -0
- package/node_modules/@xrkseek/protocol/dist/json-schema.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +56 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.js +9 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.js +129 -0
- package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +5 -2
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js +5 -1
- package/node_modules/@xrkseek/server-face/dist/projections/units/session-list-metadata.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +12 -2
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-list.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/skill-list.js +1 -0
- package/node_modules/@xrkseek/server-face/dist/skill-list.js.map +1 -1
- package/node_modules/@xrkseek/session-projection/dist/types.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/README.md +3 -23
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts +62 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.d.ts.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js +146 -0
- package/node_modules/@xrkseek/workspace/dist/durable-inject.js.map +1 -0
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +25 -13
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +79 -17
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js +6 -0
- package/node_modules/@xrkseek/workspace/dist/skill-tools.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts +12 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js +42 -4
- package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/slash.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/slash.js +2 -0
- package/node_modules/@xrkseek/workspace/dist/slash.js.map +1 -1
- package/node_modules/@xrkseek/workspace/package.json +2 -1
- package/package.json +1 -1
- package/product-web/assets/index-CcF0Sxxg.js +297 -0
- package/product-web/assets/index-CcF0Sxxg.js.map +1 -0
- package/product-web/assets/langs/{php-9bx0az3O.js → php-DY2VakOf.js} +2 -2
- package/product-web/assets/langs/{php-9bx0az3O.js.map → php-DY2VakOf.js.map} +1 -1
- package/product-web/assets/langs/{ruby-HDLHRjSL.js → ruby-hwtoiFmS.js} +2 -2
- package/product-web/assets/langs/{ruby-HDLHRjSL.js.map → ruby-hwtoiFmS.js.map} +1 -1
- package/product-web/assets/{vendor-CeMKrCZm.js → vendor-CldRVjca.js} +35 -36
- package/product-web/assets/vendor-CldRVjca.js.map +1 -0
- package/product-web/boot.json +1 -1
- package/product-web/index.html +2 -2
- package/product-web/plugins/@xrkseek/client-locale/client.js +2 -2
- package/product-web/plugins/@xrkseek/client-runtime/client.js +37 -1
- package/product-web/plugins/@xrkseek/client-ui-agent-preset/client.js +34 -34
- package/product-web/plugins/@xrkseek/client-ui-commands/client.js +7 -7
- package/product-web/plugins/@xrkseek/client-ui-conversation/client.js +161 -161
- package/product-web/plugins/@xrkseek/client-ui-deliverables/client.js +5 -5
- package/product-web/plugins/@xrkseek/client-ui-directory-picker-browse/client.js +26 -26
- package/product-web/plugins/@xrkseek/client-ui-goal/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-input-trigger/client.js +2 -2
- package/product-web/plugins/@xrkseek/client-ui-jobs/client.js +8 -8
- package/product-web/plugins/@xrkseek/client-ui-layout/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-ui-message-feedback/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-model-selection/client.js +19 -19
- package/product-web/plugins/@xrkseek/client-ui-permission-presets/client.js +4 -4
- package/product-web/plugins/@xrkseek/client-ui-plan/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-ui-settings-general/client.js +14 -14
- package/product-web/plugins/@xrkseek/client-ui-settings-models/client.js +51 -51
- package/product-web/plugins/@xrkseek/client-ui-settings-plugin-inventory/client.js +12 -12
- package/product-web/plugins/@xrkseek/client-ui-settings-plugins/client.js +42 -42
- package/product-web/plugins/@xrkseek/client-ui-sidebar/client.js +13 -13
- package/product-web/plugins/@xrkseek/client-ui-skill/client.js +13 -13
- package/product-web/plugins/@xrkseek/client-ui-subagent/client.js +17 -17
- package/product-web/plugins/@xrkseek/client-ui-theme/client.js +3 -3
- package/product-web/plugins/@xrkseek/client-ui-tool/client.js +39 -39
- package/product-web/plugins/@xrkseek/client-ui-trajectory/client.js +171 -150
- package/product-web/plugins/@xrkseek/client-ui-user-questions/client.js +27 -27
- package/product-web/plugins/@xrkseek/client-ui-workflow-run/client.js +15 -15
- package/product-web/plugins/@xrkseek/client-ui-workspace/client.js +53 -53
- package/node_modules/@xrkseek/server-face/dist/dsh-schema.d.ts +0 -35
- package/node_modules/@xrkseek/server-face/dist/dsh-schema.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/dsh-schema.js +0 -116
- package/node_modules/@xrkseek/server-face/dist/dsh-schema.js.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/envelope.d.ts +0 -23
- package/node_modules/@xrkseek/server-face/dist/envelope.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/envelope.js +0 -51
- package/node_modules/@xrkseek/server-face/dist/envelope.js.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/rpc-error.d.ts +0 -15
- package/node_modules/@xrkseek/server-face/dist/rpc-error.d.ts.map +0 -1
- package/node_modules/@xrkseek/server-face/dist/rpc-error.js +0 -247
- package/node_modules/@xrkseek/server-face/dist/rpc-error.js.map +0 -1
- package/product-web/assets/index-BwSJq-Ch.js +0 -112
- package/product-web/assets/index-BwSJq-Ch.js.map +0 -1
- package/product-web/assets/vendor-CeMKrCZm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","isNullable","value","isNonNullable","isPlainObject","data","filterKeys","object","filter","key","mapValues","transform","pick","source","keys","forced","result","defineProperty","is","type","isArrayBufferLike","isArrayBufferSource","Binary","fromSource","toBase64","binary","bytes","i","fromBase64","toHex","byte","fromHex","hex","buffer","clone","refs","cached","index","descriptor","deepEqual","strict","check","test","then","item","viewA","viewB","tokenize","delimiters","delimiter","output","state","code","next","paramCase","hyphenate","Time","timezoneOffset","setTimezoneOffset","offset","getTimezoneOffset","getDateNumber","date","fromDateNumber","numeric","timeRegExp","unit","parseTime","capture","parseDate","parsed","format","ms","abs","toDigits","length","template","time","DisposableList","__publicField","sn","values","symbols","GeneratorFunction","AsyncGeneratorFunction","isConstructor","func","joinPrototype","proto1","proto2","isObject","getPropertyDescriptor","target","prop","proto","desc","getTraceable","ctx","tracker","createTraceable","withProps","props","receiver","withProp","createShadow","property","origin","_a","createShadowMethod","outer","shadow","thisArg","args","proxy","innerValue","innerTracker","applyTraceable","createCallable","name","self","handleError","info","reason","getOuterStack","innerLines","outerError","lines","composeError","callback","buildOuterStack","isBailed","EventsService","listener","options","config","noSave","cbs","_next","Context","hook","errors","cb","error","inner","label","hooks","method","dispose","defaultFormatters","exporter","message","Logger","isAggregateError","service","decoration","level","hash","colors","c256","c16","match","char","formatter","oFormatter","arg","maxLength","line","ts","_b","LoggerService","intercept","configs","fiber","enhanceError","RESERVED_WORDS","isSpecialProperty","ReflectService","impl","fibers","names","runtime","hasUpdate","mixins","entries","getTarget","mixin","newTarget","def","kValidationError","ValidationError","issues","issue","resolveConfig","effectInertia","runDisposable","emitPluginDisposed","context","callbacks","returned","CordisError","INACTIVE","Fiber","parent","inject","collect","injectEntries","instance","remove","runner","oldEpoch","safeCollect","effect","iter","execute","disposables","disposing","disposalTask","task","disposable","meta","executing","resolveSetup","rejectSetup","setupBarrier","setupFailed","inFlight","removeWrapper","waitForSetup","resolve","reject","disposeAfter","setup","finalizeDisposal","pending","wrapper","cleanup","disposeAsync","onFulfilled","onRejected","oldState","epoch","isApplicable","Inject","decorator","RegistryService","plugin","wrapped","Service","base","head","constructor","createRequire","ModuleLoader","_cachedLoader","requireInternal","id","require","define_process_execArgv_default","fromInternal","major","raw","EntryGroup","tree","entry","existing","Entry","previousParent","isDispose","oldConfig","seen","oldMap","newMap","outcomes","failures","outcome","rollbackErrors","rollbackError","__rewriteRelativeImportExtension","path","preserveJsx","tsx","ext","cm","EntryTree","tasks","parts","final","part","position","group","sourceIndex","evaluate","interpolate","isJsExpr","valueMap","updateError","stage","cause","detail","takeEntries","sortKeys","prepend","append","part1","part2","rest","replaceKeys","loader","expr","diff","create","force","previousOptions","legacy","candidate","commit","previous","previousPlugin","swap","Realm","LocalRealm","GlobalRealm","isolate","realms","delims","access","realm","delim","symbol","symbol1","symbol2","flag1","flag2","symbol3","flag3","active","Loader","_config","_c","unparse","_","treeOwner","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","client","defaultLoadBundle","url","stripClientSuffix","spec","claimStyles","owned","ClientModuleSystem","row","win","handoff","registered","edges","record","specifier","module","parseBootManifest","wire","graph","modules","plugins","where","apply","useSyncExternalStoreShim_production_min","shimModule","withSelector_production_min","withSelectorModule","bindSnapshotSelector","subscribe","fn","getSnapshot","sel","eq","useSyncExternalStoreWithSelector","StaleAuthorizationError","SlotOwnershipError","resolveSlotLabel","NO_ENTRIES","SlotCore","root","component","rec","priority","occupantHint","occupant","childKey","childRec","pinned","declarations","childSpec","kind","heads","seenCells","cell","build","branch","children","child","node","doomed","dead","dirty","SlotAssemblyError","HostContext","createContext","useHost","host","useContext","BindingContext","useSessionMaybeProvideInfo","observableHook","hookCache","absentSource","maybeObservableHook","useAbsentSnapshot","_selector","_equal","projectionHook","projectionHookCache","selector","SessionMaybeProvider","SessionProvider","empty","s","jsx","Fragment","renderSlotCache","boundRenderSlot","binding","owner","opts","declared","SlotOutlet","renderSlotChainCache","boundRenderSlotChain","rootInjectCache","sessionInjectCache","sessionMaybeInjectCache","EMPTY_INJECTED_PROPS","runInject","actions","bindInjectHooks","face","sources","_hooks","bound","hookName","slotInjectCache","EMPTY_SLOT_INJECT","cachedSlotInject","definitions","factories","definition","bindSlotHookFactories","standard","hookContext","factory","cachedRootInject","cachedSessionInject","perInfo","cachedSessionMaybeInject","localeSeatCache","localeSeat","ns","perNs","revision","params","noopSubscribe","zeroRevision","localeSubscriptionCache","localeSubscription","useLocaleRevision","subscription","useSyncExternalStore","nextEntryKey","entryKeys","entryKeyOf","SlotErrorBoundary","Component","standardPropsCache","standardProps","scope","cache","byInfo","standardKit","kit","store","ContextualEntry","slotKey","Comp","injected","slotInjected","ownerProps","hasHookContext","contextual","useMemo","renderEntry","SessionEntry","SessionMaybeEntryBody","SessionMaybeEntry","setState","useState","FIRST_INCARNATION","adopted","RootEntry","StrictSessionEntry","onEntryError","ANCHOR_STYLE","sessionInfo","renderOutletContent","strictSessionAbsent","guarded","deadCell","elected","matched","jsxs","rows","rowIds","list","RootOutlet","createSlotRenderer","createCell","bump","delta","wasPending","useInvoke","ref","useRef","DocumentTitle","title","original","useEffect","buildRenderApp","deps","sessions","useSessions","SessionDocumentTitle","APP_SHELL_ID","renderApp","AppRoot","settled","status","failed","loud","css","o","clsx","MATRIX_CELLS","StateDot","size","className","IconNewChatOutline16","IconSearchOutline16","IconGlobeOutline14","IconSettingsOutline14","IconSettingsOutline16","IconPanelLeftOutline16","IconEllipsisOutline16","IconPlusOutline16","IconCheckOutline16","IconCheckOutline14","IconBranchOutline16","IconChevronDownOutline14","IconChevronLeftOutline14","IconChevronRightOutline14","IconTriangleRightFill14","IconChevronUpOutline14","IconCloseOutline16","IconCloseFill14","IconCopyOutline16","IconRefreshOutline16","IconRefreshOutline14","IconLikeOutline16","IconLikeFill16","IconDislikeOutline16","IconDislikeFill16","IconShareOutline16","IconEditOutline16","IconThinkOutline14","IconThinkOutline16","IconAgentPresetOutline16","IconBrowseOutline16","IconLinkOutline14","IconLinkOutline16","IconRightUpOutline14","IconRightUpOutline16","IconEnhanceOutline16","IconTrashOutline16","IconWarningOutline16","IconUserOutline16","IconSendOutline16","IconStopFill16","IconPaperclipOutline16","IconLoadingOutline16","IconDownloadOutline16","IconPlayOutline16","IconPauseOutline16","IconFullscreenOutline16","IconCodeOutline16","IconCordisPluginOutline14","IconApiOutline14","IconPersonalizationOutline16","IconProjectAddOutline16","IconFolderOpenOutline16","IconFolderOpen16","IconFolderClose16","IconTreeCorner8x10","IconLightOutline16","IconDarkOutline16","IconFollowsystemOutline16","IconDataOutline16","IconSendOutline14","IconQueueOutline14","IconChecklistOutline14","IconListPenOutline16","IconGoalOutline16","IconSparkle16","IconInspectOutline12","IconSkillOutline16","IconQuestionOutline14","IconArchiveOutline20","DisclosureRow","icon","open","expandable","onToggle","expandOnRowClick","previewChevron","keepContentWhenOpen","collapsedContent","rowClassName","leadingClassName","chevronClassName","titleClassName","rowExpands","toggleFromLeading","event","toggleFromKeyboard","collapsedLeading","leading","Button","variant","Pill","onClick","Input","POINTER_GRACE_MS","usePointerGrace","close","timerRef","closeRef","cancel","useCallback","arm","isSeparator","isLabel","MEASURE_STYLE","Menu","anchor","items","selectedId","selectedIds","onSelect","onClose","align","side","portal","closeOnPointerLeave","dense","compact","getAnchorRect","footer","rootRef","listRef","openSubmenuId","setOpenSubmenuId","fixedPos","setFixedPos","armClose","cancelClose","useLayoutEffect","place","MARGIN","vw","listEl","lw","onPointerDown","onKeyDown","scrollable","hasSub","subOpen","selected","sub","createPortal","useAnchoredMaxHeight","cap","signal","maxHeight","setMaxHeight","fit","useDismissOnOutsidePointer","setOpen","closeOutside","writeClipboard","text","exec","HoverCard","content","openDelayMs","disabled","copyText","copyLabel","copiedLabel","cardRef","copyTimerRef","copyHeightRef","copyEpochRef","copyingRef","mountedRef","pos","setPos","copied","setCopied","clearCopied","clearTimer","top","copy","copyEpoch","accepted","card","height","copyable","selection","Modal","closeLabel","description","contentClassName","headless","OnboardingSurface","appRoot","RiskConfirmation","acknowledgeLabel","cancelLabel","confirmLabel","acknowledged","onAcknowledgedChange","onCancel","onConfirm","ConnectionBanner","reconnecting","VIEW","BrandMark","MARK","WORD_W","WORD_H","BrandWordmark","Tooltip","delayMs","maxWidth","childRef","mergedRef","placement","setPlacement","bubble","resolvedLabel","EDGE_MARGIN","dx","fitsBelow","fitsAbove","showTimer","triggers","cancelShow","show","showAfterHoverDelay","hide","cloneElement","HOLD_MS","FADE_MS","Toast","onDone","timer","left","setLeft","measure","rect","OBJECT_PREVIEW_LIMIT","ARRAY_PREVIEW_LIMIT","PREVIEW_DEPTH_LIMIT","DEFAULT_LABELS","action","valueCopyMenuItems","labels","objectCopyMenuItems","isExpandableValue","entriesOf","bracketOf","previewPrimitive","previewValue","depth","array","limit","visible","primitiveValue","fieldText","field","pathId","claimFocus","button","moveFocus","direction","expanders","current","nextExpander","NodeField","JsonTreeNode","initialExpanded","lastElement","onClaimTabStop","onRowHover","tabStopId","contentsId","useId","expanderRef","expanded","setExpanded","nodeId","container","toggle","onExpanderKeyDown","ariaExpanded","formattedPath","mode","JsonTree","expandTopLevel","copyLabels","rootEntries","firstExpandableIndex","firstExpandableEntry","initialTabStopId","activeRowRef","copyButtonRef","copyMenuOpenRef","resetTimer","copyTarget","setCopyTarget","copyState","setCopyState","copyMenuOpen","setCopyMenuOpen","setTabStopId","setActiveRow","clearCopyTarget","copyPosition","rootRect","rowRect","positionCopyButton","repositionCopyButton","reposition","handleRowHover","handleRootMouseOver","handleScroll","_event","rootOpen","rootClose","copyTargetIsObject","defaultCopyMode","copyTitle","ANSI_COLORS","linkRegex","Anser","txt","j","levels","str","markup","raw_text_chunks","first_chunk","color_chunks","chunk","first","use_classes","matches","nums","num_str","num","is_foreground","palette_index","klass","color","jsonChunk","tmpFg","tmpFgTrue","decorations","textDecorations","render_data","fragments","lib","TOKEN_BY_BASIC_RGB","STYLE_BY_DECORATION","OSC_SEQUENCE","NON_CSI_ESCAPE","INERT_CONTROL","NEEDS_REPLAY","SGR_SEQUENCE","TAB_WIDTH","ZERO_WIDTH","WIDE_CHAR","isWide","SGR_NONE","ATTR_CLOSERS","foldSgr","codes","span","closes","attr","openSgr","sameSgr","replayLine","entrySgr","csi","columns","cursor","sgr","at","clear","fill","consume","stop","out","column","leadIntact","applyCursorMovements","replayed","sanitize","escaped","resolveStyle","style","background","literal","parseAnsiLines","headTailCap","total","maxLines","hidden","headLines","COPIED_FEEDBACK_MS","useCopyFeedback","onCopy","DEFAULT_TERMINAL_MAX_LINES","exitCode","promptLabel","cwd","home","trimmed","segment","statusText","runState","running","renderLine","TerminalBlock","command","last","commandLines","capped","tailLines","LANGS","langTs","langBash","langJson","LAZY_GRAMMARS","__vitePreload","LANG_ALIASES","cssVariablesTheme","createCssVariablesTheme","regexEngine","createJavaScriptRegexEngine","pattern","defaultJavaScriptRegexConstructor","singleton","BOOT_GRAMMAR_WARMUPS","createHighlighter","createHighlighterCoreSync","sample","highlighter","requested","listeners","loadCount","subscribeGrammarLoaded","grammarLoadCount","ensureGrammar","resolved","load","mod","warmupTimer","highlightToHtml","lang","highlightLines","tokens","token","DEFAULT_READ_MAX_LINES","renderSpans","spans","ReadBlock","totalLines","loaded","highlighted","windowed","slice","paired","DEFAULT_DIFF_MAX_LINES","assertNever","ROW_CLASS","buildRows","diffs","paths","added","removed","prevPath","contentLines","DiffBlock","files","tail","DEFAULT_SEARCH_MAX_LINES","file","shownCount","sum","summaryText","shown","truncated","count","toRows","collapsed","isCollapsed","rowKey","SearchBlock","setCollapsed","toggleFile","prev","naturalTail","tailLead","tailHeader","renderRow","UNSTABLE_TAIL_BLOCKS","blockKey","IncrementalMarkdownParser","parse","blocks","firstUnstable","cutEnd","cjkCharacter","isCjkCharacter","tokenizeCjkFriendlyAttention","effects","nok","configuredAttentionMarkers","attentionMarkers","before","classifyCharacter","marker","start","inside","after","constants","commonMarkClose","cjkStrongClose","unicodePunctuation","cjkFriendlyAttention","attention","cjkFriendlyStrongExtension","cjkFriendlyStrong","previousBackslash","types","tokenizeBackslashMathText","between","tokenizeClose","afterCloseAttempt","markdownLineEnding","dataStart","tokenizeOpen","afterDataBackslash","closeEffects","closeOk","closeNok","slash","parenthesis","openEffects","openOk","openNok","createMathFlow","openMarker","closeMarker","multiline","oddBackslashRun","initialSize","afterDollarOpen","tokenizeClosingFence","closed","afterClosingFenceAttempt","nonLazyContinuation","afterContinuation","valueStart","tokenizeOpeningFence","markerValueStart","factorySpace","valueAfterMarker","sequenceStart","sequenceEnd","tokenizeNonLazyContinuation","lineStart","backslashMathText","backslashMathFlow","sameLineDollarMathFlow","backslashMath","mathCompatibility","parseGfm","fromMarkdown","gfm","gfmFromMarkdown","parseGfmWithMath","math","mathFromMarkdown","CodeBlock","html","body","styleObject","declaration","colon","letter","domToReact","element","attribute","createElement","renderTexToReact","displayMode","katex","sanitizeUrl","remoteImageUrl","protocol","createReferenceTargets","collectReferenceTargets","nodes","targets","renderBlocks","block","renderNode","wrapBlockChildren","elements","renderBlockEntries","renderChildren","href","inlineCodeHttpUrl","renderSafeLink","mention","renderCode","renderList","renderListItem","listItemLoose","renderTable","renderAnchor","renderLinkReference","renderImage","renderImageReference","renderFootnoteReference","language","listLoose","loose","properties","checkbox","isParagraph","headRow","bodyRows","renderTableRow","cellTag","cells","alignValue","safeHref","external","normalizeUri","alt","imageSrc","referenceSuffix","renderFootnoteSection","backrefs","reference","renderSettled","codeLabels","fileMentions","section","StreamingRenderer","frozen","generation","newlyFrozen","frameTargets","frozenContext","batch","tailContext","MarkdownText","memo","streaming","streamRef","streamLabelsRef","linkLabel","hostname","SafeLink","SourceItem","ordinal","WebSearchBlock","answer","WebFetchBlock","statusCode","WebBlock","MAX_CHARS","defaultTruncatedLabel","JsonBlock","payload","defaultOpen","truncatedLabel","MessageText","inlineText","compactInline","blockText","_d","_e","_f","findFirstParagraph","fullText","extractMarkdownPlainText","markdown","all","WHEEL_LINE_PX","pageBehavior","AttachmentRail","onOpen","onRemove","railRef","countRef","setEdges","updateEdges","right","grew","disconnect","observer","onWheel","scale","page","DropOverlay","UploadDisabledIllustration","UploadIllustration","ImageLightbox","src","restoreRef","singleFit","attachment","natural","ratio","box","MessageImage","setSrc","setError","attempt","setAttempt","request","live","ImageGallery","images","image","kSchema","prefix","Schema","schema","getRef","uid","mergeDesc","messages","locale","getInner","extractKeys","regexp","inline","formatters","role","extra","resolvers","fallback","builder","toJSON","flag","encoding","checkWithinRange","skipMin","max","min","decimalShift","digits","frac","integer","isMultipleOf","step","bits","prototype","adapted","sKey","rKey","merge","dict","toString","preserve","defineMethod","isInner","rehydrateSchema","serialized","validateDraft","draft","nodeAtPath","getPath","hasPath","cloneContainer","cloneSpine","setPath","leaf","deletePath","getStaticModules","React","ReactJsxRuntime","ReactDom","ReactDomClient","Cordis","UiSlots","WebReact","UiPrimitives","UiAttachment","SchemaForm","FIBER_STATE","STATE_LABELS","createSignal","init","createLoaderStatusStore","MODULES_ID","AppWebEntry","seams","AppShell","ModulesClient","createRoot","shell","prefetching","missing"],"ignoreList":[0,1,2,3,8,9,10,11,12,16,17,18,19,30,52],"sources":["../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../../packages/cosmokit/lib/index.js","../../../../packages/cordis/lib/index.js","../../src/node-module-stub.ts","../../../../packages/cordis-loader/lib/index.js","../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/index.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","../../../../packages/client/modules/src/client/system.ts","../../../../packages/client/modules/src/client/manifest.ts","../../../../packages/client/modules/src/client/index.ts","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/with-selector.js","../../../../packages/client/web-react/src/bind.ts","../../../../packages/client/ui-slots/src/renderer.ts","../../../../packages/client/ui-slots/src/index.ts","../../../../packages/client/web-react/src/session-provider.tsx","../../../../packages/client/web-react/src/scoped-slots.tsx","../../../../packages/client/web-react/src/use-invoke.ts","../../../../packages/client/web/src/DocumentTitle.tsx","../../../../packages/client/web/src/app.tsx","../../../../packages/client/web/src/app-shell.ts","../../../../packages/client/web/src/AppRoot.tsx","../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../../packages/client/ui-primitives/src/StateDot.tsx","../../../../packages/client/ui-primitives/src/icons/index.tsx","../../../../packages/client/ui-primitives/src/DisclosureRow.tsx","../../../../packages/client/ui-primitives/src/Button.tsx","../../../../packages/client/ui-primitives/src/Pill.tsx","../../../../packages/client/ui-primitives/src/Input.tsx","../../../../packages/client/ui-primitives/src/pointer-grace.ts","../../../../packages/client/ui-primitives/src/Menu.tsx","../../../../packages/client/ui-primitives/src/useAnchoredMaxHeight.ts","../../../../packages/client/ui-primitives/src/useDismissOnOutsidePointer.ts","../../../../packages/client/ui-primitives/src/clipboard.ts","../../../../packages/client/ui-primitives/src/HoverCard.tsx","../../../../packages/client/ui-primitives/src/Modal.tsx","../../../../packages/client/ui-primitives/src/OnboardingSurface.tsx","../../../../packages/client/ui-primitives/src/RiskConfirmation.tsx","../../../../packages/client/ui-primitives/src/ConnectionBanner.tsx","../../../../packages/client/ui-primitives/src/BrandMark.tsx","../../../../packages/client/ui-primitives/src/BrandWordmark.tsx","../../../../packages/client/ui-primitives/src/Tooltip.tsx","../../../../packages/client/ui-primitives/src/Toast.tsx","../../../../packages/client/ui-primitives/src/JsonTree.tsx","../../../../node_modules/.pnpm/anser@2.3.5/node_modules/anser/lib/index.js","../../../../packages/client/ui-primitives/src/ansi.ts","../../../../packages/client/ui-primitives/src/head-tail-cap.ts","../../../../packages/client/ui-primitives/src/use-copy-feedback.ts","../../../../packages/client/ui-primitives/src/TerminalBlock.tsx","../../../../packages/client/ui-primitives/src/markdown/highlight.ts","../../../../packages/client/ui-primitives/src/ReadBlock.tsx","../../../../packages/client/ui-primitives/src/DiffBlock.tsx","../../../../packages/client/ui-primitives/src/SearchBlock.tsx","../../../../packages/client/ui-primitives/src/markdown/incremental.ts","../../../../packages/client/ui-primitives/src/markdown/cjkFriendlyStrong.ts","../../../../packages/client/ui-primitives/src/markdown/mathCompatibility.ts","../../../../packages/client/ui-primitives/src/markdown/parse.ts","../../../../packages/client/ui-primitives/src/markdown/CodeBlock.tsx","../../../../packages/client/ui-primitives/src/markdown/katex.tsx","../../../../packages/client/ui-primitives/src/markdown/render.tsx","../../../../packages/client/ui-primitives/src/markdown/MarkdownText.tsx","../../../../packages/client/ui-primitives/src/WebBlock.tsx","../../../../packages/client/ui-primitives/src/markdown/JsonBlock.tsx","../../../../packages/client/ui-primitives/src/markdown/MessageText.tsx","../../../../packages/client/ui-primitives/src/markdown/plain-text.ts","../../../../packages/client/ui-attachment/src/AttachmentRail.tsx","../../../../packages/client/ui-attachment/src/DropOverlay.tsx","../../../../packages/client/ui-attachment/src/ImageLightbox.tsx","../../../../packages/client/ui-attachment/src/MessageImage.tsx","../../../../packages/schemastery/lib/index.mjs","../../../../packages/client/schema-form/src/model.ts","../../../../packages/client/web/src/seed.ts","../../../../packages/client/web/src/loader-status.ts","../../../../packages/client/web/src/boot.tsx","../../src/main.ts"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","//#region lib/types/misc.js\n/** No-op callback returning `undefined` at runtime and `any` at type level. */\nfunction noop() {}\n/** Return true when a value is `null` or `undefined`. */\nfunction isNullable(value) {\n\treturn value === null || value === void 0;\n}\n/** Return true when a value is neither `null` nor `undefined`. */\nfunction isNonNullable(value) {\n\treturn !isNullable(value);\n}\n/** Return true for non-array object values. */\nfunction isPlainObject(data) {\n\treturn data && typeof data === \"object\" && !Array.isArray(data);\n}\n/** Filter object entries and return a new object. */\nfunction filterKeys(object, filter) {\n\treturn Object.fromEntries(Object.entries(object).filter(([key, value]) => filter(key, value)));\n}\n/** Map object values while preserving the original key set. */\nfunction mapValues(object, transform) {\n\treturn Object.fromEntries(Object.entries(object).map(([key, value]) => [key, transform(value, key)]));\n}\n/** Pick selected keys from an object, optionally including `undefined` values. */\nfunction pick(source, keys, forced) {\n\tif (!keys) return { ...source };\n\tconst result = {};\n\tfor (const key of keys) if (forced || source[key] !== void 0) result[key] = source[key];\n\treturn result;\n}\n/** Omit selected keys from a shallow object copy. */\nfunction omit(source, keys) {\n\tif (!keys) return { ...source };\n\tconst result = { ...source };\n\tfor (const key of keys) Reflect.deleteProperty(result, key);\n\treturn result;\n}\n/** Define a non-enumerable writable property and return the object. */\nfunction defineProperty(object, key, value) {\n\treturn Object.defineProperty(object, key, {\n\t\twritable: true,\n\t\tvalue,\n\t\tenumerable: false\n\t});\n}\n//#endregion\n//#region lib/types/array.js\n/** Return true when every item in `array2` is present in `array1`. */\nfunction contain(array1, array2) {\n\treturn array2.every((item) => array1.includes(item));\n}\n/** Return items that appear in both arrays. */\nfunction intersection(array1, array2) {\n\treturn array1.filter((item) => array2.includes(item));\n}\n/** Return items from `array1` that do not appear in `array2`. */\nfunction difference(array1, array2) {\n\treturn array1.filter((item) => !array2.includes(item));\n}\n/** Return the set-union of two arrays while preserving first occurrence order. */\nfunction union(array1, array2) {\n\treturn Array.from(new Set([...array1, ...array2]));\n}\n/** Remove duplicate values while preserving first occurrence order. */\nfunction deduplicate(array) {\n\treturn [...new Set(array)];\n}\n/** Remove one item from an array and report whether it was found. */\nfunction remove(list, item) {\n\tconst index = list?.indexOf(item);\n\tif (index >= 0) {\n\t\tlist.splice(index, 1);\n\t\treturn true;\n\t} else return false;\n}\n/** Normalize nullish, scalar, or array input to an array. */\nfunction makeArray(source) {\n\treturn Array.isArray(source) ? source : isNullable(source) ? [] : [source];\n}\n//#endregion\n//#region lib/types/types.js\n/** Test values using `instanceof` with a `toStringTag` fallback. */\nfunction is(type, value) {\n\tif (arguments.length === 1) return (value) => is(type, value);\n\treturn type in globalThis && value instanceof globalThis[type] || Object.prototype.toString.call(value).slice(8, -1) === type;\n}\nfunction isArrayBufferLike(value) {\n\treturn is(\"ArrayBuffer\", value) || is(\"SharedArrayBuffer\", value);\n}\nfunction isArrayBufferSource(value) {\n\treturn isArrayBufferLike(value) || ArrayBuffer.isView(value);\n}\n/** Binary source detection and base64/hex conversion helpers. */\nvar Binary;\n(function(Binary) {\n\tBinary.is = isArrayBufferLike;\n\tBinary.isSource = isArrayBufferSource;\n\tfunction fromSource(source) {\n\t\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\t\telse return source;\n\t}\n\tBinary.fromSource = fromSource;\n\tfunction toBase64(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"base64\");\n\t\tlet binary = \"\";\n\t\tconst bytes = new Uint8Array(source);\n\t\tfor (let i = 0; i < bytes.byteLength; i++) binary += String.fromCharCode(bytes[i]);\n\t\treturn btoa(binary);\n\t}\n\tBinary.toBase64 = toBase64;\n\tfunction fromBase64(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"base64\"));\n\t\treturn Uint8Array.from(atob(source), (c) => c.charCodeAt(0));\n\t}\n\tBinary.fromBase64 = fromBase64;\n\tfunction toHex(source) {\n\t\tsource = fromSource(source);\n\t\tif (typeof Buffer !== \"undefined\") return Buffer.from(source).toString(\"hex\");\n\t\treturn Array.from(new Uint8Array(source), (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n\t}\n\tBinary.toHex = toHex;\n\tfunction fromHex(source) {\n\t\tif (typeof Buffer !== \"undefined\") return fromSource(Buffer.from(source, \"hex\"));\n\t\tconst hex = source.length % 2 === 0 ? source : source.slice(0, source.length - 1);\n\t\tconst buffer = [];\n\t\tfor (let i = 0; i < hex.length; i += 2) buffer.push(parseInt(`${hex[i]}${hex[i + 1]}`, 16));\n\t\treturn Uint8Array.from(buffer).buffer;\n\t}\n\tBinary.fromHex = fromHex;\n})(Binary || (Binary = {}));\n/** Decode a base64 string into binary data. */\nconst base64ToArrayBuffer = Binary.fromBase64;\n/** Encode binary data as base64. */\nconst arrayBufferToBase64 = Binary.toBase64;\n/** Decode a hex string into binary data. */\nconst hexToArrayBuffer = Binary.fromHex;\n/** Encode binary data as hex. */\nconst arrayBufferToHex = Binary.toHex;\n/** Deep-clone common JavaScript values while preserving prototypes and cycles. */\nfunction clone(source, refs = /* @__PURE__ */ new Map()) {\n\tif (!source || typeof source !== \"object\") return source;\n\tif (is(\"Date\", source)) return new Date(source.valueOf());\n\tif (is(\"RegExp\", source)) return new RegExp(source.source, source.flags);\n\tif (isArrayBufferLike(source)) return source.slice(0);\n\tif (ArrayBuffer.isView(source)) return source.buffer.slice(source.byteOffset, source.byteOffset + source.byteLength);\n\tconst cached = refs.get(source);\n\tif (cached) return cached;\n\tif (Array.isArray(source)) {\n\t\tconst result = [];\n\t\trefs.set(source, result);\n\t\tsource.forEach((value, index) => {\n\t\t\tresult[index] = Reflect.apply(clone, null, [value, refs]);\n\t\t});\n\t\treturn result;\n\t}\n\tconst result = Object.create(Object.getPrototypeOf(source));\n\trefs.set(source, result);\n\tfor (const key of Reflect.ownKeys(source)) {\n\t\tconst descriptor = { ...Reflect.getOwnPropertyDescriptor(source, key) };\n\t\tif (\"value\" in descriptor) descriptor.value = Reflect.apply(clone, null, [descriptor.value, refs]);\n\t\tReflect.defineProperty(result, key, descriptor);\n\t}\n\treturn result;\n}\n/** Deeply compare arrays, dates, regexps, buffers, and plain object fields. */\nfunction deepEqual(a, b, strict) {\n\tif (a === b) return true;\n\tif (!strict && isNullable(a) && isNullable(b)) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (typeof a !== \"object\") return false;\n\tif (!a || !b) return false;\n\tfunction check(test, then) {\n\t\treturn test(a) ? test(b) ? then(a, b) : false : test(b) ? false : void 0;\n\t}\n\treturn check(Array.isArray, (a, b) => a.length === b.length && a.every((item, index) => deepEqual(item, b[index]))) ?? check(is(\"Date\"), (a, b) => a.valueOf() === b.valueOf()) ?? check(is(\"RegExp\"), (a, b) => a.source === b.source && a.flags === b.flags) ?? check(isArrayBufferLike, (a, b) => {\n\t\tif (a.byteLength !== b.byteLength) return false;\n\t\tconst viewA = new Uint8Array(a);\n\t\tconst viewB = new Uint8Array(b);\n\t\tfor (let i = 0; i < viewA.length; i++) if (viewA[i] !== viewB[i]) return false;\n\t\treturn true;\n\t}) ?? Object.keys({\n\t\t...a,\n\t\t...b\n\t}).every((key) => deepEqual(a[key], b[key], strict));\n}\n//#endregion\n//#region lib/types/string.js\n/** Uppercase the first character of a string. */\nfunction capitalize(source) {\n\treturn source.charAt(0).toUpperCase() + source.slice(1);\n}\n/** Lowercase the first character of a string. */\nfunction uncapitalize(source) {\n\treturn source.charAt(0).toLowerCase() + source.slice(1);\n}\n/** Convert dash or underscore delimited text to camelCase. */\nfunction camelCase(source) {\n\treturn source.replace(/[_-][a-z]/g, (str) => str.slice(1).toUpperCase());\n}\nfunction tokenize(source, delimiters, delimiter) {\n\tconst output = [];\n\tlet state = 0;\n\tfor (let i = 0; i < source.length; i++) {\n\t\tconst code = source.charCodeAt(i);\n\t\tif (code >= 65 && code <= 90) {\n\t\t\tif (state === 1) {\n\t\t\t\tconst next = source.charCodeAt(i + 1);\n\t\t\t\tif (next >= 97 && next <= 122) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t} else {\n\t\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\t\toutput.push(code + 32);\n\t\t\t}\n\t\t\tstate = 1;\n\t\t} else if (code >= 97 && code <= 122) {\n\t\t\toutput.push(code);\n\t\t\tstate = 2;\n\t\t} else if (delimiters.includes(code)) {\n\t\t\tif (state !== 0) output.push(delimiter);\n\t\t\tstate = 0;\n\t\t} else output.push(code);\n\t}\n\treturn String.fromCharCode(...output);\n}\n/** Convert text to dash-delimited parameter case. */\nfunction paramCase(source) {\n\treturn tokenize(source, [45, 95], 45);\n}\n/** Convert text to underscore-delimited snake case. */\nfunction snakeCase(source) {\n\treturn tokenize(source, [45, 95], 95);\n}\n/** Runtime alias for `camelCase`. */\nconst camelize = camelCase;\n/** Runtime alias for `paramCase`. */\nconst hyphenate = paramCase;\n/** Format a property key as a JavaScript member access suffix. */\nfunction formatProperty(key) {\n\tif (typeof key !== \"string\") return `[${key.toString()}]`;\n\treturn /^[a-z_$][\\w$]*$/i.test(key) ? `.${key}` : `[${JSON.stringify(key)}]`;\n}\n/** Remove one trailing slash from a path string. */\nfunction trimSlash(source) {\n\treturn source.replace(/\\/$/, \"\");\n}\n/** Ensure a path starts with `/` and has no trailing slash. */\nfunction sanitize(source) {\n\tif (!source.startsWith(\"/\")) source = \"/\" + source;\n\treturn trimSlash(source);\n}\n//#endregion\n//#region lib/types/time.js\n/** Time constants plus parsing and formatting helpers. */\nvar Time;\n(function(Time) {\n\tTime.millisecond = 1;\n\tTime.second = 1e3;\n\tTime.minute = Time.second * 60;\n\tTime.hour = Time.minute * 60;\n\tTime.day = Time.hour * 24;\n\tTime.week = Time.day * 7;\n\tlet timezoneOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();\n\tfunction setTimezoneOffset(offset) {\n\t\ttimezoneOffset = offset;\n\t}\n\tTime.setTimezoneOffset = setTimezoneOffset;\n\tfunction getTimezoneOffset() {\n\t\treturn timezoneOffset;\n\t}\n\tTime.getTimezoneOffset = getTimezoneOffset;\n\tfunction getDateNumber(date = /* @__PURE__ */ new Date(), offset) {\n\t\tif (typeof date === \"number\") date = new Date(date);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn Math.floor((date.valueOf() / Time.minute - offset) / 1440);\n\t}\n\tTime.getDateNumber = getDateNumber;\n\tfunction fromDateNumber(value, offset) {\n\t\tconst date = new Date(value * Time.day);\n\t\tif (offset === void 0) offset = timezoneOffset;\n\t\treturn new Date(+date + offset * Time.minute);\n\t}\n\tTime.fromDateNumber = fromDateNumber;\n\tconst numeric = /\\d+(?:\\.\\d+)?/.source;\n\tconst timeRegExp = new RegExp(`^${[\n\t\t\"w(?:eek(?:s)?)?\",\n\t\t\"d(?:ay(?:s)?)?\",\n\t\t\"h(?:our(?:s)?)?\",\n\t\t\"m(?:in(?:ute)?(?:s)?)?\",\n\t\t\"s(?:ec(?:ond)?(?:s)?)?\"\n\t].map((unit) => `(${numeric}${unit})?`).join(\"\")}$`);\n\tfunction parseTime(source) {\n\t\tconst capture = timeRegExp.exec(source);\n\t\tif (!capture) return 0;\n\t\treturn (parseFloat(capture[1]) * Time.week || 0) + (parseFloat(capture[2]) * Time.day || 0) + (parseFloat(capture[3]) * Time.hour || 0) + (parseFloat(capture[4]) * Time.minute || 0) + (parseFloat(capture[5]) * Time.second || 0);\n\t}\n\tTime.parseTime = parseTime;\n\tfunction parseDate(date) {\n\t\tconst parsed = parseTime(date);\n\t\tif (parsed) date = Date.now() + parsed;\n\t\telse if (/^\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).toLocaleDateString()}-${date}`;\n\t\telse if (/^\\d{1,2}-\\d{1,2}-\\d{1,2}(:\\d{1,2}){1,2}$/.test(date)) date = `${(/* @__PURE__ */ new Date()).getFullYear()}-${date}`;\n\t\treturn date ? new Date(date) : /* @__PURE__ */ new Date();\n\t}\n\tTime.parseDate = parseDate;\n\tfunction format(ms) {\n\t\tconst abs = Math.abs(ms);\n\t\tif (abs >= Time.day - Time.hour / 2) return Math.round(ms / Time.day) + \"d\";\n\t\telse if (abs >= Time.hour - Time.minute / 2) return Math.round(ms / Time.hour) + \"h\";\n\t\telse if (abs >= Time.minute - Time.second / 2) return Math.round(ms / Time.minute) + \"m\";\n\t\telse if (abs >= Time.second) return Math.round(ms / Time.second) + \"s\";\n\t\treturn ms + \"ms\";\n\t}\n\tTime.format = format;\n\tfunction toDigits(source, length = 2) {\n\t\treturn source.toString().padStart(length, \"0\");\n\t}\n\tTime.toDigits = toDigits;\n\tfunction template(template, time = /* @__PURE__ */ new Date()) {\n\t\treturn template.replace(\"yyyy\", time.getFullYear().toString()).replace(\"yy\", time.getFullYear().toString().slice(2)).replace(\"MM\", toDigits(time.getMonth() + 1)).replace(\"dd\", toDigits(time.getDate())).replace(\"hh\", toDigits(time.getHours())).replace(\"mm\", toDigits(time.getMinutes())).replace(\"ss\", toDigits(time.getSeconds())).replace(\"SSS\", toDigits(time.getMilliseconds(), 3));\n\t}\n\tTime.template = template;\n})(Time || (Time = {}));\n//#endregion\nexport { Binary, Time, arrayBufferToBase64, arrayBufferToHex, base64ToArrayBuffer, camelCase, camelize, capitalize, clone, contain, deduplicate, deepEqual, defineProperty, difference, filterKeys, formatProperty, hexToArrayBuffer, hyphenate, intersection, is, isNonNullable, isNullable, isPlainObject, makeArray, mapValues, mapValues as valueMap, noop, omit, paramCase, pick, remove, sanitize, snakeCase, trimSlash, uncapitalize, union };\n","import { defineProperty, hyphenate, isNullable } from \"@xrkseek/cosmokit\";\n//#region lib/types/utils.js\n/** Ordered collection of disposable values with O(1) deletion by value. */\nvar DisposableList = class {\n\tsn = 0;\n\tmap = /* @__PURE__ */ new Map();\n\tweak = /* @__PURE__ */ new WeakMap();\n\tget length() {\n\t\treturn this.map.size;\n\t}\n\tpush(value) {\n\t\tconst sn = ++this.sn;\n\t\tthis.map.set(sn, value);\n\t\tthis.weak.set(value, sn);\n\t\treturn () => this.map.delete(sn);\n\t}\n\tdelete(value) {\n\t\tconst sn = this.weak.get(value);\n\t\tif (!sn) return false;\n\t\treturn this.map.delete(sn);\n\t}\n\tclear() {\n\t\tconst values = [...this.map.values()];\n\t\tthis.map.clear();\n\t\treturn values.reverse();\n\t}\n\t[Symbol.iterator]() {\n\t\treturn this.map.values();\n\t}\n\t[Symbol.for(\"nodejs.util.inspect.custom\")]() {\n\t\treturn [...this];\n\t}\n};\n/** Shared symbols used to avoid public property-name collisions. */\nconst symbols = {\n\tshadow: Symbol.for(\"cordis.shadow\"),\n\treceiver: Symbol.for(\"cordis.receiver\"),\n\toriginal: Symbol.for(\"cordis.original\"),\n\tmetadata: Symbol.for(\"cordis.metadata\"),\n\tinitHooks: Symbol.for(\"cordis.initHooks\"),\n\tcheckProto: Symbol.for(\"cordis.checkProto\"),\n\teffect: Symbol.for(\"cordis.effect\"),\n\tfilter: Symbol.for(\"cordis.filter\"),\n\tisolate: Symbol.for(\"cordis.isolate\"),\n\tintercept: Symbol.for(\"cordis.intercept\"),\n\tinit: Symbol.for(\"cordis.init\"),\n\tcheck: Symbol.for(\"cordis.check\"),\n\tconfig: Symbol.for(\"cordis.config\"),\n\tinvoke: Symbol.for(\"cordis.invoke\"),\n\textend: Symbol.for(\"cordis.extend\"),\n\ttracker: Symbol.for(\"cordis.tracker\"),\n\tresolveConfig: Symbol.for(\"cordis.resolveConfig\")\n};\nconst GeneratorFunction = function* () {}.constructor;\nconst AsyncGeneratorFunction = async function* () {}.constructor;\n/** Return true when a plugin callback should be constructed with `new`. */\nfunction isConstructor(func) {\n\tif (!func.prototype) return false;\n\tif (func instanceof GeneratorFunction) return false;\n\tif (AsyncGeneratorFunction !== Function && func instanceof AsyncGeneratorFunction) return false;\n\treturn true;\n}\n/** Merge two prototype chains while preserving descriptors from `proto1`. */\nfunction joinPrototype(proto1, proto2) {\n\tif (proto1 === Object.prototype) return proto2;\n\tconst result = Object.create(joinPrototype(Object.getPrototypeOf(proto1), proto2));\n\tfor (const key of Reflect.ownKeys(proto1)) Object.defineProperty(result, key, Object.getOwnPropertyDescriptor(proto1, key));\n\treturn result;\n}\n/** Return true for non-null objects and functions. */\nfunction isObject(value) {\n\treturn value && (typeof value === \"object\" || typeof value === \"function\");\n}\n/** Find a property descriptor by walking an object's prototype chain. */\nfunction getPropertyDescriptor(target, prop) {\n\tlet proto = target;\n\twhile (proto) {\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(proto, prop);\n\t\tif (desc) return desc;\n\t\tproto = Object.getPrototypeOf(proto);\n\t}\n}\n/** Wrap services/functions so method calls see the caller's active context. */\nfunction getTraceable(ctx, value) {\n\tif (!isObject(value)) return value;\n\tif (Object.hasOwn(value, symbols.shadow)) return Object.getPrototypeOf(value);\n\tconst tracker = value[symbols.tracker];\n\tif (!tracker) return value;\n\treturn createTraceable(ctx, value, tracker);\n}\n/** Return a proxy that overlays readonly or writable properties onto a target. */\nfunction withProps(target, props) {\n\tif (!props) return target;\n\treturn new Proxy(target, {\n\t\tget: (target, prop, receiver) => {\n\t\t\tif (prop in props && prop !== \"constructor\") return Reflect.get(props, prop, receiver);\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t},\n\t\tset: (target, prop, value, receiver) => {\n\t\t\tif (prop in props && prop !== \"constructor\") return Reflect.set(props, prop, value, receiver);\n\t\t\treturn Reflect.set(target, prop, value, receiver);\n\t\t}\n\t});\n}\nfunction withProp(target, prop, value) {\n\treturn withProps(target, Object.defineProperty(Object.create(null), prop, {\n\t\tvalue,\n\t\twritable: false\n\t}));\n}\nfunction createShadow(ctx, target, property, receiver) {\n\tif (!property) return receiver;\n\tconst origin = Reflect.getOwnPropertyDescriptor(target, property)?.value;\n\tif (!origin) return receiver;\n\treturn withProp(receiver, property, ctx.extend({ [symbols.shadow]: origin }));\n}\nfunction createShadowMethod(ctx, value, outer, shadow) {\n\treturn new Proxy(value, { apply: (target, thisArg, args) => {\n\t\tif (thisArg === outer) thisArg = shadow;\n\t\treturn getTraceable(ctx, Reflect.apply(target, thisArg, args));\n\t} });\n}\nfunction createTraceable(ctx, value, tracker) {\n\tif (ctx[symbols.shadow] && !tracker.noShadow) ctx = Object.getPrototypeOf(ctx);\n\tconst proxy = new Proxy(value, {\n\t\tget: (target, prop, receiver) => {\n\t\t\tif (prop === symbols.original) return target;\n\t\t\tif (prop === tracker.property) return ctx;\n\t\t\tif (typeof prop === \"symbol\") return Reflect.get(target, prop, receiver);\n\t\t\tif (tracker.associate && ctx.reflect.props[`${tracker.associate}.${prop}`]) return Reflect.get(ctx, `${tracker.associate}.${prop}`, withProp(ctx, symbols.receiver, receiver));\n\t\t\tlet shadow, innerValue;\n\t\t\tconst desc = getPropertyDescriptor(target, prop);\n\t\t\tif (desc && \"value\" in desc) innerValue = desc.value;\n\t\t\telse {\n\t\t\t\tshadow = createShadow(ctx, target, tracker.property, receiver);\n\t\t\t\tinnerValue = Reflect.get(target, prop, shadow);\n\t\t\t}\n\t\t\tconst innerTracker = innerValue?.[symbols.tracker];\n\t\t\tif (innerTracker) return createTraceable(ctx, innerValue, innerTracker);\n\t\t\telse if (!tracker.noShadow && typeof innerValue === \"function\") {\n\t\t\t\tshadow ??= createShadow(ctx, target, tracker.property, receiver);\n\t\t\t\treturn createShadowMethod(ctx, innerValue, receiver, shadow);\n\t\t\t} else return innerValue;\n\t\t},\n\t\tset: (target, prop, value, receiver) => {\n\t\t\tif (prop === symbols.original) return false;\n\t\t\tif (prop === tracker.property) return false;\n\t\t\tif (typeof prop === \"symbol\") return Reflect.set(target, prop, value, receiver);\n\t\t\tif (tracker.associate && ctx.reflect.props[`${tracker.associate}.${prop}`]) return Reflect.set(ctx, `${tracker.associate}.${prop}`, value, withProp(ctx, symbols.receiver, receiver));\n\t\t\tconst shadow = createShadow(ctx, target, tracker.property, receiver);\n\t\t\treturn Reflect.set(target, prop, value, shadow);\n\t\t},\n\t\tapply: (target, thisArg, args) => {\n\t\t\treturn applyTraceable(proxy, target, thisArg, args);\n\t\t}\n\t});\n\treturn proxy;\n}\nfunction applyTraceable(proxy, value, thisArg, args) {\n\tif (!value[symbols.invoke]) return Reflect.apply(value, thisArg, args);\n\treturn value[symbols.invoke].apply(proxy, args);\n}\n/** Create a callable service object that dispatches through `symbols.invoke`. */\nfunction createCallable(name, proto, tracker) {\n\tconst self = function(...args) {\n\t\treturn applyTraceable(createTraceable(self[\"ctx\"], self, tracker), self, this, args);\n\t};\n\tdefineProperty(self, \"name\", name);\n\treturn Object.setPrototypeOf(self, proto);\n}\nfunction handleError(info, reason, getOuterStack) {\n\tconst innerLines = info.error.stack.split(\"\\n\");\n\tif (typeof reason?.stack !== \"string\") {\n\t\tconst outerError = new Error(reason);\n\t\tconst lines = outerError.stack.split(\"\\n\");\n\t\tlines.splice(1, Infinity, ...getOuterStack());\n\t\touterError.stack = lines.join(\"\\n\");\n\t\tthrow outerError;\n\t}\n\tconst lines = reason.stack.split(\"\\n\");\n\tlet index = lines.indexOf(innerLines[2]);\n\tif (index === -1) throw reason;\n\tindex -= info.offset;\n\twhile (index > 0) {\n\t\tif (!lines[index - 1].endsWith(\" (<anonymous>)\")) break;\n\t\tindex -= 1;\n\t}\n\tlines.splice(index, Infinity, ...getOuterStack());\n\treason.stack = lines.join(\"\\n\");\n\tthrow reason;\n}\n/** Run a callback and splice outer call-site frames into thrown async errors. */\nfunction composeError(callback, getOuterStack = buildOuterStack()) {\n\tconst info = {\n\t\toffset: 1,\n\t\terror: /* @__PURE__ */ new Error()\n\t};\n\ttry {\n\t\tconst result = callback(info);\n\t\tif (isObject(result) && \"then\" in result) return result.then(void 0, (reason) => handleError(info, reason, getOuterStack));\n\t\telse return result;\n\t} catch (reason) {\n\t\thandleError(info, reason, getOuterStack);\n\t}\n}\n/** Capture a lazy stack-frame supplier for later error composition. */\nfunction buildOuterStack(offset = 0) {\n\tconst outerError = /* @__PURE__ */ new Error();\n\treturn () => outerError.stack.split(\"\\n\").slice(3 + offset);\n}\n//#endregion\n//#region lib/types/events.js\n/**\n* Return whether an event result should stop a bail-style dispatch.\n*\n* @param value — a listener's return value.\n* @returns `true` unless `value` is `null`, `false`, or `undefined`.\n*/\nfunction isBailed(value) {\n\treturn value !== null && value !== false && value !== void 0;\n}\n/**\n* Event bus installed as `ctx.events` and mixed into every context.\n*\n* The service supports concurrent, synchronous, serial, bail, and waterfall\n* dispatch and automatically disposes listeners with their owning fiber.\n*/\nvar EventsService = class {\n\tctx;\n\t_hooks = {};\n\tconstructor(ctx) {\n\t\tthis.ctx = ctx;\n\t\tdefineProperty(this, symbols.tracker, {\n\t\t\tproperty: \"ctx\",\n\t\t\tnoShadow: true\n\t\t});\n\t\tthis.on(\"internal/listener\", function(name, listener, options) {\n\t\t\tif (name === \"internal/update\" && !options.global) return (this.fiber._hooks[\"internal/update\"] ??= new DisposableList())[options.prepend ? \"unshift\" : \"push\"](listener);\n\t\t});\n\t\tthis.on(\"internal/update\", function(config, noSave, next) {\n\t\t\tconst cbs = [...this._hooks[\"internal/update\"] || []];\n\t\t\tconst _next = () => {\n\t\t\t\treturn (cbs.shift() ?? next).call(this, config, noSave, _next);\n\t\t\t};\n\t\t\treturn _next();\n\t\t}, {\n\t\t\tglobal: true,\n\t\t\tprepend: true\n\t\t});\n\t}\n\t/**\n\t* Resolve listeners for one dispatch and apply context filtering.\n\t*\n\t* @param type — the dispatch mode, reported on `internal/dispatch`.\n\t* @param args — the raw dispatch arguments; consumed up to the event name.\n\t* @returns the matching listener callbacks, bound to the dispatch `this`.\n\t*/\n\tdispatch(type, args) {\n\t\tconst thisArg = typeof args[0] === \"object\" || typeof args[0] === \"function\" ? args.shift() : null;\n\t\tconst name = args.shift();\n\t\tif (!name.startsWith(\"internal/\")) this.emit(\"internal/dispatch\", type, name, args, thisArg);\n\t\tconst filter = thisArg?.[Context.filter];\n\t\treturn (this._hooks[name] || []).filter((hook) => hook.global || !filter || filter.call(thisArg, hook.ctx)).map((hook) => hook.callback.bind(thisArg));\n\t}\n\t/**\n\t* Run listeners concurrently and wait for all of them.\n\t*\n\t* @param args — optional `this`, the event name, then listener arguments.\n\t* @returns a promise resolving once every listener has settled.\n\t*/\n\tasync parallel(...args) {\n\t\tconst errors = (await Promise.allSettled(this.dispatch(\"emit\", args).map(async (cb) => cb(...args)))).filter((result) => result.status === \"rejected\");\n\t\tif (errors.length) throw new AggregateError(errors.map((error) => error.reason));\n\t}\n\t/**\n\t* Run listeners synchronously without waiting for returned promises.\n\t*\n\t* @param args — optional `this`, the event name, then listener arguments.\n\t*/\n\temit(...args) {\n\t\tthis.dispatch(\"emit\", args).map((cb) => cb(...args));\n\t}\n\t/**\n\t* Run listeners in order, awaiting each, until one returns a bail value.\n\t*\n\t* @param args — optional `this`, the event name, then listener arguments.\n\t* @returns the first bail value (see {@link isBailed}), if any.\n\t*/\n\tasync serial(...args) {\n\t\tfor (const cb of this.dispatch(\"serial\", args)) {\n\t\t\tconst result = await cb(...args);\n\t\t\tif (isBailed(result)) return result;\n\t\t}\n\t}\n\t/**\n\t* Run listeners synchronously until one returns a bail value.\n\t*\n\t* @param args — optional `this`, the event name, then listener arguments.\n\t* @returns the first bail value (see {@link isBailed}), if any.\n\t*/\n\tbail(...args) {\n\t\tfor (const cb of this.dispatch(\"bail\", args)) {\n\t\t\tconst result = cb(...args);\n\t\t\tif (isBailed(result)) return result;\n\t\t}\n\t}\n\t/**\n\t* Compose listeners around the final `next` callback.\n\t*\n\t* The last dispatch argument is treated as the innermost `next`. Listeners\n\t* run outermost-first; a listener that does not call `next()` vetoes the\n\t* rest of the chain, including the built-in behavior.\n\t*\n\t* @param args — optional `this`, the event name, listener arguments, then `next`.\n\t* @returns the outermost listener's return value.\n\t*/\n\twaterfall(...args) {\n\t\tconst cbs = this.dispatch(\"waterfall\", args);\n\t\tconst inner = args.pop();\n\t\tconst next = () => {\n\t\t\treturn (cbs.shift() ?? inner)(...args);\n\t\t};\n\t\targs.push(next);\n\t\treturn next();\n\t}\n\t/**\n\t* Store a listener record as an effect on the current fiber.\n\t*\n\t* @param label — effect label shown in fiber diagnostics.\n\t* @param hooks — the listener list for one event.\n\t* @param callback — the listener to store.\n\t* @param options — placement and filtering options.\n\t* @returns a disposer that unregisters the listener.\n\t*/\n\tregister(label, hooks, callback, options) {\n\t\tconst method = options.prepend ? \"unshift\" : \"push\";\n\t\treturn this.ctx.fiber.effect(() => {\n\t\t\thooks[method]({\n\t\t\t\tctx: this.ctx,\n\t\t\t\tcallback,\n\t\t\t\t...options\n\t\t\t});\n\t\t\treturn () => this.unregister(hooks, callback);\n\t\t}, label);\n\t}\n\t/**\n\t* Remove a stored listener record.\n\t*\n\t* @param hooks — the listener list for one event.\n\t* @param callback — the listener to remove.\n\t* @returns `true` if the listener was found and removed.\n\t*/\n\tunregister(hooks, callback) {\n\t\tconst index = hooks.findIndex((hook) => hook.callback === callback);\n\t\tif (index >= 0) {\n\t\t\thooks.splice(index, 1);\n\t\t\treturn true;\n\t\t}\n\t}\n\t/**\n\t* Register an event listener owned by the current fiber.\n\t*\n\t* The listener is removed automatically when the fiber unloads. Throws\n\t* `CordisError('INACTIVE_EFFECT')` if the fiber is already disposed.\n\t*\n\t* @param name — the event name to listen for.\n\t* @param listener — called with the dispatch arguments.\n\t* @param options — listener options; a boolean is shorthand for `prepend`.\n\t* @returns a disposer removing the listener; `true` if it was still registered.\n\t*/\n\ton(name, listener, options) {\n\t\tif (typeof options !== \"object\") options = { prepend: options };\n\t\tthis.ctx.fiber.assertActive();\n\t\tlistener = this.ctx.reflect.bind(listener);\n\t\tconst result = this.bail(this.ctx, \"internal/listener\", name, listener, options);\n\t\tif (result) return result;\n\t\tconst hooks = this._hooks[name] ||= [];\n\t\tconst label = `ctx.on(${typeof name === \"string\" ? JSON.stringify(name) : name.toString()})`;\n\t\treturn this.register(label, hooks, listener, options);\n\t}\n\t/**\n\t* Register an event listener that disposes itself after the first call.\n\t*\n\t* @param name — the event name to listen for.\n\t* @param listener — called at most once with the dispatch arguments.\n\t* @param options — listener options; a boolean is shorthand for `prepend`.\n\t* @returns a disposer removing the listener; `true` if it was still registered.\n\t*/\n\tonce(name, listener, options) {\n\t\tconst dispose = this.on(name, function(...args) {\n\t\t\tdispose();\n\t\t\treturn listener.apply(this, args);\n\t\t}, options);\n\t\treturn dispose;\n\t}\n};\n//#endregion\n//#region lib/types/logger.js\n/** Built-in placeholder formatters used by `Logger.format()`. */\nconst defaultFormatters = {\n\ts: (value) => String(value),\n\td: (value) => Math.trunc(Number(value)),\n\ti: (value) => Math.trunc(Number(value)),\n\tf: (value) => Number(value),\n\to: (value) => JSON.stringify(value),\n\tO: (value) => JSON.stringify(value),\n\tc: () => \"\",\n\tC: (value, exporter, message) => {\n\t\treturn Logger.color(exporter, Logger.code(message.name, exporter.colors), value);\n\t}\n};\nfunction isAggregateError(error) {\n\treturn error instanceof Error && Array.isArray(error[\"errors\"]);\n}\n/** Logger facade for one named subsystem. */\nvar Logger = class {\n\tservice;\n\tstatic color(exporter, code, value, decoration = \"\") {\n\t\tif (!exporter.colors) return \"\" + value;\n\t\treturn `\\u001b[3${code < 8 ? code : \"8;5;\" + code}${exporter.colors >= 2 ? decoration : \"\"}m${value}\\u001b[0m`;\n\t}\n\tstatic code(name, level) {\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < name.length; i++) {\n\t\t\thash = (hash << 3) - hash + name.charCodeAt(i) + 13;\n\t\t\thash |= 0;\n\t\t}\n\t\tconst colors = !level ? [] : level >= 2 ? c256 : c16;\n\t\treturn colors[Math.abs(hash) % colors.length];\n\t}\n\tstatic format(exporter, message) {\n\t\tconst args = message.args.slice();\n\t\tif (args[0] instanceof Error) {\n\t\t\targs[0] = args[0].stack || args[0].message;\n\t\t\targs.unshift(\"%s\");\n\t\t} else if (typeof args[0] !== \"string\") args.unshift(\"%o\");\n\t\tlet format = args.shift();\n\t\tformat = format.replace(/%([a-zA-Z%])/g, (match, char) => {\n\t\t\tif (match === \"%%\") return \"%\";\n\t\t\tconst formatter = exporter.formatters?.[char] ?? defaultFormatters[char];\n\t\t\tif (typeof formatter === \"function\") return formatter(args.shift(), exporter, message);\n\t\t\treturn match;\n\t\t});\n\t\tconst oFormatter = exporter.formatters?.o ?? defaultFormatters.o;\n\t\tfor (let arg of args) {\n\t\t\tif (typeof arg === \"object\" && arg) arg = oFormatter(arg, exporter, message);\n\t\t\tformat += \" \" + arg;\n\t\t}\n\t\tconst { maxLength = 10240 } = exporter;\n\t\treturn format.split(/\\r?\\n/g).map((line) => {\n\t\t\treturn line.slice(0, maxLength) + (line.length > maxLength ? \"...\" : \"\");\n\t\t}).join(\"\\n\");\n\t}\n\tconstructor(options, service) {\n\t\tthis.service = service;\n\t\tObject.assign(this, options);\n\t\tthis.error = this._method(\"error\", 0);\n\t\tthis.info = this._method(\"info\", 1);\n\t\tthis.warn = this._method(\"warn\", 2);\n\t\tthis.debug = this._method(\"debug\", 3);\n\t}\n\t_method(type, level) {\n\t\treturn (...args) => {\n\t\t\tif (args.length === 1 && args[0] instanceof Error) {\n\t\t\t\tif (args[0].cause) this[type](args[0].cause);\n\t\t\t\telse if (isAggregateError(args[0])) {\n\t\t\t\t\targs[0].errors.forEach((error) => this[type](error));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst sn = ++this.service._snMessage;\n\t\t\tconst ts = Date.now();\n\t\t\tfor (const exporter of this.service.exporters.values()) {\n\t\t\t\tif ((exporter.levels?.[this.name] ?? exporter.levels?.default ?? this.level ?? 1) < level) continue;\n\t\t\t\tconst message = {\n\t\t\t\t\tsn,\n\t\t\t\t\tts,\n\t\t\t\t\ttype,\n\t\t\t\t\tlevel,\n\t\t\t\t\tname: this.name,\n\t\t\t\t\t...this.meta,\n\t\t\t\t\targs\n\t\t\t\t};\n\t\t\t\texporter.export(message);\n\t\t\t}\n\t\t};\n\t}\n};\n/** ANSI 16-color palette indexes used for logger name coloring. */\nconst c16 = [\n\t6,\n\t2,\n\t3,\n\t4,\n\t5,\n\t1\n];\n/** ANSI 256-color palette indexes used for logger name coloring. */\nconst c256 = [\n\t20,\n\t21,\n\t26,\n\t27,\n\t32,\n\t33,\n\t38,\n\t39,\n\t40,\n\t41,\n\t42,\n\t43,\n\t44,\n\t45,\n\t56,\n\t57,\n\t62,\n\t63,\n\t68,\n\t69,\n\t74,\n\t75,\n\t76,\n\t77,\n\t78,\n\t79,\n\t80,\n\t81,\n\t92,\n\t93,\n\t98,\n\t99,\n\t112,\n\t113,\n\t129,\n\t134,\n\t135,\n\t148,\n\t149,\n\t160,\n\t161,\n\t162,\n\t163,\n\t164,\n\t165,\n\t166,\n\t167,\n\t168,\n\t169,\n\t170,\n\t171,\n\t172,\n\t173,\n\t178,\n\t179,\n\t184,\n\t185,\n\t196,\n\t197,\n\t198,\n\t199,\n\t200,\n\t201,\n\t202,\n\t203,\n\t204,\n\t205,\n\t206,\n\t207,\n\t208,\n\t209,\n\t214,\n\t215,\n\t220,\n\t221\n];\n/**\n* Built-in logging service.\n*\n* Call `ctx.logger()` to create a named logger, or call `ctx.logger.info()`\n* directly to log with the current fiber-derived name.\n*/\nvar LoggerService = class LoggerService {\n\tbufferSize = 1e3;\n\tbuffer = [];\n\tctx;\n\t_snMessage = 0;\n\t_snExporter = 0;\n\texporters = /* @__PURE__ */ new Map();\n\tconstructor(ctx) {\n\t\tconst tracker = {\n\t\t\tproperty: \"ctx\",\n\t\t\tnoShadow: true\n\t\t};\n\t\tconst self = createCallable(\"logger\", joinPrototype(Object.getPrototypeOf(this), Function.prototype), tracker);\n\t\tObject.assign(self, this);\n\t\tself.ctx = ctx;\n\t\tdefineProperty(self, symbols.tracker, tracker);\n\t\tself.exporter({\n\t\t\tcolors: 3,\n\t\t\texport: (message) => {\n\t\t\t\tself.buffer.push(message);\n\t\t\t\tif (self.buffer.length > self.bufferSize) self.buffer = self.buffer.slice(-self.bufferSize);\n\t\t\t}\n\t\t});\n\t\treturn self;\n\t}\n\t/**\n\t* Register an exporter and dispose it with the current fiber.\n\t*\n\t* @param exporter — the sink that receives structured log messages.\n\t* @returns a disposer that removes the exporter.\n\t*/\n\texporter(exporter) {\n\t\treturn this.ctx.effect(() => {\n\t\t\tthis.exporters.set(++this._snExporter, exporter);\n\t\t\treturn () => this.exporters.delete(this._snExporter);\n\t\t}, \"ctx.logger.exporter()\");\n\t}\n\t_resolveConfig() {\n\t\tlet intercept = this.ctx[symbols.intercept];\n\t\tconst configs = [];\n\t\twhile (\"logger\" in intercept) {\n\t\t\tif (Object.hasOwn(intercept, \"logger\")) configs.unshift(intercept[\"logger\"]);\n\t\t\tintercept = Object.getPrototypeOf(intercept);\n\t\t}\n\t\treturn Object.assign({}, ...configs);\n\t}\n\t[symbols.invoke](name) {\n\t\tconst config = this._resolveConfig();\n\t\tconst fiber = (this.ctx[symbols.shadow] ?? this.ctx).fiber;\n\t\tname ??= config.name;\n\t\tname ??= hyphenate(fiber.name);\n\t\treturn new Logger({\n\t\t\tname,\n\t\t\tlevel: config.level,\n\t\t\tmeta: { fiber: new WeakRef(fiber) }\n\t\t}, this);\n\t}\n\tstatic {\n\t\tfor (const type of [\n\t\t\t\"error\",\n\t\t\t\"info\",\n\t\t\t\"warn\",\n\t\t\t\"debug\"\n\t\t]) LoggerService.prototype[type] = function(...args) {\n\t\t\treturn this()[type](...args);\n\t\t};\n\t}\n};\n//#endregion\n//#region lib/types/reflect.js\nfunction enhanceError(error) {\n\tconst lines = error.stack.split(\"\\n\");\n\tlines.splice(0, 2, `Error: ${error.message}`);\n\terror.stack = lines.join(\"\\n\");\n\treturn error;\n}\nconst RESERVED_WORDS = [\"prototype\", \"then\"];\nfunction isSpecialProperty(prop) {\n\treturn typeof prop === \"symbol\" || RESERVED_WORDS.includes(prop) || parseInt(prop).toString() === prop || prop.startsWith(\"_\");\n}\n/**\n* Reflection and service-resolution layer installed as `ctx.reflect`.\n*\n* This service powers the context proxy, service registration, accessors, and\n* the mixins that expose core service methods directly on `ctx`.\n*/\nvar ReflectService = class {\n\tctx;\n\t/** Proxy traps implementing service resolution for every context object. */\n\tstatic handler = {\n\t\tget: (target, prop, ctx) => {\n\t\t\tif (isSpecialProperty(prop)) return Reflect.get(target, prop, ctx);\n\t\t\tif (Reflect.has(target, prop)) return getTraceable(ctx, Reflect.get(target, prop, ctx));\n\t\t\tconst error = /* @__PURE__ */ new Error(`cannot get property \"${prop}\" without inject`);\n\t\t\ttry {\n\t\t\t\tconst def = target.reflect.props[prop];\n\t\t\t\tif (def?.type === \"accessor\") return def.get.call(ctx, ctx[symbols.receiver], error);\n\t\t\t\tif (!ctx.fiber.runtime) return ctx.reflect.get(prop, false);\n\t\t\t\treturn ctx.events.waterfall(\"internal/get\", ctx, prop, error, () => {\n\t\t\t\t\tconst key = target[symbols.isolate][prop];\n\t\t\t\t\tlet fiber = (ctx[symbols.shadow] ?? ctx).fiber;\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tconst impl = fiber.store?.[prop];\n\t\t\t\t\t\tif (impl) return getTraceable(ctx, impl.value);\n\t\t\t\t\t\tif (prop in fiber.inject) {\n\t\t\t\t\t\t\terror.message = `cannot get required service \"${prop}\" in inactive context`;\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!fiber.runtime) throw error;\n\t\t\t\t\t\tif (fiber.parent[symbols.isolate][prop] !== key) throw error;\n\t\t\t\t\t\tfiber = fiber.parent.fiber;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tthrow e === error ? enhanceError(e) : e;\n\t\t\t}\n\t\t},\n\t\tset: (target, prop, value, ctx) => {\n\t\t\tif (isSpecialProperty(prop)) return Reflect.set(target, prop, value, ctx);\n\t\t\tconst error = /* @__PURE__ */ new Error(`cannot set property \"${prop}\" without provide`);\n\t\t\tconst def = target.reflect.props[prop];\n\t\t\tif (!def) {\n\t\t\t\tif (!ctx.fiber.runtime) return Reflect.set(target, prop, value, ctx);\n\t\t\t\tthrow enhanceError(error);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tif (def.type === \"accessor\") {\n\t\t\t\t\tif (!def.set) return false;\n\t\t\t\t\treturn def.set.call(ctx, value, ctx[symbols.receiver], error);\n\t\t\t\t}\n\t\t\t\treturn ctx.events.waterfall(\"internal/set\", ctx, prop, value, error, () => {\n\t\t\t\t\treturn ctx.reflect.set(prop, value, error);\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tthrow e === error ? enhanceError(e) : e;\n\t\t\t}\n\t\t},\n\t\thas: (target, prop) => {\n\t\t\tif (isSpecialProperty(prop)) return Reflect.has(target, prop);\n\t\t\tif (Reflect.has(target, prop)) return true;\n\t\t\treturn !!target.reflect.props[prop];\n\t\t}\n\t};\n\t/** Service implementations, keyed by isolation label. */\n\tstore = Object.create(null);\n\t/** Declared context properties (services and accessors), by name. */\n\tprops = Object.create(null);\n\tconstructor(ctx) {\n\t\tthis.ctx = ctx;\n\t\tdefineProperty(this, symbols.tracker, {\n\t\t\tproperty: \"ctx\",\n\t\t\tnoShadow: true\n\t\t});\n\t\tthis.mixin(\"reflect\", [\n\t\t\t\"get\",\n\t\t\t\"set\",\n\t\t\t\"provide\",\n\t\t\t\"accessor\",\n\t\t\t\"mixin\"\n\t\t]);\n\t\tthis.mixin(\"fiber\", [\"runtime\", \"effect\"]);\n\t\tthis.mixin(\"registry\", [\"inject\", \"plugin\"]);\n\t\tthis.mixin(\"events\", [\n\t\t\t\"on\",\n\t\t\t\"once\",\n\t\t\t\"parallel\",\n\t\t\t\"emit\",\n\t\t\t\"serial\",\n\t\t\t\"bail\",\n\t\t\t\"waterfall\"\n\t\t]);\n\t}\n\t/**\n\t* Read a service from the store without the inject requirement.\n\t*\n\t* @param name — the service name.\n\t* @param strict — when `true`, only return implementations whose providing\n\t* fiber is currently active.\n\t* @returns the service value, or `undefined` when not (yet) provided.\n\t*/\n\tget(name, strict = true) {\n\t\treturn getTraceable(this.ctx, this._getImpl(name, strict)?.value);\n\t}\n\t_getImpl(name, strict = true) {\n\t\tconst key = this.ctx[symbols.isolate][name];\n\t\tconst impl = key && this.store[key];\n\t\tif (!impl) return;\n\t\tif (strict && impl.fiber.state !== 2) return;\n\t\treturn impl;\n\t}\n\t/**\n\t* Overwrite a provided service's value.\n\t*\n\t* @param name — the service name.\n\t* @param value — the new service value.\n\t* @param error — carrier for the caller stack in diagnostics.\n\t* @returns `true` on success.\n\t* @throws when `name` was never provided, or was provided by another fiber.\n\t*/\n\tset(name, value, error) {\n\t\tconst key = this.ctx[symbols.isolate][name];\n\t\tconst impl = this.store[key];\n\t\tif (!impl) throw new Error(`cannot set property \"${name}\" without provide`);\n\t\tif (impl.fiber !== this.ctx.fiber) throw new Error(`cannot set property \"${name}\" in multiple fibers`);\n\t\timpl.value = value;\n\t\treturn true;\n\t}\n\t/**\n\t* Register a service implementation owned by the current fiber.\n\t*\n\t* See the `ctx.provide()` overload above for the full contract.\n\t*\n\t* @param name — the service name.\n\t* @param value — the service value.\n\t* @param check — optional availability predicate for dependents.\n\t* @returns a disposer that unregisters the service.\n\t*/\n\tprovide(name, value, check) {\n\t\treturn this.ctx.fiber.effect(() => {\n\t\t\tif (!this.props[name]) this.props[name] ??= { type: \"service\" };\n\t\t\telse if (this.props[name].type !== \"service\") throw new Error(`property \"${name}\" is already declared as ${this.props[name].type}`);\n\t\t\tthis.props[name] = { type: \"service\" };\n\t\t\tthis.ctx.root[symbols.isolate][name] ??= Symbol(name);\n\t\t\tconst key = this.ctx[symbols.isolate][name];\n\t\t\tconst impl = {\n\t\t\t\tname,\n\t\t\t\tvalue,\n\t\t\t\tfiber: this.ctx.fiber,\n\t\t\t\tcheck\n\t\t\t};\n\t\t\tif (this.store[key]) throw new Error(`service \"${name}\" has been registered at <${this.store[key].fiber.name}>`);\n\t\t\tthis.store[key] = impl;\n\t\t\tthis.ctx.fiber.store[name] = impl;\n\t\t\tif (this.ctx.fiber.state === 2) this.notify([name]);\n\t\t\treturn async () => {\n\t\t\t\tdelete this.store[key];\n\t\t\t\tconst fibers = this.notify([name]);\n\t\t\t\tawait Promise.allSettled(fibers.map((fiber) => fiber.await()));\n\t\t\t\tdelete this.ctx.fiber.store[name];\n\t\t\t};\n\t\t}, `ctx.provide(${JSON.stringify(name)})`);\n\t}\n\t/**\n\t* Re-evaluate every fiber that requires one of the given services.\n\t*\n\t* @param names — the service names that changed.\n\t* @param filter — restricts notification to matching isolation scopes.\n\t* @returns the fibers whose dependency state was refreshed.\n\t*/\n\tnotify(names, filter = (ctx, name) => ctx[symbols.isolate][name] === this.ctx[symbols.isolate][name]) {\n\t\tconst fibers = [];\n\t\tfor (const runtime of this.ctx.registry.values()) for (const fiber of runtime.fibers) {\n\t\t\tlet hasUpdate = false;\n\t\t\tfor (const name of names) {\n\t\t\t\tif (!(name in fiber.inject)) continue;\n\t\t\t\tif (!filter(fiber.ctx, name)) continue;\n\t\t\t\thasUpdate = true;\n\t\t\t\tfiber._checkImpl(name);\n\t\t\t}\n\t\t\tif (!hasUpdate) continue;\n\t\t\tfiber._refresh();\n\t\t\tfibers.push(fiber);\n\t\t}\n\t\tfor (const name of names) {\n\t\t\tconst self = Object.create(this.ctx);\n\t\t\tself[symbols.filter] = (target) => filter(target, name);\n\t\t\tthis.ctx.events.emit(self, \"internal/service\", name, this._getImpl(name, false)?.value);\n\t\t}\n\t\treturn fibers;\n\t}\n\t/**\n\t* Define a computed context property backed by get/set hooks.\n\t*\n\t* @param name — the context property name.\n\t* @param options — the `get` hook and optional `set` hook.\n\t* @returns a disposer that removes the accessor.\n\t*/\n\taccessor(name, options) {\n\t\treturn this.ctx.fiber.effect(() => {\n\t\t\tif (name in this.props) throw new Error(`property \"${name}\" is already declared as ${this.props[name].type}`);\n\t\t\tthis.props[name] = {\n\t\t\t\ttype: \"accessor\",\n\t\t\t\t...options\n\t\t\t};\n\t\t\treturn () => delete this.props[name];\n\t\t}, `ctx.accessor(${JSON.stringify(name)})`);\n\t}\n\t/**\n\t* Expose selected members of a service directly on `ctx`.\n\t*\n\t* See the `ctx.mixin()` overload above for the full contract.\n\t*\n\t* @param source — a context property name or a source object.\n\t* @param mixins — keys to forward, or a source-key → ctx-key map.\n\t* @returns a disposer that removes all created accessors.\n\t*/\n\tmixin(source, mixins) {\n\t\tconst self = this;\n\t\treturn this.ctx.fiber.effect(function* () {\n\t\t\tconst entries = Array.isArray(mixins) ? mixins.map((key) => [key, key]) : Object.entries(mixins);\n\t\t\tconst getTarget = (ctx, error) => {\n\t\t\t\treturn ctx[source];\n\t\t\t};\n\t\t\tfor (const [key, value] of entries) yield self.accessor(value, {\n\t\t\t\tget(receiver, error) {\n\t\t\t\t\tconst service = getTarget(this, error);\n\t\t\t\t\tif (isNullable(service)) return service;\n\t\t\t\t\tconst mixin = receiver ? withProps(receiver, service) : service;\n\t\t\t\t\tconst value = Reflect.get(service, key, mixin);\n\t\t\t\t\tif (typeof value !== \"function\") return value;\n\t\t\t\t\treturn value.bind(mixin ?? service);\n\t\t\t\t},\n\t\t\t\tset(value, receiver, error) {\n\t\t\t\t\tconst service = getTarget(this, error);\n\t\t\t\t\tconst mixin = receiver ? withProps(receiver, service) : service;\n\t\t\t\t\treturn Reflect.set(service, key, value, mixin);\n\t\t\t\t}\n\t\t\t});\n\t\t}, `ctx.mixin(${JSON.stringify(source)})`);\n\t}\n\t/**\n\t* Attach this context's tracing wrapper to a value.\n\t*\n\t* @param value — the value to wrap.\n\t* @returns the traceable wrapper (or the value itself when not applicable).\n\t*/\n\ttrace(value) {\n\t\treturn getTraceable(this.ctx, value);\n\t}\n\t/**\n\t* Wrap a callback so calls trace `this` and arguments to this context.\n\t*\n\t* @param callback — the function to wrap.\n\t* @returns a proxy delegating to `callback` with traced values.\n\t*/\n\tbind(callback) {\n\t\treturn new Proxy(callback, {\n\t\t\tapply: (target, thisArg, args) => {\n\t\t\t\treturn Reflect.apply(target, this.trace(thisArg), args.map((arg) => this.trace(arg)));\n\t\t\t},\n\t\t\tconstruct: (target, args, newTarget) => {\n\t\t\t\treturn Reflect.construct(target, args.map((arg) => this.trace(arg)), newTarget);\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\n//#region lib/types/fiber.js\nconst kValidationError = Symbol.for(\"ValidationError\");\n/** Error raised when plugin configuration fails standard-schema validation. */\nvar ValidationError = class extends TypeError {\n\tname = \"ValidationError\";\n\t/**\n\t* Build the aggregated message from schema issues.\n\t*\n\t* @param issues — the standard-schema issues, one message line each.\n\t*/\n\tconstructor(issues) {\n\t\tsuper(`invalid config:\\n` + issues.map((issue) => {\n\t\t\tif (issue.path) return ` - ${issue.message} (at ${issue.path.join(\".\")})`;\n\t\t\telse return ` - ${issue.message}`;\n\t\t}).join(\"\\n\"));\n\t}\n};\nObject.defineProperty(ValidationError.prototype, kValidationError, { value: true });\n/**\n* Validate and normalize config for a plugin runtime before it starts.\n*\n* @param runtime — the plugin runtime whose `Config` schema to apply.\n* @param config — the raw user config.\n* @returns the validated config, or `config` unchanged if the runtime has no schema.\n* @throws {ValidationError} when validation reports issues.\n*/\nfunction resolveConfig(runtime, config) {\n\tif (!runtime.Config) return config;\n\tconst result = runtime.Config[\"~standard\"].validate(config);\n\tif (\"then\" in result) throw new TypeError(\"Async config validation is not supported\");\n\tif (result.issues) throw new ValidationError(result.issues);\n\telse return result.value;\n}\nconst effectInertia = /* @__PURE__ */ new WeakMap();\nfunction runDisposable(dispose) {\n\tconst result = dispose();\n\treturn effectInertia.get(dispose)?.() ?? result;\n}\n/** Notify plugin teardown without allowing one observer to break ownership cleanup. */\nfunction emitPluginDisposed(context, fiber) {\n\tconst args = [\"internal/plugin\", fiber];\n\tlet callbacks;\n\ttry {\n\t\tcallbacks = context.events.dispatch(\"emit\", args);\n\t} catch (error) {\n\t\tcontext.logger.error(error);\n\t\treturn;\n\t}\n\tfor (const callback of callbacks) try {\n\t\tconst returned = callback(...args);\n\t\tPromise.resolve(returned).catch((error) => context.logger.error(error));\n\t} catch (error) {\n\t\tcontext.logger.error(error);\n\t}\n}\n/** Framework error with a stable machine-readable code. */\nvar CordisError = class CordisError extends Error {\n\tcode;\n\t/**\n\t* @param code — the stable error code; also the default message.\n\t* @param message — optional human-readable override.\n\t*/\n\tconstructor(code, message) {\n\t\tsuper(message ?? CordisError.Code[code]);\n\t\tthis.code = code;\n\t}\n};\n/** Cordis error code definitions. */\n(function(CordisError) {\n\tCordisError.Code = { INACTIVE_EFFECT: \"cannot create effect on inactive context\" };\n})(CordisError || (CordisError = {}));\nconst INACTIVE = \"__INACTIVE__\";\n/**\n* Runtime instance of one plugin application.\n*\n* A fiber tracks dependency state, validated config, lifecycle effects, and\n* cleanup for the plugin context returned by `ctx.plugin()`.\n*/\nvar Fiber = class {\n\tparent;\n\tinject;\n\truntime;\n\t/** Unique id within the registry; 0 for the root fiber, `null` once disposed. */\n\tuid;\n\t/** The context this fiber's plugin runs in (extends the parent context). */\n\tctx;\n\t/** The validated plugin config (updated by `update()`). */\n\tconfig;\n\t/** The raw plugin config, re-resolved before each activation. */\n\t_config;\n\t/** Current lifecycle state; transitions emit `internal/status`. */\n\tstate = 0;\n\t/** Dispose this fiber: unload the plugin, then settle once cleanup finished. */\n\tdispose;\n\t/** Snapshot of required service implementations while loaded; `undefined` otherwise. */\n\tstore;\n\t/** The in-flight load/unload transition, if one is currently running. */\n\tinertia;\n\t_hooks = Object.create(null);\n\t_disposables = new DisposableList();\n\tcontext;\n\t_error;\n\t_runner;\n\t_store = Object.create(null);\n\t/**\n\t* Create a fiber. Plugin authors normally obtain fibers from `ctx.plugin()`\n\t* rather than constructing them directly.\n\t*\n\t* @param parent — the context the plugin was loaded from.\n\t* @param config — raw config, validated against the runtime's schema.\n\t* @param inject — resolved dependency map (service name → intercept config).\n\t* @param runtime — the shared plugin runtime, or `null` for the root fiber.\n\t* @param getOuterStack — captures the caller stack for effect diagnostics.\n\t*/\n\tconstructor(parent, config, inject, runtime, getOuterStack) {\n\t\tthis.parent = parent;\n\t\tthis.inject = inject;\n\t\tthis.runtime = runtime;\n\t\tthis._config = config;\n\t\tconst collect = (dispose) => {\n\t\t\tthis._disposables.push(dispose);\n\t\t};\n\t\tif (runtime) {\n\t\t\tthis.uid = parent.registry.counter;\n\t\t\tthis.ctx = this.context = parent.extend({ fiber: this });\n\t\t\tconst injectEntries = Object.entries(this.inject);\n\t\t\tif (injectEntries.length) {\n\t\t\t\tthis.ctx[Context.intercept] = Object.create(parent[Context.intercept]);\n\t\t\t\tfor (const [name, config] of injectEntries) {\n\t\t\t\t\tif (isNullable(config)) continue;\n\t\t\t\t\tthis.ctx[Context.intercept][name] = config;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._runner = {\n\t\t\t\tepoch: INACTIVE,\n\t\t\t\tgetOuterStack,\n\t\t\t\texecute: function() {\n\t\t\t\t\tif (isConstructor(runtime.callback)) {\n\t\t\t\t\t\tconst instance = new runtime.callback(this.ctx, this.config);\n\t\t\t\t\t\tfor (const hook of instance?.[symbols.initHooks] ?? []) hook();\n\t\t\t\t\t\treturn instance?.[symbols.init]?.();\n\t\t\t\t\t} else return runtime.callback(this.ctx, this.config);\n\t\t\t\t},\n\t\t\t\tcollect\n\t\t\t};\n\t\t\tthis.dispose = parent.fiber.effect(() => {\n\t\t\t\tconst remove = runtime.fibers.push(this);\n\t\t\t\treturn async () => {\n\t\t\t\t\tthis.uid = null;\n\t\t\t\t\temitPluginDisposed(this.context, this);\n\t\t\t\t\tif (this.ctx.registry.has(runtime.callback)) {\n\t\t\t\t\t\tremove();\n\t\t\t\t\t\tif (!runtime.fibers.length) this.ctx.registry.delete(runtime.callback);\n\t\t\t\t\t}\n\t\t\t\t\tthis._setEpoch(INACTIVE);\n\t\t\t\t\tif (!this.inertia) this._updateState(() => {\n\t\t\t\t\t\tthis.inertia = this._unload();\n\t\t\t\t\t\treturn 5;\n\t\t\t\t\t});\n\t\t\t\t\twhile (this.inertia) await this.inertia;\n\t\t\t\t};\n\t\t\t}, \"ctx.plugin()\");\n\t\t\ttry {\n\t\t\t\tthis.context.emit(\"internal/plugin\", this);\n\t\t\t} catch (error) {\n\t\t\t\tPromise.resolve(this.dispose()).catch((reason) => this.ctx.logger.error(reason));\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (this.uid !== null && parent.fiber.state !== 5) {\n\t\t\t\tfor (const name of Object.keys(this.inject)) this._checkImpl(name);\n\t\t\t\tthis._refresh();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.uid = 0;\n\t\t\tthis.ctx = this.context = parent;\n\t\t\tthis.state = 2;\n\t\t\tthis.store = Object.create(null);\n\t\t\tthis._runner = {\n\t\t\t\tepoch: \"\",\n\t\t\t\tgetOuterStack,\n\t\t\t\texecute: () => {},\n\t\t\t\tcollect\n\t\t\t};\n\t\t\tthis.dispose = () => this.restart();\n\t\t}\n\t}\n\t/** The plugin's display name, inherited from the nearest named ancestor, else `'root'`. */\n\tget name() {\n\t\tlet fiber = this;\n\t\tdo {\n\t\t\tif (fiber.runtime?.name) return fiber.runtime.name;\n\t\t\tfiber = fiber.parent.fiber;\n\t\t} while (fiber !== fiber.parent.fiber);\n\t\treturn \"root\";\n\t}\n\t/**\n\t* Throw if the fiber has already been disposed.\n\t*\n\t* @returns nothing when the fiber is still active.\n\t* @throws {CordisError} `INACTIVE_EFFECT` when the fiber's uid has been cleared.\n\t*/\n\tassertActive() {\n\t\tif (this.uid !== null) return;\n\t\tthrow new CordisError(\"INACTIVE_EFFECT\");\n\t}\n\t_execute(runner) {\n\t\tconst oldEpoch = runner.epoch;\n\t\treturn composeError((info) => {\n\t\t\tconst safeCollect = (dispose) => {\n\t\t\t\tif (typeof dispose === \"function\") runner.collect(dispose);\n\t\t\t\telse if (!isNullable(dispose)) throw new TypeError(\"Invalid effect\");\n\t\t\t};\n\t\t\tconst effect = runner.execute.call(this);\n\t\t\tif (typeof effect === \"function\") return runner.collect(effect);\n\t\t\telse if (isNullable(effect)) {} else if (!isObject(effect)) throw new TypeError(\"Invalid effect\");\n\t\t\telse if (\"then\" in effect) return effect.then(safeCollect);\n\t\t\telse if (Symbol.iterator in effect) {\n\t\t\t\tinfo.error = /* @__PURE__ */ new Error();\n\t\t\t\tconst iter = effect[Symbol.iterator]();\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst result = iter.next();\n\t\t\t\t\tsafeCollect(result.value);\n\t\t\t\t\tif (result.done) return;\n\t\t\t\t}\n\t\t\t} else if (Symbol.asyncIterator in effect) {\n\t\t\t\tconst iter = effect[Symbol.asyncIterator]();\n\t\t\t\treturn (async () => {\n\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t\tinfo.error = /* @__PURE__ */ new Error();\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tif (runner.epoch !== oldEpoch) return;\n\t\t\t\t\t\tconst result = await iter.next();\n\t\t\t\t\t\tsafeCollect(result.value);\n\t\t\t\t\t\tif (result.done) return;\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t} else throw new TypeError(\"Invalid effect\");\n\t\t}, runner.getOuterStack);\n\t}\n\teffect(execute, label = \"anonymous\") {\n\t\tthis.assertActive();\n\t\tif (this.state === 5) throw new CordisError(\"INACTIVE_EFFECT\");\n\t\tconst disposables = [];\n\t\tlet disposing = false;\n\t\tlet disposalTask;\n\t\tconst dispose = () => {\n\t\t\tif (disposing) return disposalTask;\n\t\t\tdisposing = true;\n\t\t\tlet task;\n\t\t\tfor (const disposable of disposables.splice(0).reverse()) if (task) task = task.then(() => runDisposable(disposable));\n\t\t\telse {\n\t\t\t\tconst result = runDisposable(disposable);\n\t\t\t\tif (isObject(result) && \"then\" in result) task = result;\n\t\t\t}\n\t\t\treturn disposalTask = task;\n\t\t};\n\t\tconst meta = {\n\t\t\tlabel,\n\t\t\tchildren: []\n\t\t};\n\t\tconst runner = {\n\t\t\texecute,\n\t\t\tepoch: true,\n\t\t\tcollect: (dispose) => {\n\t\t\t\tdisposables.push(dispose);\n\t\t\t\tthis._disposables.delete(dispose);\n\t\t\t\tif (dispose[symbols.effect]) meta.children.push(dispose[symbols.effect]);\n\t\t\t},\n\t\t\tgetOuterStack: buildOuterStack()\n\t\t};\n\t\tlet task;\n\t\tlet executing = true;\n\t\tlet resolveSetup;\n\t\tlet rejectSetup;\n\t\tlet setupBarrier;\n\t\tlet setupFailed = false;\n\t\tlet inFlight;\n\t\tlet removeWrapper = () => false;\n\t\tconst waitForSetup = () => {\n\t\t\tsetupBarrier ??= new Promise((resolve, reject) => {\n\t\t\t\tresolveSetup = resolve;\n\t\t\t\trejectSetup = reject;\n\t\t\t});\n\t\t\treturn setupBarrier;\n\t\t};\n\t\tconst disposeAfter = (setup) => {\n\t\t\treturn Promise.resolve(setup).then(() => dispose(), async (reason) => {\n\t\t\t\tawait dispose();\n\t\t\t\tthrow reason;\n\t\t\t});\n\t\t};\n\t\tconst finalizeDisposal = (callback) => {\n\t\t\tlet result;\n\t\t\ttry {\n\t\t\t\tresult = callback();\n\t\t\t} catch (error) {\n\t\t\t\tremoveWrapper();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (isObject(result) && \"then\" in result) {\n\t\t\t\tconst pending = Promise.resolve(result).finally(() => {\n\t\t\t\t\tremoveWrapper();\n\t\t\t\t\tif (inFlight === pending) inFlight = void 0;\n\t\t\t\t});\n\t\t\t\treturn inFlight = pending;\n\t\t\t}\n\t\t\tremoveWrapper();\n\t\t\treturn result;\n\t\t};\n\t\tconst wrapper = defineProperty(() => {\n\t\t\tif (!runner.epoch) return setupFailed ? inFlight : void 0;\n\t\t\trunner.epoch = false;\n\t\t\treturn finalizeDisposal(() => {\n\t\t\t\tif (executing) return disposeAfter(waitForSetup());\n\t\t\t\treturn task ? disposeAfter(task) : dispose();\n\t\t\t});\n\t\t}, symbols.effect, meta);\n\t\teffectInertia.set(wrapper, () => inFlight);\n\t\tremoveWrapper = this._disposables.push(wrapper);\n\t\ttry {\n\t\t\ttask = this._execute(runner);\n\t\t} catch (reason) {\n\t\t\texecuting = false;\n\t\t\tsetupFailed = true;\n\t\t\trunner.epoch = false;\n\t\t\tlet cleanup;\n\t\t\ttry {\n\t\t\t\tcleanup = finalizeDisposal(dispose);\n\t\t\t} finally {\n\t\t\t\trejectSetup?.(reason);\n\t\t\t}\n\t\t\tif (isObject(cleanup) && \"then\" in cleanup) cleanup.catch((error) => this.ctx.logger.error(error));\n\t\t\tthrow reason;\n\t\t}\n\t\texecuting = false;\n\t\tif (setupBarrier) Promise.resolve(task).then(resolveSetup, rejectSetup);\n\t\ttask?.catch(() => {\n\t\t\tif (!runner.epoch) return dispose();\n\t\t\treturn finalizeDisposal(dispose);\n\t\t}).catch((error) => this.ctx.logger.error(error));\n\t\tconst disposeAsync = () => {\n\t\t\tif (!runner.epoch) return;\n\t\t\trunner.epoch = false;\n\t\t\treturn finalizeDisposal(dispose);\n\t\t};\n\t\twrapper.then = async (onFulfilled, onRejected) => {\n\t\t\treturn Promise.resolve(task).then(() => disposeAsync).then(onFulfilled, onRejected);\n\t\t};\n\t\treturn wrapper;\n\t}\n\t/**\n\t* Return metadata for currently registered effects.\n\t*\n\t* @returns one {@link EffectMeta} tree per labeled live effect.\n\t*/\n\tgetEffects() {\n\t\treturn [...this._disposables].map((dispose) => dispose[symbols.effect]).filter(Boolean);\n\t}\n\t_getState() {\n\t\tif (this.uid === null) return 4;\n\t\tif (this._error) return 3;\n\t\tif (this._runner.epoch !== INACTIVE) return 2;\n\t\treturn 0;\n\t}\n\t_updateState(callback) {\n\t\tconst oldState = this.state;\n\t\tthis.state = callback() ?? this._getState();\n\t\tif (oldState === this.state) return;\n\t\tthis.context.emit(\"internal/status\", this, oldState);\n\t\tif (oldState !== 2 && this.state !== 2) return;\n\t\tfor (const key of Reflect.ownKeys(this.ctx.reflect.store)) {\n\t\t\tconst impl = this.ctx.reflect.store[key];\n\t\t\tif (impl.fiber !== this) continue;\n\t\t\tthis.ctx.reflect.notify([impl.name]);\n\t\t}\n\t}\n\t_checkImpl(name) {\n\t\tconst impl = this.ctx.reflect._getImpl(name, true);\n\t\tif (!impl) return delete this._store[name];\n\t\ttry {\n\t\t\tif (impl.check && !impl.check.call(getTraceable(this.ctx, impl.value))) return delete this._store[name];\n\t\t} catch (error) {\n\t\t\timpl.fiber.ctx.logger.error(error);\n\t\t\treturn delete this._store[name];\n\t\t}\n\t\tthis._store[name] = impl;\n\t}\n\t_refresh() {\n\t\tlet epoch = false;\n\t\tepoch = \"\";\n\t\tfor (const name of Object.keys(this.inject)) {\n\t\t\tconst impl = this._store[name];\n\t\t\tif (!impl) {\n\t\t\t\tepoch = INACTIVE;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tepoch += \":\" + impl.fiber.uid;\n\t\t}\n\t\tthis._setEpoch(epoch);\n\t}\n\t_setEpoch(epoch) {\n\t\tconst oldEpoch = this._runner.epoch;\n\t\tif (epoch === oldEpoch) return;\n\t\tthis._runner.epoch = epoch;\n\t\tif (this.inertia) return;\n\t\tthis._updateState(() => {\n\t\t\tif (epoch !== INACTIVE && oldEpoch === INACTIVE) {\n\t\t\t\tthis.inertia = this._reload();\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\tthis.inertia = this._unload();\n\t\t\t\treturn 5;\n\t\t\t}\n\t\t});\n\t}\n\t_resolveConfig(config) {\n\t\tconfig = this.context.waterfall(this, \"internal/config\", config, () => config);\n\t\treturn this.runtime ? resolveConfig(this.runtime, config) : config;\n\t}\n\tasync _reload() {\n\t\tthis.store = { ...this._store };\n\t\tconst oldEpoch = this._runner.epoch;\n\t\ttry {\n\t\t\tawait Promise.resolve();\n\t\t\tif (this._runner.epoch === oldEpoch) {\n\t\t\t\tthis.config = this._resolveConfig(this._config);\n\t\t\t\tawait this._execute(this._runner);\n\t\t\t\tthis._error = void 0;\n\t\t\t}\n\t\t} catch (reason) {\n\t\t\tthis.ctx.logger.error(reason);\n\t\t\tthis._error = reason;\n\t\t\tthis._runner.epoch = INACTIVE;\n\t\t}\n\t\tthis._updateState(() => {\n\t\t\tif (this._runner.epoch === oldEpoch) this.inertia = void 0;\n\t\t\telse {\n\t\t\t\tthis.inertia = this._unload();\n\t\t\t\treturn 5;\n\t\t\t}\n\t\t});\n\t}\n\tasync _unload() {\n\t\tawait Promise.all(this._disposables.clear().map(async (dispose) => {\n\t\t\ttry {\n\t\t\t\tawait composeError(async (info) => {\n\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t\tinfo.error = /* @__PURE__ */ new Error();\n\t\t\t\t\tawait runDisposable(dispose);\n\t\t\t\t}, this._runner.getOuterStack);\n\t\t\t} catch (reason) {\n\t\t\t\tthis.ctx.logger.error(reason);\n\t\t\t}\n\t\t}));\n\t\tthis.store = void 0;\n\t\tthis._updateState(() => {\n\t\t\tif (this._runner.epoch === INACTIVE) this.inertia = void 0;\n\t\t\telse {\n\t\t\t\tthis.inertia = this._reload();\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Wait for current lifecycle work and rethrow startup errors.\n\t*\n\t* @returns this fiber, once it has settled into a stable state.\n\t* @throws the config-validation or plugin-startup error, if any.\n\t*/\n\tasync await() {\n\t\twhile (this.inertia) await this.inertia;\n\t\tif (this._error) throw this._error;\n\t\treturn this;\n\t}\n\t/**\n\t* Dispose and immediately reload this plugin with its current config.\n\t*\n\t* @returns a promise resolving once the reload settled.\n\t* @throws {CordisError} `INACTIVE_EFFECT` when the fiber is already disposed.\n\t*/\n\tasync restart() {\n\t\tthis.assertActive();\n\t\tthis._setEpoch(INACTIVE);\n\t\tthis._refresh();\n\t\tawait this.await();\n\t}\n\t/**\n\t* Validate and apply new config, then restart the plugin.\n\t*\n\t* Runs the `internal/update` waterfall first, so update hooks (and HMR)\n\t* can veto or replace the restart.\n\t*\n\t* @param config — the new raw config; validated before anything restarts.\n\t* @param noSave — hint for persistence hooks not to write the change back.\n\t* @returns the update waterfall result; the default restart returns a promise.\n\t* @throws when validation, an update listener, or the restarted plugin fails.\n\t*/\n\tupdate(config, noSave = false) {\n\t\tthis.assertActive();\n\t\tthis._config = config;\n\t\tif (this.state !== 2) {\n\t\t\tthis._error = void 0;\n\t\t\tthis._setEpoch(INACTIVE);\n\t\t\tthis._refresh();\n\t\t\treturn;\n\t\t}\n\t\tconfig = this._resolveConfig(config);\n\t\treturn this.context.waterfall(this, \"internal/update\", config, noSave, () => {\n\t\t\tthis.config = config;\n\t\t\tthis._error = void 0;\n\t\t\treturn this.restart();\n\t\t});\n\t}\n};\n//#endregion\n//#region lib/types/registry.js\nfunction isApplicable(object) {\n\treturn object && typeof object === \"object\" && typeof object.apply === \"function\";\n}\n/**\n* Decorator for declaring service dependencies on classes or class methods.\n*\n* On classes it contributes to the plugin's static `inject` map. On methods it\n* delays the method call until the declared services are available.\n*/\n/**\n* @param name — the required service name.\n* @param config — optional intercept config applied for that service.\n* @returns the class or method decorator.\n*/\nfunction Inject(name, config) {\n\treturn function(value, decorator) {\n\t\tif (decorator.kind === \"class\") {\n\t\t\tif (!Object.hasOwn(value, \"inject\")) {\n\t\t\t\tdefineProperty(value, \"inject\", Object.create(Object.getPrototypeOf(value).inject ?? null));\n\t\t\t\tdefineProperty(value.inject, symbols.checkProto, true);\n\t\t\t}\n\t\t\tvalue.inject[name] = config;\n\t\t} else if (decorator.kind === \"method\") {\n\t\t\tconst inject = (value[symbols.metadata] ??= {}).inject ??= Object.create(null);\n\t\t\tinject[name] = config;\n\t\t\tdecorator.addInitializer(function() {\n\t\t\t\tconst property = this[symbols.tracker]?.property;\n\t\t\t\t(this[symbols.initHooks] ??= []).push(() => {\n\t\t\t\t\tthis.ctx.inject(inject, (ctx) => {\n\t\t\t\t\t\treturn value.call(property ? withProps(this, { [property]: ctx }) : this);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t} else throw new Error(\"@Inject() can only be used on class or class methods\");\n\t};\n}\n/** Utilities for normalizing plugin dependency declarations. */\n(function(Inject) {\n\t/**\n\t* Convert array/object/class-inherited inject metadata into a plain map.\n\t*\n\t* @param inject — the declaration to normalize; `null`/`undefined` add nothing.\n\t* @param result — the map to fill (service name → intercept config or `null`).\n\t* @returns `result`.\n\t*/\n\tfunction resolve(inject, result = Object.create(null)) {\n\t\tif (!inject) return result;\n\t\tif (Array.isArray(inject)) for (const name of inject) result[name] = null;\n\t\telse if (Reflect.has(inject, symbols.checkProto)) {\n\t\t\tObject.assign(result, resolve(Object.getPrototypeOf(inject)));\n\t\t\tfor (const name of Object.keys(inject)) result[name] = inject[name] ?? null;\n\t\t} else for (const name of Object.keys(inject)) result[name] = inject[name] ?? null;\n\t\treturn result;\n\t}\n\tInject.resolve = resolve;\n})(Inject || (Inject = {}));\n/**\n* Plugin registry installed as `ctx.registry` and mixed into every context.\n*\n* It normalizes plugin shapes, tracks plugin runtimes, starts fibers, and\n* exposes map-like inspection over active plugin callbacks.\n*/\nvar RegistryService = class {\n\tctx;\n\t_counter = 0;\n\t_internal = /* @__PURE__ */ new Map();\n\tconstructor(ctx) {\n\t\tthis.ctx = ctx;\n\t\tdefineProperty(this, symbols.tracker, {\n\t\t\tproperty: \"ctx\",\n\t\t\tnoShadow: true\n\t\t});\n\t}\n\t/** Allocate the next fiber uid (increments on every read). */\n\tget counter() {\n\t\treturn ++this._counter;\n\t}\n\t/** Number of registered plugin runtimes. */\n\tget size() {\n\t\treturn this._internal.size;\n\t}\n\t/**\n\t* Resolve a supported plugin shape to its executable callback.\n\t*\n\t* @param plugin — a function, class, or `{ apply }` object plugin.\n\t* @returns the callback identifying the plugin, or `undefined` if invalid.\n\t*/\n\tresolve(plugin) {\n\t\ttry {\n\t\t\tif (typeof plugin === \"function\") return plugin;\n\t\t\tif (isApplicable(plugin)) return plugin.apply;\n\t\t} catch {}\n\t}\n\t/**\n\t* Look up the runtime record for a plugin.\n\t*\n\t* @param plugin — any supported plugin shape.\n\t* @returns the runtime, or `undefined` when the plugin is not registered.\n\t*/\n\tget(plugin) {\n\t\tconst key = this.resolve(plugin);\n\t\treturn key && this._internal.get(key);\n\t}\n\t/**\n\t* Check whether a plugin has a registered runtime.\n\t*\n\t* @param plugin — any supported plugin shape.\n\t* @returns `true` when at least one fiber of the plugin exists.\n\t*/\n\thas(plugin) {\n\t\tconst key = this.resolve(plugin);\n\t\treturn !!key && this._internal.has(key);\n\t}\n\t/**\n\t* Dispose every running fiber for a plugin and remove its runtime record.\n\t*\n\t* @param plugin — any supported plugin shape.\n\t* @returns the removed runtime, or `undefined` when none was registered.\n\t*/\n\tdelete(plugin) {\n\t\tconst key = this.resolve(plugin);\n\t\tconst runtime = key && this._internal.get(key);\n\t\tif (!runtime) return;\n\t\tthis._internal.delete(key);\n\t\tfor (const fiber of runtime.fibers) fiber.dispose();\n\t\treturn runtime;\n\t}\n\t/** Iterate the registered plugin callbacks. */\n\tkeys() {\n\t\treturn this._internal.keys();\n\t}\n\t/** Iterate the registered plugin runtimes. */\n\tvalues() {\n\t\treturn this._internal.values();\n\t}\n\t/** Iterate `[callback, runtime]` pairs. */\n\tentries() {\n\t\treturn this._internal.entries();\n\t}\n\t/**\n\t* Visit every registered runtime.\n\t*\n\t* @param callback — receives each runtime and its identifying callback.\n\t*/\n\tforEach(callback) {\n\t\treturn this._internal.forEach(callback);\n\t}\n\t/**\n\t* Start a callback once the requested dependencies are available.\n\t*\n\t* @param inject — required services, as an array or a name → config map.\n\t* @param callback — plugin body called with `(ctx, config)`.\n\t* @returns the fiber; awaiting it settles once loading finished.\n\t*/\n\tinject(inject, callback) {\n\t\treturn this.plugin({\n\t\t\tinject,\n\t\t\tapply: callback,\n\t\t\tname: callback.name\n\t\t});\n\t}\n\t/**\n\t* Start a plugin in the current context and return its fiber.\n\t*\n\t* Creates (or reuses) the plugin's runtime record, then starts a new fiber\n\t* under the current context. Throws if `plugin` is not a supported shape or\n\t* if the current fiber is already disposed.\n\t*\n\t* @param plugin — a function, class, or `{ apply }` object plugin.\n\t* @param config — the plugin config, validated against its `Config` schema.\n\t* @param getOuterStack — captures the caller stack for effect diagnostics.\n\t* @returns the fiber; awaiting it settles once loading finished.\n\t*/\n\tplugin(plugin, config, getOuterStack = buildOuterStack()) {\n\t\tconst callback = this.resolve(plugin);\n\t\tif (!callback) throw new Error(\"invalid plugin, expect function or object with an \\\"apply\\\" method, received \" + typeof plugin);\n\t\tthis.ctx.fiber.assertActive();\n\t\tlet runtime = this._internal.get(callback);\n\t\tif (!runtime) {\n\t\t\tlet name = plugin.name;\n\t\t\tif (name === \"apply\") name = void 0;\n\t\t\truntime = {\n\t\t\t\tname,\n\t\t\t\tcallback,\n\t\t\t\tfibers: new DisposableList(),\n\t\t\t\tConfig: plugin.Config\n\t\t\t};\n\t\t\tthis._internal.set(callback, runtime);\n\t\t}\n\t\tconst fiber = new Fiber(this.ctx, config, Inject.resolve(plugin.inject), runtime, getOuterStack);\n\t\tconst wrapped = Object.create(fiber);\n\t\twrapped.then = (onFulfilled, onRejected) => {\n\t\t\treturn fiber.await().then(onFulfilled, onRejected);\n\t\t};\n\t\treturn wrapped;\n\t}\n};\n//#endregion\n//#region lib/types/context.js\n/**\n* Root and child dependency containers for Cordis plugins.\n*\n* A context is a proxy: normal property reads go through the service resolver,\n* while `extend()`, `isolate()`, and `intercept()` create scoped child\n* contexts without mutating their parent.\n*/\nvar Context = class Context {\n\t/** Symbol key under which a disposer exposes its {@link EffectMeta} diagnostics tree. */\n\tstatic effect = symbols.effect;\n\t/** Symbol key for a context's listener filter, consulted on every event dispatch. */\n\tstatic filter = symbols.filter;\n\t/** Symbol key of the isolation map (see the `Context[symbols.isolate]` property). */\n\tstatic isolate = symbols.isolate;\n\t/** Symbol key of the intercept map (see the `Context[symbols.intercept]` property). */\n\tstatic intercept = symbols.intercept;\n\t/**\n\t* Returns true for Cordis context proxies and context prototypes.\n\t*\n\t* Works across realms and across multiple copies of cordis, because the\n\t* brand is keyed by a global symbol rather than by `instanceof`.\n\t*\n\t* @param value — the value to test.\n\t* @returns `true` if `value` is a Cordis context, narrowing its type.\n\t*/\n\tstatic is(value) {\n\t\treturn !!value?.[Context.is];\n\t}\n\tstatic {\n\t\tContext.is[Symbol.toPrimitive] = () => Symbol.for(\"cordis.is\");\n\t\tContext.prototype[Context.is] = true;\n\t}\n\t/** Create the root context and install the built-in services. */\n\tconstructor() {\n\t\tthis[symbols.isolate] = Object.create(null);\n\t\tthis[symbols.intercept] = Object.create(null);\n\t\tconst self = new Proxy(this, ReflectService.handler);\n\t\tthis.root = self;\n\t\tthis.baseUrl = void 0;\n\t\tthis.fiber = new Fiber(self, {}, Object.create(null), null, () => []);\n\t\tthis.reflect = new ReflectService(self);\n\t\tthis.registry = new RegistryService(self);\n\t\tthis.events = new EventsService(self);\n\t\tthis.logger = new LoggerService(self);\n\t\tthis.fiber._disposables.clear();\n\t\treturn self;\n\t}\n\t[Symbol.for(\"nodejs.util.inspect.custom\")]() {\n\t\treturn `Context <${this.fiber.name}>`;\n\t}\n\t/**\n\t* Create a child context with extra metadata on top of the current scope.\n\t*\n\t* The child prototypally inherits every property of this context; own\n\t* properties of `meta` shadow the inherited ones. The parent is not mutated.\n\t*\n\t* @param meta — own properties (including symbol keys) to define on the child.\n\t* @returns a child context inheriting from this one.\n\t*/\n\textend(meta = {}) {\n\t\tconst shadow = Reflect.getOwnPropertyDescriptor(this, symbols.shadow)?.value;\n\t\tconst self = Object.create(getTraceable(this, this));\n\t\tfor (const prop of Reflect.ownKeys(meta)) Object.defineProperty(self, prop, Reflect.getOwnPropertyDescriptor(meta, prop));\n\t\tif (!shadow) return self;\n\t\treturn Object.assign(Object.create(self), { [symbols.shadow]: shadow });\n\t}\n\t/**\n\t* Create a child context with an independent service scope for `name`.\n\t*\n\t* Below the returned context, reads and writes of the service `name`\n\t* resolve against the new label instead of the parent's, so a different\n\t* implementation can be provided without affecting the parent scope.\n\t* Passing the same `label` to two `isolate()` calls joins their scopes.\n\t*\n\t* @param name — the service name to isolate.\n\t* @param label — scope label to join; defaults to a fresh unique symbol.\n\t* @returns a child context whose `name` service resolves in the new scope.\n\t*/\n\tisolate(name, label) {\n\t\tconst shadow = Object.create(this[symbols.isolate]);\n\t\tshadow[name] = label ?? Symbol(name);\n\t\treturn this.extend({ [symbols.isolate]: shadow });\n\t}\n\tintercept(name, config) {\n\t\tconst intercept = Object.create(this[symbols.intercept]);\n\t\tintercept[name] = config;\n\t\treturn this.extend({ [symbols.intercept]: intercept });\n\t}\n};\n//#endregion\n//#region lib/types/service.js\n/**\n* Base class for services that expose a named API on `ctx`.\n*\n* Subclasses call `super(ctx, name)` from their constructor. The service is\n* registered immediately and is automatically removed with the owning fiber.\n*/\nvar Service = class Service {\n\tctx;\n\t/** Symbol key of an instance method run after construction (class plugins). */\n\tstatic init = symbols.init;\n\t/** Symbol key of the availability predicate passed to `ctx.provide()`. */\n\tstatic check = symbols.check;\n\t/** Symbol key of the phantom intercept-config type parameter. */\n\tstatic config = symbols.config;\n\t/** Symbol key of the call body making a service callable (e.g. `ctx.logger()`). */\n\tstatic invoke = symbols.invoke;\n\t/** Symbol key of the helper deriving an extended service instance. */\n\tstatic extend = symbols.extend;\n\t/** Symbol key of the tracker metadata used for context tracing. */\n\tstatic tracker = symbols.tracker;\n\t/** Symbol key of the intercept-config resolution helper below. */\n\tstatic resolveConfig = symbols.resolveConfig;\n\t/** The service name this instance is registered under. */\n\tname;\n\t/**\n\t* Register this instance as `name` in the current context.\n\t*\n\t* Calls `ctx.reflect.provide(name, this, this[Service.check])`, so the\n\t* service is unregistered automatically when the owning fiber unloads.\n\t* Services with a `[Service.invoke]` body return a callable instance.\n\t*\n\t* @param ctx — the context to register in (stored as `this.ctx`).\n\t* @param name — the service name; defaults to the static `provide` field.\n\t*/\n\tconstructor(ctx, name) {\n\t\tthis.ctx = ctx;\n\t\tname ??= this.constructor[\"provide\"];\n\t\tlet self = this;\n\t\tconst tracker = {\n\t\t\tassociate: name,\n\t\t\tproperty: \"ctx\"\n\t\t};\n\t\tif (self[symbols.invoke]) self = createCallable(name, joinPrototype(Object.getPrototypeOf(this), Function.prototype), tracker);\n\t\tself.ctx = ctx;\n\t\tself.name = name;\n\t\tdefineProperty(self, symbols.tracker, tracker);\n\t\tself.ctx.reflect.provide(name, self, this[symbols.check]);\n\t\treturn self;\n\t}\n\t[symbols.filter](ctx) {\n\t\treturn ctx[symbols.isolate][this.name] === this.ctx[symbols.isolate][this.name];\n\t}\n\t[symbols.extend](props) {\n\t\tlet self;\n\t\tif (this[Service.invoke]) self = createCallable(this.name, this, this[symbols.tracker]);\n\t\telse self = Object.create(this);\n\t\treturn Object.assign(self, props);\n\t}\n\t/**\n\t* Merge intercept config from ancestors with optional base and head values.\n\t*\n\t* Entries added closer to the root apply first; `base` is prepended and\n\t* `head` appended. Uses `Config.merge` when the service declares one,\n\t* otherwise a shallow `Object.assign`.\n\t*\n\t* @param base — lowest-precedence config merged before all intercepts.\n\t* @param head — highest-precedence config merged after all intercepts.\n\t* @returns the merged config.\n\t*/\n\t[symbols.resolveConfig](base, head) {\n\t\tlet intercept = this.ctx[Context.intercept];\n\t\tconst configs = [];\n\t\twhile (this.name in intercept) {\n\t\t\tif (Object.hasOwn(intercept, this.name)) configs.unshift(intercept[this.name]);\n\t\t\tintercept = Object.getPrototypeOf(intercept);\n\t\t}\n\t\tif (base) configs.unshift(base);\n\t\tif (head) configs.push(head);\n\t\tif (this[\"Config\"]?.merge) return this[\"Config\"].merge(...configs);\n\t\telse return Object.assign({}, ...configs);\n\t}\n\tstatic [Symbol.hasInstance](instance) {\n\t\tif (!instance) return false;\n\t\tlet constructor = instance.constructor;\n\t\twhile (constructor) {\n\t\t\tconstructor = constructor.prototype?.constructor;\n\t\t\tif (constructor === this) return true;\n\t\t\tconstructor &&= Object.getPrototypeOf(constructor);\n\t\t}\n\t\treturn false;\n\t}\n};\n//#endregion\nexport { Context, CordisError, DisposableList, EventsService, Fiber, Inject, Logger, LoggerService, RegistryService, Service, ValidationError, buildOuterStack, c16, c256, composeError, createCallable, defaultFormatters, getPropertyDescriptor, getTraceable, isBailed, isConstructor, isObject, joinPrototype, resolveConfig, symbols, withProps };\n","/**\n * Browser stand-in for `node:module`. `createRequire` is unreachable in the\n * configured loader path and fails loud if that assumption changes.\n */\n\n/** Throwing stand-in for node:module's createRequire (never reached in the browser boot). */\nexport const createRequire = (): never => {\n throw new Error('node:module is not available in the browser')\n}\n\n/** Erased type peer for the vendored loader's type-only LoadHookContext import. */\nexport type LoadHookContext = never\n","import { createRequire } from \"node:module\";\nimport { Context, Inject, Service, composeError } from \"@xrkseek/cordis\";\nimport { deepEqual, defineProperty, isNonNullable, isNullable, valueMap } from \"@xrkseek/cosmokit\";\n//#region lib/types/internal.js\n/** Helpers for locating the current Node internal module loader. */\nvar ModuleLoader;\n(function(ModuleLoader) {\n\tlet _cachedLoader;\n\tfunction requireInternal(id) {\n\t\tconst require = createRequire(import.meta.url);\n\t\tif (process.execArgv.includes(\"--expose-internals\")) try {\n\t\t\treturn require(id);\n\t\t} catch {}\n\t\ttry {\n\t\t\treturn require(\"node-addon-require-builtin\").requireBuiltin(id);\n\t\t} catch {}\n\t}\n\tfunction fromInternal() {\n\t\tif (_cachedLoader) return _cachedLoader;\n\t\tconst [major] = process.versions.node.split(\".\").map(Number);\n\t\tif (major >= 24) {\n\t\t\tconst raw = requireInternal(\"internal/modules/esm/loader\")?.getOrInitializeCascadedLoader();\n\t\t\tif (raw) return _cachedLoader = Object.assign(raw, { version: \"v2\" });\n\t\t} else if (major >= 22) {\n\t\t\tconst raw = requireInternal(\"internal/modules/esm/loader\")?.getOrInitializeCascadedLoader();\n\t\t\tif (raw) return _cachedLoader = Object.assign(raw, { version: \"v1\" });\n\t\t}\n\t}\n\tModuleLoader.fromInternal = fromInternal;\n})(ModuleLoader || (ModuleLoader = {}));\n//#endregion\n//#region lib/types/config/group.js\n/** Runtime owner for a list of child loader entries. */\nvar EntryGroup = class {\n\tctx;\n\ttree;\n\tstatic key = Symbol.for(\"cordis.group\");\n\tdata = [];\n\tconstructor(ctx, tree) {\n\t\tthis.ctx = ctx;\n\t\tthis.tree = tree;\n\t\tconst entry = ctx.fiber.entry;\n\t\tif (entry) entry.subgroup = this;\n\t}\n\tget context() {\n\t\treturn this.ctx;\n\t}\n\tasync create(options) {\n\t\tconst id = this.tree.ensureId(options);\n\t\tconst existing = this.tree.store[id];\n\t\tconst entry = existing ?? (this.tree.store[id] = new Entry(this.ctx.loader));\n\t\tconst previousParent = entry.parent;\n\t\tentry.parent = this;\n\t\ttry {\n\t\t\tawait entry.update(options, true, true);\n\t\t} catch (error) {\n\t\t\tif (existing) entry.parent = previousParent;\n\t\t\telse delete this.tree.store[id];\n\t\t\tthrow error;\n\t\t}\n\t\treturn entry.id;\n\t}\n\tunlink(options) {\n\t\tconst config = this.data;\n\t\tconst index = config.indexOf(options);\n\t\tif (index >= 0) config.splice(index, 1);\n\t}\n\tasync remove(id, isDispose = false) {\n\t\tconst entry = this.tree.store[id];\n\t\tif (!entry) return;\n\t\tawait entry._dispose();\n\t\tif (!isDispose) this.unlink(entry.options);\n\t\tdelete this.tree.store[id];\n\t\tthis.context.emit(\"loader/partial-dispose\", entry, entry.options, false);\n\t}\n\tasync update(config) {\n\t\tconst oldConfig = this.data;\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tfor (const options of config) {\n\t\t\tconst id = this.tree.ensureId(options);\n\t\t\tif (seen.has(id)) throw new TypeError(`duplicate loader entry id: ${id}`);\n\t\t\tseen.add(id);\n\t\t}\n\t\tconst oldMap = Object.fromEntries(oldConfig.map((options) => [options.id, options]));\n\t\tconst newMap = Object.fromEntries(config.map((options) => [options.id, options]));\n\t\ttry {\n\t\t\tconst outcomes = await Promise.allSettled(config.map((options) => this.create(options)));\n\t\t\tif (this.ctx.fiber.uid === null) return;\n\t\t\tconst failures = outcomes.filter((outcome) => outcome.status === \"rejected\").map((outcome) => outcome.reason);\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, \"loader entries failed to apply\");\n\t\t\tfor (const id of Object.keys(oldMap)) if (!newMap[id]) await this.remove(id, true);\n\t\t\tthis.data = config;\n\t\t} catch (error) {\n\t\t\tconst rollbackErrors = [];\n\t\t\tfor (const id of Object.keys(newMap).reverse()) {\n\t\t\t\tif (oldMap[id]) continue;\n\t\t\t\ttry {\n\t\t\t\t\tawait this.remove(id, true);\n\t\t\t\t} catch (rollbackError) {\n\t\t\t\t\trollbackErrors.push(rollbackError);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const options of oldConfig) try {\n\t\t\t\tawait this.create(options);\n\t\t\t} catch (rollbackError) {\n\t\t\t\trollbackErrors.push(rollbackError);\n\t\t\t}\n\t\t\tthis.data = oldConfig;\n\t\t\tif (rollbackErrors.length) throw new AggregateError([error, ...rollbackErrors], \"loader entry rollback failed\");\n\t\t\tthrow error;\n\t\t}\n\t}\n\tasync stop() {\n\t\tfor (const options of this.data) await this.remove(options.id, true);\n\t}\n};\n/** Plugin that mounts a nested loader entry group. */\nvar Group = class extends EntryGroup {\n\tctx;\n\tconfig;\n\tstatic initial = [];\n\tstatic [EntryGroup.key] = true;\n\tconstructor(ctx, config) {\n\t\tsuper(ctx, ctx.fiber.entry.parent.tree);\n\t\tthis.ctx = ctx;\n\t\tthis.config = config;\n\t\tctx.on(\"internal/update\", (config) => this.update(config));\n\t}\n\tasync *[Service.init]() {\n\t\tyield () => this.stop();\n\t\tawait this.update(this.config);\n\t}\n};\n//#endregion\n//#region lib/types/config/tree.js\nvar __rewriteRelativeImportExtension = function(path, preserveJsx) {\n\tif (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) {\n\t\treturn tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : d + ext + \".\" + cm.toLowerCase() + \"js\";\n\t});\n\treturn path;\n};\n/** Mutable tree of loader entries. Persistence is supplied by subclasses. */\nvar EntryTree = class EntryTree {\n\tstatic sep = \":\";\n\tctx;\n\tenableLogs;\n\troot;\n\tstore = Object.create(null);\n\tconstructor(ctx) {\n\t\tthis.ctx = ctx.extend({ baseUrl: ctx.baseUrl });\n\t\tthis.root = new EntryGroup(this.ctx, this);\n\t\tconst entry = this.ctx.fiber.entry;\n\t\tif (entry) entry.subtree = this;\n\t}\n\tget context() {\n\t\treturn this.ctx;\n\t}\n\t/** Iterate entries in this tree and any nested subtrees. */\n\t*entries() {\n\t\tfor (const entry of Object.values(this.store)) {\n\t\t\tyield entry;\n\t\t\tif (!entry.subtree) continue;\n\t\t\tyield* entry.subtree.entries();\n\t\t}\n\t}\n\t/** Return pending import and lifecycle tasks owned by this tree. */\n\tgetTasks() {\n\t\treturn [...this.entries()].map((entry) => entry._initTask || entry.fiber?.inertia).filter(isNonNullable);\n\t}\n\t/**\n\t* Wait until this tree has no active import or lifecycle tasks.\n\t* @throws a settled fiber failure, or an aggregate when several fibers failed.\n\t*/\n\tasync await() {\n\t\twhile (true) {\n\t\t\tconst tasks = this.getTasks();\n\t\t\tif (tasks.length) {\n\t\t\t\tawait Promise.allSettled(tasks);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst failures = (await Promise.allSettled([...this.entries()].map((entry) => entry._await()))).filter((outcome) => outcome.status === \"rejected\").map((outcome) => outcome.reason);\n\t\t\tif (failures.length === 1) throw failures[0];\n\t\t\tif (failures.length > 1) throw new AggregateError(failures, \"loader fibers failed\");\n\t\t\tthis.ctx.reflect.notify([\"loader\"]);\n\t\t\tif (!this.getTasks().length) return;\n\t\t}\n\t}\n\tensureId(options) {\n\t\tif (!options.id) do\n\t\t\toptions.id = Math.random().toString(16).slice(2, 10);\n\t\twhile (this.store[options.id]);\n\t\treturn options.id;\n\t}\n\t/** Resolve an entry by id, including nested ids separated by `EntryTree.sep`. */\n\tresolve(id) {\n\t\tconst parts = id.split(EntryTree.sep);\n\t\tlet tree = this;\n\t\tconst final = parts.pop();\n\t\tfor (const part of parts) {\n\t\t\ttree = tree.store[part]?.subtree;\n\t\t\tif (!tree) throw new Error(`cannot resolve entry ${id}`);\n\t\t}\n\t\tconst entry = tree.store[final];\n\t\tif (!entry) throw new Error(`cannot resolve entry ${id}`);\n\t\treturn entry;\n\t}\n\tresolveGroup(id) {\n\t\tif (!id) return this.root;\n\t\tconst entry = this.resolve(id);\n\t\tif (!entry.subgroup) throw new Error(`entry ${id} is not a group`);\n\t\treturn entry.subgroup;\n\t}\n\t/** Create an entry in the root group or a nested group. */\n\tasync create(options, parent = null, position = Infinity) {\n\t\tconst group = this.resolveGroup(parent);\n\t\tconst id = await group.create(options);\n\t\tconst entry = this.resolve(id);\n\t\tgroup.data.splice(position, 0, entry.options);\n\t\tgroup.tree.write();\n\t\treturn id;\n\t}\n\t/** Stop and remove an entry from its parent group. */\n\tasync remove(id) {\n\t\tconst entry = this.resolve(id);\n\t\tawait entry.parent.remove(id);\n\t\tentry.parent.tree.write();\n\t}\n\t/** Update an entry and optionally move it to another group. */\n\tasync update(id, options, parent, position) {\n\t\tconst entry = this.resolve(id);\n\t\tconst source = entry.parent;\n\t\tconst sourceIndex = source.data.indexOf(entry.options);\n\t\tlet target = source;\n\t\tif (parent !== void 0) {\n\t\t\ttarget = this.resolveGroup(parent);\n\t\t\tsource.unlink(entry.options);\n\t\t\ttarget.data.splice(position ?? Infinity, 0, entry.options);\n\t\t\tentry.parent = target;\n\t\t}\n\t\ttry {\n\t\t\tawait entry.update(options, false, true);\n\t\t} catch (error) {\n\t\t\tif (parent !== void 0) {\n\t\t\t\ttarget.unlink(entry.options);\n\t\t\t\tsource.data.splice(sourceIndex < 0 ? source.data.length : sourceIndex, 0, entry.options);\n\t\t\t\tentry.parent = source;\n\t\t\t\ttry {\n\t\t\t\t\tawait entry.update({}, false, true);\n\t\t\t\t} catch (rollbackError) {\n\t\t\t\t\tthrow new AggregateError([error, rollbackError], `failed to roll back loader entry move ${id}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tsource.tree.write();\n\t\tif (target !== source) target.tree.write();\n\t}\n\t/** Import a plugin module from a specifier or `cordis:` builtin. */\n\timport(name, getOuterStack) {\n\t\tif (name.startsWith(\"cordis:\")) return this.ctx.loader.builtins[name.slice(7)];\n\t\treturn composeError(async (info) => {\n\t\t\tinfo.offset += 3;\n\t\t\tif (this.ctx.loader.internal) return await this.ctx.loader.internal.import(name, this.ctx.baseUrl, {});\n\t\t\telse if (name.startsWith(\".\")) return await import(__rewriteRelativeImportExtension(\n\t\t\t\t/* @vite-ignore */\n\t\t\t\tnew URL(name, this.ctx.baseUrl).href\n\t\t\t));\n\t\t\telse return await import(__rewriteRelativeImportExtension(\n\t\t\t\t/* @vite-ignore */\n\t\t\t\tname\n\t\t\t));\n\t\t}, getOuterStack);\n\t}\n};\n//#endregion\n//#region lib/types/config/utils.js\n/** Evaluate a JavaScript expression against a loader context scope. */\nconst evaluate = new Function(\"ctx\", \"expr\", `\n with (ctx) {\n return eval(expr)\n }\n`);\n/** Recursively replace YAML `!js` expression nodes with evaluated values. */\nfunction interpolate(ctx, value) {\n\tif (isJsExpr(value)) return evaluate(ctx, value.__jsExpr);\n\telse if (!value || typeof value !== \"object\") return value;\n\telse if (Array.isArray(value)) return value.map((item) => interpolate(ctx, item));\n\telse return valueMap(value, (item) => interpolate(ctx, item));\n}\n/** Return true when a value is a serialized loader JavaScript expression. */\nfunction isJsExpr(value) {\n\treturn value instanceof Object && \"__jsExpr\" in value;\n}\n//#endregion\n//#region lib/types/config/entry.js\nfunction updateError(stage, options, cause) {\n\tconst detail = cause instanceof Error ? cause.message : String(cause);\n\treturn new Error(`failed to ${stage} loader entry ${options.id} (${options.name}): ${detail}`, { cause });\n}\nfunction takeEntries(object, keys) {\n\tconst result = [];\n\tfor (const key of keys) {\n\t\tif (!(key in object)) continue;\n\t\tresult.push([key, object[key]]);\n\t\tdelete object[key];\n\t}\n\treturn result;\n}\nfunction sortKeys(object, prepend = [\"id\", \"name\"], append = [\"config\"]) {\n\tconst part1 = takeEntries(object, prepend);\n\tconst part2 = takeEntries(object, append);\n\tconst rest = takeEntries(object, Object.keys(object)).sort(([a], [b]) => a.localeCompare(b));\n\treturn Object.assign(object, Object.fromEntries([\n\t\t...part1,\n\t\t...rest,\n\t\t...part2\n\t]));\n}\nfunction replaceKeys(target, source) {\n\tfor (const key of Object.keys(target)) Reflect.deleteProperty(target, key);\n\treturn Object.assign(target, source);\n}\n/** One configured plugin node inside an `EntryTree`. */\nvar Entry = class Entry {\n\tloader;\n\tstatic key = Symbol.for(\"cordis.entry\");\n\tctx;\n\tfiber;\n\tparent;\n\toptions = {};\n\tsubgroup;\n\tsubtree;\n\t_initTask;\n\t_disposing = 0;\n\tconstructor(loader) {\n\t\tthis.loader = loader;\n\t\tthis.ctx = loader.ctx.extend({ [Entry.key]: this });\n\t\tthis.context.emit(\"loader/entry-init\", this);\n\t}\n\tget context() {\n\t\treturn this.ctx;\n\t}\n\tget id() {\n\t\tlet id = this.options.id;\n\t\tif (this.parent.tree.ctx.fiber.entry) id = this.parent.tree.ctx.fiber.entry.id + EntryTree.sep + id;\n\t\treturn id;\n\t}\n\t/** True when this entry or any owning parent entry is disabled. */\n\tget disabled() {\n\t\treturn this._disabled(this.options);\n\t}\n\t_disabled(options) {\n\t\tif (options.group) return false;\n\t\tif (this.disabledOf(options)) return true;\n\t\tlet entry = this.parent.ctx.fiber.entry;\n\t\twhile (entry) {\n\t\t\tif (this.disabledOf(entry.options)) return true;\n\t\t\tentry = entry.parent.ctx.fiber.entry;\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Effective disabled state: a `!!js` expression evaluates against the loader\n\t* context. The raw node stays in the options, so write-back keeps the form.\n\t*/\n\tdisabledOf(options) {\n\t\treturn isJsExpr(options.disabled) ? Boolean(this.evaluate(options.disabled.__jsExpr)) : Boolean(options.disabled);\n\t}\n\tevaluate(expr) {\n\t\treturn evaluate(this.ctx, expr);\n\t}\n\tasync _patchContext(diff) {\n\t\tawait this.context.waterfall(\"loader/patch-context\", this, async () => {\n\t\t\tObject.setPrototypeOf(this.ctx, this.parent.ctx);\n\t\t\tif (this.fiber?.uid && (diff.includes(\"config\") || this.options.group)) await this.fiber.update(this.options.config, true);\n\t\t});\n\t}\n\tasync refresh() {\n\t\tif (this.fiber) return;\n\t\tif (this.disabled) return;\n\t\tawait this.init();\n\t}\n\tasync _dispose(fiber = this.fiber) {\n\t\tif (!fiber) return;\n\t\tif (this.fiber === fiber) this.fiber = void 0;\n\t\tthis._disposing += 1;\n\t\ttry {\n\t\t\tawait fiber.dispose();\n\t\t} finally {\n\t\t\tthis._disposing -= 1;\n\t\t}\n\t}\n\t/** Merge new options, restart as needed, and persist through the parent tree. */\n\tasync update(options, create = false, force = false) {\n\t\tconst previousOptions = this.options;\n\t\tconst legacy = { ...previousOptions };\n\t\tconst candidate = create ? options : { ...previousOptions };\n\t\tif (!create) for (const [key, value] of Object.entries(options)) if (isNullable(value)) delete candidate[key];\n\t\telse candidate[key] = value;\n\t\tsortKeys(candidate);\n\t\tconst diff = Object.keys({\n\t\t\t...candidate,\n\t\t\t...legacy\n\t\t}).filter((key) => !deepEqual(candidate[key], legacy[key]));\n\t\tif (!diff.length && !force) return;\n\t\tconst commit = () => {\n\t\t\tif (create) return;\n\t\t\tthis.options = replaceKeys(previousOptions, candidate);\n\t\t};\n\t\tconst previous = this.fiber;\n\t\tif (!previous?.uid) {\n\t\t\tthis.fiber = void 0;\n\t\t\tthis.options = candidate;\n\t\t\ttry {\n\t\t\t\tif (!this._disabled(candidate)) await this.init();\n\t\t\t} catch (error) {\n\t\t\t\tthis.options = previousOptions;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tcommit();\n\t\t\treturn;\n\t\t}\n\t\tif (this._disabled(candidate)) {\n\t\t\tthis.options = candidate;\n\t\t\ttry {\n\t\t\t\tawait this._dispose(previous);\n\t\t\t} catch (error) {\n\t\t\t\tthis.options = previousOptions;\n\t\t\t\tthrow updateError(\"dispose\", candidate, error);\n\t\t\t}\n\t\t\tcommit();\n\t\t\tthis.context.emit(\"loader/partial-dispose\", this, legacy, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!diff.some((key) => key === \"name\" || key === \"inject\" || key === \"group\")) {\n\t\t\tthis.options = candidate;\n\t\t\ttry {\n\t\t\t\tawait this._patchContext(diff);\n\t\t\t} catch (error) {\n\t\t\t\tthis.options = previousOptions;\n\t\t\t\ttry {\n\t\t\t\t\tawait this._patchContext(diff);\n\t\t\t\t} catch (rollbackError) {\n\t\t\t\t\tthrow updateError(\"rollback\", legacy, new AggregateError([error, rollbackError]));\n\t\t\t\t}\n\t\t\t\tthis.context.emit(\"loader/partial-dispose\", this, candidate, true);\n\t\t\t\tthrow updateError(\"apply\", candidate, error);\n\t\t\t}\n\t\t\tcommit();\n\t\t\tthis.context.emit(\"loader/partial-dispose\", this, legacy, true);\n\t\t\treturn;\n\t\t}\n\t\tlet plugin;\n\t\ttry {\n\t\t\tplugin = diff.includes(\"name\") ? this.loader.unwrapExports(await this.parent.tree.import(candidate.name, this.getOuterStack)) : previous.runtime.callback;\n\t\t} catch (error) {\n\t\t\tthrow updateError(\"import\", candidate, error);\n\t\t}\n\t\tconst previousPlugin = previous.runtime.callback;\n\t\tthis.options = candidate;\n\t\ttry {\n\t\t\tawait this._dispose(previous);\n\t\t} catch (error) {\n\t\t\tthis.options = previousOptions;\n\t\t\tthrow updateError(\"dispose\", candidate, error);\n\t\t}\n\t\ttry {\n\t\t\tawait this._start(plugin);\n\t\t} catch (error) {\n\t\t\tthis.options = previousOptions;\n\t\t\ttry {\n\t\t\t\tawait this._start(previousPlugin);\n\t\t\t} catch (rollbackError) {\n\t\t\t\tthrow updateError(\"rollback\", legacy, new AggregateError([error, rollbackError]));\n\t\t\t}\n\t\t\tthis.context.emit(\"loader/partial-dispose\", this, candidate, true);\n\t\t\tthrow updateError(\"apply\", candidate, error);\n\t\t}\n\t\tcommit();\n\t\tthis.context.emit(\"loader/partial-dispose\", this, legacy, true);\n\t}\n\tgetOuterStack = () => {\n\t\tlet entry = this;\n\t\tconst result = [];\n\t\tdo {\n\t\t\tresult.push(` at ${entry.parent.tree.ctx.baseUrl}#${entry.options.id}`);\n\t\t\tentry = entry.parent.ctx.fiber.entry;\n\t\t} while (entry);\n\t\treturn result;\n\t};\n\t/** Import and start the configured plugin if it is not already running. */\n\tasync init() {\n\t\ttry {\n\t\t\tawait (this._initTask ??= this._init());\n\t\t} finally {\n\t\t\tthis._initTask = void 0;\n\t\t\tif (!this.loader.getTasks().length) this.ctx.reflect.notify([\"loader\"]);\n\t\t}\n\t\tawait this._await();\n\t}\n\tasync _await() {\n\t\ttry {\n\t\t\tawait this.fiber?.await();\n\t\t} catch (error) {\n\t\t\tthrow updateError(\"apply\", this.options, error);\n\t\t}\n\t}\n\tasync _init() {\n\t\tlet plugin;\n\t\ttry {\n\t\t\tplugin = this.loader.unwrapExports(await this.parent.tree.import(this.options.name, this.getOuterStack));\n\t\t} catch (error) {\n\t\t\tthrow updateError(\"import\", this.options, error);\n\t\t}\n\t\ttry {\n\t\t\tawait this._start(plugin);\n\t\t} catch (error) {\n\t\t\tthrow updateError(\"apply\", this.options, error);\n\t\t}\n\t}\n\tasync _start(plugin) {\n\t\tlet fiber;\n\t\ttry {\n\t\t\tawait this._patchContext([]);\n\t\t\tthis.loader.showLog(this, \"apply\");\n\t\t\tfiber = this.fiber = this.ctx.registry.plugin(plugin, this.options.config, this.getOuterStack);\n\t\t\tawait fiber.await();\n\t\t} catch (error) {\n\t\t\tawait this._dispose(fiber);\n\t\t\tthrow error;\n\t\t}\n\t}\n};\n//#endregion\n//#region lib/types/config/isolate.js\nfunction swap(target, source) {\n\tfor (const key of Reflect.ownKeys(target)) Reflect.deleteProperty(target, key);\n\tfor (const key of Reflect.ownKeys(source || {})) Reflect.defineProperty(target, key, Reflect.getOwnPropertyDescriptor(source, key));\n}\n/** Symbol realm used to isolate service implementations by entry or label. */\nvar Realm = class {\n\tstore = Object.create(null);\n\taccess(key, create = false) {\n\t\tif (create) return this.store[key] ??= Symbol(`${key}${this.suffix}`);\n\t\telse return this.store[key] ?? Symbol(`${key}${this.suffix}`);\n\t}\n\tdelete(key) {\n\t\tdelete this.store[key];\n\t}\n\tget size() {\n\t\treturn Object.keys(this.store).length;\n\t}\n};\n/** Entry-local isolation realm. */\nvar LocalRealm = class extends Realm {\n\tentry;\n\tconstructor(entry) {\n\t\tsuper();\n\t\tthis.entry = entry;\n\t}\n\tget suffix() {\n\t\treturn \"#\" + this.entry.options.id;\n\t}\n};\n/** Named isolation realm shared by entries that use the same label. */\nvar GlobalRealm = class extends Realm {\n\tlabel;\n\tconstructor(label) {\n\t\tsuper();\n\t\tthis.label = label;\n\t}\n\tget suffix() {\n\t\treturn \"@\" + this.label;\n\t}\n};\n/** Install loader hooks that apply `intercept` and `isolate` entry options. */\nfunction isolate(ctx) {\n\tconst realms = Object.create(null);\n\tconst delims = Object.create(null);\n\tfunction access(entry, name, create = false) {\n\t\tlet realm;\n\t\tconst label = entry.options.isolate?.[name];\n\t\tif (!label) return;\n\t\tif (label === true) realm = entry.realm ??= new LocalRealm(entry);\n\t\telse if (create) realm = realms[label] ??= new GlobalRealm(label);\n\t\telse realm = realms[label];\n\t\treturn realm?.access(name, create);\n\t}\n\tctx.on(\"loader/entry-init\", (entry) => {\n\t\tentry.ctx[Context.intercept] = Object.create(entry.ctx[Context.intercept]);\n\t\tentry.ctx[Context.isolate] = Object.create(entry.ctx[Context.isolate]);\n\t});\n\tctx.on(\"loader/patch-context\", async (entry, next) => {\n\t\tconst newMap = Object.create(entry.parent.ctx[Context.isolate]);\n\t\tfor (const name of Object.keys(entry.options.isolate ?? {})) newMap[name] = access(entry, name, true);\n\t\tconst diff = Object.create(null);\n\t\tconst oldMap = entry.ctx[Context.isolate];\n\t\tfor (const name in {\n\t\t\t...newMap,\n\t\t\t...delims\n\t\t}) {\n\t\t\tif (newMap[name] === oldMap[name]) continue;\n\t\t\tconst delim = delims[name] ??= Symbol(`delim:${name}`);\n\t\t\tentry.ctx[delim] = Symbol(`${name}#${entry.id}`);\n\t\t\tfor (const symbol of [oldMap[name], newMap[name]]) {\n\t\t\t\tconst impl = symbol && entry.ctx.reflect.store[symbol];\n\t\t\t\tif (!impl) continue;\n\t\t\t\tif (!impl.fiber) {\n\t\t\t\t\tentry.ctx.logger.warn(/* @__PURE__ */ new Error(`expected service ${name} to be implemented`));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdiff[name] = [\n\t\t\t\t\toldMap[name],\n\t\t\t\t\tnewMap[name],\n\t\t\t\t\tentry.ctx[delim],\n\t\t\t\t\timpl.fiber.ctx[delim]\n\t\t\t\t];\n\t\t\t\tif (entry.ctx[delim] !== impl.fiber.ctx[delim]) break;\n\t\t\t}\n\t\t}\n\t\tObject.setPrototypeOf(entry.ctx[Context.isolate], entry.parent.ctx[Context.isolate]);\n\t\tObject.setPrototypeOf(entry.ctx[Context.intercept], entry.parent.ctx[Context.intercept]);\n\t\tswap(entry.ctx[Context.isolate], newMap);\n\t\tswap(entry.ctx[Context.intercept], entry.options.intercept);\n\t\tawait next();\n\t\tfor (const [symbol1, symbol2, flag1, flag2] of Object.values(diff)) if (flag1 === flag2 && entry.ctx.reflect.store[symbol1] && !entry.ctx.reflect.store[symbol2]) {\n\t\t\tentry.ctx.reflect.store[symbol2] = entry.ctx.reflect.store[symbol1];\n\t\t\tdelete entry.ctx.reflect.store[symbol1];\n\t\t}\n\t\tctx.reflect.notify(Object.keys(diff), (ctx, name) => {\n\t\t\tconst [symbol1, symbol2, flag1, flag2] = diff[name];\n\t\t\tconst symbol3 = ctx[Context.isolate][name];\n\t\t\tconst flag3 = ctx[delims[name]];\n\t\t\treturn (symbol1 === symbol3 || symbol2 === symbol3) && flag1 === flag3 !== (flag1 === flag2);\n\t\t});\n\t\tfor (const name in delims) if (!Reflect.ownKeys(newMap).includes(name)) delete entry.ctx[delims[name]];\n\t});\n\tctx.on(\"loader/partial-dispose\", (entry, legacy, active) => {\n\t\tfor (const [name, label] of Object.entries(legacy.isolate ?? {})) {\n\t\t\tif (label === true) continue;\n\t\t\tif (active && entry.options.isolate?.[name] === label) continue;\n\t\t\tconst realm = realms[label];\n\t\t\tif (!realm) continue;\n\t\t\tfor (const entry of ctx.loader.entries()) if (entry.options.isolate?.[name] === realm.label) return;\n\t\t\trealm.delete(name);\n\t\t\tif (!realm.size) delete realms[realm.label];\n\t\t}\n\t});\n}\n//#endregion\n//#region lib/types/index.js\n/**\n* Service that owns a loader entry tree and imports configured plugins.\n*\n* Subclasses provide persistence by implementing `write()` on `EntryTree`.\n*/\nvar Loader = class extends EntryTree {\n\tconfig;\n\tenvData = process.env.CORDIS_SHARED ? JSON.parse(process.env.CORDIS_SHARED) : { startTime: Date.now() };\n\tname = \"loader\";\n\tinternal = ModuleLoader.fromInternal();\n\tbuiltins = Object.create(null);\n\tconstructor(ctx, config = {}) {\n\t\tsuper(ctx);\n\t\tthis.config = config;\n\t\tif (config.baseUrl) this.ctx.baseUrl = config.baseUrl;\n\t\tconst self = this;\n\t\tdefineProperty(this, Service.tracker, {\n\t\t\tassociate: \"loader\",\n\t\t\tproperty: \"ctx\",\n\t\t\tnoShadow: true\n\t\t});\n\t\tctx.reflect.provide(\"loader\", this, this[Service.check]);\n\t\tctx.on(\"internal/config\", function(_config, next) {\n\t\t\tconst config = next();\n\t\t\tif (!this.entry || this.parent.fiber?.entry === this.entry) return config;\n\t\t\tif ((this.runtime?.callback)?.[EntryGroup.key]) return config;\n\t\t\treturn interpolate(this.ctx, config);\n\t\t}, { global: true });\n\t\tctx.on(\"internal/update\", async function(config, noSave, next) {\n\t\t\tif (!this.entry || noSave || this.parent.fiber?.entry === this.entry) return next();\n\t\t\tawait next();\n\t\t\tconst unparse = this.runtime?.Config?.[\"simplify\"];\n\t\t\tthis.entry.options.config = unparse ? unparse(config) : config;\n\t\t\tthis.entry.parent.tree.write();\n\t\t}, {\n\t\t\tglobal: true,\n\t\t\tprepend: true\n\t\t});\n\t\tctx.on(\"internal/update\", function(config, _, next) {\n\t\t\tif (!this.entry || this.parent.fiber?.entry === this.entry) return next();\n\t\t\tself.showLog(this.entry, \"reload\");\n\t\t\treturn next();\n\t\t}, { global: true });\n\t\tctx.on(\"internal/plugin\", (fiber) => {\n\t\t\tif (fiber.parent[Entry.key] && !fiber.entry) {\n\t\t\t\tfiber.entry = fiber.parent[Entry.key];\n\t\t\t\tInject.resolve(fiber.entry.options.inject, fiber.inject);\n\t\t\t}\n\t\t\tif (fiber.uid) return;\n\t\t\tif (!fiber.entry) return;\n\t\t\tif (fiber.parent.fiber?.entry === fiber.entry) return;\n\t\t\tif (!ctx.registry.has(fiber.runtime.callback)) return;\n\t\t\tconst treeOwner = fiber.entry.parent.tree.ctx.fiber;\n\t\t\tif (!treeOwner.uid || treeOwner.state === 5) return;\n\t\t\tif (fiber.entry._disposing) return;\n\t\t\tthis.showLog(fiber.entry, \"unload\");\n\t\t\tif (fiber.entry.disabled) return;\n\t\t\tfiber.entry.options.disabled = true;\n\t\t\tfiber.entry.parent.tree.write();\n\t\t});\n\t\tctx.plugin(isolate);\n\t}\n\twrite() {}\n\t[Service.check]() {\n\t\tif (Service.prototype[Service.resolveConfig].call(this).await && this.getTasks().length) return false;\n\t\treturn true;\n\t}\n\tshowLog(entry, type) {\n\t\tif (entry.options.group || !entry.parent.tree.enableLogs) return;\n\t\tthis.ctx.root.logger?.(\"loader\").info(\"%s plugin %C\", type, entry.options.name);\n\t}\n\t/** Return the loader entry id that owns `fiber`, if any. */\n\tlocate(fiber = this.ctx.fiber) {\n\t\twhile (1) {\n\t\t\tif (fiber.entry) return fiber.entry.id;\n\t\t\tconst next = fiber.parent.fiber;\n\t\t\tif (fiber === next) return;\n\t\t\tfiber = next;\n\t\t}\n\t}\n\t/** Hook for hosts that can restart the process on full-reload requests. */\n\texit() {}\n\t/** Normalize ESM/CJS/default export shapes before applying a plugin. */\n\tunwrapExports(exports) {\n\t\tif (isNullable(exports)) return exports;\n\t\texports = exports.default ?? exports;\n\t\tif (!exports.__esModule) return exports;\n\t\treturn exports.default ?? exports;\n\t}\n};\n//#endregion\nexport { Entry, EntryGroup, EntryTree, GlobalRealm, Group, Loader, Loader as default, LocalRealm, ModuleLoader, Realm, evaluate, interpolate, isJsExpr };\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * ClientModuleSystem — the implementation behind the {@link ClientModuleLoader}\n * contract. The conceptual contract (lazy CJS model, resolution branch order) is\n * documented on the public interfaces in `./manifest.ts`; this file owns the\n * state tables and the load/materialize machinery.\n */\nimport type {\n BootModuleRow, ClientModuleLoader, ClientModuleRecord,\n ClientModuleSystemOptions, ClientPluginHandoff, XrkWindow,\n} from './manifest.ts'\n\n/** Default bundle-load hook: same-origin external classic script. */\nconst defaultLoadBundle = (url: string): Promise<void> => new Promise((resolve, reject) => {\n const el = document.createElement('script')\n el.async = true\n el.src = url\n el.addEventListener('load', () => {\n el.remove()\n resolve()\n }, { once: true })\n el.addEventListener('error', () => {\n el.remove()\n reject(new Error(`client-modules: bundle script ${url} failed to load`))\n }, { once: true })\n document.head.append(el)\n})\n\n/**\n * A plugin bundle IS its package's client half: `<id>/client` (the exports\n * subpath external bundles emit) and the bare graph id name the same\n * exports, so table lookups normalize the suffix away.\n */\nconst stripClientSuffix = (spec: string): string =>\n spec.endsWith('/client') ? spec.slice(0, -'/client'.length) : spec\n\n/**\n * Claim and inventory the <style> tags a factory injected during\n * materialization: preset-emitted tags arrive pre-tagged with data-plugin;\n * any untagged tag is claimed for the materializing plugin (HMR bookkeeping).\n */\nconst claimStyles = (id: string): string[] => {\n if (typeof document === 'undefined') return []\n for (const el of document.querySelectorAll('style:not([data-plugin])')) {\n el.setAttribute('data-plugin', id)\n }\n const owned: string[] = []\n for (const el of document.querySelectorAll(`style[data-plugin=${JSON.stringify(id)}]`)) {\n owned.push(el.getAttribute('data-plugin-css') ?? id)\n }\n return owned\n}\n\n/**\n * The client module system: state tables plus the arrival/materialization\n * machinery implementing {@link ClientModuleLoader} (whose members carry the\n * contract documentation). Construction indexes the boot rows and installs the\n * `window.__ModuleLoader__` registration sink — once per page.\n */\nexport class ClientModuleSystem implements ClientModuleLoader {\n readonly version = 'client'\n readonly loadCache = new Map<string, ClientModuleRecord>()\n\n private readonly seed: Map<string, unknown>\n private readonly statics = new Map<string, unknown>()\n private readonly factories = new Map<string, ClientPluginHandoff['factory']>()\n /** In-flight prefetch (script load) per id; concurrent callers share it. */\n private readonly pendingArrival = new Map<string, Promise<void>>()\n /** Materialization re-entrancy guard: factory-form CJS cannot deliver partial exports, so a cycle is fatal. */\n private readonly materializing = new Set<string>()\n private readonly graphRows = new Map<string, BootModuleRow>()\n private readonly loadBundle: (url: string) => Promise<void>\n\n /**\n * Build the module system over the parsed boot rows.\n * @param options - Module rows, module-table staticModules, and bundle-load hook.\n */\n constructor(options: ClientModuleSystemOptions) {\n this.seed = new Map(Object.entries(options.staticModules))\n this.loadBundle = options.loadBundle ?? defaultLoadBundle\n\n for (const row of options.modules) {\n if (this.graphRows.has(row.id)) throw new Error(`client-modules: duplicate graph entry \"${row.id}\"`)\n this.graphRows.set(row.id, row)\n }\n\n const win = globalThis as XrkWindow\n if (win.__ModuleLoader__ !== undefined) throw new Error('client-modules: window.__ModuleLoader__ already installed (double boot?)')\n win.__ModuleLoader__ = {\n load: (handoff: ClientPluginHandoff): void => {\n // Registration is keyed by the handoff id; a duplicate means a bundle\n // executed twice without an invalidate — always a bug, always loud.\n if (this.factories.has(handoff.id)) throw new Error(`client-modules: duplicate factory registration for \"${handoff.id}\" (bundle executed twice without invalidate?)`)\n this.factories.set(handoff.id, handoff.factory)\n },\n }\n }\n\n /** Load one graph row so its factory is registered (idempotent per in-flight arrival). */\n private arrive(row: BootModuleRow): Promise<void> {\n const { id, url } = row\n const pending = this.pendingArrival.get(id)\n if (pending !== undefined) return pending\n if (this.factories.has(id)) return Promise.resolve()\n const task = this.loadBundle(url).then(() => {\n if (!this.factories.has(id)) {\n throw new Error(`client-modules: bundle ${url} loaded without registering \"${id}\" via __ModuleLoader__.load`)\n }\n }).finally(() => { this.pendingArrival.delete(id) })\n this.pendingArrival.set(id, task)\n return task\n }\n\n /** Materialize a registered factory (synchronous; memoized in loadCache). */\n private materialize(id: string): ClientModuleRecord {\n const existing = this.loadCache.get(id)\n if (existing !== undefined) return existing\n const registered = this.factories.get(id)\n /* v8 ignore next -- callers check the factory branch before dispatching here. */\n if (registered === undefined) throw new Error(`client-modules: no registered factory for \"${id}\"`)\n if (this.materializing.has(id)) {\n throw new Error(`client-modules: require cycle through \"${id}\" (factory-form CJS cannot deliver partial exports)`)\n }\n this.materializing.add(id)\n try {\n const edges = new Set<string>()\n const exports = registered(this.makeRequire(edges))\n const record: ClientModuleRecord = { id, exports, styles: claimStyles(id), edges }\n this.loadCache.set(id, record)\n return record\n } finally {\n this.materializing.delete(id)\n }\n }\n\n /**\n * The synchronous require answered to factories: seed → static → memoized\n * record → registered factory (recursive materialization — this is what\n * makes load order self-resolving). Fetching is async and therefore\n * unreachable from here; an unregistered plugin specifier is loud (and a\n * cross-plugin value import is already a build error upstream).\n */\n private makeRequire(edges: Set<string>): (spec: string) => unknown {\n return (spec: string): unknown => {\n edges.add(spec)\n if (this.seed.has(spec)) return this.seed.get(spec)\n if (this.statics.has(spec)) return this.statics.get(spec)\n const id = stripClientSuffix(spec)\n const record = this.loadCache.get(id)\n if (record !== undefined) return record.exports\n if (this.factories.has(id)) return this.materialize(id).exports\n throw new Error(\n `client-modules: require(\"${spec}\") missed the module table — not a platform seed word, not a shell-own module, `\n + 'and no registered factory (a build-time externals drift, or a forbidden cross-plugin value import)',\n )\n }\n }\n\n async import(specifier: string): Promise<unknown> {\n if (this.seed.has(specifier)) return this.seed.get(specifier)\n const existing = this.loadCache.get(specifier)\n if (existing !== undefined) return existing.exports\n if (this.statics.has(specifier)) {\n const exports = this.statics.get(specifier)\n this.loadCache.set(specifier, { id: specifier, exports, styles: [], edges: new Set() })\n return exports\n }\n if (!this.factories.has(specifier)) {\n const row = this.graphRows.get(specifier)\n if (row === undefined) {\n throw new Error(\n `client-modules: cannot resolve \"${specifier}\" — not a seed word, not a shell-own module, `\n + 'and not a row in the boot graph (the runtime mirror of the bundle purity gate)',\n )\n }\n await this.arrive(row)\n }\n return this.materialize(specifier).exports\n }\n\n registerStatic(id: string, module: unknown): void {\n if (this.statics.has(id)) throw new Error(`client-modules: shell-own module \"${id}\" registered twice`)\n this.statics.set(id, module)\n }\n\n async prefetch(id: string): Promise<void> {\n if (this.statics.has(id)) return\n const row = this.graphRows.get(id)\n if (row === undefined) throw new Error(`client-modules: prefetch(\"${id}\") — not a graph entry`)\n await this.arrive(row)\n }\n\n invalidate(id: string): void {\n this.factories.delete(id)\n this.loadCache.delete(id)\n }\n}\n","/**\n * Client module system: the browser peer of Node's internal ESM loader, built\n * as a lazy CJS table. The vendored cordis Loader consumes this object\n * through its `internal` contract (the only call site is `EntryTree.import` →\n * `internal.import`), which keeps entry governance (fiber lifecycle, inject\n * waiting, update/refresh) entirely on the vendored side while this package\n * owns code arrival.\n *\n * Lazy CJS model: executing a plugin bundle only REGISTERS its\n * factory (`window.__ModuleLoader__.load({id, factory})`); every module body\n * side effect — including CSS injection — lives inside the factory closure\n * and runs at materialization, not at script execution. Materialization\n * (factory(require) → exports) happens on first import/require and is\n * memoized in {@link ClientModuleLoader.loadCache}; a factory that requires\n * another registered-but-unmaterialized module materializes it recursively,\n * so load order needs no external sequencing.\n *\n * Resolution branch order (import): seed word → shell instance; memoized\n * record → exports; static registry (shell-own modules, e.g. app-shell) →\n * module; registered factory → materialize; graph row → load + materialize;\n * anything else → throw (loud — the runtime mirror of the\n * build-time bundle purity gate). The synchronous `require` handed to\n * factories walks the same order minus the load branch: loading is async,\n * so only already-registered bundles can be required — and cross-plugin value\n * imports are a build error anyway.\n *\n * This file is the browser-safe contract face (zero node imports): the\n * `__XRK_BOOT__` wire types, the boot-manifest parser, and the boundaries around\n * {@link ClientModuleSystem}. The package root is the host-side service that\n * composes the wire.\n */\n\nimport type {} from '@xrkseek/cordis'\nimport type { ClientModuleSystem } from './system.ts'\n\ndeclare module '@xrkseek/cordis' {\n interface Context {\n /** The client module system the web shell builds at boot (provided by the `./client` wrapper plugin). */\n modules: ClientModuleLoader\n }\n}\n\n/**\n * One composed client entry pushed by the host (a graph row). Wire\n * single source: the host node half (package root) produces this same shape.\n * `immediately` marks stage-one prefetch; `inject` is informational graph\n * metadata (the authoritative edges live in each package's `xrk.client`\n * declaration and reach fibers through entry creation).\n */\nexport interface WebBootEntry {\n /** Entry name == package name. */\n id: string\n /** Bundle endpoint, '/plugins/<id>/client.js?rev=<rev>'. */\n url: string\n /** Bundle content hash (cache-busting consistency anchor). */\n rev: string\n /** Package-name dependency edges, informational (preflight display / HMR diffing). */\n inject?: string[]\n /** Stage-one prefetch mark: load the script for factory registration during module-face boot. */\n immediately?: boolean\n}\n\n/** The composed client entry graph the host injects as `window.__XRK_BOOT__`. */\nexport interface WebBootGraph {\n /** Consistency anchor over the whole graph (content + bundle hashes). */\n rev: string\n /** Composed entries; order carries no semantics (activation order is fiber inject waiting). */\n entries: WebBootEntry[]\n}\n\n/** The npm-package view of one boot row: what the module table needs to fetch the bundle. */\nexport interface BootModuleRow {\n /** Entry name == package name (module-table key). */\n id: string\n /** Bundle endpoint, '/plugins/<id>/client.js?rev=<rev>'. */\n url: string\n /** Bundle content hash. */\n rev: string\n}\n\n/** The cordis-plugin view of one boot row: what entry composition needs (optional wire fields normalized). */\nexport interface BootPluginRow {\n /** Entry name == package name. */\n id: string\n /** Package-name dependency edges ([] when the wire omits them). */\n inject: string[]\n /** Stage-one prefetch tier (false when the wire omits it). */\n immediately: boolean\n}\n\n/** The parsed boot manifest: one wire, two consumer views. */\nexport interface BootManifest {\n /** Consistency anchor over the whole graph. */\n rev: string\n /** Rows as the module table consumes them. */\n modules: BootModuleRow[]\n /** Rows as entry composition consumes them. */\n plugins: BootPluginRow[]\n}\n\n/**\n * Parse `window.__XRK_BOOT__` into the two consumer views. Wire boundary:\n * a missing or malformed graph throws (the shell shows the loud failure —\n * a page without a valid manifest cannot boot anything).\n * @param wire - the raw `window.__XRK_BOOT__` value.\n * @returns the manifest with optional plugin-view fields normalized.\n */\nexport function parseBootManifest(wire: unknown): BootManifest {\n if (typeof wire !== 'object' || wire === null) {\n throw new Error('client-modules: window.__XRK_BOOT__ is missing or not an object')\n }\n const graph = wire as Record<string, unknown>\n if (typeof graph.rev !== 'string') {\n throw new Error('client-modules: boot manifest rev must be a string')\n }\n if (!Array.isArray(graph.entries)) {\n throw new Error('client-modules: boot manifest entries must be an array')\n }\n const modules: BootModuleRow[] = []\n const plugins: BootPluginRow[] = []\n for (const value of graph.entries as unknown[]) {\n if (typeof value !== 'object' || value === null) {\n throw new Error('client-modules: boot manifest entry is not an object')\n }\n const row = value as Record<string, unknown>\n const where = typeof row.id === 'string' ? `\"${row.id}\"` : JSON.stringify(row)\n if (typeof row.id !== 'string' || typeof row.url !== 'string' || typeof row.rev !== 'string') {\n throw new Error(`client-modules: boot manifest entry ${where} must carry string id/url/rev`)\n }\n if (row.inject !== undefined && (!Array.isArray(row.inject) || row.inject.some(i => typeof i !== 'string'))) {\n throw new Error(`client-modules: boot manifest entry ${where} inject must be a string array`)\n }\n if (row.immediately !== undefined && typeof row.immediately !== 'boolean') {\n throw new Error(`client-modules: boot manifest entry ${where} immediately must be a boolean`)\n }\n modules.push({ id: row.id, url: row.url, rev: row.rev })\n plugins.push({\n id: row.id,\n inject: row.inject === undefined ? [] : [...row.inject as string[]],\n immediately: row.immediately === true,\n })\n }\n return { rev: graph.rev, modules, plugins }\n}\n\n/** The shape a client bundle hands to `window.__ModuleLoader__.load` (registration handoff). */\nexport interface ClientPluginHandoff {\n /** Plugin id (package name) — the registration key; must match the graph row being executed. */\n id: string\n /**\n * Closure factory holding the whole bundle body: receives the synchronous\n * require bound to the module table and returns the bundle's exports. Runs\n * once, at materialization.\n */\n factory: (require: (spec: string) => unknown) => Record<string, unknown>\n}\n\n/** Window API of the web boot protocol: the host-injected graph, registration sink, and kernel handoff slot. */\nexport interface XrkWindow {\n /** Host-composed entry graph, injected before the shell bundle runs; wire-boundary raw until {@link parseBootManifest}. */\n __XRK_BOOT__?: unknown\n /** Bundle registration sink; installed once per page by the {@link ClientModuleSystem} constructor. */\n __ModuleLoader__?: { load(handoff: ClientPluginHandoff): void }\n /**\n * Kernel handoff slot: the shell kernel stores the instance here right\n * after construction (before cordis exists) so the `./client` wrapper\n * plugin can provide it as `ctx.modules`. Missing slot at wrapper apply\n * time = kernel sequencing bug, thrown loud.\n */\n __XRK_MODULES__?: ClientModuleSystem\n}\n\n/** Per-module bookkeeping in {@link ClientModuleLoader.loadCache} (module-graph boundary, flat today). */\nexport interface ClientModuleRecord {\n /** Module id (entry name / package name). */\n id: string\n /** Materialized exports (`module.exports` from a factory, or a statically registered shell module). */\n exports: unknown\n /** Owned `<style data-plugin>` tag ids (`data-plugin-css` values) injected during materialization. */\n styles: string[]\n /** Observed `require()` edges (module-graph boundary; only table words can appear today). */\n edges: Set<string>\n}\n\n/**\n * The internal-contract subset the vendored Loader and the client HMR plugin\n * consume. Mounted on `ctx.loader.internal` by the shell boot and provided\n * as `ctx.modules`.\n */\nexport interface ClientModuleLoader {\n /** Discriminant against Node's internal loader shapes ('v1'/'v2'). */\n version: 'client'\n /** Materialized-module registry: id → record. The governance-side read API for entry exports. */\n loadCache: Map<string, ClientModuleRecord>\n /**\n * Internal contract consumed by the vendored Loader's `tree.import`. Resolves\n * `specifier` through the branch order documented on the module, fetching\n * and executing a bundle when needed.\n * @param specifier - module specifier (entry name or table word).\n * @param parentURL - importer URL (unused — the client module graph is flat).\n * @param attrs - Import attributes (unused; interface parity with Node's loader contract).\n * @returns the module's exports.\n */\n import(specifier: string, parentURL: string, attrs: Record<string, unknown>): Promise<unknown>\n /**\n * Register a shell-own module (app-shell — code that ships inside the shell\n * bundle and never arrives as a plugin bundle).\n * @param id - entry name (shell-owned pseudo id).\n * @param module - the statically imported module namespace.\n */\n registerStatic(id: string, module: unknown): void\n /**\n * Stage-one arrival: load the entry's script to register its factory (no\n * materialization — module side effects wait for import).\n * No-op for static-registered ids and ids whose factory is already\n * registered; concurrent calls share one in-flight task. To force a fresh\n * load (HMR), {@link invalidate} first.\n * @param id - graph entry name.\n */\n prefetch(id: string): Promise<void>\n /**\n * Full reset of one module: drop its registered factory and materialized\n * record so the next prefetch/import reloads it (the HMR invalidation hook).\n * @param id - entry name to invalidate.\n */\n invalidate(id: string): void\n}\n\n/** Options for {@link ClientModuleSystem} (assembled by the web shell kernel at boot). */\nexport interface ClientModuleSystemOptions {\n /** Boot rows in the module-table view (from {@link parseBootManifest}). */\n modules: BootModuleRow[]\n /** Module-table seed: platform-singleton specifier → shell instance. */\n staticModules: Record<string, unknown>\n /** Bundle-load hook. Defaults to a same-origin classic `<script src>` element. */\n loadBundle?: (url: string) => Promise<void>\n}\n","/**\n * Browser half (the standard `./client` export): the module-system class and\n * wire contract, plus the enrollment plugin face. The module system itself is\n * built by the shell kernel BEFORE cordis exists (the bootstrap exception —\n * the mechanism that loads plugins cannot arrive through\n * itself); the plugin face only enrolls that pre-existing instance by\n * providing it as `ctx.modules`. The kernel statically registers this module,\n * so the graph row for this package never triggers a real fetch — arrival is\n * a no-op against the already-registered entry.\n * @module @xrkseek/client-modules/client\n */\nimport type { Context } from '@xrkseek/cordis'\nimport type { XrkWindow } from './manifest.ts'\n\nexport { ClientModuleSystem } from './system.ts'\nexport { parseBootManifest } from './manifest.ts'\nexport type {\n BootManifest, BootModuleRow, BootPluginRow, ClientModuleLoader, ClientModuleRecord,\n ClientModuleSystemOptions, ClientPluginHandoff, XrkWindow, WebBootEntry, WebBootGraph,\n} from './manifest.ts'\n\n/**\n * Enroll the kernel-built module system as `ctx.modules`.\n * @param ctx - client root context.\n */\nexport function apply(ctx: Context): void {\n const modules = (globalThis as XrkWindow).__XRK_MODULES__\n // The kernel writes the slot right after constructing the instance, before\n // any cordis entry exists — a missing slot means the kernel sequencing broke.\n if (modules === undefined) {\n throw new Error('client-modules: window.__XRK_MODULES__ missing — the shell kernel must construct the module system before plugin boot')\n }\n ctx.reflect.provide('modules', modules)\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","/**\n * uSES bridge: turns any bare observable snapshot source into a typed\n * selector hook. Client-side-rendered only, so no server snapshot is wired.\n * This is the ONE hook constructor in the client stack — engines and hosts\n * traffic in bare sources; binding happens on the React side.\n */\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector.js'\nimport type { HostObservable, SnapshotSelectorHook } from '@xrkseek/client-ui-slots'\n\n/**\n * Bind a bare observable source to a typed uSES selector hook.\n * subscribe/getSnapshot are captured once per source into stable closures\n * (also re-binds `this` for method-based sources), so components never\n * resubscribe across renders. Equality defaults to Object.is.\n * @param w - snapshot source (engine store, Session object, store instance).\n * @returns the selector hook.\n */\nexport function bindSnapshotSelector<T>(w: HostObservable<T>): SnapshotSelectorHook<T> {\n const subscribe = (fn: () => void) => w.subscribe(fn)\n const getSnapshot = () => w.getSnapshot()\n return function useSelector<S>(sel: (s: T) => S, eq?: (a: S, b: S) => boolean): S {\n return useSyncExternalStoreWithSelector(subscribe, getSnapshot, undefined, sel, eq)\n }\n}\n","/** React-free contracts between the slot host and an installed renderer. */\nimport type { ReactNode } from 'react'\nimport type { SlotEntryDef, SlotSpec, StoredEntry, Translate } from './index.ts'\n\n/**\n * The locale face the render machinery consumes: namespace binding plus an\n * observable revision (getSnapshot/subscribe pair — the same HostObservable\n * currency as every other standard-kit source). The revision moves on every\n * active-locale or registry change; the renderer re-derives each entry's `t`\n * from (namespace, revision), so a locale switch hands out NEW function\n * references and memoized components re-render naturally. Implemented by the\n * locale plugin, installed through the runtime SlotRegistry (installLocale).\n * Install before the first render that needs the seat: outlets bind their\n * revision subscription at mount, and a face appearing later has no channel\n * to notify already-mounted outlets (the locale plugin is immediately-tier\n * infrastructure, so normal compositions install during boot).\n */\nexport interface LocaleFace extends HostObservable<{ revision: number }> {\n /**\n * Bind a namespace to a translate function reading the active locale at\n * call time. Identity may be stable per namespace — freshness of rendered\n * text is carried by the renderer's (ns, revision) seat derivation, not by\n * this binding.\n * @param ns - dictionary namespace.\n * @returns the namespace-bound translate function.\n */\n bind(ns: string): Translate\n}\n\n/** Minimal observable API for host-provided standard-kit data sources. */\nexport interface HostObservable<T> {\n getSnapshot(): T\n subscribe(fn: () => void): () => void\n}\n\n/**\n * Type-erased store instance face at the render boundary (the typed twin is\n * {@link StoreInstance}): a bare snapshot source plus the draft-stripped\n * action callbacks. No React hook crosses this boundary — the render machinery\n * binds `useStore` from the source at its own side (cached per instance);\n * typing lands at the component boundary via {@link PropsStore}.\n */\nexport interface StoreInstanceLike {\n getSnapshot(): unknown\n /**\n * Subscribe to state changes (uSES subscribe side).\n * @param fn - change callback.\n * @returns unsubscribe.\n */\n subscribe(fn: () => void): () => void\n readonly actions: Record<string, (...params: never[]) => void>\n}\n\n/**\n * Per-session standard props resolved per session id (identity-stable per\n * session scope; a recreated scope yields a new info). Plugins contribute\n * members through the runtime `sessions.provide` contract; the render side binds\n * every `hooks` source into a `use<Name>` selector hook (hooks never appear\n * on the host contract) and spreads `props` verbatim. The runtime itself\n * contributes the first entry (`'session'` → `useSession`).\n */\nexport interface SessionMaybeProvideInfo {\n /** Current session id, absent while the application is in no-session mode. */\n sessionId: string | undefined\n /**\n * Static hook roster. Each value is absent with the session; keys remain so\n * session-maybe entries always receive the same hook-shaped standard kit.\n */\n hooks: Record<string, HostObservable<unknown> | undefined>\n /** Static plain-member roster; values are undefined with the session. */\n props: Record<string, unknown>\n /**\n * Key-addressed projection value sources (the useProjection framework seat;\n * session-projection subsystem page: docs/subsystems/session-projection.md).\n * Unlike `hooks`, the key space is open — values\n * arrive from host-computed push frames — so the render side binds per\n * resolved key instead of per static roster member. Faces are always\n * defined per key (absence is an `undefined` snapshot); the whole member is\n * absent with the session.\n */\n projections?: { faceOf(key: string): HostObservable<unknown> } | undefined\n}\n\n/** Definite per-session standard props resolved for strict session slots. */\nexport interface SessionProvideInfo extends SessionMaybeProvideInfo {\n sessionId: string\n /** Bare observable sources, keyed by hook base name ('session' → useSession). */\n hooks: Record<string, HostObservable<unknown>>\n}\n\n/** renderSlot dispatch options at the machinery level. */\nexport interface RenderOpts {\n entryKey?: string\n only?: string\n fallback?: ReactNode\n /** Opaque occurrence context consumed only by function-valued injected Hooks. */\n hookContext?: unknown\n}\n\n/** Host API the runtime SlotRegistry presents to the installed renderer. */\nexport interface SlotRendererHost {\n /**\n * Subscribe to a key's registration changes (microtask-batched).\n * @param key - slot key.\n * @param fn - change callback.\n * @returns unsubscribe.\n */\n subscribe(key: string, fn: () => void): () => void\n /**\n * Monotonic version for uSES pairing.\n * @param key - slot key.\n * @returns current version.\n */\n getVersion(key: string): number\n /**\n * Snapshot the registered entries for a key (stable reference between mutations).\n * @param key - slot key.\n * @returns entries in registration (list: order) sequence.\n */\n entriesOf(key: string): readonly StoredEntry[]\n /**\n * Shadowing winners per cell for a key — the render read for single/keyed/\n * list dispatch: the first live (non-abdicated) entry of each cell in\n * priority order; chain keys pass through unchanged (election consumes\n * every entry). Fresh array per call — a render-body read, not a uSES\n * getSnapshot source.\n * @param key - slot key.\n * @returns the winning entry per occupied cell.\n */\n entriesOfSlot(key: string): readonly StoredEntry[]\n /**\n * Report an entry boundary crash. With `info.abdicate` (shadowing kinds)\n * the entry retires from its cell, one-shot, so the next survivor renders;\n * chain crashes report without abdicating. The registration stays on the\n * ledger either way.\n * @param key - slot key the entry rendered under.\n * @param entry - the crashed entry.\n * @param error - the crash cause.\n * @param info - `abdicate`: whether the crash retires the entry from its cell.\n */\n reportEntryError(key: string, entry: StoredEntry, error: unknown, info: { abdicate: boolean }): void\n /**\n * Declared runtime spec from the declarations ledger.\n * @param key - slot key.\n * @returns the spec, or undefined while the key is undeclared (outlets render empty).\n */\n specOf(key: string): SlotSpec<SlotEntryDef> | undefined\n /**\n * Stale-authorization check: whether the entry is still in the ledger.\n * @param entry - a previously rendered entry.\n * @returns false once the entry's registration was disposed.\n */\n isLive(entry: StoredEntry): boolean\n /**\n * Resolve (create or return cached) the store instance for an entry's\n * declared handle under a scope key; lifecycle rides the ledger axis.\n * @param entry - entry whose declaration carries the handle.\n * @param scopeKey - session id for session-scope slots, undefined for root scope.\n * @returns the instance, or undefined when the entry declares no store.\n */\n storeOf(entry: StoredEntry, scopeKey: string | undefined): StoreInstanceLike | undefined\n /** Session-side standard-kit sources. */\n sessions: {\n /** Session list source backing the useSessions standard hook. */\n list: HostObservable<unknown>\n /**\n * Atomic current-session provide projection used by SessionProvider:\n * selection changes and provider-roster changes publish through this one\n * source, so a stable current id cannot strand mounted entries on an\n * obsolete hook/prop schema. Carries the static roster with sessionId\n * undefined while no current session resolves.\n */\n provideInfo: HostObservable<SessionMaybeProvideInfo>\n }\n /** Workspace-side standard-kit sources. */\n workspaces: {\n /** Workspace list source backing the useWorkspaces standard hook. */\n list: HostObservable<unknown>\n }\n /**\n * Installed locale face backing the `t` standard seat (absent until the\n * locale plugin installs one; rendering an entry that declared `locale:`\n * without it is an assembly failure).\n */\n locale?: LocaleFace | undefined\n}\n\n/** The installation contract: runtime owns install()/renderSlot(); web-react implements rendering. */\nexport interface SlotRenderer {\n /**\n * Render the root slot tree over the host API (the only ctx-level entry).\n * @param host - the installing service's host API.\n * @param ownerProps - owner props from the shell's renderSlot('root', ...) call.\n * @returns the rendered tree.\n */\n renderRoot(host: SlotRendererHost, ownerProps: object): ReactNode\n}\n\n/** Thrown when a retained renderSlot binding is invoked after its declaring entry was disposed. */\nexport class StaleAuthorizationError extends Error {}\n\n/**\n * Thrown when a renderSlot binding is invoked for a key outside its entry's\n * children declaration (plain-JS backstop; typed callers are narrowed\n * statically).\n */\nexport class SlotOwnershipError extends Error {}\n","/**\n * Slot registry pure core. Owners declare slot\n * contracts by merging into {@link SlotMap}; one `register` call contributes a\n * component AND (optionally) declares child slots, a store seat, and the\n * registrant's business face. Zero runtime dependencies (React types only).\n *\n * SlotMap and the standard-kit interfaces live directly in this entry module:\n * consumer `declare module` augmentation merges with declarations lexically in\n * the augmented module, not with re-exports.\n */\n/* oxlint-disable typescript/no-redundant-type-constituents --\n * `keyof SlotMap & string` is the declare-merge key pattern: SlotMap is empty\n * in THIS compilation unit (so the intersection reads as `never`), but every\n * consumer merges keys in and the intersection is what keeps them string-typed.\n * The rule fires on the empty-map view, not on real redundancy. */\nimport type { ReactNode } from 'react'\nimport type { HostObservable } from './renderer.ts'\nimport type { BoundActions, HandleOf, PropsStore, SnapshotSelectorHook, StoreDecl } from './store.ts'\n\nexport * from './store.ts'\nexport * from './renderer.ts'\n\n/** Slot contract table. Owners extend via declaration merging; entries are {@link SlotEntryDef}. */\nexport interface SlotMap {}\n\n/**\n * Locale namespace table. Dictionary owners extend via declaration merging\n * (exactly like {@link SlotMap}, and declared in this entry module for the\n * same lexical-merge reason): the key is the namespace string, the value is\n * the union of its dictionary keys. Register sites declare one of these\n * namespaces (`locale:`), which puts the typed `t` standard seat on the\n * component props.\n */\nexport interface LocaleNamespaceMap {}\n\n/**\n * Translate a dictionary key with optional `{name}` template params.\n * `K` narrows the accepted keys to the owning namespace's dictionary union\n * (plus the shared common vocabulary where composed).\n */\nexport type Translate<K extends string = string> =\n (key: K, params?: Record<string, unknown>) => string\n\n/**\n * The shared `common` vocabulary keys as merged by the locale plugin;\n * resolves to `never` in programs without the merge (this package's tests),\n * keeping the union collapse harmless.\n */\nexport type CommonKeyOf = LocaleNamespaceMap extends { common: infer C } ? C & string : never\n\n/**\n * Key domain of a namespace-bound translate: the namespace's own dictionary\n * union plus the shared common vocabulary (the lookup chain consults common\n * after the namespace misses).\n */\nexport type LocaleKeysOf<N extends keyof LocaleNamespaceMap & string> =\n (LocaleNamespaceMap[N] & string) | CommonKeyOf\n\n/**\n * Namespace-addressed translate — the developer-facing alias over\n * {@link Translate}: `TranslateNS<'model'>` is the translate function of the\n * `model` namespace (key domain = its dictionary union plus the shared\n * common vocabulary), the exact type of the framework-injected `t` seat and\n * of the locale service's typed `bind`.\n */\nexport type TranslateNS<N extends keyof LocaleNamespaceMap & string> = Translate<LocaleKeysOf<N>>\n\n/**\n * Dictionary shape for a declared namespace: exactly the keys the namespace\n * merged into {@link LocaleNamespaceMap} — a missing or extra key at a typed\n * registration site is a compile error.\n */\nexport type LocaleDictOf<N extends keyof LocaleNamespaceMap & string> =\n Record<LocaleNamespaceMap[N] & string, string>\n\n/**\n * Locale share of the composed component props: the framework-injected `t`\n * seat, present exactly on entries whose registration declares `locale:`.\n */\nexport type PropsLocale<N> = N extends keyof LocaleNamespaceMap & string\n ? {\n /** Translate a dictionary key of the declared namespace (or the shared common vocabulary). */\n t: TranslateNS<N>\n }\n : object\n\n/** Slot cardinality: single occupant, ordered list, key-dispatched, or selector-routed chain. */\nexport type SlotKind = 'single' | 'list' | 'keyed' | 'chain'\n\n/** Slot data context: global, current-session-optional, or strict session-bound. */\nexport type SlotScope = 'root' | 'session-maybe' | 'session'\n\n/**\n * One SlotMap entry: kind/scope axes plus the optional owner-supplied props\n * share (`owner` is what the parent passes at its renderSlot call site; the\n * framework standard kit and the registrant's injected share never enter this\n * table — full component props compose at the component as the four-share\n * intersection, see {@link ComposedProps}).\n */\nexport interface SlotEntryDef {\n kind: SlotKind\n scope: SlotScope\n owner?: object\n /**\n * Optional keyed-entry prop table. A keyed registration contributes one\n * literal key and receives the corresponding prop share; ordinary owner\n * props remain common to every key.\n */\n keyProps?: Record<string, object>\n /**\n * Optional opaque context carried by one renderSlot occurrence. Only\n * function-valued members of the slot-level injected hooks compartment\n * receive it; the slot machinery never interprets the value.\n */\n hookContext?: unknown\n /**\n * Optional Slot-level inject face supplied by the parent registration's\n * child declaration. Every registered entry receives its bound component\n * face; child registrants do not own or replace this common capability.\n */\n inject?: object\n}\n\n/**\n * Runtime dispatch spec for one slot, recorded from a register call's\n * `children` value. The literal is compile-time checked against the SlotMap\n * entry (`SlotSpec<SlotMap[P]>` in {@link ChildrenDecl}), so kind, scope, and\n * any common inject face are declared at one point and validate each other.\n */\nexport type SlotSpec<E extends SlotEntryDef> = {\n kind: E['kind']\n scope: E['scope']\n} & ('inject' extends keyof E\n ? E extends { inject: infer Injected extends object }\n ? { inject: Injected }\n : { inject?: object }\n : { inject?: never })\n\n/**\n * Child-slot declaration table for register(): keys are the declared (and\n * thereby render-authorized) slot names, values are their runtime dispatch\n * specs. Declaring is claiming: the registering entry becomes the only entry\n * allowed to render these keys.\n */\nexport type ChildrenDecl = { [P in keyof SlotMap & string]?: SlotSpec<SlotMap[P]> }\n\n/** Owner-supplied props share for a slot key ({} for entries declaring no `owner`). */\nexport type OwnerOf<K extends keyof SlotMap & string> =\n SlotMap[K] extends { owner: infer O extends object } ? O : object\n\n/** Registration/dispatch key domain of one keyed slot. */\nexport type EntryKeyOf<K extends keyof SlotMap & string> =\n SlotMap[K] extends { kind: 'keyed'; keyProps: infer P extends object }\n ? keyof P & string\n : string\n\n/** Key-dependent props supplied by the owner at one keyed dispatch site. */\nexport type KeyPropsOf<\n K extends keyof SlotMap & string,\n EntryKey extends EntryKeyOf<K>,\n> = SlotMap[K] extends { kind: 'keyed'; keyProps: infer P extends object }\n ? EntryKey extends keyof P\n ? P[EntryKey] extends object ? P[EntryKey] : never\n : never\n : object\n\n/** Opaque per-render occurrence context declared by one slot. */\nexport type HookContextOf<K extends keyof SlotMap & string> =\n SlotMap[K] extends { hookContext: infer Context } ? Context : never\n\n/** Common render-occurrence inject face declared by one slot. */\nexport type SlotInjectOf<K extends keyof SlotMap & string> =\n SlotMap[K] extends { inject: infer Injected extends object } ? Injected : object\n\n/** Scope axis of a slot key's SlotMap entry. */\nexport type ScopeOf<K extends keyof SlotMap & string> = SlotMap[K]['scope']\n\n/**\n * Framework standard kit delivered to every session-scope slot component.\n * Declared EMPTY here (zero-dependency layer): the runtime package merges the\n * real members (`useSession` bound to the conversation snapshot and the\n * framework-supplied `sessionId`) exactly as consumers merge SlotMap keys.\n */\nexport interface SessionStandardProps {}\n\n/**\n * Framework standard kit delivered to current-session-optional slots. Its\n * hooks stay callable while no session is selected and return `undefined`\n * until one becomes current; concrete members merge in at runtime packages.\n */\nexport interface SessionMaybeStandardProps {}\n\n/**\n * Framework standard kit delivered to EVERY slot component (the global seat).\n * Declared empty here; the runtime package merges the global object-layer\n * selector hooks that shared page composition consumes.\n */\nexport interface GlobalStandardProps {}\n\n/**\n * The session id type as the runtime's SessionStandardProps merge declares it\n * (branded); falls back to `string` in programs without the merge (this\n * package's own tests).\n */\nexport type SessionIdOf = SessionStandardProps extends { sessionId: infer S } ? S : string\n\n/**\n * Runtime props share for a slot key: owner share (parent's renderSlot call\n * site) + session standard kit (session scope only) + the global seat.\n */\nexport type PropsRuntime<\n K extends keyof SlotMap & string,\n EntryKey extends EntryKeyOf<K> = EntryKeyOf<K>,\n> =\n OwnerOf<K> &\n KeyPropsOf<K, EntryKey> &\n SlotInjectFace<SlotInjectOf<K>> &\n (ScopeOf<K> extends 'session' ? SessionStandardProps\n : ScopeOf<K> extends 'session-maybe' ? SessionMaybeStandardProps\n : object) &\n GlobalStandardProps\n\n/** renderSlot dispatch options: keyed dispatch key, list filtering, and empty fallback. */\nexport interface RenderOpts<EntryKey extends string = string> {\n entryKey?: EntryKey\n only?: string\n fallback?: ReactNode\n /** Type-erased runtime seat; PropsRenderSlots narrows or removes it per slot declaration. */\n hookContext?: unknown\n}\n\n/** renderSlotChain dispatch options. */\nexport interface ChainRenderOpts {\n /** The owner's fallback body, rendered when every entry's selector declines. */\n fallback?: ReactNode\n /**\n * Keep the fallback permanently mounted: an election hides it (wrapped,\n * display:none) instead of unmounting it, and the all-decline case shows it\n * as-is — fallback-held state (composer drafts, DOM state) survives a\n * takeover. Chain kind only. Sole consumer today: the\n * 'conversation.composer' chain.\n */\n overlay?: boolean\n}\n\n/**\n * Chain-entry selector: the routing decision of one chain contribution.\n * Runs at render time in chain order (ascending `priority`, default 0, lower\n * tries first; ties keep registration = assembly order); the first non-null\n * return elects its entry\n * and becomes the component's `matched` prop; `null` passes to the next\n * entry; all-null falls to the owner's {@link ChainRenderOpts} fallback.\n * MUST be pure — a function of the owner props only, no external mutable\n * reads, no side effects (the decline decision lives here, never in a\n * mounted component probing its own props).\n */\nexport type ChainSelect<O extends object, M> = (owner: O) => M | null\n\n/** Keys of a slot-key union whose SlotMap entry is chain-kind (renderSlotChain's dispatch domain). */\nexport type ChainKeysOf<S extends keyof SlotMap & string> =\n S extends unknown ? (SlotMap[S]['kind'] extends 'chain' ? S : never) : never\n\n/** Keys in a render share whose dispatch occurrence requires hookContext. */\ntype ContextualKeysOf<S extends keyof SlotMap & string> =\n S extends unknown ? (SlotMap[S] extends { hookContext: unknown } ? S : never) : never\n\n/** Keys in a render share with the ordinary optional options bag. */\ntype OrdinaryKeysOf<S extends keyof SlotMap & string> = Exclude<S, ContextualKeysOf<S>>\n\n/**\n * Plain and contextual child dispatch signatures. Keeping them as separate\n * call signatures preserves ordinary renderSlot assignability while making a\n * declared hookContext mandatory only for the Slot keys that need it.\n */\ntype RenderSlotFn<S extends keyof SlotMap & string> =\n ([ContextualKeysOf<S>] extends [never] ? object : {\n <\n K extends ContextualKeysOf<S>,\n EntryKey extends EntryKeyOf<K> = EntryKeyOf<K>,\n >(\n key: K,\n owner: OwnerOf<K> & KeyPropsOf<K, NoInfer<EntryKey>>,\n opts: RenderOpts<EntryKey> & { hookContext: HookContextOf<K> },\n ): ReactNode\n }) &\n ([OrdinaryKeysOf<S>] extends [never] ? object : {\n <\n K extends OrdinaryKeysOf<S>,\n EntryKey extends EntryKeyOf<K> = EntryKeyOf<K>,\n >(\n key: K,\n owner: OwnerOf<K> & KeyPropsOf<K, NoInfer<EntryKey>>,\n opts?: Omit<RenderOpts<EntryKey>, 'hookContext'>,\n ): ReactNode\n })\n\n/**\n * Chain matched share: a chain-slot component receives its selector's\n * non-null result as the framework-injected `matched` prop; other kinds add\n * nothing to the composed constraint.\n */\nexport type MatchedShare<E extends SlotEntryDef, M> =\n E['kind'] extends 'chain' ? { matched: M } : object\n\n/**\n * Conversation-session selector hook alias for props contracts. Wide by\n * default at this dependency-inverted layer; the runtime narrows at its\n * export outlet (`UseSession<ConversationSnapshot>`).\n */\nexport type UseSession<Snap extends object = object> = SnapshotSelectorHook<Snap>\n\n/** Props of the standard-kit SessionProvider seat (render-prop form). */\nexport interface SessionAreaProps {\n /** No-session body (also covers a current id whose session cannot be resolved). */\n empty?: (() => ReactNode) | undefined\n /** Session body; the framework remounts it per session (key=sessionId). */\n children: (sessionId: SessionIdOf) => ReactNode\n}\n\n/**\n * Framework-wired session area component. It subscribes to runtime-owned\n * session selection and is injected into entries that declare session-scoped\n * children; business code does not import it directly.\n */\nexport type SessionProviderComponent = (props: SessionAreaProps) => ReactNode\n\n/**\n * Child-slot render share: `renderSlot` statically narrowed to the entry's\n * declared children keys. Delegation is plain props passing (hand\n * `props.renderSlot` down); the authorizing identity stays the registering\n * entry. `__renders` is a phantom variance anchor (never materialized):\n * generic method signatures compare loosely across differing key unions, so\n * this contravariant marker is what actually enforces \"component key set ⊆\n * children declaration\" at the register call site.\n */\nexport type PropsRenderSlots<S extends keyof SlotMap & string> = {\n /**\n * Render a declared non-chain child slot (chain keys dispatch through\n * `renderSlotChain` — their routing lives in entry selectors).\n * @param key - declared child key.\n * @param owner - owner props share for that key (decided at the render site).\n * @param opts - kind dispatch options.\n * @returns rendered node(s).\n */\n renderSlot: RenderSlotFn<Exclude<S, ChainKeysOf<S>>>\n readonly __renders?: ((key: S) => void) | undefined\n} & ([ChainKeysOf<S>] extends [never] ? object : {\n /**\n * Render a declared chain child slot: entry selectors run in chain order\n * over `owner`; the first non-null match renders its component with the\n * selector result injected as `matched`; all-null renders `opts.fallback`.\n * @param key - declared chain child key.\n * @param owner - owner props share (the selectors' routing input).\n * @param opts - fallback body for the all-null case.\n * @returns rendered node(s).\n */\n renderSlotChain: <K extends ChainKeysOf<S>>(key: K, owner: OwnerOf<K>, opts?: ChainRenderOpts) => ReactNode\n}) & ('session' extends ScopeOf<S>\n // The SessionProvider seat rides the same source as renderSlot: declaring\n // a session-scope child is what makes a session area exist, so the seat\n // derives from the children key set's scopes (renderer injects the value).\n ? { SessionProvider: SessionProviderComponent }\n : object)\n\n/**\n * Registration-position component shape: the bare call signature, so composed\n * constraints check through clean parameter contravariance (FC statics add\n * covariant noise rejecting legitimate narrowings).\n */\nexport type SlotComponent<P> = (props: P) => ReactNode\n\n/**\n * Registrant hooks compartment: bare observable sources (getSnapshot +\n * subscribe pairs) supplied under the reserved `hooks` key of an entry's\n * inject face. These retain the original source-to-selector binding and do\n * not participate in render-occurrence context.\n */\nexport type HooksSources = Record<string, HostObservable<unknown>>\n\n/** Framework-owned props visible while a slot-level contextual Hook is bound. */\nexport type StandardPropsOf<K extends keyof SlotMap & string> =\n (ScopeOf<K> extends 'session' ? SessionStandardProps\n : ScopeOf<K> extends 'session-maybe' ? SessionMaybeStandardProps\n : object) &\n GlobalStandardProps\n\n/**\n * One function-valued slot-level inject.hooks member. The factory is pure and\n * returns the actual custom Hook; it must not invoke a Hook while being bound.\n */\nexport type SlotHookFactory<\n K extends keyof SlotMap & string,\n Hook extends (...args: never[]) => unknown,\n> = (\n standard: StandardPropsOf<K>,\n hookContext: HookContextOf<K>,\n) => Hook\n\n/** Component-side Hook produced from one slot-level inject.hooks member. */\ntype BoundHookOf<Definition> =\n Definition extends HostObservable<infer Snapshot>\n ? SnapshotSelectorHook<Snapshot>\n : Definition extends (...args: never[]) => infer Hook\n ? Hook extends (...args: never[]) => unknown ? Hook : never\n : never\n\n/**\n * Selector-hook share synthesized from a hooks compartment: each source\n * `name` becomes a `use<Name>` selector hook over its snapshot type.\n */\nexport type PropsSlotHooks<HS extends object> = {\n [N in keyof HS & string as `use${Capitalize<N>}`]:\n BoundHookOf<HS[N]>\n}\n\n/** Component-side view of a slot dispatcher's common inject face. */\nexport type SlotInjectFace<I extends object> =\n I extends { hooks: infer HS extends object } ? Omit<I, 'hooks'> & PropsSlotHooks<HS> : I\n\n/** Selector-hook share synthesized from an entry inject hooks compartment. */\nexport type PropsHooks<HS extends HooksSources> = {\n [N in keyof HS & string as `use${Capitalize<N>}`]:\n SnapshotSelectorHook<HS[N] extends HostObservable<infer T> ? T : never>\n}\n\n/**\n * The component-side view of an inject face: the reserved `hooks`\n * compartment (when declared) arrives as bound `use<Name>` selector hooks;\n * every other member passes through verbatim.\n */\nexport type InjectFace<I extends object> =\n I extends { hooks: infer HS extends HooksSources } ? Omit<I, 'hooks'> & PropsHooks<HS> : I\n\n/**\n * The composed component props intersection: runtime share (SlotMap) +\n * child-render share (children declaration) + store share (declared handle) +\n * the registrant's injected business face (its hooks compartment bound, see\n * {@link InjectFace}) + the locale `t` seat (declared namespace, see\n * {@link PropsLocale}). Each share derives from its single source of truth;\n * components reference this composition, never re-type it.\n */\nexport type ComposedProps<\n K extends keyof SlotMap & string,\n EntryKey extends EntryKeyOf<K>,\n S extends keyof SlotMap & string,\n H,\n I extends object,\n M = never,\n N = undefined,\n> = PropsRuntime<K, EntryKey> & PropsRenderSlots<S> & PropsStore<H> & InjectFace<I> & MatchedShare<SlotMap[K], M> & PropsLocale<N>\n\n/**\n * Inject factory parameter list, derived from the registration's declaration:\n * strict session slots receive a definite framework-resolved `sessionId`;\n * session-maybe slots receive the current id or `undefined`; a declared store\n * appends the baked `actions` (the same callbacks the component receives).\n * Business data access happens through the apply closure's ctx — no binding\n * object parameter exists.\n */\nexport type InjectParams<K extends keyof SlotMap & string, H> =\n ScopeOf<K> extends 'session'\n ? ([H] extends [StoreDecl] ? [sessionId: SessionIdOf, actions: BoundActions<HandleOf<H>>] : [sessionId: SessionIdOf])\n : ScopeOf<K> extends 'session-maybe'\n ? ([H] extends [StoreDecl]\n ? [sessionId: SessionIdOf | undefined, actions: BoundActions<HandleOf<H>> | undefined]\n : [sessionId: SessionIdOf | undefined])\n : ([H] extends [StoreDecl] ? [actions: BoundActions<HandleOf<H>>] : [])\n\n/**\n * A list-entry display label: a plain string, or a thunk re-evaluated per\n * read so registration-time text (nav rows, tabs) follows the active locale\n * without re-registration. Owners resolve through {@link resolveSlotLabel}.\n */\nexport type SlotLabel = string | (() => string)\n\n/**\n * Kind shape fields carried in register options (keyed dispatch key; list\n * id/order/label; chain select/priority; non-chain priority = cell shadowing rank).\n */\nexport type KindOptions<\n K extends keyof SlotMap & string,\n EntryKey extends EntryKeyOf<K>,\n M = never,\n> =\n SlotMap[K]['kind'] extends 'keyed' ? {\n key: EntryKey\n /** Cell shadowing rank (ascending, default 0, lowest renders; same key + same priority throws — see {@link SlotCore.register}). */\n priority?: number\n }\n : SlotMap[K]['kind'] extends 'list' ? {\n id: string\n order?: number\n label?: SlotLabel\n /** Cell shadowing rank (ascending, default 0, lowest renders; same id + same priority throws — see {@link SlotCore.register}). */\n priority?: number\n }\n : SlotMap[K]['kind'] extends 'chain' ? {\n /** Routing selector, mandatory on chain entries; `M` (the component's `matched` prop) infers from its return. */\n select: ChainSelect<SlotMap[K] extends { owner: infer O extends object } ? O : object, M>\n /** Explicit chain position (ascending, default 0, lower tries first); ties keep registration = assembly order. */\n priority?: number\n }\n : {\n /**\n * Cell shadowing rank (ascending, default 0, lowest renders; a\n * same-priority second registration throws — see {@link SlotCore.register}).\n */\n priority?: number\n }\n\n/**\n * Compile-time presence check: an entry declaring children MUST consume\n * `renderSlot` (or `renderSlotChain` when its only children are chain slots)\n * — declaring is claiming; an entry that does not render its children should\n * not declare them. Evaluates to an unsatisfiable intersection member naming\n * the declared keys when violated.\n */\ntype RendersCheck<C, D> =\n [keyof D & keyof SlotMap & string] extends [never] ? unknown\n : C extends (props: infer P) => ReactNode\n ? ('renderSlot' extends keyof P ? unknown\n : 'renderSlotChain' extends keyof P ? unknown\n : { 'children declared but the component consumes no renderSlot': keyof D & keyof SlotMap & string })\n : unknown\n\n/** Common register options share (see {@link SlotCore.register} for semantics). */\ntype BaseOptions<\n K extends keyof SlotMap & string,\n EntryKey extends EntryKeyOf<K>,\n D extends ChildrenDecl,\n H,\n M = never,\n N = undefined,\n> = {\n /** Target slot key (the entry contributes INTO this slot). */\n name: K\n /** Child-slot declaration + render authorization + runtime spec, in one table. */\n children?: D\n /** Store seat: a shared handle (apply-constructed) or an exclusive factory (framework-called per entry x scope). */\n store?: H\n /**\n * Dictionary namespace of this entry's copy. Declaring it puts the\n * framework-synthesized `t` seat (typed to the namespace's dictionary\n * union) on the component props; rendering requires an installed locale\n * face — fails loud otherwise.\n */\n locale?: N\n /** Registrant identity label for diagnostics (the runtime Service wrapper stamps the caller's fiber name). */\n registrant?: string\n} & KindOptions<K, EntryKey, M>\n\n/**\n * One stored registration, as recorded by the core and read by the render\n * machinery (type-erased at this boundary; the registration contract already proved\n * the shares against the component).\n */\nexport interface StoredEntry {\n component: unknown\n options: { key?: string; id?: string; order?: number; label?: SlotLabel; priority?: number }\n /** Chain routing selector (type-erased like `inject`; present exactly on chain-slot entries). */\n select?: ((owner: never) => unknown) | undefined\n /** Registrant business face; positional params derive from the declaration (sessionId?, actions?). */\n inject?: ((...args: never[]) => Record<string, unknown>) | undefined\n /** Child-slot declaration table (declaration + authorization + runtime spec in one). */\n children?: Readonly<Record<string, SlotSpec<SlotEntryDef>>> | undefined\n /** Declared store seat (instance resolution and lifecycle live with the host machinery). */\n store?: StoreDecl | undefined\n /** Declared dictionary namespace (the render machinery synthesizes the `t` seat from it). */\n locale?: string | undefined\n /** Diagnostics label of who registered. */\n registrant?: string | undefined\n}\n\n/**\n * Resolve a possibly-thunked list label at read time (thunks follow the\n * active locale; owners projecting ledger rows call this instead of reading\n * `options.label` raw).\n * @param label - the stored label.\n * @returns the display string, or undefined when the entry declared none.\n */\nexport function resolveSlotLabel(label: SlotLabel | undefined): string | undefined {\n return typeof label === 'function' ? label() : label\n}\n\n/**\n * Type-erased options view the implementation works with. Optional members\n * carry explicit `| undefined`: under exactOptionalPropertyTypes the public\n * overloads (whose generics admit undefined) would otherwise fail\n * overload-to-implementation compatibility.\n */\ninterface ErasedOptions {\n name: string\n key?: string | undefined\n id?: string | undefined\n order?: number | undefined\n label?: SlotLabel | undefined\n select?: ((owner: never) => unknown) | undefined\n priority?: number | undefined\n children?: Record<string, SlotSpec<SlotEntryDef>> | undefined\n store?: StoreDecl | undefined\n locale?: string | undefined\n /* oxlint-disable-next-line typescript/no-explicit-any --\n * implementation-signature position only (both public overloads type inject\n * exactly); `never[]` would fail overload-to-implementation compatibility\n * against the per-declaration InjectParams tuples. */\n inject?: ((...args: any) => Record<string, unknown>) | undefined\n registrant?: string | undefined\n}\n\n/**\n * Per-key registry record. Created on first touch; never removed (version\n * stays monotonic across redeclarations).\n */\ninterface SlotRecord {\n spec: SlotSpec<SlotEntryDef> | undefined\n /** Diagnostics: which slot's entry declared this key ('(built-in)' for root). */\n declaredBy: string | undefined\n /** Live parent declaration, absent for root slots. */\n parent: string | undefined\n /** Monotonic declaration lifetime, distinct from ordinary entry mutations. */\n declarationEpoch: number\n entries: readonly StoredEntry[]\n version: number\n listeners: Set<() => void>\n declarationListeners: Set<() => void>\n}\n\nconst NO_ENTRIES: readonly StoredEntry[] = Object.freeze([])\n\n/** JSON-safe live occupant returned by slot inspection. */\nexport interface LiveSlotOccupant {\n /** Plugin or package that registered the entry, when known. */\n registrant?: string\n /** Keyed-slot cell. */\n key?: string\n /** List-slot cell. */\n id?: string\n /** List display order. */\n order?: number\n /** Shadowing or chain priority. */\n priority: number\n /** Whether the renderer currently selects this entry. */\n active: boolean\n}\n\n/** JSON-safe live slot declaration tree. */\nexport interface LiveSlotNode {\n /** Exact SlotMap key. */\n name: string\n /** Slot cardinality. */\n kind: SlotKind\n /** Runtime data scope. */\n scope: SlotScope\n /** Diagnostic owner of this declaration. */\n declaredBy?: string\n /** Current registrations in ledger order. */\n occupants: LiveSlotOccupant[]\n /** Slots declared by entries mounted in this slot. */\n children: LiveSlotNode[]\n}\n\n/**\n * Pure slot registry (no cordis; event emission and the renderer installation contract\n * live in the runtime Service wrapper).\n *\n * The 'root' slot is the one a-priori declaration, seeded at construction\n * (single/root, declared by the framework) — the render tree's root hole.\n *\n * Change propagation contract: versions bump and {@link SlotCore.onMutate}\n * fires synchronously per mutation (registry state is consistent when they\n * fire); {@link SlotCore.subscribeDeclaration} fires synchronously for each\n * declaration lifetime boundary; {@link SlotCore.subscribe} notifications\n * batch per microtask, so N same-tick mutations produce one notification per\n * touched key. Entry crash reports ({@link SlotCore.reportEntryError}) ride\n * the same mutation channel when they abdicate, then notify\n * {@link SlotCore.onEntryError} synchronously.\n */\nexport class SlotCore {\n private records = new Map<string, SlotRecord>()\n private mutateListeners = new Set<(key: string) => void>()\n /** Shared-handle scope ledger: handle → the scope it first mounted under + live mount count. */\n private handleScopes = new Map<object, { scope: SlotScope; count: number }>()\n // Dirty records, not keys: records are never removed, so holding the\n // reference skips a lookup (and an unreachable missing-record branch) at flush.\n private dirty = new Set<SlotRecord>()\n private flushScheduled = false\n /**\n * Entries retired by an abdicating crash report\n * ({@link SlotCore.reportEntryError}): excluded from\n * {@link SlotCore.entriesOfSlot} projections for the rest of their\n * registration's life, while the registration itself stays on the ledger\n * (disposal authority remains with the registrant).\n */\n private abdicated = new WeakSet<StoredEntry>()\n private entryErrorListeners\n = new Set<(key: string, entry: StoredEntry, error: unknown, info: { abdicated: boolean }) => void>()\n\n constructor() {\n // The a-priori root hole. No markDirty: nothing can observe construction.\n const root = this.record('root')\n root.spec = { kind: 'single', scope: 'root' }\n root.declaredBy = '(built-in)'\n root.declarationEpoch = 1\n }\n\n /**\n * Contribute a component to a declared slot and (optionally) declare child\n * slots, a store seat, and the registrant's business face.\n *\n * Load-time validation (misconfiguration fails loud; the render hot path\n * re-checks nothing): registering into an undeclared slot throws; declaring\n * an already-declared child key throws (one declarer per slot — the message\n * names the first declarer); mounting one shared store handle under slots\n * of different scopes throws. Kind constraints: keyed — missing `key`\n * throws; list — missing `id` throws; chain — missing `select` throws (the\n * selector is the entry's routing seat, see {@link ChainSelect}).\n *\n * Shadowing (single/keyed/list): entries sharing one cell (single — the\n * slot itself; keyed — same `key`; list — same `id`) coexist at distinct\n * priorities, sorted ascending with ties keeping registration order; the\n * cell's lowest live entry renders ({@link SlotCore.entriesOfSlot}). A\n * second registration at an occupied cell's exact priority (default 0)\n * throws naming the occupant, so priority-less composition keeps the\n * historical one-occupant-per-cell fail-loud.\n *\n * Lifecycle: the disposer removes the contribution AND collapses every\n * declared child slot (child entries clear recursively; their stale\n * disposers become no-ops) — one lifecycle axis, no dangling state.\n *\n * @param options - registration options: target `name`, `children`\n * declaration table, `store` seat, `inject` business-face factory, kind\n * shape fields (keyed `key`; list `id`/`order`/`label`).\n * @param component - component honoring the four-share composed props\n * contract ({@link ComposedProps}); checked at this call site.\n * @returns disposer removing the registration and its declarations\n * (idempotent; stale disposers after a cascade are no-ops).\n */\n /* jscpd:ignore-start -- the two register overloads are deliberately\n * parallel declarations differing only in the inject share; folding them\n * would lose the per-overload inference of I. */\n register<\n K extends keyof SlotMap & string,\n const EntryKey extends EntryKeyOf<K> = EntryKeyOf<K>,\n const D extends ChildrenDecl = Record<never, never>,\n H extends StoreDecl | undefined = undefined,\n M = never,\n N extends (keyof LocaleNamespaceMap & string) | undefined = undefined,\n C extends SlotComponent<never> = SlotComponent<never>,\n >(\n options: BaseOptions<K, EntryKey, D, H, M, N> & { inject?: undefined },\n component: C\n & SlotComponent<ComposedProps<\n K, NoInfer<EntryKey>, keyof NoInfer<D> & keyof SlotMap & string,\n HandleOf<NoInfer<H>>, object, NoInfer<M>, NoInfer<N>\n >>\n & RendersCheck<C, D>,\n ): () => void\n /**\n * Inject-bearing overload: identical semantics to the overload above, plus\n * the registrant's business face — `I` is inferred from the inject\n * factory's return and joins the component's composed-props constraint\n * (factory parameters derive from the declaration, {@link InjectParams}).\n * @param options - registration options plus the `inject` business-face factory.\n * @param component - component honoring the four-share composed props\n * contract including the inject share `I`.\n * @returns disposer removing the registration and its declarations.\n */\n register<\n K extends keyof SlotMap & string,\n I extends object,\n const EntryKey extends EntryKeyOf<K> = EntryKeyOf<K>,\n const D extends ChildrenDecl = Record<never, never>,\n H extends StoreDecl | undefined = undefined,\n M = never,\n N extends (keyof LocaleNamespaceMap & string) | undefined = undefined,\n C extends SlotComponent<never> = SlotComponent<never>,\n >(\n options: BaseOptions<K, EntryKey, D, H, M, N> & { inject: (...args: InjectParams<K, H>) => I },\n component: C\n & SlotComponent<ComposedProps<\n K, NoInfer<EntryKey>, keyof NoInfer<D> & keyof SlotMap & string,\n HandleOf<NoInfer<H>>, I, NoInfer<M>, NoInfer<N>\n >>\n & RendersCheck<C, D>,\n ): () => void\n /* jscpd:ignore-end */\n register(options: ErasedOptions, component: unknown): () => void {\n const rec = this.records.get(options.name)\n if (!rec?.spec) {\n throw new Error(`slot \"${options.name}\" is not declared (a parent entry's children table must declare it)`)\n }\n const spec = rec.spec\n // Kind constraints stay runtime checks for dynamically-composed callers;\n // typed callers already satisfied KindOptions statically. Cell occupancy\n // clashes only at the exact priority: a different priority shadows.\n const priority = options.priority ?? 0\n const occupantHint = (occupant: StoredEntry) =>\n `at priority ${priority}${occupant.registrant !== undefined ? ` (registered by ${occupant.registrant})` : ''} — register at a different priority to shadow it (lowest renders)`\n switch (spec.kind) {\n case 'single': {\n const occupant = rec.entries.find(e => (e.options.priority ?? 0) === priority)\n if (occupant) throw new Error(`single slot \"${options.name}\" already has a registration ${occupantHint(occupant)}`)\n break\n }\n case 'keyed': {\n if (options.key === undefined) throw new Error(`keyed slot \"${options.name}\" requires options.key`)\n const occupant = rec.entries.find(e => e.options.key === options.key && (e.options.priority ?? 0) === priority)\n if (occupant) {\n throw new Error(`keyed slot \"${options.name}\" already has an entry for key \"${options.key}\" ${occupantHint(occupant)}`)\n }\n break\n }\n case 'list': {\n if (options.id === undefined) throw new Error(`list slot \"${options.name}\" requires options.id`)\n const occupant = rec.entries.find(e => e.options.id === options.id && (e.options.priority ?? 0) === priority)\n if (occupant) {\n throw new Error(`list slot \"${options.name}\" already has an entry with id \"${options.id}\" ${occupantHint(occupant)}`)\n }\n break\n }\n case 'chain':\n if (options.select === undefined) throw new Error(`chain slot \"${options.name}\" requires options.select`)\n break\n }\n if (options.children) {\n for (const childKey of Object.keys(options.children)) {\n const childRec = this.records.get(childKey)\n if (childRec?.spec) {\n throw new Error(`slot \"${childKey}\" is already declared (by ${childRec.declaredBy ?? 'an unknown entry'})`)\n }\n }\n }\n // Shared handles pin their scope on first mount; factories are exempt\n // (the framework creates per-entry instances, no shared identity exists).\n if (options.store !== undefined && typeof options.store !== 'function') {\n const pinned = this.handleScopes.get(options.store)\n if (pinned && pinned.scope !== spec.scope) {\n throw new Error(\n `store handle mounted under \"${options.name}\" (scope \"${spec.scope}\") is already mounted under scope \"${pinned.scope}\" — one handle, one scope`)\n }\n if (pinned) pinned.count += 1\n else this.handleScopes.set(options.store, { scope: spec.scope, count: 1 })\n }\n\n const entry: StoredEntry = {\n component,\n options: {\n ...(options.key !== undefined ? { key: options.key } : {}),\n ...(options.id !== undefined ? { id: options.id } : {}),\n ...(options.order !== undefined ? { order: options.order } : {}),\n ...(options.label !== undefined ? { label: options.label } : {}),\n ...(options.priority !== undefined ? { priority: options.priority } : {}),\n },\n ...(options.select !== undefined ? { select: options.select } : {}),\n ...(options.inject !== undefined ? { inject: options.inject } : {}),\n ...(options.children !== undefined ? { children: options.children } : {}),\n ...(options.store !== undefined ? { store: options.store } : {}),\n ...(options.locale !== undefined ? { locale: options.locale } : {}),\n ...(options.registrant !== undefined ? { registrant: options.registrant } : {}),\n }\n const next = [...rec.entries, entry]\n // Stable sorts: priority ascending for every kind, ties keep registration\n // sequence — a cell's winner is its first occurrence, chain tries lower\n // priority first. List refines equal priorities by explicit `order` so the\n // raw ledger keeps its display sequence for priority-less compositions.\n next.sort(spec.kind === 'list'\n ? (a, b) => ((a.options.priority ?? 0) - (b.options.priority ?? 0)) || ((a.options.order ?? 0) - (b.options.order ?? 0))\n : (a, b) => (a.options.priority ?? 0) - (b.options.priority ?? 0))\n rec.entries = next\n this.markDirty(options.name, rec)\n if (options.children) {\n const declarations: [key: string, record: SlotRecord][] = []\n for (const [childKey, childSpec] of Object.entries(options.children)) {\n const childRec = this.record(childKey)\n childRec.spec = childSpec\n childRec.declaredBy = `an entry in \"${options.name}\"${options.registrant ? ` (${options.registrant})` : ''}`\n childRec.parent = options.name\n childRec.declarationEpoch += 1\n declarations.push([childKey, childRec])\n }\n // Synchronous listeners may register into or try to redeclare a sibling;\n // publish only after the whole children table owns its declarations.\n for (const [childKey, childRec] of declarations) {\n this.markDirty(childKey, childRec)\n }\n for (const [, childRec] of declarations) {\n this.notifyDeclaration(childRec)\n }\n }\n return () => {\n if (!rec.entries.includes(entry)) return\n rec.entries = rec.entries.filter(e => e !== entry)\n this.markDirty(options.name, rec)\n this.releaseEntry(entry)\n }\n }\n\n /**\n * Whether a previously obtained entry is still registered (the render\n * machinery's stale-authorization probe: a retained renderSlot binding\n * whose entry left the ledger must not render).\n * @param entry - a previously read entry.\n * @returns false once the entry's registration was disposed.\n */\n isLive(entry: StoredEntry): boolean {\n for (const rec of this.records.values()) {\n if (rec.entries.includes(entry)) return true\n }\n return false\n }\n\n /**\n * Snapshot the registered entries for a key. Returns the cached array\n * reference (stable between mutations — safe as a uSES getSnapshot source);\n * empty for keys not (or no longer) declared, so renderers may probe ahead\n * of plugin load order.\n * @param key - slot key (dynamic: the render machinery holds keys as strings).\n * @returns entries in registration (list: order) sequence.\n */\n entries(key: string): readonly StoredEntry[] {\n return this.records.get(key)?.entries ?? NO_ENTRIES\n }\n\n /**\n * Project a key's entries to its shadowing winners: the first live\n * (non-abdicated) entry of each cell in priority order — single: the slot\n * is one cell; keyed: one cell per `key`; list: one cell per `id` (winners\n * keep ledger sequence; list renderers still refine display by `order`).\n * Chain keys return the raw entries unchanged: election consumes every\n * entry, shadowing does not apply. The raw {@link SlotCore.entries} view\n * stays the inspection surface. Builds a fresh array per call — a render\n * body read, not a uSES getSnapshot source.\n * @param key - slot key (dynamic: the render machinery holds keys as strings).\n * @returns the winning entry per occupied cell (empty while undeclared).\n */\n entriesOfSlot(key: string): readonly StoredEntry[] {\n const rec = this.records.get(key)\n if (!rec?.spec) return NO_ENTRIES\n const kind = rec.spec.kind\n if (kind === 'chain') return rec.entries\n const heads: StoredEntry[] = []\n const seenCells = new Set<string | undefined>()\n for (const entry of rec.entries) {\n if (this.abdicated.has(entry)) continue\n // Single-kind entries all share the one undefined cell.\n const cell = kind === 'keyed' ? entry.options.key : kind === 'list' ? entry.options.id : undefined\n if (seenCells.has(cell)) continue\n seenCells.add(cell)\n heads.push(entry)\n }\n return heads\n }\n\n /**\n * Look up a slot's declared spec, narrowed by the SlotMap key.\n * @param key - SlotMap key.\n * @returns the spec, or undefined while undeclared.\n */\n spec<K extends keyof SlotMap & string>(key: K): SlotSpec<SlotMap[K]> | undefined {\n return this.records.get(key)?.spec as SlotSpec<SlotMap[K]> | undefined\n }\n\n /**\n * Dynamic-key escape hatch for spec lookup — renderers resolving keys they\n * only hold as strings (generic dispatch) use this wide form; statically\n * keyed callers use {@link SlotCore.spec}.\n * @param key - candidate slot key.\n * @returns the wide-typed spec, or undefined while undeclared.\n */\n specDynamic(key: string): SlotSpec<SlotEntryDef> | undefined {\n return this.records.get(key)?.spec\n }\n\n /**\n * Export the current declaration topology without components or executable hooks.\n * @param root - exact Slot key to select; omitted returns every live root.\n * @returns selected live Slot trees, or an empty array when `root` is unavailable.\n */\n snapshot(root?: string): LiveSlotNode[] {\n const build = (name: string, seen: Set<string>): LiveSlotNode | undefined => {\n const record = this.records.get(name)\n if (record?.spec === undefined || seen.has(name)) return undefined\n const branch = new Set(seen)\n branch.add(name)\n const active = new Set(this.entriesOfSlot(name))\n const children = [...this.records.entries()]\n .filter(([, candidate]) => candidate.spec !== undefined && candidate.parent === name)\n .flatMap(([child]) => {\n const node = build(child, branch)\n return node === undefined ? [] : [node]\n })\n return {\n name,\n kind: record.spec.kind,\n scope: record.spec.scope,\n ...record.declaredBy === undefined ? {} : { declaredBy: record.declaredBy },\n occupants: record.entries.map(entry => ({\n ...entry.registrant === undefined ? {} : { registrant: entry.registrant },\n ...entry.options.key === undefined ? {} : { key: entry.options.key },\n ...entry.options.id === undefined ? {} : { id: entry.options.id },\n ...entry.options.order === undefined ? {} : { order: entry.options.order },\n priority: entry.options.priority ?? 0,\n active: active.has(entry),\n })),\n children,\n }\n }\n if (root !== undefined) {\n const node = build(root, new Set())\n return node === undefined ? [] : [node]\n }\n return [...this.records.entries()]\n .filter(([, record]) => record.spec !== undefined\n && (record.parent === undefined || this.records.get(record.parent)?.spec === undefined))\n .flatMap(([name]) => {\n const node = build(name, new Set())\n return node === undefined ? [] : [node]\n })\n }\n\n /**\n * Read the declaration lifetime of a key. Entry additions and removals do\n * not change it; declaration creation and collapse each advance it.\n * @param key - slot key.\n * @returns monotonic epoch (0 before the first declaration).\n */\n declarationEpoch(key: string): number {\n return this.records.get(key)?.declarationEpoch ?? 0\n }\n\n /**\n * Subscribe to registration changes for a key (microtask-batched).\n * Subscribing ahead of declaration is allowed; the declaration notifies.\n * @param key - slot key.\n * @param fn - change callback.\n * @returns unsubscribe.\n */\n subscribe(key: string, fn: () => void): () => void {\n const rec = this.record(key)\n rec.listeners.add(fn)\n return () => { rec.listeners.delete(fn) }\n }\n\n /**\n * Subscribe to declaration lifetime boundaries for a key. Notifications\n * are synchronous so declaration teardown finishes before a subsequent\n * same-tick registration can observe stale resources. Ordinary entry\n * mutations do not notify this surface. A children table commits every\n * sibling declaration before its first notification.\n * @param key - slot key.\n * @param fn - declaration or collapse callback.\n * @returns unsubscribe.\n */\n subscribeDeclaration(key: string, fn: () => void): () => void {\n const rec = this.record(key)\n rec.declarationListeners.add(fn)\n return () => { rec.declarationListeners.delete(fn) }\n }\n\n /**\n * Monotonic version for a key, bumped synchronously per mutation so a\n * uSES getSnapshot read is never stale when its batched notification lands.\n * @param key - slot key.\n * @returns current version (0 for untouched keys).\n */\n getVersion(key: string): number {\n return this.records.get(key)?.version ?? 0\n }\n\n /**\n * Hook every mutation (the runtime Service wrapper bridges this to ctx.emit).\n * Fires synchronously per mutation, unbatched — event semantics need one\n * emission per change.\n * @param fn - called with the mutated key.\n * @returns unsubscribe.\n */\n onMutate(fn: (key: string) => void): () => void {\n this.mutateListeners.add(fn)\n return () => { this.mutateListeners.delete(fn) }\n }\n\n /**\n * Renderer crash report from an entry boundary. Always notifies\n * {@link SlotCore.onEntryError} listeners; with `info.abdicate` set (the\n * shadowing kinds — single/keyed/list) it first retires the entry from its\n * cell, one-shot: the record's version bumps through the ordinary mutation\n * channel so outlets re-project onto the cell's next survivor, and a\n * repeat abdicating report no-ops entirely. Chain crashes report with\n * `abdicate: false` — election alternatives resolve at select time, so the\n * entry keeps its cell and only the notification fires. The registration\n * itself stays on the ledger either way — raw {@link SlotCore.entries}\n * still lists the entry and its disposer keeps working.\n * @param key - slot key the entry rendered under.\n * @param entry - the crashed entry.\n * @param error - the crash cause, forwarded to listeners verbatim.\n * @param info - `abdicate`: whether the crash retires the entry from its cell.\n */\n reportEntryError(key: string, entry: StoredEntry, error: unknown, info: { abdicate: boolean }): void {\n if (info.abdicate) {\n if (this.abdicated.has(entry)) return\n this.abdicated.add(entry)\n const rec = this.records.get(key)\n if (rec !== undefined) this.markDirty(key, rec)\n }\n for (const fn of [...this.entryErrorListeners]) fn(key, entry, error, { abdicated: info.abdicate })\n }\n\n /**\n * Observe entry boundary crashes (every render-time entry failure the\n * boundaries contain, abdicating or not) — the supervision seam for hosts\n * mirroring contribution health. Fires synchronously per report, after the\n * registry mutated for abdicating crashes (same listener discipline as\n * {@link SlotCore.onMutate}).\n * @param fn - called with the slot key, the crashed entry, the crash\n * cause, and `abdicated`: whether the crash retired the entry from its cell.\n * @returns unsubscribe.\n */\n onEntryError(fn: (key: string, entry: StoredEntry, error: unknown, info: { abdicated: boolean }) => void): () => void {\n this.entryErrorListeners.add(fn)\n return () => { this.entryErrorListeners.delete(fn) }\n }\n\n /**\n * Cascade for a removed entry: release its store mount and collapse every\n * child slot it declared — specs clear, contributions empty (their stale\n * disposers no-op), recursively down the declaration tree. One lifecycle\n * axis: ledger rows, slots, contributions, and store mounts die together.\n */\n private releaseEntry(entry: StoredEntry): void {\n if (entry.store !== undefined && typeof entry.store !== 'function') {\n const pinned = this.handleScopes.get(entry.store)\n if (pinned && --pinned.count === 0) this.handleScopes.delete(entry.store)\n }\n if (!entry.children) return\n for (const childKey of Object.keys(entry.children)) {\n const childRec = this.records.get(childKey)\n /* v8 ignore next -- defensive: declaring always creates the record */\n if (!childRec) continue\n const doomed = childRec.entries\n childRec.spec = undefined\n childRec.declaredBy = undefined\n childRec.parent = undefined\n childRec.declarationEpoch += 1\n childRec.entries = NO_ENTRIES\n this.markDirty(childKey, childRec)\n this.notifyDeclaration(childRec)\n for (const dead of doomed) this.releaseEntry(dead)\n }\n }\n\n private record(key: string): SlotRecord {\n let rec = this.records.get(key)\n if (!rec) {\n rec = {\n spec: undefined,\n declaredBy: undefined,\n parent: undefined,\n declarationEpoch: 0,\n entries: NO_ENTRIES,\n version: 0,\n listeners: new Set(),\n declarationListeners: new Set(),\n }\n this.records.set(key, rec)\n }\n return rec\n }\n\n private markDirty(key: string, rec: SlotRecord): void {\n rec.version += 1\n for (const fn of [...this.mutateListeners]) fn(key)\n this.dirty.add(rec)\n if (!this.flushScheduled) {\n this.flushScheduled = true\n queueMicrotask(() => { this.flush() })\n }\n }\n\n private notifyDeclaration(rec: SlotRecord): void {\n for (const fn of [...rec.declarationListeners]) fn()\n }\n\n private flush(): void {\n // Reset before iterating so a mutation from inside a listener re-schedules.\n this.flushScheduled = false\n const dirty = [...this.dirty]\n this.dirty.clear()\n for (const rec of dirty) {\n for (const fn of [...rec.listeners]) fn()\n }\n }\n}\n","/** Internal React bindings for the renderer host and active session provide bundle. */\nimport { createContext, useContext, type ReactNode } from 'react'\nimport type {\n HostObservable, MaybeSnapshotSelectorHook, SessionMaybeProvideInfo, SessionProvideInfo,\n SlotRendererHost, SnapshotSelectorHook,\n} from '@xrkseek/client-ui-slots'\nimport { bindSnapshotSelector } from './bind.ts'\n\n/**\n * A missing-provider assembly error: the shell wired the tree wrong. The slot\n * error boundary rethrows this class so misassembly stays fail-loud while\n * registrant errors (inject factories, entry components) are contained\n * per entry.\n */\nexport class SlotAssemblyError extends Error {}\n\n/** In-package renderer host context. */\nexport const HostContext = createContext<SlotRendererHost | null>(null)\n\n/**\n * Read the installed renderer host; throws outside the rendered root tree\n * (framework components must not render detached from the renderer).\n * @returns the host API.\n */\nexport function useHost(): SlotRendererHost {\n const host = useContext(HostContext)\n if (!host) throw new SlotAssemblyError('slot machinery rendered outside the installed renderer tree')\n return host\n}\n\nconst BindingContext = createContext<SessionMaybeProvideInfo | null>(null)\n\n/** Read the current-session-optional bundle supplied at the root. */\nexport function useSessionMaybeProvideInfo(): SessionMaybeProvideInfo {\n const info = useContext(BindingContext)\n if (!info) throw new SlotAssemblyError('session-aware slot rendered outside the root binding provider')\n return info\n}\n\n/**\n * Read the enclosing session provide bundle; throws outside a SessionProvider\n * subtree (session slots must not render without a session).\n * @returns the enclosing bundle.\n */\nexport function useSessionProvideInfo(): SessionProvideInfo {\n const info = useSessionMaybeProvideInfo()\n if (info.sessionId === undefined) throw new SlotAssemblyError('strict session slot rendered without a session')\n return info as SessionProvideInfo\n}\n\n/**\n * Identity-stable selector hook per host observable. uSES resubscribes when\n * the subscribe reference changes, so the bound hook must be created once per\n * source — cached here by source identity (sources are host-owned singletons).\n * @param source - host-provided observable.\n * @returns the cached selector hook.\n */\nexport function observableHook<T>(source: HostObservable<T>): SnapshotSelectorHook<T> {\n let hook = hookCache.get(source)\n if (hook === undefined) {\n hook = bindSnapshotSelector(source)\n hookCache.set(source, hook)\n }\n return hook as SnapshotSelectorHook<T>\n}\nconst hookCache = new WeakMap<object, unknown>()\n\nconst absentSource: HostObservable<undefined> = {\n getSnapshot: () => undefined,\n subscribe: () => () => {},\n}\n\n/** Bind a source that disappears with the current session to an optional selector hook. */\nexport function maybeObservableHook<T>(source: HostObservable<T> | undefined): MaybeSnapshotSelectorHook<T> {\n if (source !== undefined) return observableHook(source)\n return useAbsentSnapshot\n}\n\nfunction useAbsentSnapshot<S>(_selector: (snapshot: never) => S, _equal?: (a: S, b: S) => boolean): S | undefined {\n // The uSES subscription must still run (hook-order stability); the absent\n // source always snapshots undefined, returned explicitly.\n observableHook(absentSource)(() => undefined)\n return undefined\n}\n\n/**\n * The useProjection framework seat (docs/subsystems/session-projection.md), one bound\n * function per provide bundle (cached by info identity — components may hold\n * it across renders). Key-addressed: the key resolves a per-session value\n * face off the projection store; the bound selector hook comes from the same\n * per-source cache as every other kit hook, so exactly one uSES subscription\n * runs per call and the subscribe reference stays stable per key. A key no\n * baseline or frame has carried (or a no-session bundle) reads `undefined` —\n * capability absence — keeping the hook order constant.\n */\nexport function projectionHook(info: SessionMaybeProvideInfo): (\n key: string, selector?: (value: unknown) => unknown, eq?: (a: unknown, b: unknown) => boolean,\n) => unknown {\n let hook = projectionHookCache.get(info)\n if (hook === undefined) {\n hook = (key, selector, eq) => {\n // The no-session (faceless) branch binds the shared absent source so\n // the caller's selector still runs over `undefined` (absence flows\n // through the selector) and the uSES call count stays constant.\n const useValue = observableHook(info.projections?.faceOf(key) ?? absentSource)\n // Whole values are finished wire payloads (reference changes only when\n // a frame or baseline lands), so the identity selector needs no\n // equality function.\n return useValue(selector ?? (value => value), eq)\n }\n projectionHookCache.set(info, hook)\n }\n return hook\n}\nconst projectionHookCache = new WeakMap<SessionMaybeProvideInfo, (\n key: string, selector?: (value: unknown) => unknown, eq?: (a: unknown, b: unknown) => boolean,\n) => unknown>()\n\n/**\n * Root-level binding provider. It follows current selection without a key;\n * per-entry identity is the outlet's adoption bookkeeping (SessionMaybeEntry):\n * a blank-born incarnation adopts the first session without remounting, and\n * every later transition (switch or loss) remounts like a strict entry.\n */\nexport function SessionMaybeProvider({ children }: { children: ReactNode }) {\n const host = useHost()\n const info = observableHook(host.sessions.provideInfo)(s => s)\n return (\n <BindingContext.Provider value={info}>\n {children}\n </BindingContext.Provider>\n )\n}\n\n/** SessionProvider API: render-prop body plus the no-session branch. */\nexport interface SessionProviderProps {\n /** No-session body (also covers a current id whose session cannot be resolved). */\n empty?: (() => ReactNode) | undefined\n /** Session body; remounted per session via key={sessionId}. */\n children: (sessionId: string) => ReactNode\n}\n\n/**\n * Framework-wired session area: subscribes to the host's current provide\n * source and remounts the body under `key={sessionId}` so a session switch\n * rebuilds the session subtree. This dependency-inverted layer uses plain\n * string ids; `PropsRuntime` applies the branded type at the component\n * boundary.\n */\nexport function SessionProvider({ empty, children }: SessionProviderProps) {\n const host = useHost()\n const info = observableHook(host.sessions.provideInfo)(s => s)\n const id = info.sessionId\n if (id === undefined) return <>{empty?.() ?? null}</>\n return (\n <BindingContext.Provider value={info} key={id}>\n {children(id)}\n </BindingContext.Provider>\n )\n}\n","/**\n * React renderer for declarative slots. Per-entry bindings enforce child\n * authorization, and entry boundaries contain registrant failures.\n */\nimport { Component, useMemo, useState, useSyncExternalStore, type FC, type ReactNode } from 'react'\nimport {\n SlotOwnershipError, StaleAuthorizationError,\n type ChainRenderOpts, type HostObservable, type LocaleFace, type RenderOpts,\n type SessionMaybeProvideInfo, type SessionProvideInfo, type SlotRenderer, type SlotRendererHost,\n type SlotScope, type StoredEntry, type Translate,\n} from '@xrkseek/client-ui-slots'\nimport {\n HostContext, SessionMaybeProvider, SessionProvider, SlotAssemblyError, maybeObservableHook,\n observableHook, projectionHook, useHost, useSessionMaybeProvideInfo,\n} from './session-provider.tsx'\n\ntype InjectedProps = Record<string, unknown>\n\ntype SlotHookFactory = (standard: InjectedProps, hookContext: unknown) => unknown\ntype SlotHookFactories = Readonly<Record<string, SlotHookFactory>>\n\ninterface BoundSlotInject {\n readonly props: InjectedProps\n readonly slotHookFactories?: SlotHookFactories | undefined\n}\n\ntype RenderSlotBinding = (key: string, owner: object, opts?: RenderOpts) => ReactNode\n\ntype RenderSlotChainBinding = (key: string, owner: object, opts?: ChainRenderOpts) => ReactNode\n\n/**\n * Per-entry renderSlot bindings. The binding is identity-stable per entry\n * (memoized components must not resubscribe on unrelated re-renders) and dies\n * with the entry: a retained closure calling after the entry's disposal hits\n * the in-ledger check and throws.\n */\nconst renderSlotCache = new WeakMap<StoredEntry, RenderSlotBinding>()\n\nfunction boundRenderSlot(host: SlotRendererHost, entry: StoredEntry): RenderSlotBinding {\n let binding = renderSlotCache.get(entry)\n if (!binding) {\n binding = (key, owner, opts) => {\n if (!host.isLive(entry)) {\n throw new StaleAuthorizationError(`renderSlot('${key}') from a disposed registration`)\n }\n // Plain-JS backstop; typed callers are narrowed to the declared keys.\n const declared = entry.children?.[key]\n if (declared === undefined) {\n throw new SlotOwnershipError(`slot '${key}' is not declared by this entry's children`)\n }\n if (declared.kind === 'chain') {\n throw new SlotOwnershipError(`slot '${key}' is declared 'chain' — use renderSlotChain`)\n }\n return <SlotOutlet slotKey={key} ownerProps={owner} opts={opts} />\n }\n renderSlotCache.set(entry, binding)\n }\n return binding\n}\n\n/**\n * Per-entry renderSlotChain bindings: identity-stable per entry (same cache\n * axis as renderSlot — a per-frame dispatch must not rebuild the binding) and\n * dead with the entry. The chain-kind check is the plain-JS backstop twin of\n * the declaration check; typed callers are narrowed to chain keys.\n */\nconst renderSlotChainCache = new WeakMap<StoredEntry, RenderSlotChainBinding>()\n\nfunction boundRenderSlotChain(host: SlotRendererHost, entry: StoredEntry): RenderSlotChainBinding {\n let binding = renderSlotChainCache.get(entry)\n if (!binding) {\n binding = (key, owner, opts) => {\n if (!host.isLive(entry)) {\n throw new StaleAuthorizationError(`renderSlotChain('${key}') from a disposed registration`)\n }\n const declared = entry.children?.[key]\n if (declared === undefined) {\n throw new SlotOwnershipError(`slot '${key}' is not declared by this entry's children`)\n }\n if (declared.kind !== 'chain') {\n throw new SlotOwnershipError(`slot '${key}' is declared '${declared.kind}', not 'chain' — use renderSlot`)\n }\n return <SlotOutlet slotKey={key} ownerProps={owner} opts={opts} />\n }\n renderSlotChainCache.set(entry, binding)\n }\n return binding\n}\n\n/**\n * Inject results cache: root entries per entry, session entries per\n * (entry x provide bundle). WeakMap keys are entry/info objects (both\n * identity-stable per registration/session scope), so cache lifetime rides\n * the same axes as the values it memoizes.\n */\nconst rootInjectCache = new WeakMap<StoredEntry, InjectedProps>()\nconst sessionInjectCache = new WeakMap<StoredEntry, WeakMap<SessionProvideInfo, InjectedProps>>()\nconst sessionMaybeInjectCache = new WeakMap<StoredEntry, WeakMap<SessionMaybeProvideInfo, InjectedProps>>()\n\nconst EMPTY_INJECTED_PROPS: InjectedProps = {}\n\nfunction runInject(entry: StoredEntry, info: SessionMaybeProvideInfo | undefined, actions: object | undefined): InjectedProps {\n const inject = entry.inject\n if (!inject) return EMPTY_INJECTED_PROPS\n // Declaration-derived positional arguments: sessionId for session scope,\n // baked actions when a store is declared.\n const args: unknown[] = []\n if (info !== undefined) args.push(info.sessionId)\n if (actions !== undefined) args.push(actions)\n return bindInjectHooks((inject as (...args: unknown[]) => InjectedProps)(...args))\n}\n\n/**\n * Normalize one entry-owned inject face on its existing cache axis. Its hooks\n * compartment remains the original Observable-only contract.\n */\nfunction bindInjectHooks(face: InjectedProps): InjectedProps {\n const sources = face['hooks']\n if (sources === undefined) return face\n const { hooks: _hooks, ...rest } = face\n const bound: InjectedProps = rest\n for (const [name, source] of Object.entries(sources as Record<string, HostObservable<unknown>>)) {\n const hookName = `use${name[0]?.toUpperCase() ?? ''}${name.slice(1)}`\n bound[hookName] = observableHook(source)\n }\n return bound\n}\n\nconst slotInjectCache = new WeakMap<object, BoundSlotInject>()\nconst EMPTY_SLOT_INJECT: BoundSlotInject = { props: EMPTY_INJECTED_PROPS }\n\n/** Normalize one dispatcher-owned inject face by its stable object identity. */\nfunction cachedSlotInject(face: object | undefined): BoundSlotInject {\n if (face === undefined) return EMPTY_SLOT_INJECT\n let bound = slotInjectCache.get(face)\n if (bound !== undefined) return bound\n const definitions = (face as InjectedProps)['hooks']\n if (definitions === undefined) {\n bound = { props: face as InjectedProps }\n slotInjectCache.set(face, bound)\n return bound\n }\n const { hooks: _hooks, ...rest } = face as InjectedProps\n const props: InjectedProps = rest\n let factories: Record<string, SlotHookFactory> | undefined\n for (const [name, definition] of Object.entries(definitions as Record<string, unknown>)) {\n const hookName = `use${name[0]?.toUpperCase() ?? ''}${name.slice(1)}`\n if (typeof definition === 'function') {\n factories ??= {}\n factories[name] = definition as SlotHookFactory\n } else {\n props[hookName] = observableHook(definition as HostObservable<unknown>)\n }\n }\n bound = factories === undefined\n ? { props }\n : { props, slotHookFactories: factories }\n slotInjectCache.set(face, bound)\n return bound\n}\n\n/** Bind deferred slot-level factories for one stable renderSlot occurrence. */\nfunction bindSlotHookFactories(\n factories: SlotHookFactories,\n standard: InjectedProps,\n hookContext: unknown,\n): InjectedProps {\n const hooks: InjectedProps = {}\n for (const [name, factory] of Object.entries(factories)) {\n const hookName = `use${name[0]?.toUpperCase() ?? ''}${name.slice(1)}`\n hooks[hookName] = factory(standard, hookContext)\n }\n return hooks\n}\n\nfunction cachedRootInject(entry: StoredEntry, actions: object | undefined): InjectedProps {\n let props = rootInjectCache.get(entry)\n if (!props) {\n props = runInject(entry, undefined, actions)\n rootInjectCache.set(entry, props)\n }\n return props\n}\n\nfunction cachedSessionInject(entry: StoredEntry, info: SessionProvideInfo, actions: object | undefined): InjectedProps {\n let perInfo = sessionInjectCache.get(entry)\n if (!perInfo) {\n perInfo = new WeakMap()\n sessionInjectCache.set(entry, perInfo)\n }\n let props = perInfo.get(info)\n if (!props) {\n props = runInject(entry, info, actions)\n perInfo.set(info, props)\n }\n return props\n}\n\nfunction cachedSessionMaybeInject(\n entry: StoredEntry,\n info: SessionMaybeProvideInfo,\n actions: object | undefined,\n): InjectedProps {\n let perInfo = sessionMaybeInjectCache.get(entry)\n if (!perInfo) {\n perInfo = new WeakMap()\n sessionMaybeInjectCache.set(entry, perInfo)\n }\n let props = perInfo.get(info)\n if (!props) {\n props = runInject(entry, info, actions)\n perInfo.set(info, props)\n }\n return props\n}\n\n/**\n * Locale `t` seat bindings, cached per (face, namespace, revision). The\n * revision is part of the cache key ON PURPOSE: a locale switch mints a NEW\n * function reference per namespace, so `React.memo` components taking `t`\n * re-render through ordinary shallow comparison — freshness rides identity,\n * no extra invalidation channel. Within one revision the reference is stable\n * (memoized children do not churn on unrelated re-renders).\n */\nconst localeSeatCache = new WeakMap<LocaleFace, Map<string, { revision: number; t: Translate }>>()\n\nfunction localeSeat(face: LocaleFace, ns: string): Translate {\n let perNs = localeSeatCache.get(face)\n if (!perNs) {\n perNs = new Map()\n localeSeatCache.set(face, perNs)\n }\n const revision = face.getSnapshot().revision\n const cached = perNs.get(ns)\n if (cached && cached.revision === revision) return cached.t\n const bound = face.bind(ns)\n // Fresh wrapper per revision: bind() itself may return a stable reference.\n const t: Translate = (key, params) => bound(key, params)\n perNs.set(ns, { revision, t })\n return t\n}\n\nconst noopSubscribe = (): (() => void) => () => {}\nconst zeroRevision = (): number => 0\n\n/**\n * Per-face subscribe/getSnapshot closure pair. Cached by face identity: the\n * face is one global source shared by every outlet, and uSES resubscribes\n * whenever the subscribe reference changes — fresh closures per render would\n * churn one unsubscribe/resubscribe pair per outlet per render.\n */\nconst localeSubscriptionCache = new WeakMap<LocaleFace, {\n subscribe: (fn: () => void) => () => void\n getRevision: () => number\n}>()\n\nfunction localeSubscription(face: LocaleFace): { subscribe: (fn: () => void) => () => void; getRevision: () => number } {\n let cached = localeSubscriptionCache.get(face)\n if (!cached) {\n cached = {\n subscribe: fn => face.subscribe(fn),\n getRevision: () => face.getSnapshot().revision,\n }\n localeSubscriptionCache.set(face, cached)\n }\n return cached\n}\n\n/**\n * Subscribe an outlet to the installed locale face's revision (0 while none\n * is installed — exactly one uSES call either way, keeping hook order\n * stable). Every outlet re-renders on a locale switch; entry bodies then\n * re-derive their `t` seat at the new revision. The face must be installed\n * before the first render that needs it — a face appearing later has no\n * notification channel to already-mounted outlets.\n */\nfunction useLocaleRevision(face: LocaleFace | undefined): number {\n const subscription = face !== undefined ? localeSubscription(face) : undefined\n return useSyncExternalStore(\n subscription?.subscribe ?? noopSubscribe,\n subscription?.getRevision ?? zeroRevision,\n )\n}\n\n/**\n * Entry-identity React keys for entry boundaries. An outlet renders one\n * winner per position (single/keyed/list cell head, chain election) through\n * an error boundary; without a key, a boundary that failed on entry A would\n * survive a winner change (re-election, shadowing fallback after an\n * abdication, HMR re-registration) and keep a healthy entry B blacked out.\n * Keying by entry identity remounts the boundary fresh whenever the winner\n * changes (entries are identity-stable per registration, so the key is\n * stable while the same entry stays the winner).\n */\nlet nextEntryKey = 0\nconst entryKeys = new WeakMap<StoredEntry, number>()\n\nfunction entryKeyOf(entry: StoredEntry): number {\n let key = entryKeys.get(entry)\n if (key === undefined) {\n key = nextEntryKey++\n entryKeys.set(entry, key)\n }\n return key\n}\n\n/**\n * Per-entry isolation: one registrant crashing (component render or inject\n * factory) must not take down siblings. Assembly errors (missing providers)\n * rethrow — a miswired shell must fail loud, not degrade into fallbacks.\n * Every catch reports through `onEntryError` (the ledger's supervision\n * seam); for shadowing kinds the report abdicates the entry, the outlet\n * re-renders onto the cell's next survivor, and this boundary's crash face\n * only shows until that re-render lands (permanently once the cell is dry —\n * the outlet then owns the crash face).\n */\nclass SlotErrorBoundary extends Component<\n { slotKey: string; onEntryError: (error: unknown) => void; children: ReactNode }, { failed: boolean }\n> {\n override state = { failed: false }\n static getDerivedStateFromError(error: unknown): { failed: boolean } {\n if (error instanceof SlotAssemblyError) throw error\n return { failed: true }\n }\n override componentDidCatch(error: unknown): void {\n console.error(`slot entry crashed in '${this.props.slotKey}':`, error)\n this.props.onEntryError(error)\n }\n override render(): ReactNode {\n if (this.state.failed) return <div data-slot-error={this.props.slotKey} />\n return this.props.children\n }\n}\n\ninterface StandardPropsCache {\n readonly root: InjectedProps\n readonly session: WeakMap<SessionMaybeProvideInfo, InjectedProps>\n readonly sessionMaybe: WeakMap<SessionMaybeProvideInfo, InjectedProps>\n}\n\nconst standardPropsCache = new WeakMap<SlotRendererHost, StandardPropsCache>()\n\n/** Stable official-props object used by contextual Hook factories. */\nfunction standardProps(\n host: SlotRendererHost,\n scope: SlotScope,\n info: SessionMaybeProvideInfo | undefined,\n): InjectedProps {\n let cache = standardPropsCache.get(host)\n if (cache === undefined) {\n cache = {\n root: {\n useSessions: observableHook(host.sessions.list),\n useWorkspaces: observableHook(host.workspaces.list),\n },\n session: new WeakMap(),\n sessionMaybe: new WeakMap(),\n }\n standardPropsCache.set(host, cache)\n }\n if (scope === 'root') return cache.root\n if (info === undefined) throw new SlotAssemblyError(`scope '${scope}' rendered without session provide info`)\n const byInfo = scope === 'session' ? cache.session : cache.sessionMaybe\n let standard = byInfo.get(info)\n if (standard !== undefined) return standard\n standard = { ...cache.root }\n for (const [name, source] of Object.entries(info.hooks)) {\n const hookName = `use${name[0]?.toUpperCase() ?? ''}${name.slice(1)}`\n if (scope === 'session-maybe') {\n standard[hookName] = maybeObservableHook(source)\n } else {\n if (source === undefined) throw new SlotAssemblyError(`strict session hook '${name}' has no source`)\n standard[hookName] = observableHook(source)\n }\n }\n Object.assign(standard, info.props)\n standard['sessionId'] = info.sessionId\n standard['useProjection'] = projectionHook(info)\n byInfo.set(info, standard)\n return standard\n}\n\n/**\n * Standard-kit synthesis shared by both scope branches: the global\n * useSessions/useWorkspaces hooks, the per-session provide bundle (every\n * `hooks` source becomes a `use<Name>` selector hook — useSession is the\n * runtime's own 'session' contribution, no special case — and `props` spread\n * verbatim), the store pair when declared, the renderSlot binding when\n * children are declared, and the SessionProvider seat when the children\n * declare a session-scope slot. Hosts hand out BARE observable sources\n * (hooks never cross the host contract); every hook is bound HERE, cached\n * per source (observableHook), so spreading a fresh kit object per render\n * never churns child subscriptions.\n */\nfunction standardKit(\n host: SlotRendererHost,\n entry: StoredEntry,\n scope: SlotScope,\n info: SessionMaybeProvideInfo | undefined,\n): {\n kit: InjectedProps\n standard: InjectedProps\n actions: object | undefined\n} {\n const standard = standardProps(host, scope, info)\n const kit: InjectedProps = { ...standard }\n if (entry.locale !== undefined) {\n const face = host.locale\n // Loud assembly failure: locale is immediately-tier infrastructure; a\n // declared namespace with no installed face is a miswired composition.\n if (face === undefined) {\n throw new SlotAssemblyError(\n `entry declares locale namespace '${entry.locale}' but no locale face is installed (locale plugin missing from the composition?)`)\n }\n kit['t'] = localeSeat(face, entry.locale)\n }\n const store = scope === 'session-maybe' && info?.sessionId === undefined\n ? undefined\n : host.storeOf(entry, info?.sessionId)\n if (store !== undefined) {\n // The instance IS an observable snapshot source (contract getSnapshot/\n // subscribe); the useStore hook binds here, cached per instance.\n kit['useStore'] = observableHook(store)\n kit['actions'] = store.actions\n }\n if (entry.children !== undefined) {\n kit['renderSlot'] = boundRenderSlot(host, entry)\n // renderSlotChain rides the same declaration source: only entries whose\n // children include a chain-kind slot receive the chain dispatch seat.\n if (Object.values(entry.children).some(spec => spec.kind === 'chain')) {\n kit['renderSlotChain'] = boundRenderSlotChain(host, entry)\n }\n // SessionProvider standard seat: entries declaring a session-scope child\n // render the session area, so the framework hands them the self-wired\n // provider (module-level component = stable reference; no value import).\n if (Object.values(entry.children).some(spec => spec.scope === 'session')) {\n kit['SessionProvider'] = SessionProvider\n }\n }\n return { kit, standard, actions: store?.actions }\n}\n\n/**\n * One rendered entry: standard kit + cached entry inject + common slot inject\n * + owner props (owner wins). The shares are erased at this render boundary;\n * the registration and renderSlot seams already proved their contracts.\n */\nfunction ContextualEntry({\n slotKey, Comp, kit, standard, injected, slotInjected, ownerProps, hookContext, hasHookContext,\n}: {\n slotKey: string\n Comp: FC<InjectedProps>\n kit: InjectedProps\n standard: InjectedProps\n injected: InjectedProps\n slotInjected: BoundSlotInject & { readonly slotHookFactories: SlotHookFactories }\n ownerProps: object\n hookContext: unknown\n hasHookContext: boolean\n}) {\n const contextual = useMemo(\n () => {\n if (!hasHookContext) {\n throw new SlotAssemblyError(`slot '${slotKey}' has contextual injected Hooks but no hookContext`)\n }\n return bindSlotHookFactories(slotInjected.slotHookFactories, standard, hookContext)\n },\n [hasHookContext, hookContext, slotInjected.slotHookFactories, slotKey, standard],\n )\n return <Comp {...kit} {...injected} {...slotInjected.props} {...contextual} {...ownerProps} />\n}\n\nfunction renderEntry(\n slotKey: string,\n Comp: FC<InjectedProps>,\n kit: InjectedProps,\n standard: InjectedProps,\n injected: InjectedProps,\n slotInjected: BoundSlotInject,\n ownerProps: object,\n hookContext: unknown,\n hasHookContext: boolean,\n): ReactNode {\n if (slotInjected.slotHookFactories === undefined) {\n return <Comp {...kit} {...injected} {...slotInjected.props} {...ownerProps} />\n }\n return (\n <ContextualEntry\n slotKey={slotKey}\n Comp={Comp}\n kit={kit}\n standard={standard}\n injected={injected}\n slotInjected={slotInjected as BoundSlotInject & { readonly slotHookFactories: SlotHookFactories }}\n ownerProps={ownerProps}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n />\n )\n}\n\nfunction SessionEntry({ entry, ownerProps, info, slotKey, slotInjected, hookContext, hasHookContext }: {\n entry: StoredEntry\n ownerProps: object\n info: SessionProvideInfo\n slotKey: string\n slotInjected: BoundSlotInject\n hookContext: unknown\n hasHookContext: boolean\n}) {\n const host = useHost()\n const Comp = entry.component as FC<InjectedProps>\n const { kit, standard, actions } = standardKit(host, entry, 'session', info)\n const injected = cachedSessionInject(entry, info, actions)\n return renderEntry(slotKey, Comp, kit, standard, injected, slotInjected, ownerProps, hookContext, hasHookContext)\n}\n\nfunction SessionMaybeEntryBody({ entry, ownerProps, info, slotKey, slotInjected, hookContext, hasHookContext }: {\n entry: StoredEntry\n ownerProps: object\n info: SessionMaybeProvideInfo\n slotKey: string\n slotInjected: BoundSlotInject\n hookContext: unknown\n hasHookContext: boolean\n}) {\n const host = useHost()\n const Comp = entry.component as FC<InjectedProps>\n const { kit, standard, actions } = standardKit(host, entry, 'session-maybe', info)\n const injected = cachedSessionMaybeInject(entry, info, actions)\n return renderEntry(slotKey, Comp, kit, standard, injected, slotInjected, ownerProps, hookContext, hasHookContext)\n}\n\n/**\n * Session-maybe identity: adoption — the ONLY behavior (there is no\n * hold-identity-forever mode). An incarnation born session-less ADOPTS the\n * first session that arrives: identity holds across that one transition\n * (undefined → first id), so a blank shell's DOM survives the moment a\n * session appears. From then on the entry behaves exactly like a strict\n * session entry: switching to a DIFFERENT session remounts (component-local\n * state must not leak between sessions), and dropping back to no-session\n * remounts into a fresh blank incarnation, which will adopt again.\n * Component-local per-session state therefore clears by construction; state\n * that must SURVIVE a switch belongs in session-bound sources (machine,\n * store, hooks) — the existing layering rule, now load-bearing.\n */\nfunction SessionMaybeEntry({ entry, ownerProps, slotKey, slotInjected, hookContext, hasHookContext }: {\n entry: StoredEntry\n ownerProps: object\n slotKey: string\n slotInjected: BoundSlotInject\n hookContext: unknown\n hasHookContext: boolean\n}) {\n const info = useSessionMaybeProvideInfo()\n // The child key is an incarnation counter, NOT the session id: adoption\n // must keep the key constant across undefined → first id. Bookkeeping\n // lives in this stable (unkeyed) wrapper via the render-phase setState\n // form (React's sanctioned derived-state pattern: setState during render\n // of the same component re-renders once before children mount, and the\n // guard conditions make it convergent — StrictMode-safe).\n const [state, setState] = useState<MaybeIncarnation>(FIRST_INCARNATION)\n let { adopted, epoch } = state\n if (info.sessionId !== undefined && adopted === undefined) {\n // Adoption: same epoch — no remount.\n adopted = info.sessionId\n setState({ adopted, epoch })\n } else if (adopted !== undefined && info.sessionId !== undefined && info.sessionId !== adopted) {\n // Post-adoption session switch: next incarnation, born already adopted.\n adopted = info.sessionId\n epoch += 1\n setState({ adopted, epoch })\n } else if (adopted !== undefined && info.sessionId === undefined) {\n // Back to no-session: next incarnation, born blank (adopts anew later).\n adopted = undefined\n epoch += 1\n setState({ adopted, epoch })\n }\n return (\n <SessionMaybeEntryBody\n key={epoch}\n entry={entry}\n ownerProps={ownerProps}\n info={info}\n slotKey={slotKey}\n slotInjected={slotInjected}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n />\n )\n}\n\n/** Adoption bookkeeping of one session-maybe outlet (see SessionMaybeEntry). */\ninterface MaybeIncarnation {\n /** Session this incarnation adopted; undefined while born blank and unadopted. */\n readonly adopted: string | undefined\n /** Incarnation counter — the child key; bumps exactly when an incarnation dies. */\n readonly epoch: number\n}\n\nconst FIRST_INCARNATION: MaybeIncarnation = { adopted: undefined, epoch: 0 }\n\nfunction RootEntry({ entry, ownerProps, slotKey, slotInjected, hookContext, hasHookContext }: {\n entry: StoredEntry\n ownerProps: object\n slotKey: string\n slotInjected: BoundSlotInject\n hookContext: unknown\n hasHookContext: boolean\n}) {\n const host = useHost()\n const Comp = entry.component as FC<InjectedProps>\n const { kit, standard, actions } = standardKit(host, entry, 'root', undefined)\n const injected = cachedRootInject(entry, actions)\n return renderEntry(slotKey, Comp, kit, standard, injected, slotInjected, ownerProps, hookContext, hasHookContext)\n}\n\nfunction StrictSessionEntry({ slotKey, entry, ownerProps, slotInjected, hookContext, hasHookContext, onEntryError }: {\n slotKey: string\n entry: StoredEntry\n ownerProps: object\n slotInjected: BoundSlotInject\n hookContext: unknown\n hasHookContext: boolean\n onEntryError: (error: unknown) => void\n}) {\n const info = useSessionMaybeProvideInfo()\n if (info.sessionId === undefined) return null\n // Per-session remount rides this key; per-entry remount rides the outer\n // element's entry-identity key (the outlet's guarded() call).\n return (\n <SlotErrorBoundary slotKey={slotKey} key={info.sessionId} onEntryError={onEntryError}>\n <SessionEntry\n entry={entry}\n ownerProps={ownerProps}\n info={info as SessionProvideInfo}\n slotKey={slotKey}\n slotInjected={slotInjected}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n />\n </SlotErrorBoundary>\n )\n}\n\n/**\n * Anchor style shared by every outlet wrapper: `display:contents` keeps the\n * wrapper out of layout (grid/flex parents see the slot's own children), so\n * the anchor is purely addressable surface. Module-level constant — a stable\n * reference so the wrapper never diffs its style prop.\n */\nconst ANCHOR_STYLE = { display: 'contents' } as const\n\nfunction SlotOutlet({ slotKey, ownerProps, opts }: {\n slotKey: string\n ownerProps: object\n opts?: (RenderOpts & ChainRenderOpts) | undefined\n}) {\n const host = useHost()\n // Version tick drives entries() re-read; the host batches per microtask.\n useSyncExternalStore(\n fn => host.subscribe(slotKey, fn),\n () => host.getVersion(slotKey),\n )\n // Locale revision tick: a locale switch re-renders every outlet, and entry\n // bodies re-derive their `t` seat at the new revision (fresh identity).\n useLocaleRevision(host.locale)\n const sessionInfo = useSessionMaybeProvideInfo()\n // Anchor contract: every slot render site exposes a stable\n // `[data-slot=\"<key>\"]` wrapper — the addressable seam dynamic styles\n // target — and `display:contents` keeps it layout-neutral. The wrapper\n // rides the outlet, not the dispatch outcome: fallback, crash-face, and\n // undeclared-empty states all render inside it, so the anchor's presence\n // never flickers with registration churn.\n return (\n <div data-slot={slotKey} style={ANCHOR_STYLE}>\n {renderOutletContent(host, slotKey, ownerProps, opts, sessionInfo)}\n </div>\n )\n}\n\n/** Kind dispatch behind the outlet anchor (single/keyed/list/chain, fallbacks, crash faces). */\nfunction renderOutletContent(\n host: SlotRendererHost,\n slotKey: string,\n ownerProps: object,\n opts: (RenderOpts & ChainRenderOpts) | undefined,\n sessionInfo: SessionMaybeProvideInfo,\n): ReactNode {\n const spec = host.specOf(slotKey)\n // Undeclared (or no-longer-declared) keys render empty: a declaring entry's\n // unload returns the slot to the undeclared state while retained elements\n // may still be mounted — natural empty, not an ownership failure.\n if (!spec) return null\n const strictSessionAbsent = spec.scope === 'session' && sessionInfo.sessionId === undefined\n if (strictSessionAbsent && (spec.kind !== 'chain' || !opts?.overlay)) {\n return <>{opts?.fallback ?? null}</>\n }\n // An absent strict overlay chain follows its ordinary empty-election path,\n // preserving the Fragment/fallback-wrapper shape across session arrival.\n const entries = strictSessionAbsent ? [] : host.entriesOf(slotKey)\n const slotInjected = cachedSlotInject(spec.inject)\n\n // The boundary must wrap the Entry ELEMENT, not live inside it: inject\n // factories and kit synthesis run in the Entry body and must land in the\n // per-entry fallback rather than escaping to the tree above.\n const guarded = (entry: StoredEntry, key?: string | number, owner: object = ownerProps) => {\n const hasHookContext = opts !== undefined && Object.hasOwn(opts, 'hookContext')\n const hookContext = opts?.hookContext\n // Shadowing kinds abdicate on crash (the cell falls to its next\n // survivor); chain reports without abdicating — election alternatives\n // resolve at select time, and retiring a crashed elected entry would\n // change the static crash face.\n const onEntryError = (error: unknown) => {\n host.reportEntryError(slotKey, entry, error, { abdicate: spec.kind !== 'chain' })\n }\n return spec.scope === 'session'\n ? (\n <StrictSessionEntry\n slotKey={slotKey}\n entry={entry}\n ownerProps={owner}\n slotInjected={slotInjected}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n onEntryError={onEntryError}\n key={key}\n />\n )\n : (\n <SlotErrorBoundary slotKey={slotKey} key={key} onEntryError={onEntryError}>\n {spec.scope === 'session-maybe'\n ? (\n <SessionMaybeEntry\n entry={entry}\n ownerProps={owner}\n slotKey={slotKey}\n slotInjected={slotInjected}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n />\n )\n : (\n <RootEntry\n entry={entry}\n ownerProps={owner}\n slotKey={slotKey}\n slotInjected={slotInjected}\n hookContext={hookContext}\n hasHookContext={hasHookContext}\n />\n )}\n </SlotErrorBoundary>\n )\n }\n // A cell whose every registration abdicated keeps the crash face: the\n // shadowing collapse ran out of survivors, which is a failure state, not\n // the owner's natural-empty fallback.\n const deadCell = () => <div data-slot-error={slotKey} />\n\n if (spec.kind === 'single') {\n const entry = host.entriesOfSlot(slotKey)[0]\n if (!entry) return entries.length > 0 ? deadCell() : <>{opts?.fallback ?? null}</>\n return guarded(entry, entryKeyOf(entry))\n }\n if (spec.kind === 'keyed') {\n const entry = host.entriesOfSlot(slotKey).find(e => e.options.key === opts?.entryKey)\n if (!entry) {\n const occupied = entries.some(e => e.options.key === opts?.entryKey)\n return occupied ? deadCell() : <>{opts?.fallback ?? null}</>\n }\n return guarded(entry, entryKeyOf(entry))\n }\n if (spec.kind === 'chain') {\n // Entries arrive priority-sorted from the ledger (the core orders at\n // register, ties keep registration sequence). Selectors are pure\n // functions of the owner props (register-face contract), so the routing\n // pass runs per render with zero mount side effects: the first non-null\n // election renders, decliners never mount.\n let elected: ReactNode = null\n for (const entry of entries) {\n let matched: unknown\n try {\n // Chain entries always carry select (SlotCore register validation).\n matched = (entry.select as (owner: object) => unknown)(ownerProps)\n } catch (error) {\n // A throwing selector is a registrant contract breach (select MUST be\n // pure and total), but it runs before the entry's SlotErrorBoundary\n // exists — uncontained it would black out the whole owner region. So\n // it degrades to a decline: the chain and the fallback stay intact,\n // and the breach is reported like a crashed entry.\n console.error(\n `chain selector crashed in '${slotKey}' (${entry.registrant ?? 'unknown registrant'}), treating as declined:`,\n error)\n continue\n }\n if (matched !== null) {\n elected = guarded(entry, entryKeyOf(entry), { ...ownerProps, matched })\n break\n }\n }\n if (opts?.overlay) {\n // Overlay chain (ChainRenderOpts.overlay): the fallback stays mounted\n // through elections — hidden via inline display:none (decisive over any\n // author CSS), shown via display:contents so the wrapper never affects\n // the owner's layout. The wrapper's tree position is constant, so React\n // reconciles instead of remounting and fallback state survives takeover.\n return (\n <>\n <div\n data-chain-overlay-fallback={slotKey}\n style={{ display: elected === null ? 'contents' : 'none' }}\n >\n {opts.fallback ?? null}\n </div>\n {elected}\n </>\n )\n }\n return elected ?? <>{opts?.fallback ?? null}</>\n }\n // list: one row per id cell — the cell's shadowing winner, or the crash\n // face once every entry of the cell abdicated (a dry cell must not\n // silently drop its row). Row sequence: registration order refined by\n // explicit order, optional id filter, as before shadowing existed.\n const winners = host.entriesOfSlot(slotKey)\n const rows: { entry: StoredEntry | undefined; id: string | undefined; order: number }[] = winners.map(entry => ({\n entry,\n id: entry.options.id,\n order: entry.options.order ?? 0,\n }))\n const rowIds = new Set(rows.map(row => row.id))\n for (const entry of entries) {\n if (rowIds.has(entry.options.id)) continue\n rowIds.add(entry.options.id)\n // Dry cells anchor their row at the cell head's declared order.\n rows.push({ entry: undefined, id: entry.options.id, order: entry.options.order ?? 0 })\n }\n let list = [...rows].sort((a, b) => a.order - b.order)\n if (opts?.only !== undefined) list = list.filter(item => item.id === opts.only)\n if (list.length === 0) return <>{opts?.fallback ?? null}</>\n // Winner rows key by entry identity (see entryKeyOf); dry-cell rows key by\n // id — the disjoint prefixes keep the two namespaces from colliding.\n return (\n <>\n {list.map((item, i) => item.entry !== undefined\n ? guarded(item.entry, `e${entryKeyOf(item.entry)}`)\n : <div data-slot-error={slotKey} key={`x${item.id ?? i}`} />)}\n </>\n )\n}\n\n/** Root outlet: the shell's single ctx-level render entry — an unregistered 'root' is a boot-order failure, never a silent blank. */\nfunction RootOutlet({ ownerProps }: { ownerProps: object }) {\n const host = useHost()\n useSyncExternalStore(\n fn => host.subscribe('root', fn),\n () => host.getVersion('root'),\n )\n useLocaleRevision(host.locale)\n const entry = host.entriesOfSlot('root')[0]\n if (!entry) {\n // Registrations exist but every one abdicated: the shadowing collapse ran\n // dry, so the crash face replaces the tree (registered-but-broken is a\n // crash, not the boot-order assembly failure below).\n if (host.entriesOf('root').length > 0) return <div data-slot-error=\"root\" />\n throw new SlotAssemblyError(\"renderSlot('root') before any 'root' registration (boot order)\")\n }\n // Same anchor contract as SlotOutlet: 'root' is a slot like any other, and\n // display:contents keeps the wrapper out of the shell's layout.\n return (\n <div data-slot=\"root\" style={ANCHOR_STYLE}>\n <SlotErrorBoundary\n slotKey=\"root\"\n key={entryKeyOf(entry)}\n onEntryError={(error) => { host.reportEntryError('root', entry, error, { abdicate: true }) }}\n >\n <RootEntry\n entry={entry}\n ownerProps={ownerProps}\n slotKey=\"root\"\n slotInjected={EMPTY_SLOT_INJECT}\n hookContext={undefined}\n hasHookContext={false}\n />\n </SlotErrorBoundary>\n </div>\n )\n}\n\n/**\n * Build the renderer the shell installs into the runtime SlotRegistry\n * (ctx.slots.install(createSlotRenderer()) at boot; the service owns the\n * install/renderSlot contract and the double-install/not-installed throws).\n * @returns the renderer.\n */\nexport function createSlotRenderer(): SlotRenderer {\n return {\n renderRoot(host, ownerProps) {\n return (\n <HostContext.Provider value={host}>\n <SessionMaybeProvider>\n <RootOutlet ownerProps={ownerProps} />\n </SessionMaybeProvider>\n </HostContext.Provider>\n )\n },\n }\n}\n","/**\n * useInvoke: wrap an async action into a stable trigger plus pending flag.\n * Pending is tracked in a per-hook external store read through uSES instead\n * of setState, keeping the render body side-effect free and the invoke\n * reference stable across renders (idempotent-hook rules).\n */\nimport { useRef, useSyncExternalStore } from 'react'\n\ninterface InvokeCell {\n inflight: number\n listeners: Set<() => void>\n fn: () => Promise<unknown>\n invoke: () => void\n subscribe: (fn: () => void) => () => void\n getPending: () => boolean\n}\n\nfunction createCell(fn: () => Promise<unknown>): InvokeCell {\n const cell: InvokeCell = {\n inflight: 0,\n listeners: new Set(),\n fn,\n invoke: () => {\n bump(cell, 1)\n cell.fn().catch((error: unknown) => {\n // Domain errors surface through the event echo (session log); the\n // framework only guarantees pending resets and leaves a trace.\n console.error('useInvoke action failed:', error)\n }).finally(() => { bump(cell, -1) })\n },\n subscribe: (listener) => {\n cell.listeners.add(listener)\n return () => { cell.listeners.delete(listener) }\n },\n getPending: () => cell.inflight > 0,\n }\n return cell\n}\n\nfunction bump(cell: InvokeCell, delta: number): void {\n const wasPending = cell.inflight > 0\n cell.inflight += delta\n if (wasPending !== cell.inflight > 0) {\n for (const listener of [...cell.listeners]) listener()\n }\n}\n\n/**\n * Wrap an async action into a stable invoke callback plus pending flag.\n * Concurrent invocations are counted: pending stays true until the last\n * in-flight call settles. The latest `fn` is always the one invoked.\n * @param fn - async action.\n * @returns invoke trigger and pending state.\n */\nexport function useInvoke(fn: () => Promise<unknown>): [invoke: () => void, pending: boolean] {\n const ref = useRef<InvokeCell | null>(null)\n ref.current ??= createCell(fn)\n const cell = ref.current\n cell.fn = fn\n const pending = useSyncExternalStore(cell.subscribe, cell.getPending)\n return [cell.invoke, pending]\n}\n","import { useEffect, useRef } from 'react'\n\n/** Props for the shell-owned browser title projection. */\nexport interface DocumentTitleProps {\n /** Durable title of the selected session, or undefined for the product title. */\n title?: string\n}\n\n/**\n * Project the selected durable session title into the browser title and\n * restore the shell's original product title when unmounted.\n * @param props - selected session title projection.\n * @returns no rendered content.\n */\nexport function DocumentTitle({ title }: DocumentTitleProps): null {\n const original = useRef(document.title)\n useEffect(() => {\n document.title = title === undefined ? original.current : `${title} — ${original.current}`\n return () => { document.title = original.current }\n }, [title])\n return null\n}\n","/**\n * Real-UI assembly closure, invoked by the app-shell plugin once its inject\n * set is active: the whole layout tree hangs off the built-in 'root' slot\n * (ui-layout registers AppFrame there and renders the child slots\n * internally) — the shell's render is the one ctx-level renderSlot call in\n * the program.\n */\nimport type { ReactNode } from 'react'\nimport type { Context } from '@xrkseek/cordis'\nimport { bindSnapshotSelector } from '@xrkseek/client-web-react'\nimport { DocumentTitle } from './DocumentTitle.tsx'\n// Type-only: pulls the runtime's SlotMap declaration merge (the 'root' key) into this program.\nimport type {} from '@xrkseek/client-runtime/client'\n\n/** Assembly inputs: the active app-shell plugin ctx (slots/sessions/layout services provided). */\nexport interface AssemblyDeps {\n /** Client context with the assembly's inject set active. */\n ctx: Context\n}\n\n/**\n * Build the renderApp factory the app-shell plugin provides to AppRoot.\n * @param deps - assembly inputs.\n * @returns factory producing the real UI tree (called once per AppRoot render after settled).\n */\nexport function buildRenderApp(deps: AssemblyDeps): () => ReactNode {\n const { ctx } = deps\n const sessions = ctx.get('sessions')\n if (sessions === undefined) throw new Error('shell assembly: sessions service unavailable')\n const useSessions = bindSnapshotSelector(sessions.list)\n const SessionDocumentTitle = (): ReactNode => {\n const title = useSessions((state) => {\n const id = state.current\n return id === undefined ? undefined : state.byId[id]?.title\n })\n return <DocumentTitle {...title === undefined ? {} : { title }} />\n }\n return () => (\n <>\n <SessionDocumentTitle />\n {ctx.slots.renderSlot('root', {})}\n </>\n )\n}\n","/**\n * App-shell assembly plugin. Its pseudo package id exists only in the host\n * graph and shell registry; there is no npm package behind it.\n */\nimport type { ReactNode } from 'react'\nimport type { Context } from '@xrkseek/cordis'\nimport { createSlotRenderer } from '@xrkseek/client-web-react'\nimport { buildRenderApp } from './app.tsx'\n\n/** Shell-owned pseudo entry id under which the host graph mounts this plugin. */\nexport const APP_SHELL_ID = '@xrkseek/client-app-shell'\n\n/** The assembled-UI face AppRoot renders once the boot settles. */\nexport interface AppShellService {\n /** Build (once) and render the real UI tree. */\n renderApp: () => ReactNode\n}\n\ndeclare module '@xrkseek/cordis' {\n interface Context {\n /** The shell assembly face, provided by the app-shell entry once its inject set is active. */\n appShell: AppShellService\n }\n}\n\n/** Cordis plugin name. */\nexport const name = 'app-shell'\n\n/** Services required before shell assembly. */\nexport const inject = ['slots', 'sessions', 'layout']\n\n/** Installs the React renderer and exposes the assembled application.\n * @param ctx - Plugin context.\n */\nexport function apply(ctx: Context): void {\n // The renderer install is shell territory (web-react is shell-bundled),\n // but ctx.slots exists only once the runtime entry is active — so it lands\n // here, on the entry whose inject set guarantees that ordering.\n ctx.slots.install(createSlotRenderer())\n\n // Assemble once on first render: the closure must be identity-stable\n // across AppRoot re-renders.\n let renderApp: (() => ReactNode) | undefined\n ctx.reflect.provide('appShell', {\n renderApp: (): ReactNode => {\n renderApp ??= buildRenderApp({ ctx })\n return renderApp()\n },\n })\n}\n","/**\n * Shell root: boot loading page → (boot settled) → real UI in one switch.\n * Pure kernel component with zero plugin dependencies — before settled it may\n * only rely on itself (the fail-loud presentation must not depend on the\n * system whose failure it reports; the status/signal stores are kernel-own,\n * shell self-sufficiency rule); the real UI is produced by the\n * app-shell entry once every entry is active. A failed boot keeps the\n * loading page, lists the per-entry fiber states and the sweep report (fail\n * loud, no partial UI).\n */\nimport { useSyncExternalStore } from 'react'\nimport type { ReactNode } from 'react'\nimport type { KernelSignal, LoaderStatus } from './loader-status.ts'\nimport css from './AppRoot.module.css'\n\n/** AppRoot props: settled signal, fiber-state projection feed, boot failure report, deferred real-UI factory. */\nexport interface AppRootProps {\n /** True once the boot chain settled (loader quiesced + all entries ACTIVE); the boot closure flips it. */\n settled: KernelSignal<boolean>\n /** Per-entry fiber-state projection store (drives loading/failed rendering). */\n status: KernelSignal<LoaderStatus>\n /** Boot failure report (the settle rejection message); undefined while loading or after success. */\n error: KernelSignal<string | undefined>\n /** Builds the real UI; called only after settled. */\n renderApp: () => ReactNode\n}\n\n/** Boot gate: loading page until the boot settles; failures stay here. */\nexport function AppRoot(props: AppRootProps) {\n const settled = useSyncExternalStore(props.settled.subscribe, props.settled.getSnapshot)\n const status = useSyncExternalStore(props.status.subscribe, props.status.getSnapshot)\n const error = useSyncExternalStore(props.error.subscribe, props.error.getSnapshot)\n const failed = Object.entries(status).filter(([, s]) => s === 'failed')\n\n if (settled) return <>{props.renderApp()}</>\n\n const loud = error !== undefined || failed.length > 0\n\n return (\n <div className={css.boot}>\n <div className={css.card}>\n <div className={css.wordmark}>HARNESS</div>\n {!loud\n ? (\n <>\n <div className={css.spinner} />\n <div className={css.hint}>Loading plugins…</div>\n </>\n )\n : (\n <div className={css.failed}>\n <div className={css.failedTitle}>Failed to load plugins</div>\n {failed.map(([id]) => <div key={id} className={css.failedItem}>{id}</div>)}\n {error !== undefined && <div className={css.failedItem}>{error}</div>}\n </div>\n )}\n </div>\n </div>\n )\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// StateDot: session state indicator (figma nodes 14:3303/3305/3312, 122:9182).\n// done/warning/error: 10x10 halo (same color, 10% opacity) around a 6x6 solid\n// core. ongoing: a pixel-art chase — the 8 outer cells of a 3x3 matrix light\n// up clockwise with a stepped trail. Colors resolve through --dsw-* tokens only.\n\nimport clsx from 'clsx'\nimport css from './StateDot.module.css'\n\n/** Four-color state semantic (green done / amber user-attention / blue running ring / red error). */\nexport type StateDotState = 'done' | 'warning' | 'ongoing' | 'error'\n\n/** Outer 3x3 matrix cells (2px pixels on a 10px grid), clockwise from top-left. */\nconst MATRIX_CELLS: readonly (readonly [number, number])[] = [\n [0, 0], [4, 0], [8, 0], [8, 4], [8, 8], [4, 8], [0, 8], [0, 4],\n]\n\n/**\n * Render a state dot.\n * @param props.state - which of the four states to show.\n * @param props.size - outer diameter in px (default 10, the figma size).\n * @param props.className - extra class for layout placement.\n * @returns the dot element (aria-hidden; pair with text for accessibility).\n */\nexport function StateDot({ state, size = 10, className }: {\n state: StateDotState\n size?: number | undefined\n className?: string | undefined\n}) {\n if (state === 'ongoing') {\n return (\n <svg\n className={clsx(css.matrix, className)}\n data-state=\"ongoing\"\n width={size}\n height={size}\n viewBox=\"0 0 10 10\"\n shapeRendering=\"crispEdges\"\n aria-hidden=\"true\"\n >\n {MATRIX_CELLS.map(([x, y], index) => (\n <rect\n key={`${x}-${y}`}\n className={css.cell}\n x={x}\n y={y}\n width=\"2\"\n height=\"2\"\n /* Negative delay phases the chase so every cell animates from mount. */\n style={{ animationDelay: `${(index - MATRIX_CELLS.length) * 125}ms` }}\n />\n ))}\n </svg>\n )\n }\n return (\n <span\n className={clsx(css.dot, className)}\n data-state={state}\n style={{ width: size, height: size }}\n aria-hidden=\"true\"\n />\n )\n}\n","/**\n * ic_ds_* icon set for the dsh web UI. All glyphs render fill=\"currentColor\"\n * and take {size, className}. Batch A mirrors the deepsuite icon library\n * (same figma source); batch B glyphs are harness-only figma extracts.\n */\nimport type { IconProps } from './props.ts'\n\nexport type { IconProps } from './props.ts'\n\n/** ic_ds_new_chat_outline_16 */\nexport const IconNewChatOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00003 0.3237C3.76075 0.3237 0.32373 3.76072 0.32373 8C0.32373 9.17603 0.589121 10.2922 1.0632 11.2901L1.35291 11.8989L2.5705 11.3205L2.28079 10.7117C1.89079 9.89074 1.67301 8.97167 1.67301 8C1.67301 4.50546 4.50549 1.67298 8.00003 1.67298C11.4946 1.67298 14.3271 4.50546 14.3271 8C14.3271 11.4945 11.4946 14.327 8.00003 14.327C7.28473 14.327 6.76077 14.277 6.29621 14.1487C5.83857 14.0224 5.40441 13.8109 4.88514 13.4488C4.12569 12.919 3.03778 12.7316 2.141 13.2978L2.12682 13.307L2.11264 13.3171L1.34886 13.854L1.79659 15.188L2.86122 14.4384C3.19068 14.2305 3.68325 14.2542 4.11326 14.5539C4.72789 14.9826 5.30042 15.2724 5.93762 15.4484C6.56803 15.6224 7.22776 15.6763 8.00003 15.6763C12.2393 15.6763 15.6763 12.2393 15.6763 8C15.6763 3.76072 12.2393 0.3237 8.00003 0.3237ZM7.32033 4.82535V7.32536H4.82538V8.67464H7.32033V11.1747H8.6696V8.67464H11.1747V7.32536H8.6696V4.82535H7.32033Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_search_outline_16 */\nexport const IconSearchOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.894845 6.647401C11.894845 3.725463 9.534486 1.356779 6.623219 1.35657C3.711786 1.35657 1.351635 3.725338 1.351635 6.647401C1.351843 9.569296 3.711911 11.938273 6.623219 11.938273C9.534361 11.938064 11.894637 9.569171 11.894845 6.647401ZM13.245462 6.647401C13.245254 10.317935 10.280401 13.293613 6.623219 13.293821C2.965871 13.293821 0.000204 10.31806 0 6.647401C0 2.976574 2.965746 0 6.623219 0C10.280526 0.000205 13.245462 2.9767 13.245462 6.647401Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M16.000417 15.041079L15.044449 16.000433L11.530434 12.473588L12.486298 11.514234L16.000417 15.041079Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_globe_outline_14 — meridian globe (harness-only figma extract). */\nexport const IconGlobeOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.00018 0.353516C10.6708 0.353535 13.6468 3.32958 13.6469 7.00018C13.6468 10.6708 10.6708 13.6468 7.00018 13.6469C3.32957 13.6468 0.353535 10.6708 0.353516 7.00018C0.353535 3.32957 3.32957 0.353531 7.00018 0.353516ZM5.44643 7.59661C5.49463 8.97506 5.70762 10.191 6.02136 11.0793C6.20141 11.5891 6.40328 11.9585 6.59898 12.1889C6.79501 12.4196 6.93213 12.454 7.00018 12.454C7.06822 12.454 7.20533 12.4197 7.40138 12.1889C7.59708 11.9585 7.79895 11.589 7.979 11.0793C8.29274 10.191 8.50574 8.97506 8.55394 7.59661H5.44643ZM1.57861 7.59661C1.80785 9.70467 3.2386 11.4509 5.1715 12.1388C5.07135 11.9317 4.97972 11.7098 4.89746 11.477C4.53084 10.4391 4.30224 9.0828 4.25357 7.59661H1.57861ZM9.74679 7.59661C9.69813 9.0828 9.46952 10.4391 9.1029 11.477C9.0206 11.7099 8.92818 11.9316 8.82797 12.1388C10.7613 11.4511 12.1925 9.70496 12.4218 7.59661H9.74679ZM5.1706 1.8616C3.23814 2.54963 1.80876 4.29604 1.5795 6.40376H4.25357C4.30224 4.91756 4.53083 3.56129 4.89746 2.5234C4.97968 2.29066 5.07051 2.0686 5.1706 1.8616ZM7.00018 1.54637C6.93213 1.54638 6.79503 1.5807 6.59898 1.81145C6.40332 2.04177 6.20139 2.41058 6.02136 2.92012C5.70754 3.80851 5.49461 5.02499 5.44643 6.40376H8.55394C8.50575 5.025 8.29282 3.80851 7.979 2.92012C7.79898 2.41059 7.59705 2.04177 7.40138 1.81145C7.20531 1.58067 7.06823 1.54637 7.00018 1.54637ZM8.82887 1.8616C8.92902 2.0687 9.02064 2.29053 9.1029 2.5234C9.46953 3.56129 9.69812 4.91756 9.74679 6.40376H12.4209C12.1916 4.29575 10.7618 2.54943 8.82887 1.8616Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_settings_outline_14 */\nexport const IconSettingsOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_2580_121189)\">\n <path\n d=\"M12.1192 4.91016C11.9392 4.52714 11.7007 4.1292 11.4483 3.78809C11.385 3.70258 11.3517 3.68409 11.2462 3.67383C10.7419 3.6248 10.2318 3.69454 9.72662 3.64551C9.29108 3.60318 8.93739 3.40341 8.67682 3.05176C8.38762 2.66127 8.19217 2.20926 7.90338 1.81934C7.83985 1.73359 7.80848 1.71542 7.70221 1.70508C7.24758 1.6609 6.7511 1.66104 6.29791 1.70508C6.19164 1.71542 6.16027 1.73359 6.09674 1.81934C5.80775 2.20954 5.61248 2.66131 5.3233 3.05176C5.06273 3.40341 4.70904 3.60318 4.2735 3.64551C3.76831 3.69454 3.25825 3.6248 2.75397 3.67383C2.6484 3.68409 2.61509 3.70258 2.55182 3.78809C2.30019 4.12814 2.06125 4.52646 1.88092 4.91016C1.83256 5.01309 1.83242 5.04912 1.88092 5.15235C2.07954 5.57482 2.37449 5.94529 2.5733 6.36817C2.76971 6.78606 2.76964 7.21293 2.5733 7.63086C2.37462 8.05374 2.07947 8.42453 1.88092 8.84668C1.83235 8.95004 1.83257 8.98695 1.88092 9.08985C2.06098 9.47285 2.2994 9.87079 2.55182 10.2119C2.61509 10.2974 2.6484 10.3159 2.75397 10.3262C3.25879 10.3753 3.76834 10.3055 4.2735 10.3545C4.70904 10.3968 5.06273 10.5966 5.3233 10.9482C5.6125 11.3387 5.80795 11.7907 6.09674 12.1807C6.16027 12.2664 6.19164 12.2846 6.29791 12.2949C6.7511 12.339 7.24758 12.3391 7.70221 12.2949C7.80848 12.2846 7.83985 12.2664 7.90338 12.1807C8.19237 11.7905 8.38764 11.3387 8.67682 10.9482C8.93739 10.5966 9.29108 10.3968 9.72662 10.3545C10.2318 10.3055 10.7419 10.3752 11.2462 10.3262C11.3517 10.3159 11.385 10.2974 11.4483 10.2119C11.7007 9.87079 11.9391 9.47285 12.1192 9.08985C12.1675 8.98695 12.1678 8.95004 12.1192 8.84668C11.9205 8.42428 11.6255 8.05377 11.4268 7.63086C11.2305 7.21293 11.2304 6.78606 11.4268 6.36817C11.6256 5.94531 11.9207 5.5746 12.1192 5.15235C12.1677 5.04912 12.1676 5.01309 12.1192 4.91016ZM13.2051 5.66309C13.0064 6.08573 12.7114 6.45579 12.5128 6.87793C12.4642 6.98123 12.4645 7.01829 12.5128 7.1211C12.7112 7.54328 13.0064 7.91405 13.2051 8.33692C13.4015 8.75487 13.4015 9.18169 13.2051 9.59961C12.9911 10.0551 12.7109 10.5221 12.4122 10.9258C12.1522 11.277 11.7974 11.4782 11.3624 11.5205C10.8573 11.5696 10.3477 11.4999 9.84283 11.5488C9.73621 11.5592 9.70429 11.5772 9.64069 11.6631C9.35229 12.0526 9.15705 12.5044 8.86823 12.8945C8.60854 13.2452 8.25275 13.447 7.81842 13.4893C7.28749 13.5409 6.71096 13.5407 6.1817 13.4893C5.74737 13.447 5.39158 13.2452 5.1319 12.8945C4.84312 12.5045 4.64808 12.0529 4.35944 11.6631C4.29583 11.5772 4.26392 11.5592 4.15729 11.5488C3.65283 11.5 3.14295 11.5696 2.63776 11.5205C2.20274 11.4782 1.84796 11.277 1.58795 10.9258C1.28834 10.5209 1.00864 10.0543 0.794982 9.59961C0.598644 9.18169 0.598598 8.75487 0.794982 8.33692C0.993688 7.91405 1.28889 7.54328 1.48737 7.1211C1.53567 7.01829 1.53593 6.98123 1.48737 6.87793C1.28887 6.45603 0.993667 6.08569 0.794982 5.66309C0.598535 5.24516 0.59869 4.81829 0.794982 4.40039C1.00898 3.94492 1.28922 3.47791 1.58795 3.07422C1.84796 2.723 2.20274 2.5218 2.63776 2.47949C3.14295 2.43038 3.65283 2.50003 4.15729 2.45117C4.26391 2.44081 4.29583 2.4228 4.35944 2.33692C4.64783 1.94742 4.84308 1.49557 5.1319 1.10547C5.39158 0.754835 5.74737 0.553005 6.1817 0.510744C6.71263 0.459147 7.28917 0.459309 7.81842 0.510744C8.25275 0.553005 8.60854 0.754835 8.86823 1.10547C9.157 1.49551 9.35204 1.94708 9.64069 2.33692C9.70429 2.4228 9.73621 2.44081 9.84283 2.45117C10.3477 2.50007 10.8573 2.43039 11.3624 2.47949C11.7974 2.5218 12.1522 2.723 12.4122 3.07422C12.7118 3.47909 12.9915 3.94567 13.2051 4.40039C13.4014 4.81829 13.4016 5.24516 13.2051 5.66309Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M7.9317 7C7.9317 6.48569 7.51438 6.06836 7.00006 6.06836C6.48575 6.06836 6.06842 6.48569 6.06842 7C6.06842 7.51432 6.48575 7.93164 7.00006 7.93164C7.51438 7.93164 7.9317 7.51432 7.9317 7ZM9.13092 7C9.13092 8.17706 8.17712 9.13086 7.00006 9.13086C5.823 9.13086 4.8692 8.17706 4.8692 7C4.8692 5.82294 5.823 4.86914 7.00006 4.86914C8.17712 4.86914 9.13092 5.82294 9.13092 7Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2580_121189\">\n <rect width={14} height={14} fill=\"currentColor\" />\n </clipPath>\n </defs>\n </svg>\n)\n\n/** ic_ds_settings_outline_16 */\nexport const IconSettingsOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_1450_63327)\">\n <path\n d=\"M14.0861 5.51366C13.8717 5.0575 13.588 4.58542 13.2889 4.18108C13.208 4.07172 13.1596 4.04373 13.0243 4.03054C12.4277 3.97255 11.8245 4.05527 11.2269 3.9972C10.7224 3.94816 10.3133 3.71661 10.0115 3.30919C9.66986 2.84777 9.43973 2.31343 9.09824 1.85234C9.01771 1.74365 8.96805 1.71589 8.83354 1.70282C8.29432 1.65044 7.70402 1.65061 7.16656 1.70282C7.03205 1.71589 6.98239 1.74365 6.90186 1.85234C6.56067 2.31303 6.33025 2.84774 5.98855 3.30919C5.68681 3.71661 5.27774 3.94816 4.77317 3.9972C4.17564 4.05527 3.57239 3.97255 2.97585 4.03054C2.84046 4.04373 2.79208 4.07172 2.71115 4.18108C2.41212 4.58542 2.12835 5.0575 1.91403 5.51366C1.85299 5.64359 1.85286 5.7018 1.91403 5.8319C2.14865 6.33077 2.49748 6.76892 2.73237 7.26854C2.9594 7.7515 2.96041 8.24717 2.73338 8.73044C2.49837 9.23061 2.14891 9.66837 1.91403 10.1681C1.85291 10.2982 1.85299 10.3564 1.91403 10.4863C2.12856 10.9429 2.41185 11.4142 2.71115 11.8189C2.79208 11.9283 2.84046 11.9563 2.97585 11.9694C3.57239 12.0274 4.17564 11.9447 4.77317 12.0028C5.27774 12.0518 5.68681 12.2834 5.98855 12.6908C6.33024 13.1522 6.56037 13.6866 6.90186 14.1476C6.98239 14.2563 7.03205 14.2841 7.16656 14.2972C7.70402 14.3494 8.29432 14.3495 8.83354 14.2972C8.96805 14.2841 9.01771 14.2563 9.09824 14.1476C9.43944 13.687 9.66985 13.1522 10.0115 12.6908C10.3133 12.2834 10.7224 12.0518 11.2269 12.0028C11.8244 11.9447 12.4271 12.0275 13.0243 11.9694C13.1596 11.9563 13.208 11.9283 13.2889 11.8189C13.5891 11.4131 13.872 10.942 14.0861 10.4863C14.1471 10.3564 14.1472 10.2982 14.0861 10.1681C13.8513 9.66861 13.5017 9.23061 13.2667 8.73044C13.0397 8.24717 13.0407 7.7515 13.2677 7.26854C13.5026 6.7689 13.8513 6.33106 14.0861 5.8319C14.1472 5.7018 14.1471 5.64359 14.0861 5.51366ZM15.3035 6.40373C15.0685 6.90359 14.7188 7.34119 14.4841 7.84037C14.4231 7.97025 14.423 8.02855 14.4841 8.15861C14.7189 8.65833 15.0685 9.09611 15.3035 9.59626C15.5308 10.0801 15.5308 10.5744 15.3035 11.0582C15.052 11.5933 14.7225 12.1426 14.37 12.6191C14.0685 13.0265 13.6581 13.259 13.1536 13.3081C12.5566 13.366 11.9541 13.2835 11.3573 13.3414C11.2228 13.3545 11.1731 13.3823 11.0926 13.491C10.7511 13.9521 10.521 14.4864 10.1793 14.9478C9.87828 15.3542 9.46719 15.5869 8.96387 15.6358C8.34008 15.6964 7.66194 15.6966 7.03623 15.6358C6.53291 15.5869 6.12182 15.3542 5.82084 14.9478C5.47911 14.4863 5.24878 13.9517 4.90753 13.491C4.82701 13.3823 4.77734 13.3545 4.64284 13.3414C4.04647 13.2835 3.44373 13.366 2.84653 13.3081C2.34201 13.259 1.93164 13.0265 1.63013 12.6191C1.27867 12.144 0.948453 11.5941 0.696621 11.0582C0.469315 10.5744 0.469279 10.0801 0.696621 9.59626C0.931628 9.09613 1.2813 8.65807 1.51597 8.15861C1.57708 8.02855 1.57702 7.97025 1.51597 7.84037C1.28117 7.34095 0.931635 6.9036 0.696621 6.40373C0.469213 5.91992 0.469367 5.42562 0.696621 4.94183C0.948441 4.40587 1.27868 3.85598 1.63013 3.38092C1.93164 2.97349 2.34201 2.74095 2.84653 2.6919C3.44353 2.63397 4.04599 2.71649 4.64284 2.65856C4.77734 2.64549 4.82701 2.61774 4.90753 2.50904C5.24905 2.04792 5.47913 1.51362 5.82084 1.05219C6.12182 0.645806 6.53291 0.413119 7.03623 0.364178C7.66002 0.303556 8.33816 0.303369 8.96387 0.364178C9.46719 0.413119 9.87828 0.645806 10.1793 1.05219C10.521 1.51365 10.7513 2.04828 11.0926 2.50904C11.1731 2.61774 11.2228 2.64549 11.3573 2.65856C11.9541 2.71649 12.5566 2.63397 13.1536 2.6919C13.6581 2.74095 14.0685 2.97349 14.37 3.38092C14.7214 3.85598 15.0517 4.40587 15.3035 4.94183C15.5307 5.42562 15.5309 5.91992 15.3035 6.40373Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.13764 7.99999C9.13764 7.3715 8.62855 6.8624 8.00005 6.8624C7.37155 6.8624 6.86246 7.3715 6.86246 7.99999C6.86246 8.62849 7.37155 9.13759 8.00005 9.13759C8.62855 9.13759 9.13764 8.62849 9.13764 7.99999ZM10.4834 7.99999C10.4834 9.37126 9.37132 10.4833 8.00005 10.4833C6.62878 10.4833 5.51674 9.37126 5.51674 7.99999C5.51674 6.62873 6.62878 5.51669 8.00005 5.51669C9.37132 5.51669 10.4834 6.62873 10.4834 7.99999Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1450_63327\">\n <rect width={16} height={16} fill=\"currentColor\" />\n </clipPath>\n </defs>\n </svg>\n)\n\n/** ic_ds_panel_left_outline_16 */\nexport const IconPanelLeftOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.67272 0.522841C10.8339 0.522841 11.76 0.522714 12.4963 0.602493C13.2453 0.683657 13.8789 0.854248 14.4264 1.25197C14.7504 1.48739 15.0355 1.77247 15.2709 2.0965C15.6686 2.64394 15.8392 3.27758 15.9204 4.02655C16.0002 4.7629 16 5.68895 16 6.85014V9.14986C16 10.3111 16.0002 11.2371 15.9204 11.9735C15.8392 12.7224 15.6686 13.3561 15.2709 13.9035C15.0355 14.2275 14.7504 14.5126 14.4264 14.748C13.8789 15.1458 13.2453 15.3163 12.4963 15.3975C11.76 15.4773 10.8339 15.4772 9.67272 15.4772H6.3273C5.16611 15.4772 4.24006 15.4773 3.50371 15.3975C2.75474 15.3163 2.1211 15.1458 1.57366 14.748C1.24963 14.5126 0.964549 14.2275 0.729131 13.9035C0.331407 13.3561 0.160817 12.7224 0.0796529 11.9735C-0.000126137 11.2371 1.25338e-09 10.3111 1.25338e-09 9.14986V6.85014C1.25329e-09 5.68895 -0.000126137 4.7629 0.0796529 4.02655C0.160817 3.27758 0.331407 2.64394 0.729131 2.0965C0.964549 1.77247 1.24963 1.48739 1.57366 1.25197C2.1211 0.854248 2.75474 0.683657 3.50371 0.602493C4.24006 0.522714 5.16611 0.522841 6.3273 0.522841H9.67272ZM5.54303 1.88715V14.1118C5.78636 14.1128 6.04709 14.1169 6.3273 14.1169H9.67272C10.8639 14.1169 11.7032 14.1164 12.3493 14.0465C12.9824 13.9779 13.3497 13.8494 13.6268 13.6482C13.8354 13.4966 14.0195 13.3125 14.1711 13.1039C14.3723 12.8268 14.5007 12.4595 14.5693 11.8264C14.6393 11.1803 14.6398 10.341 14.6398 9.14986V6.85014C14.6398 5.65896 14.6393 4.81967 14.5693 4.1736C14.5007 3.54048 14.3723 3.17318 14.1711 2.89609C14.0195 2.68747 13.8354 2.50337 13.6268 2.35179C13.3497 2.1506 12.9824 2.02212 12.3493 1.95353C11.7032 1.88358 10.8639 1.88307 9.67272 1.88307H6.3273C6.04709 1.88307 5.78636 1.8862 5.54303 1.88715ZM4.1828 1.91166C3.99125 1.9216 3.8148 1.93577 3.65076 1.95353C3.01764 2.02212 2.65034 2.1506 2.37325 2.35179C2.16463 2.50337 1.98052 2.68747 1.82895 2.89609C1.62776 3.17318 1.49928 3.54048 1.43069 4.1736C1.36074 4.81967 1.36023 5.65896 1.36023 6.85014V9.14986C1.36023 10.341 1.36074 11.1803 1.43069 11.8264C1.49928 12.4595 1.62776 12.8268 1.82895 13.1039C1.98052 13.3125 2.16463 13.4966 2.37325 13.6482C2.65034 13.8494 3.01764 13.9779 3.65076 14.0465C3.81478 14.0642 3.99127 14.0774 4.1828 14.0873V1.91166Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_ellipsis_outline_16 */\nexport const IconEllipsisOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.55146 8.00001C4.55146 8.63513 4.03659 9.15001 3.40146 9.15001C2.76634 9.15001 2.25146 8.63513 2.25146 8.00001C2.25146 7.36488 2.76634 6.85001 3.40146 6.85001C4.03659 6.85001 4.55146 7.36488 4.55146 8.00001Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.1476 8.00001C9.1476 8.63513 8.63273 9.15001 7.9976 9.15001C7.36248 9.15001 6.8476 8.63513 6.8476 8.00001C6.8476 7.36488 7.36248 6.85001 7.9976 6.85001C8.63273 6.85001 9.1476 7.36488 9.1476 8.00001Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.7486 8.00001C13.7486 8.63513 13.2338 9.15001 12.5986 9.15001C11.9635 9.15001 11.4486 8.63513 11.4486 8.00001C11.4486 7.36488 11.9635 6.85001 12.5986 6.85001C13.2338 6.85001 13.7486 7.36488 13.7486 8.00001Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_plus_outline_16 */\nexport const IconPlusOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.64453 1.5V7.34961H14.5V8.65039H8.64453V14.5H7.34473V8.65039H1.5V7.34961H7.34473V1.5H8.64453Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_check_outline_16 */\nexport const IconCheckOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.0498 3.92579L8.49512 12.3818C8.25774 12.6881 8.04517 12.9645 7.84668 13.1689C7.63957 13.3823 7.38732 13.5841 7.04492 13.6719C6.86373 13.7183 6.6757 13.7346 6.48926 13.7197C6.13666 13.6915 5.8528 13.5355 5.6123 13.3604C5.38201 13.1926 5.12573 12.9567 4.83984 12.6953L1.03125 9.21289L1.96875 8.1875L5.77734 11.6699C6.08684 11.9529 6.27773 12.1249 6.43066 12.2363C6.50183 12.2882 6.54699 12.3135 6.57324 12.3252C6.58525 12.3305 6.59269 12.3322 6.5957 12.333C6.59802 12.3336 6.59961 12.334 6.59961 12.334C6.63317 12.3367 6.66758 12.3335 6.7002 12.3252C6.7002 12.3252 6.70211 12.3251 6.7041 12.3242C6.70698 12.3229 6.71348 12.319 6.72461 12.3115C6.74849 12.2956 6.78843 12.2642 6.84961 12.2012C6.98138 12.0654 7.13957 11.8628 7.39648 11.5313L13.9502 3.07422L15.0498 3.92579Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_check_outline_14 */\nexport const IconCheckOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.5635 4.58984L7.61426 9.07715C7.35154 9.37561 7.11346 9.64812 6.89453 9.84668C6.66593 10.054 6.38519 10.2506 6.01465 10.3164C5.82079 10.3508 5.62207 10.3529 5.42773 10.3213C5.0561 10.2609 4.77266 10.0674 4.54102 9.86328C4.31926 9.66791 4.07752 9.39911 3.81055 9.10449L2.44531 7.59863L3.55664 6.59082L4.92188 8.09766C5.21256 8.41844 5.38878 8.61191 5.53223 8.73828C5.61022 8.80699 5.65253 8.83192 5.66895 8.83984C5.69648 8.84429 5.72449 8.84467 5.75195 8.83984C5.72657 8.84451 5.75564 8.85422 5.88672 8.73535C6.02833 8.60692 6.20225 8.41088 6.48828 8.08594L10.4385 3.59961L11.5635 4.58984Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_branch_outline_16 */\nexport const IconBranchOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.0762 1.37207C14.0846 1.37228 14.9021 2.19077 14.9023 3.19922C14.9022 4.20772 14.0847 5.02518 13.0762 5.02539C12.2967 5.02539 11.6325 4.53691 11.3701 3.84961H4.35547C4.79397 4.26458 5.15861 4.7644 5.41699 5.33496L7.10645 9.06738C7.88526 10.7875 9.55104 11.9228 11.4189 12.0371C11.7085 11.4109 12.3411 10.9756 13.0762 10.9756C14.0843 10.9759 14.9023 11.7936 14.9023 12.8018C14.9023 13.81 14.0843 14.6277 13.0762 14.6279C12.2534 14.6279 11.5574 14.0832 11.3291 13.335C8.9868 13.1879 6.89981 11.7612 5.92285 9.60352L4.23242 5.87109C3.67503 4.64033 2.44878 3.84961 1.09766 3.84961V2.54883C1.10665 2.54883 1.11601 2.54975 1.125 2.5498L11.3701 2.54883C11.6326 1.86151 12.2969 1.37207 13.0762 1.37207ZM13.0762 12.2764C12.7858 12.2764 12.5508 12.5114 12.5508 12.8018C12.5508 13.0921 12.7858 13.3281 13.0762 13.3281C13.3664 13.3279 13.6025 13.092 13.6025 12.8018C13.6025 12.5115 13.3664 12.2766 13.0762 12.2764ZM13.0762 2.67285C12.7855 2.67285 12.55 2.90861 12.5498 3.19922C12.5499 3.48987 12.7855 3.72559 13.0762 3.72559C13.3667 3.72538 13.6024 3.48975 13.6025 3.19922C13.6023 2.90874 13.3666 2.67306 13.0762 2.67285Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_chevron_down_outline_14 */\nexport const IconChevronDownOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.8486 5.5L11.4238 5.92383L8.69727 8.65137C8.44157 8.90706 8.21562 9.13382 8.01172 9.29785C7.79912 9.46883 7.55595 9.61756 7.25 9.66602C7.08435 9.69222 6.91565 9.69222 6.75 9.66602C6.44405 9.61756 6.20088 9.46883 5.98828 9.29785C5.78438 9.13382 5.55843 8.90706 5.30273 8.65137L2.57617 5.92383L2.15137 5.5L3 4.65137L3.42383 5.07617L6.15137 7.80273C6.42595 8.07732 6.59876 8.24849 6.74023 8.3623C6.87291 8.46904 6.92272 8.47813 6.9375 8.48047C6.97895 8.48703 7.02105 8.48703 7.0625 8.48047C7.07728 8.47813 7.12709 8.46904 7.25977 8.3623C7.40124 8.24849 7.57405 8.07732 7.84863 7.80273L10.5762 5.07617L11 4.65137L11.8486 5.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_chevron_left_outline_14 */\nexport const IconChevronLeftOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.5 2.15137L8.07617 2.57617L5.34863 5.30273C5.09294 5.55843 4.86618 5.78438 4.70215 5.98828C4.53117 6.20088 4.38244 6.44405 4.33398 6.75C4.30778 6.91565 4.30778 7.08435 4.33398 7.25C4.38244 7.55595 4.53117 7.79912 4.70215 8.01172C4.86618 8.21561 5.09294 8.44157 5.34863 8.69727L8.07617 11.4238L8.5 11.8486L9.34863 11L8.92383 10.5762L6.19727 7.84863C5.92268 7.57405 5.75151 7.40124 5.6377 7.25977C5.53096 7.12709 5.52187 7.07728 5.51953 7.0625C5.51297 7.02105 5.51297 6.97895 5.51953 6.9375C5.52187 6.92272 5.53096 6.87291 5.6377 6.74023C5.75152 6.59876 5.92268 6.42595 6.19727 6.15137L8.92383 3.42383L9.34863 3L8.5 2.15137Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_chevron_right_outline_14 */\nexport const IconChevronRightOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.5 2.15137L5.92383 2.57617L8.65137 5.30273C8.90706 5.55843 9.13382 5.78438 9.29785 5.98828C9.46883 6.20088 9.61756 6.44405 9.66602 6.75C9.69222 6.91565 9.69222 7.08435 9.66602 7.25C9.61756 7.55595 9.46883 7.79912 9.29785 8.01172C9.13382 8.21561 8.90706 8.44157 8.65137 8.69727L5.92383 11.4238L5.5 11.8486L4.65137 11L5.07617 10.5762L7.80273 7.84863C8.07732 7.57405 8.24849 7.40124 8.3623 7.25977C8.46904 7.12709 8.47813 7.07728 8.48047 7.0625C8.48703 7.02105 8.48703 6.97895 8.48047 6.9375C8.47813 6.92272 8.46904 6.87291 8.3623 6.74023C8.24848 6.59876 8.07732 6.42595 7.80273 6.15137L5.07617 3.42383L4.65137 3L5.5 2.15137Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_triangle_right_fill_14 — tree expand arrow; points right, consumers rotate it 90° for the open state. */\nexport const IconTriangleRightFill14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.25 2.82782L4.25 11.1722C4.25 11.6622 4.84243 11.9076 5.18891 11.5611L9.36109 7.38891C9.57588 7.17412 9.57588 6.82588 9.36109 6.61109L5.18891 2.43891C4.84243 2.09243 4.25 2.33782 4.25 2.82782Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_chevron_up_outline_14 */\nexport const IconChevronUpOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.15137 8.5L2.57617 8.07617L5.30273 5.34863C5.55843 5.09294 5.78438 4.86618 5.98828 4.70215C6.20088 4.53117 6.44405 4.38244 6.75 4.33398C6.91565 4.30778 7.08435 4.30778 7.25 4.33398C7.55595 4.38244 7.79912 4.53117 8.01172 4.70215C8.21561 4.86618 8.44157 5.09294 8.69727 5.34863L11.4238 8.07617L11.8486 8.5L11 9.34863L10.5762 8.92383L7.84863 6.19727C7.57405 5.92269 7.40124 5.75152 7.25977 5.6377C7.12709 5.53096 7.07728 5.52187 7.0625 5.51953C7.02105 5.51297 6.97895 5.51297 6.9375 5.51953C6.92272 5.52187 6.87291 5.53096 6.74023 5.6377C6.59876 5.75152 6.42595 5.92268 6.15137 6.19727L3.42383 8.92383L3 9.34863L2.15137 8.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_close_outline_16 */\nexport const IconCloseOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.1168 13.197L13.197 14.1167L1.8833 2.80303L2.80309 1.88324L14.1168 13.197Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.197 1.88326L14.1168 2.80305L2.80309 14.1168L1.8833 13.197L13.197 1.88326Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_close_fill_14 */\nexport const IconCloseFill14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10.6074 4.40278L8.00975 6.99973L10.6074 9.59739L9.59736 10.6074L6.9997 8.00978L4.40274 10.6074L3.3927 9.59739L5.98966 6.99973L3.3927 4.40278L4.40274 3.39273L6.9997 5.98969L9.59736 3.39273L10.6074 4.40278Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_copy_outline_16 */\nexport const IconCopyOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.14929 4.02032C7.11197 4.02032 7.87983 4.02016 8.49597 4.07598C9.12128 4.13269 9.65792 4.25188 10.1415 4.53106C10.7202 4.8653 11.2008 5.3459 11.535 5.92462C11.8142 6.40818 11.9334 6.94481 11.9901 7.57012C12.0459 8.18625 12.0458 8.95419 12.0458 9.9168C12.0458 10.8795 12.0459 11.6473 11.9901 12.2635C11.9334 12.8888 11.8142 13.4254 11.535 13.909C11.2008 14.4877 10.7202 14.9683 10.1415 15.3025C9.65792 15.5817 9.12128 15.7009 8.49597 15.7576C7.87984 15.8134 7.11196 15.8133 6.14929 15.8133C5.18667 15.8133 4.41874 15.8134 3.80261 15.7576C3.1773 15.7009 2.64067 15.5817 2.1571 15.3025C1.5784 14.9683 1.09778 14.4877 0.76355 13.909C0.484366 13.4254 0.365184 12.8888 0.308472 12.2635C0.252649 11.6473 0.252808 10.8795 0.252808 9.9168C0.252808 8.95418 0.252664 8.18625 0.308472 7.57012C0.365184 6.94481 0.484366 6.40818 0.76355 5.92462C1.09777 5.34589 1.57839 4.86529 2.1571 4.53106C2.64067 4.25188 3.1773 4.13269 3.80261 4.07598C4.41874 4.02017 5.18666 4.02032 6.14929 4.02032ZM6.14929 5.37774C5.16181 5.37774 4.46634 5.37761 3.92566 5.42657C3.39434 5.47472 3.07859 5.56574 2.83582 5.70587C2.4632 5.92106 2.15354 6.2307 1.93835 6.60333C1.79823 6.8461 1.70721 7.16185 1.65906 7.69317C1.6101 8.23385 1.61023 8.92933 1.61023 9.9168C1.61023 10.9043 1.61009 11.5998 1.65906 12.1404C1.70721 12.6717 1.79823 12.9875 1.93835 13.2303C2.15356 13.6029 2.46321 13.9126 2.83582 14.1277C3.07859 14.2679 3.39434 14.3589 3.92566 14.407C4.46634 14.456 5.16182 14.4559 6.14929 14.4559C7.13682 14.4559 7.83224 14.456 8.37292 14.407C8.90425 14.3589 9.21999 14.2679 9.46277 14.1277C9.83535 13.9126 10.145 13.6029 10.3602 13.2303C10.5004 12.9875 10.5914 12.6717 10.6395 12.1404C10.6885 11.5998 10.6884 10.9043 10.6884 9.9168C10.6884 8.92934 10.6885 8.23384 10.6395 7.69317C10.5914 7.16185 10.5004 6.8461 10.3602 6.60333C10.1451 6.23071 9.83536 5.92107 9.46277 5.70587C9.21999 5.56574 8.90424 5.47472 8.37292 5.42657C7.83224 5.3776 7.13682 5.37774 6.14929 5.37774ZM9.80164 0.367975C10.7638 0.367975 11.5314 0.36788 12.1473 0.423639C12.7726 0.480307 13.3093 0.598759 13.7928 0.877741C14.3717 1.21192 14.8521 1.69355 15.1864 2.27227C15.4655 2.75574 15.5857 3.29164 15.6425 3.9168C15.6983 4.53301 15.6971 5.3016 15.6971 6.26446V7.82989C15.6971 8.29264 15.6989 8.58993 15.6649 8.84844C15.4668 10.3525 14.401 11.5738 12.9833 11.9988V10.5467C13.6973 10.1903 14.2105 9.49662 14.3192 8.67169C14.3387 8.52347 14.3407 8.3358 14.3407 7.82989V6.26446C14.3407 5.27706 14.3398 4.58149 14.2909 4.04083C14.2428 3.50968 14.1526 3.19372 14.0126 2.95098C13.7974 2.57849 13.4876 2.26869 13.1151 2.05352C12.8724 1.91347 12.5564 1.82237 12.0253 1.77423C11.4847 1.72528 10.7888 1.7254 9.80164 1.7254H7.71472C6.7562 1.72558 5.92665 2.27697 5.52332 3.07891H4.07019C4.54221 1.51132 5.9932 0.368186 7.71472 0.367975H9.80164Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_refresh_outline_16 */\nexport const IconRefreshOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.92136 0.349152C10.3744 0.349234 12.5564 1.5052 13.9557 3.29894L15.1281 2.12759C15.3303 1.92546 15.6767 2.06943 15.6767 2.35538V5.53923C15.6766 5.71626 15.5329 5.85976 15.3559 5.86002H12.171C11.8854 5.8597 11.7426 5.51465 11.9443 5.31249L12.9641 4.29056C11.8237 2.74305 9.98908 1.74106 7.92136 1.74097C4.46436 1.74097 1.66233 4.543 1.66233 8C1.66233 11.457 4.46436 14.259 7.92136 14.259C11.3782 14.2589 14.1804 11.4569 14.1804 8H15.5722C15.5722 12.2251 12.1465 15.6507 7.92136 15.6508C3.69614 15.6508 0.270508 12.2252 0.270508 8C0.270508 3.77478 3.69614 0.349152 7.92136 0.349152Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_refresh_outline_14 */\nexport const IconRefreshOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1.272 6.21348C1.70645 3.08888 4.59169 0.908064 7.71634 1.34239C8.95495 1.51469 10.0438 2.07331 10.8814 2.87755L11.9458 1.81407C12.1347 1.6255 12.4572 1.75911 12.4575 2.02598V5.08751C12.4574 5.25303 12.3233 5.38731 12.1577 5.38731H9.0972C8.82993 5.38731 8.69629 5.06361 8.88528 4.87462L10.0327 3.72618C9.3732 3.09994 8.52006 2.66569 7.5513 2.53087C5.08313 2.18779 2.80376 3.91044 2.46048 6.37852C2.11747 8.84665 3.84009 11.1261 6.30814 11.4693C8.77612 11.8121 11.0557 10.0896 11.399 7.62169L11.9937 7.70372L12.5874 7.78673C12.153 10.9112 9.26756 13.0919 6.1431 12.6578C3.01854 12.2234 0.837738 9.33809 1.272 6.21348Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_like_outline_16 */\nexport const IconLikeOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.27868 0.811572C8.81991 0.142194 9.79022 0.0421835 10.4538 0.557601L10.5823 0.669306L10.6066 0.693544L10.6097 0.695652L10.6392 0.725159C11.355 1.44679 11.6337 2.49468 11.3716 3.47669L11.3706 3.48091L11.3611 3.51674L11.3601 3.51885L10.889 5.22604C10.8796 5.25997 10.8707 5.29157 10.8627 5.32088C10.8934 5.32095 10.927 5.32194 10.9628 5.32194H11.9007C12.4264 5.32194 12.7831 5.319 13.0651 5.36725C14.8182 5.66719 15.9851 7.34568 15.6565 9.09357C15.6036 9.37487 15.477 9.7092 15.294 10.2022L14.3371 12.7798C14.1402 13.3104 13.9774 13.7518 13.8102 14.1024C13.6376 14.4645 13.4386 14.7793 13.1442 15.0424C12.9712 15.197 12.7802 15.3303 12.5751 15.4386C12.226 15.6231 11.8608 15.7 11.4612 15.7358C11.0743 15.7705 10.6035 15.7695 10.0375 15.7695H4.87377C4.08053 15.7695 3.42928 15.7702 2.90734 15.7137C2.37212 15.6557 1.88991 15.5311 1.46676 15.2237C1.22415 15.0474 1.01078 14.8339 0.834466 14.5914C0.527021 14.1682 0.401373 13.686 0.343384 13.1508C0.286822 12.6287 0.287531 11.9769 0.287531 11.1833V9.51405C0.287531 8.84778 0.281347 8.36714 0.399237 7.9565C0.671152 7.00935 1.41115 6.26832 2.35829 5.99638C2.76894 5.87849 3.24958 5.88573 3.91585 5.88573C4.11983 5.88573 4.14548 5.88319 4.16244 5.88046C4.23532 5.86863 4.30409 5.83663 4.35845 5.78667C4.3711 5.77504 4.38761 5.75604 4.51442 5.59488L8.25655 0.838972L8.2576 0.837918L8.27868 0.811572ZM1.69122 11.1833C1.69122 12.0082 1.69217 12.5711 1.73865 13.0001C1.78371 13.4157 1.86473 13.6221 1.96943 13.7662C2.0592 13.8898 2.16733 13.9989 2.29085 14.0887C2.43501 14.1934 2.64216 14.2744 3.05803 14.3195C3.45897 14.3629 3.97637 14.3656 4.7157 14.3659C4.30801 13.8053 4.06453 13.1171 4.06444 12.371V8.59406H5.46813V12.371C5.46838 13.4733 6.36166 14.3669 7.46407 14.3669H10.0375C10.6286 14.3669 11.0269 14.3663 11.3369 14.3385C11.6339 14.3118 11.7956 14.2638 11.9196 14.1983C12.0241 14.1431 12.1213 14.0747 12.2094 13.996C12.314 13.9025 12.4151 13.7678 12.5435 13.4986C12.6774 13.2176 12.8162 12.845 13.0219 12.2909L13.9788 9.71322C14.1848 9.15816 14.2531 8.96731 14.2781 8.83433C14.4618 7.85692 13.8093 6.91895 12.8291 6.75092C12.6957 6.7281 12.4928 6.72458 11.9007 6.72458H10.9628C10.7737 6.72458 10.5693 6.72657 10.4 6.70666C10.2211 6.68562 9.96702 6.63024 9.74771 6.43161C9.64454 6.33811 9.55957 6.2261 9.4969 6.10177C9.3639 5.83784 9.37799 5.57899 9.40521 5.40097C9.431 5.23261 9.48672 5.03616 9.53694 4.85404L10.008 3.14579L10.0175 3.11102C10.1488 2.61338 10.0078 2.08338 9.64654 1.71681L9.6086 1.67887L9.55064 1.64304C9.48795 1.62043 9.41425 1.63814 9.36938 1.69362L9.35779 1.70627L9.35884 1.70732L5.61672 6.46217C5.51822 6.58735 5.42237 6.7133 5.30689 6.81942C5.05075 7.05471 4.73126 7.20939 4.38796 7.26519C4.23315 7.29032 4.07513 7.28837 3.91585 7.28837C3.15356 7.28837 2.91916 7.2957 2.7461 7.34528C2.26364 7.48379 1.88564 7.86081 1.74708 8.34325C1.69738 8.51636 1.69122 8.7511 1.69122 9.51405V11.1833Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_like_fill_16 */\nexport const IconLikeFill16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.0593 12.922L15.0976 10.1247C15.3087 9.5559 15.4143 9.27138 15.4566 9.04658C15.7349 7.56751 14.7472 6.14737 13.2637 5.89357C13.0382 5.85499 12.7348 5.85499 12.1281 5.85499H11.1099C10.6615 5.85499 10.4372 5.85499 10.3034 5.73376C10.2607 5.69508 10.2255 5.64885 10.1995 5.5974C10.1182 5.43613 10.1778 5.21997 10.297 4.78765L10.8081 2.93419L10.819 2.89456C11.0336 2.09024 10.8051 1.23244 10.2189 0.64139L10.1898 0.612405L10.1692 0.592068C9.77357 0.210076 9.13559 0.249344 8.78983 0.676966L8.77186 0.699678L4.71076 5.86083C4.52965 6.09101 4.38573 6.35138 4.38573 6.64427V12.7431C4.38573 14.3601 5.69654 15.6709 7.31351 15.6709L10.1068 15.6709C11.3628 15.6709 11.9908 15.6709 12.5043 15.3995C12.6723 15.3107 12.8289 15.2018 12.9706 15.0752C13.4037 14.6882 13.6222 14.0995 14.0593 12.922Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.91388 13.2113C2.91388 14.6907 4.08499 15.5536 4.08499 15.5536H2.65606C1.46328 15.5536 0.496338 14.5866 0.496338 13.3938V8.34439C0.496338 7.15161 1.46328 6.18467 2.65606 6.18467H2.91388V13.2113Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_dislike_outline_16 */\nexport const IconDislikeOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.72451 15.1086C7.18929 15.7705 6.22975 15.8694 5.57357 15.3597L5.44643 15.2492L5.42247 15.2253L5.41934 15.2232L5.39016 15.194C4.68239 14.4804 4.40679 13.4441 4.66589 12.473L4.66693 12.4689L4.67631 12.4334L4.67735 12.4314L5.14318 10.7431C5.15243 10.7096 5.1613 10.6783 5.16923 10.6493C5.13878 10.6493 5.10558 10.6483 5.07023 10.6483H4.14274C3.62288 10.6483 3.27015 10.6512 2.9912 10.6035C1.25757 10.3069 0.103662 8.64702 0.42863 6.91854C0.480965 6.64037 0.606164 6.30975 0.787119 5.82223L1.73336 3.27321C1.92812 2.74852 2.08912 2.31209 2.25442 1.96535C2.42515 1.60724 2.62191 1.29594 2.91304 1.03578C3.08408 0.882951 3.273 0.751121 3.47579 0.643944C3.82102 0.461504 4.18214 0.38551 4.57731 0.350066C4.95993 0.315784 5.42553 0.316718 5.98521 0.316718H11.0916C11.876 0.316718 12.52 0.31607 13.0362 0.37195C13.5655 0.429293 14.0423 0.552534 14.4608 0.856536C14.7007 1.03085 14.9117 1.24193 15.086 1.48181C15.3901 1.90027 15.5143 2.37709 15.5717 2.90638C15.6276 3.42269 15.6269 4.06721 15.6269 4.85202V6.50274C15.6269 7.1616 15.633 7.6369 15.5164 8.04299C15.2475 8.97962 14.5158 9.71242 13.5791 9.98133C13.173 10.0979 12.6977 10.0908 12.0389 10.0908C11.8372 10.0908 11.8118 10.0933 11.795 10.096C11.723 10.1077 11.6549 10.1393 11.6012 10.1887C11.5887 10.2002 11.5724 10.219 11.447 10.3784L7.74639 15.0815L7.74535 15.0825L7.72451 15.1086ZM14.2388 4.85202C14.2388 4.03628 14.2379 3.47965 14.1919 3.05541C14.1473 2.64443 14.0672 2.4403 13.9637 2.29779C13.8749 2.17562 13.768 2.06769 13.6458 1.9789C13.5033 1.87532 13.2984 1.79523 12.8872 1.75067C12.4907 1.70773 11.979 1.70511 11.2479 1.70482C11.6511 2.25917 11.8918 2.93968 11.8919 3.67755V7.41251H10.5038V3.67755C10.5036 2.58745 9.62023 1.70378 8.53007 1.70378H5.98521C5.40065 1.70378 5.00679 1.70442 4.70028 1.73192C4.40651 1.7583 4.24662 1.80571 4.12399 1.87052C4.02069 1.92511 3.92452 1.99276 3.8374 2.07061C3.73401 2.16306 3.634 2.2962 3.50705 2.56249C3.37462 2.84027 3.23734 3.20873 3.03393 3.75675L2.08768 6.30578C1.88395 6.85467 1.81646 7.0434 1.79172 7.1749C1.61005 8.14146 2.25533 9.06902 3.22464 9.23517C3.35654 9.25774 3.55717 9.26123 4.14274 9.26123H5.07023C5.25717 9.26123 5.4593 9.25926 5.62672 9.27894C5.80364 9.29975 6.05492 9.35452 6.27179 9.55094C6.37381 9.6434 6.45784 9.75417 6.51982 9.87712C6.65133 10.1381 6.6374 10.3941 6.61048 10.5701C6.58498 10.7366 6.52988 10.9309 6.48022 11.111L6.01439 12.8003L6.00501 12.8347C5.87513 13.3268 6.01464 13.8509 6.37184 14.2134L6.40935 14.2509L6.46667 14.2863C6.52866 14.3087 6.60155 14.2912 6.64591 14.2363L6.65738 14.2238L6.65633 14.2228L10.3569 9.52072C10.4543 9.39693 10.5491 9.27238 10.6633 9.16744C10.9166 8.93476 11.2325 8.7818 11.572 8.72662C11.7251 8.70177 11.8814 8.70369 12.0389 8.70369C12.7927 8.70369 13.0245 8.69645 13.1956 8.64742C13.6727 8.51045 14.0465 8.13761 14.1836 7.66053C14.2327 7.48935 14.2388 7.25721 14.2388 6.50274V4.85202Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_dislike_fill_16 */\nexport const IconDislikeFill16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1.92838 3.06811L0.88799 5.87104C0.676449 6.44097 0.570628 6.72606 0.52825 6.95131C0.249414 8.43336 1.2391 9.85637 2.72555 10.1107C2.95149 10.1493 3.25549 10.1493 3.86348 10.1493H4.88371C5.33306 10.1493 5.55774 10.1493 5.69187 10.2708C5.73467 10.3096 5.76994 10.3559 5.79593 10.4074C5.87738 10.569 5.81766 10.7856 5.69821 11.2188L5.18609 13.076L5.17522 13.1157C4.9602 13.9217 5.1891 14.7812 5.7765 15.3735L5.80568 15.4025L5.82635 15.4229C6.22273 15.8056 6.862 15.7663 7.20846 15.3378L7.22647 15.315L11.2958 10.1435C11.4772 9.91284 11.6214 9.65195 11.6214 9.35847V3.24734C11.6214 1.62711 10.308 0.313655 8.68776 0.313655L5.88886 0.313654C4.63032 0.313654 4.00105 0.313654 3.48649 0.585577C3.31815 0.674536 3.16127 0.783647 3.01929 0.910507C2.58531 1.29828 2.36633 1.88824 1.92838 3.06811Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.0963 2.77815C13.0963 1.29585 11.9228 0.431205 11.9228 0.431205H13.3546C14.5498 0.431205 15.5187 1.4001 15.5187 2.59529V7.65491C15.5187 8.8501 14.5498 9.81899 13.3546 9.81899H13.0963V2.77815Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_share_outline_16 */\nexport const IconShareOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.95889 1.52285C7.95888 0.826234 8.76055 0.467983 9.27669 0.875208L9.37524 0.967191L15.1317 7.18358C15.5582 7.64419 15.5582 8.35614 15.1317 8.81676L9.37524 15.0331C8.87034 15.578 7.95888 15.2205 7.95889 14.4775V10.8207C7.10614 10.8432 6.31361 10.9316 5.45468 11.2515C4.39484 11.6463 3.18248 12.413 1.64676 13.9425C1.4533 14.135 1.18329 14.1696 0.969086 14.0908C0.74748 14.0091 0.547307 13.7879 0.54859 13.4844L0.55516 13.1315C0.618924 11.3494 1.11153 9.29838 2.27656 7.63787C3.45289 5.96147 5.29554 4.71635 7.95889 4.54797V1.52285ZM9.20911 5.13366C9.20899 5.50567 8.9031 5.77687 8.56523 5.77755C5.99383 5.78282 4.33736 6.8762 3.29964 8.35496C2.54519 9.43014 2.10739 10.7283 1.9152 11.9939C3.04749 11.0323 4.0569 10.4385 5.01917 10.0801C6.29638 9.60449 7.4406 9.56343 8.56429 9.56295C8.9178 9.5628 9.20894 9.84909 9.20911 10.2068L9.20817 13.3737L14.1837 8.00017L9.20817 2.62571L9.20911 5.13366Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_edit_outline_16 */\nexport const IconEditOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.94076 1.34942C10.7047 0.90231 11.6503 0.902415 12.4143 1.34942C12.7061 1.52015 12.9688 1.79118 13.3104 2.13284C13.6521 2.47448 13.9231 2.73721 14.0939 3.02894C14.5408 3.79294 14.5409 4.73856 14.0939 5.50251C13.9231 5.79415 13.652 6.05704 13.3104 6.39861L6.65932 13.0497C6.28068 13.4284 6.00695 13.7108 5.66543 13.9097C5.32391 14.1085 4.94315 14.2074 4.42705 14.3498L3.24394 14.6761C2.77527 14.8054 2.34538 14.9262 2.00131 14.9684C1.65196 15.0112 1.17964 15.0013 0.810764 14.6325C0.441921 14.2637 0.432107 13.7913 0.47486 13.442C0.517035 13.0979 0.6379 12.668 0.767181 12.1993L1.09352 11.0162C1.23588 10.5001 1.33481 10.1193 1.5336 9.77784C1.7325 9.43632 2.0149 9.1626 2.39355 8.78395L9.04466 2.13284C9.38625 1.79126 9.64911 1.52016 9.94076 1.34942ZM15.5427 14.8398H7.55223L8.96707 13.425H15.5427V14.8398ZM3.39382 9.78422C2.965 10.213 2.84244 10.3436 2.75709 10.49C2.67183 10.6366 2.61862 10.8079 2.45733 11.3925L2.13099 12.5756C2.00183 13.0439 1.92194 13.3419 1.88863 13.5536C2.10041 13.5204 2.39872 13.4416 2.86764 13.3123L4.05075 12.9859C4.63544 12.8246 4.80669 12.7715 4.95323 12.6862C5.09968 12.6008 5.23022 12.4783 5.65905 12.0494L10.721 6.98644L8.45577 4.72121L3.39382 9.78422ZM11.7 2.57079C11.3774 2.38198 10.9777 2.38198 10.6551 2.57079C10.5602 2.62647 10.4487 2.72931 10.0449 3.13311L9.45604 3.72094L11.7213 5.98617L12.3102 5.39833C12.7139 4.99457 12.8168 4.88307 12.8725 4.78818C13.0613 4.46561 13.0612 4.06585 12.8725 3.74326C12.8169 3.64827 12.7146 3.53752 12.3102 3.13311C11.9057 2.72863 11.795 2.6264 11.7 2.57079Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_think_outline_14 */\nexport const IconThinkOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.06431 5.93342C7.68763 5.93342 8.19307 6.43904 8.19322 7.06233C8.19322 7.68573 7.68772 8.19123 7.06431 8.19123C6.44099 8.19113 5.9354 7.68567 5.9354 7.06233C5.93555 6.43911 6.44108 5.93353 7.06431 5.93342Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.6815 0.963693C10.1169 0.447019 11.6266 0.374829 12.5633 1.31135C13.5 2.24805 13.4277 3.75776 12.911 5.19319C12.7126 5.74431 12.4386 6.31796 12.0965 6.89729C12.4969 7.54638 12.8141 8.19018 13.036 8.80647C13.5527 10.2419 13.6251 11.7516 12.6883 12.6883C11.7516 13.625 10.242 13.5527 8.8065 13.036C8.19022 12.8141 7.54641 12.4969 6.89732 12.0965C6.31797 12.4386 5.74435 12.7125 5.19322 12.911C3.75777 13.4276 2.2481 13.5 1.31138 12.5633C0.374859 11.6266 0.447049 10.1168 0.963724 8.68147C1.17185 8.10338 1.46321 7.50063 1.82896 6.8924C1.52182 6.35711 1.27235 5.82825 1.08872 5.31819C0.572068 3.88278 0.499714 2.37306 1.43638 1.43635C2.37308 0.499655 3.8828 0.572044 5.31822 1.08869C5.82828 1.27232 6.35715 1.5218 6.89243 1.82893C7.50066 1.46318 8.10341 1.17181 8.6815 0.963693ZM11.3573 8.01154C10.9083 8.62253 10.3901 9.22873 9.80943 9.8094C9.22877 10.3901 8.62255 10.9083 8.01158 11.3572C8.4257 11.5841 8.8287 11.7688 9.21275 11.9071C10.5456 12.3868 11.4246 12.2547 11.8397 11.8397C12.2548 11.4246 12.3869 10.5456 11.9071 9.21272C11.7688 8.82866 11.5841 8.42568 11.3573 8.01154ZM2.56529 8.02912C2.37344 8.39322 2.21495 8.74796 2.09263 9.08772C1.61291 10.4204 1.74512 11.2995 2.16001 11.7147C2.57505 12.1297 3.45415 12.2618 4.78697 11.7821C5.11057 11.6656 5.44786 11.5164 5.7938 11.3367C5.249 10.9223 4.70922 10.4533 4.19029 9.9344C3.57578 9.31987 3.03169 8.67633 2.56529 8.02912ZM6.90708 3.2469C6.24065 3.70479 5.5646 4.26321 4.91392 4.91389C4.26325 5.56456 3.70482 6.24063 3.24693 6.90705C3.72674 7.63325 4.32777 8.37459 5.03892 9.08576C5.64943 9.69627 6.28183 10.2265 6.90806 10.6678C7.59368 10.2025 8.2908 9.63076 8.96079 8.96076C9.6308 8.29075 10.2025 7.59366 10.6678 6.90803C10.2265 6.2818 9.69631 5.6494 9.08579 5.03889C8.37462 4.32773 7.63328 3.72672 6.90708 3.2469ZM11.7147 2.15998C11.2996 1.74509 10.4204 1.61288 9.08775 2.0926C8.74835 2.21479 8.39382 2.37271 8.03013 2.56428C8.67728 3.03065 9.31995 3.5758 9.93443 4.19026C10.4534 4.7092 10.9223 5.24896 11.3368 5.79377C11.5164 5.44785 11.6656 5.11052 11.7821 4.78694C12.2618 3.45416 12.1297 2.57502 11.7147 2.15998ZM4.91197 2.2176C3.57922 1.73788 2.70004 1.86995 2.28501 2.28498C1.87001 2.70003 1.73791 3.5792 2.21763 4.91194C2.31709 5.18822 2.44112 5.47427 2.58677 5.7674C3.01931 5.1887 3.51474 4.6158 4.06529 4.06526C4.61584 3.5147 5.18872 3.01928 5.76743 2.58674C5.47431 2.4411 5.18824 2.31706 4.91197 2.2176Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_think_outline_16 */\nexport const IconThinkOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00192 6.64454C8.75026 6.64454 9.35732 7.25169 9.35739 8.00001C9.35739 8.74838 8.7503 9.35548 8.00192 9.35548C7.25367 9.35533 6.64743 8.74829 6.64743 8.00001C6.6475 7.25178 7.25371 6.64468 8.00192 6.64454Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.97165 1.29981C11.5853 0.718916 13.271 0.642197 14.3144 1.68555C15.3577 2.72902 15.2811 4.41466 14.7002 6.02833C14.4707 6.66561 14.1504 7.32937 13.75 8.00001C14.1504 8.67062 14.4707 9.33444 14.7002 9.97169C15.2811 11.5854 15.3578 13.271 14.3144 14.3145C13.271 15.3579 11.5854 15.2811 9.97165 14.7002C9.3344 14.4708 8.67059 14.1505 7.99997 13.75C7.32933 14.1505 6.66558 14.4708 6.02829 14.7002C4.41461 15.2811 2.72899 15.3578 1.68552 14.3145C0.642155 13.271 0.71887 11.5854 1.29977 9.97169C1.52915 9.33454 1.84865 8.67049 2.24899 8.00001C1.84866 7.32953 1.52915 6.66544 1.29977 6.02833C0.718852 4.41459 0.64207 2.729 1.68552 1.68555C2.72897 0.642112 4.41456 0.718887 6.02829 1.29981C6.66541 1.52918 7.32949 1.8487 7.99997 2.24903C8.67045 1.84869 9.33451 1.52919 9.97165 1.29981ZM12.9404 9.2129C12.4391 9.893 11.8616 10.5681 11.2148 11.2149C10.568 11.8616 9.89296 12.4391 9.21286 12.9404C9.62532 13.1579 10.0271 13.338 10.4121 13.4766C11.9146 14.0174 12.9172 13.8738 13.3955 13.3955C13.8737 12.9173 14.0174 11.9146 13.4765 10.4121C13.3379 10.0271 13.1578 9.62535 12.9404 9.2129ZM3.05856 9.2129C2.84121 9.62523 2.66197 10.0272 2.52341 10.4121C1.98252 11.9146 2.12627 12.9172 2.60446 13.3955C3.08278 13.8737 4.08544 14.0174 5.58786 13.4766C5.97264 13.338 6.37389 13.1577 6.7861 12.9404C6.10624 12.4393 5.43168 11.8614 4.78513 11.2149C4.13823 10.5679 3.55992 9.89313 3.05856 9.2129ZM7.99899 3.792C7.23179 4.31419 6.45306 4.95512 5.70407 5.70411C4.95509 6.45309 4.31415 7.23184 3.79196 7.99903C4.3143 8.76666 4.95471 9.54653 5.70407 10.2959C6.45309 11.0449 7.23271 11.6848 7.99997 12.207C8.76725 11.6848 9.54683 11.0449 10.2959 10.2959C11.0449 9.54686 11.6848 8.76729 12.207 8.00001C11.6848 7.23275 11.0449 6.45312 10.2959 5.70411C9.5465 4.95475 8.76662 4.31434 7.99899 3.792ZM5.58786 2.52344C4.08533 1.98255 3.08272 2.12625 2.60446 2.6045C2.12621 3.08275 1.98252 4.08536 2.52341 5.5879C2.66189 5.97253 2.8414 6.37409 3.05856 6.78614C3.55983 6.10611 4.1384 5.43189 4.78513 4.78516C5.43186 4.13843 6.10606 3.55987 6.7861 3.0586C6.37405 2.84144 5.97249 2.66192 5.58786 2.52344ZM13.3955 2.6045C12.9172 2.12631 11.9146 1.98257 10.4121 2.52344C10.0272 2.66201 9.62519 2.84125 9.21286 3.0586C9.8931 3.55996 10.5679 4.13827 11.2148 4.78516C11.8614 5.43172 12.4392 6.10627 12.9404 6.78614C13.1577 6.37393 13.338 5.97267 13.4765 5.5879C14.0174 4.08549 13.8736 3.08281 13.3955 2.6045Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_agent_preset_outline_16 (figma extract): node interiors knock out to transparency via mask, so the glyph sits on any fill. */\nexport const IconAgentPresetOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_agent_preset_16\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"16\" height=\"16\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n <circle cx=\"7.9995\" cy=\"3.28319\" r=\"1.712\" fill=\"black\" />\n <circle cx=\"3.51122\" cy=\"11.3855\" r=\"1.712\" fill=\"black\" />\n <circle cx=\"12.4878\" cy=\"11.3855\" r=\"1.712\" fill=\"black\" />\n </mask>\n <path\n mask=\"url(#mask0_agent_preset_16)\"\n d=\"M12.2881 11.0425C12.6002 11.3723 13.0413 11.5786 13.5312 11.5786L13.5342 11.5776C13.1476 12.3233 12.6119 12.9785 11.9639 13.5005C10.9327 14.3309 9.6199 14.8286 8.19336 14.8286C7.29864 14.8285 6.45056 14.6313 5.6875 14.2808C6.08309 14.0281 6.36707 13.6189 6.45215 13.1392C6.99022 13.3561 7.57767 13.476 8.19336 13.4761C9.30019 13.4761 10.3157 13.0915 11.1152 12.4478C11.5935 12.0626 11.9924 11.5848 12.2881 11.0425ZM4.14746 4.36475C4.25569 4.83228 4.55488 5.2247 4.95898 5.4585C4.07956 6.30639 3.53144 7.49605 3.53125 8.81396C3.53125 9.69534 3.77613 10.5202 4.20117 11.2231C3.74959 11.3817 3.38395 11.7232 3.19531 12.1597C2.5541 11.2032 2.17969 10.052 2.17969 8.81396C2.17989 7.05087 2.93868 5.4646 4.14746 4.36475ZM8.19336 2.80029C8.85717 2.80029 9.49784 2.90834 10.0967 3.10791C12.3237 3.85044 13.9725 5.86061 14.1846 8.28369C13.9832 8.20048 13.7627 8.15382 13.5312 8.15381C13.2802 8.15381 13.042 8.20907 12.8271 8.30615C12.6281 6.47264 11.3666 4.95616 9.66895 4.39014C9.2063 4.236 8.70989 4.15186 8.19336 4.15186C7.96112 4.15189 7.7329 4.16981 7.50977 4.20264C7.51947 4.12886 7.52637 4.05348 7.52637 3.97705C7.52628 3.56604 7.3811 3.18914 7.13965 2.89404C7.48183 2.83352 7.83381 2.80033 8.19336 2.80029Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.1123 3.28271C9.11205 2.66858 8.61322 2.17041 7.99902 2.17041C7.38504 2.17067 6.88697 2.66874 6.88672 3.28271C6.88672 3.89691 7.38489 4.39574 7.99902 4.396C8.61338 4.396 9.1123 3.89707 9.1123 3.28271ZM10.3115 3.28271C10.3115 4.55981 9.27612 5.59521 7.99902 5.59521C6.72214 5.59496 5.6875 4.55965 5.6875 3.28271C5.68776 2.00599 6.7223 0.971447 7.99902 0.971191C9.27596 0.971191 10.3113 2.00584 10.3115 3.28271Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M4.62402 11.385C4.62377 10.7709 4.12494 10.2727 3.51074 10.2727C2.89676 10.273 2.39869 10.771 2.39844 11.385C2.39844 11.9992 2.89661 12.498 3.51074 12.4983C4.1251 12.4983 4.62402 11.9994 4.62402 11.385ZM5.82324 11.385C5.82324 12.6621 4.78784 13.6975 3.51074 13.6975C2.23386 13.6973 1.19922 12.6619 1.19922 11.385C1.19947 10.1083 2.23402 9.07374 3.51074 9.07349C4.78768 9.07349 5.82299 10.1081 5.82324 11.385Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.6006 11.385C13.6003 10.7709 13.1015 10.2727 12.4873 10.2727C11.8733 10.273 11.3753 10.771 11.375 11.385C11.375 11.9992 11.8732 12.498 12.4873 12.4983C13.1017 12.4983 13.6006 11.9994 13.6006 11.385ZM14.7998 11.385C14.7998 12.6621 13.7644 13.6975 12.4873 13.6975C11.2104 13.6973 10.1758 12.6619 10.1758 11.385C10.176 10.1083 11.2106 9.07374 12.4873 9.07349C13.7642 9.07349 14.7995 10.1081 14.7998 11.385Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_browse_outline_16 */\nexport const IconBrowseOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.2426 4.80473V6.10551H4.75819V4.80473H11.2426Z\" fill=\"currentColor\" />\n <path d=\"M9.40858 7.84478V9.14557H4.75819V7.84478H9.40858Z\" fill=\"currentColor\" />\n <path\n d=\"M9.23438 0.546389C10.1941 0.546389 10.9683 0.544914 11.5859 0.611819C12.2161 0.680096 12.7634 0.825745 13.2393 1.17139C13.5172 1.3733 13.7619 1.61812 13.9639 1.896C14.3096 2.37183 14.4551 2.91922 14.5234 3.54932C14.5903 4.16686 14.5889 4.94133 14.5889 5.90088V10.0981C14.5889 11.0576 14.5903 11.8321 14.5234 12.4497C14.4552 13.0798 14.3094 13.6272 13.9639 14.103C13.7619 14.381 13.5172 14.6257 13.2393 14.8276C12.7633 15.1734 12.2163 15.3189 11.5859 15.3872C10.9683 15.4541 10.1942 15.4536 9.23438 15.4536H6.76563C5.80591 15.4536 5.03168 15.4541 4.41407 15.3872C3.78385 15.3189 3.23665 15.1734 2.76074 14.8276C2.48291 14.6257 2.23802 14.3809 2.03614 14.103C1.69066 13.6272 1.54483 13.0798 1.47657 12.4497C1.40973 11.8321 1.41114 11.0576 1.41114 10.0981V5.90088C1.41113 4.94132 1.40966 4.16686 1.47657 3.54932C1.54488 2.91921 1.69042 2.37184 2.03614 1.896C2.2381 1.61807 2.4828 1.37333 2.76074 1.17139C3.23665 0.825682 3.78386 0.680109 4.41407 0.611819C5.03168 0.544905 5.80591 0.546389 6.76563 0.546389H9.23438ZM6.76563 1.896C5.77586 1.896 5.0876 1.89738 4.55957 1.95459C4.0443 2.01043 3.76214 2.11349 3.55469 2.26416C3.39135 2.38284 3.24761 2.52662 3.12891 2.68994C2.97821 2.89736 2.8752 3.17967 2.81934 3.69483C2.76214 4.22279 2.76075 4.91131 2.76074 5.90088V10.0981C2.76074 11.0876 2.76221 11.7762 2.81934 12.3042C2.87516 12.8194 2.97829 13.1026 3.12891 13.3101C3.24754 13.4733 3.39147 13.6172 3.55469 13.7358C3.76213 13.8865 4.04438 13.9896 4.55957 14.0454C5.0876 14.1026 5.77586 14.103 6.76563 14.103H9.23438C10.2242 14.103 10.9124 14.1026 11.4404 14.0454C11.9556 13.9896 12.2379 13.8865 12.4453 13.7358C12.6086 13.6172 12.7525 13.4733 12.8711 13.3101C13.0217 13.1026 13.1248 12.8195 13.1807 12.3042C13.2378 11.7762 13.2393 11.0876 13.2393 10.0981V5.90088C13.2393 4.91131 13.2379 4.22279 13.1807 3.69483C13.1248 3.17969 13.0218 2.89736 12.8711 2.68994C12.7524 2.52667 12.6086 2.38281 12.4453 2.26416C12.2379 2.11355 11.9556 2.01041 11.4404 1.95459C10.9124 1.8974 10.2241 1.896 9.23438 1.896H6.76563Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_link_outline_14 */\nexport const IconLinkOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.19727 5.86969C9.2092 6.90067 9.20969 8.55271 8.19727 9.58338L6.88871 10.8919C5.85801 11.9039 4.20584 11.9037 3.17502 10.8919L3.10873 10.8243C2.09622 9.7934 2.09626 8.14148 3.10873 7.11058L4.36757 5.85174C4.28261 6.33758 4.30355 6.84354 4.44077 7.33362L3.89249 7.88053C3.30043 8.48348 3.30108 9.4507 3.89318 10.0536L3.94566 10.1061C4.54861 10.698 5.51521 10.6981 6.11808 10.1061L7.41283 8.81275C8.00484 8.21002 8.00504 7.24267 7.41352 6.63964L7.35966 6.58716C7.21975 6.44976 7.05995 6.34434 6.89009 6.27089L7.70009 5.4609C7.85176 5.55768 7.99607 5.67091 8.1296 5.80202L8.19727 5.86969Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M5.80913 8.12648C4.79584 7.09547 4.79591 5.44245 5.80913 4.41141C5.81733 4.40304 5.82707 4.39209 5.8409 4.37826L7.07833 3.14082C7.09224 3.12693 7.10311 3.11729 7.11148 3.10906C8.14253 2.09591 9.79557 2.09579 10.8266 3.10906L10.8908 3.17328C11.9041 4.20425 11.9039 5.85727 10.8908 6.88835L9.63193 8.14581C9.70566 7.66581 9.67564 7.16895 9.53456 6.68948L10.1063 6.11772C10.6989 5.51458 10.6992 4.54691 10.1063 3.94391L10.0552 3.8942C9.45215 3.30157 8.48446 3.30151 7.88142 3.8942L6.59358 5.18204C6.00081 5.78507 6.00092 6.75274 6.59358 7.35584L6.6433 7.40694C6.77998 7.54132 6.93555 7.64528 7.10112 7.71837L6.29251 8.52699C6.14446 8.43127 6.00395 8.31906 5.87335 8.1907L5.80913 8.12648Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_link_outline_16 */\nexport const IconLinkOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.94133 6.50173C11.3218 7.99603 11.3218 10.3011 9.94128 11.7954C9.88691 11.8542 9.82125 11.9196 9.72099 12.0198L7.75707 13.9838C7.65709 14.0838 7.592 14.1491 7.53334 14.2034C6.03906 15.5843 3.7327 15.5854 2.23827 14.2048C2.17933 14.1503 2.11374 14.0844 2.01315 13.9838C1.91318 13.8839 1.84922 13.8188 1.79495 13.7601C0.413857 12.2657 0.413909 9.95948 1.795 8.46503C1.84923 8.4064 1.91335 8.34115 2.01321 8.24129L3.79275 6.46313C3.71814 7.08101 3.75236 7.71445 3.90115 8.33518L3.00344 9.23151C2.89398 9.34097 2.8535 9.38307 2.82251 9.41658C1.93771 10.3744 1.93704 11.8514 2.82179 12.8092C2.85279 12.8427 2.89383 12.884 3.0034 12.9936C3.11272 13.1029 3.15429 13.1442 3.18777 13.1752C4.14561 14.0603 5.62381 14.0608 6.58178 13.1758C6.61532 13.1448 6.65722 13.1032 6.76685 12.9935L8.73077 11.0296C8.83999 10.9204 8.88142 10.8787 8.91238 10.8452C9.79744 9.88728 9.7969 8.40911 8.91173 7.45124C8.88074 7.41775 8.83944 7.3762 8.73011 7.26687C8.62082 7.15757 8.58061 7.11623 8.54712 7.08526C8.37347 6.92477 8.18243 6.79361 7.98088 6.69165L9.00289 5.66964C9.17506 5.78373 9.34035 5.91265 9.49663 6.05703C9.55538 6.11135 9.62026 6.17652 9.72036 6.27662C9.82094 6.3772 9.88686 6.4428 9.94133 6.50173Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.06816 9.49196C4.68626 7.99724 4.68667 5.68942 6.06885 4.19487C6.12268 4.13671 6.18789 4.07306 6.28706 3.9739L8.24541 2.01416C8.34478 1.91479 8.41018 1.85055 8.46845 1.79665C9.96301 0.414902 12.2689 0.414922 13.7635 1.79665C13.8217 1.85051 13.8866 1.91559 13.9858 2.01486C14.0849 2.11394 14.1502 2.17769 14.204 2.23583C15.5861 3.7304 15.5866 6.03823 14.2047 7.53291C14.1508 7.59125 14.0854 7.65638 13.9858 7.75595L12.1994 9.54098C12.2614 8.92982 12.2185 8.30587 12.0634 7.69657L12.9956 6.76573C13.1044 6.65692 13.1458 6.61529 13.1765 6.58205C14.0621 5.62404 14.0621 4.1454 13.1765 3.18738C13.1458 3.15419 13.104 3.1135 12.9956 3.00508C12.8877 2.89716 12.8471 2.85551 12.814 2.82485C11.8559 1.9389 10.376 1.93886 9.41794 2.82485C9.38479 2.85554 9.34381 2.89622 9.23564 3.00439L7.27728 4.96413C7.16875 5.07265 7.12708 5.11322 7.09636 5.14643C6.21074 6.10441 6.21153 7.58236 7.09705 8.5404C7.12775 8.57357 7.16826 8.61575 7.27659 8.72408C7.38456 8.83205 7.42647 8.87227 7.45958 8.90293C7.62849 9.0591 7.81309 9.1881 8.00856 9.28894L6.98795 10.3095C6.82111 10.1978 6.66052 10.0715 6.50872 9.93114C6.45057 9.87733 6.38547 9.81341 6.28637 9.71431C6.1871 9.61504 6.12202 9.55018 6.06816 9.49196Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_right_up_outline_14 */\nexport const IconRightUpOutline14 = ({ size = 8, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 8 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.54199 8.62824C6.54199 8.44193 6.54146 8.28829 6.53906 8.15851L1.11719 13.5814L0.728516 13.1927L0.339844 12.803L5.76172 7.38019C5.63201 7.3778 5.47812 7.37824 5.29199 7.37824H1.43555V6.27863H5.29199C5.65471 6.27863 5.97167 6.27814 6.22852 6.30597C6.49541 6.33493 6.76232 6.3998 7.00293 6.57452C7.13452 6.67013 7.25108 6.78571 7.34668 6.9173C7.52157 7.15808 7.5863 7.4256 7.61523 7.69269C7.64305 7.94948 7.64258 8.26562 7.64258 8.62824V12.4857H6.54199V8.62824Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_right_up_outline_16 */\nexport const IconRightUpOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13.588429 5.147807C13.588429 4.739638 13.587271 4.403003 13.582013 4.118684L1.703098 15.99968L0.85155 15.148178L0 14.294485L11.878915 2.413442C11.594721 2.408199 11.257569 2.409154 10.849776 2.409154H2.400594V0.000001H10.849776C11.644471 0.000001 12.338899 -0.001059 12.901622 0.059909C13.486363 0.123352 14.071136 0.265493 14.598303 0.648292C14.886598 0.857751 15.141981 1.110984 15.351433 1.399281C15.734578 1.926807 15.876362 2.512925 15.939743 3.098105C16.000775 3.660718 15.99968 4.353347 15.99968 5.147807V13.599133H13.588429V5.147807Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_enhance_outline_16 */\nexport const IconEnhanceOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.9943 1.92389V3.32428H1.00598V1.92389H14.9943Z\" fill=\"currentColor\" />\n <path d=\"M14.9943 5.50784V6.90823H1.00598V5.50784H14.9943Z\" fill=\"currentColor\" />\n <path d=\"M14.9943 9.09177V10.4922H1.00598V9.09177H14.9943Z\" fill=\"currentColor\" />\n <path d=\"M8.93274 12.6757V14.0761H1.00598V12.6757H8.93274Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** ic_ds_trash_outline_16 */\nexport const IconTrashOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.4782 4.84067L14.2138 10.1152C14.1102 12.1872 14.067 13.0115 13.3866 13.9607C13.1044 14.3546 12.7498 14.6912 12.3424 14.9535C11.8239 15.2872 11.2415 15.4316 10.5585 15.4998C9.88727 15.5668 9.04946 15.5656 7.99998 15.5656C6.95051 15.5656 6.1127 15.5668 5.44142 15.4998C4.75851 15.4316 4.17602 15.2872 3.65753 14.9535C3.25012 14.6912 2.89559 14.3546 2.61332 13.9607C1.93296 13.0115 1.88979 12.1872 1.78619 10.1152L1.52179 4.84067L2.89006 4.77277L3.15343 10.0463C3.26221 12.2218 3.32452 12.6015 3.72646 13.1624C3.90825 13.4161 4.13686 13.6334 4.39927 13.8023C4.66204 13.9714 5.00263 14.0792 5.57825 14.1367C6.16562 14.1953 6.92298 14.1963 7.99998 14.1963C9.07699 14.1963 9.83434 14.1953 10.4217 14.1367C10.9973 14.0792 11.3379 13.9714 11.6007 13.8023C11.8631 13.6334 12.0917 13.4161 12.2735 13.1624C12.6755 12.6015 12.7378 12.2218 12.8465 10.0463L13.1099 4.77277L14.4782 4.84067ZM5.43011 6.22849H6.7994V11.3909H5.43011V6.22849ZM9.20056 6.22849H10.5699V11.3909H9.20056V6.22849ZM8.53597 0.434431C9.17976 0.434431 9.6522 0.426926 10.0966 0.571258C10.2357 0.616451 10.3717 0.672554 10.502 0.738948C10.9182 0.951107 11.2464 1.29099 11.7015 1.74612L12.4978 2.54136H15.3742V3.91169H0.625732V2.54136H3.50218L4.29845 1.74612C4.75358 1.29099 5.08174 0.951107 5.49801 0.738948C5.62831 0.672554 5.76425 0.616451 5.90334 0.571258C6.34776 0.426926 6.82021 0.434431 7.46399 0.434431H8.53597ZM7.46399 1.80476C6.73208 1.80476 6.51641 1.81187 6.32617 1.87369C6.25545 1.89667 6.18668 1.92533 6.12041 1.95907C5.96398 2.03878 5.82348 2.16253 5.44142 2.54136H10.5585C10.1765 2.16253 10.036 2.03878 9.87955 1.95907C9.81329 1.92533 9.74452 1.89667 9.6738 1.87369C9.48356 1.81187 9.26789 1.80476 8.53597 1.80476H7.46399Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_warning_outline_16 */\nexport const IconWarningOutline16 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.3002 3.32843L7.69986 3.32843L7.69986 7.79657H6.3002L6.3002 3.32843Z\"\n fill=\"currentColor\"\n />\n <path d=\"M6.3002 9.01935H7.69986V10.6711H6.3002V9.01935Z\" fill=\"currentColor\" />\n <path\n d=\"M12.6328 6.99976C12.6328 3.88874 10.111 1.36694 7 1.36694C3.88899 1.36695 1.3672 3.88875 1.36719 6.99976C1.36719 10.1108 3.88899 12.6326 7 12.6326C10.111 12.6326 12.6328 10.1108 12.6328 6.99976ZM13.8582 6.99976C13.8582 10.7873 10.7876 13.8579 7 13.8579C3.21244 13.8579 0.141846 10.7873 0.141846 6.99976C0.141857 3.2122 3.21245 0.141612 7 0.141602C10.7876 0.141602 13.8581 3.21219 13.8582 6.99976Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_user_outline_16 */\nexport const IconUserOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.0307 5.46369C11.0305 3.78995 9.6734 2.43357 7.99961 2.43357C6.32601 2.43379 4.96972 3.79009 4.96949 5.46369C4.96949 7.13748 6.32587 8.49455 7.99961 8.49477C9.67354 8.49477 11.0307 7.13762 11.0307 5.46369ZM12.3163 5.46369C12.3163 7.84777 10.3837 9.78042 7.99961 9.78042C5.61572 9.7802 3.68288 7.84763 3.68288 5.46369C3.6831 3.07993 5.61586 1.14718 7.99961 1.14695C10.3836 1.14695 12.3161 3.0798 12.3163 5.46369Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.00002 10.3316C11.7343 10.3316 14.1864 11.8997 15.0387 14.4445L14.4292 14.6483L13.8197 14.8531C13.1955 12.9893 11.3673 11.6182 8.00002 11.6182C4.63277 11.6182 2.80455 12.9893 2.18031 14.8531L1.5708 14.6483L0.961304 14.4445C1.81368 11.8997 4.26579 10.3316 8.00002 10.3316Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_send_outline_16 */\nexport const IconSendOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.3125 0.981587C8.66767 1.0545 8.97902 1.20558 9.2627 1.43374C9.48724 1.61438 9.73029 1.85933 9.97949 2.10854L14.707 6.83608L13.293 8.25014L9 3.95717V15.0431H7V3.95717L2.70703 8.25014L1.29297 6.83608L6.02051 2.10854C6.26971 1.85933 6.51277 1.61438 6.7373 1.43374C6.97662 1.24126 7.28445 1.04542 7.6875 0.981587C7.8973 0.94841 8.1031 0.956564 8.3125 0.981587Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_stop_fill_16 */\nexport const IconStopFill16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2 4.88C2 3.68009 2 3.08013 2.30557 2.65954C2.40426 2.52371 2.52371 2.40426 2.65954 2.30557C3.08013 2 3.68009 2 4.88 2H11.12C12.3199 2 12.9199 2 13.3405 2.30557C13.4763 2.40426 13.5957 2.52371 13.6944 2.65954C14 3.08013 14 3.68009 14 4.88V11.12C14 12.3199 14 12.9199 13.6944 13.3405C13.5957 13.4763 13.4763 13.5957 13.3405 13.6944C12.9199 14 12.3199 14 11.12 14H4.88C3.68009 14 3.08013 14 2.65954 13.6944C2.52371 13.5957 2.40426 13.4763 2.30557 13.3405C2 12.9199 2 12.3199 2 11.12V4.88Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_paperclip_outline_16 */\nexport const IconPaperclipOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.5498 9.75V5H6.9502V9.75C6.9502 10.3299 7.4201 10.7998 8 10.7998C8.5799 10.7998 9.0498 10.3299 9.0498 9.75V4.5C9.0498 2.9536 7.7964 1.7002 6.25 1.7002C4.7036 1.7002 3.4502 2.9536 3.4502 4.5V9.75C3.4502 12.2629 5.4871 14.2998 8 14.2998C10.5129 14.2998 12.5498 12.2629 12.5498 9.75V4H13.9502V9.75C13.9502 13.0361 11.2861 15.7002 8 15.7002C4.71391 15.7002 2.0498 13.0361 2.0498 9.75V4.5C2.04981 2.1804 3.9304 0.299806 6.25 0.299805C8.5696 0.299805 10.4502 2.1804 10.4502 4.5V9.75C10.4502 11.1031 9.3531 12.2002 8 12.2002C6.6469 12.2002 5.5498 11.1031 5.5498 9.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_loading_outline_16 */\nexport const IconLoadingOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.871 13.1286C0.0387669 10.2962 0.0387669 5.70383 2.871 2.87141C5.70341 0.0390029 10.2957 0.0391154 13.1282 2.87141L12.1387 3.86094C9.85292 1.57538 6.1469 1.57596 3.86123 3.86163C1.57573 6.14732 1.57573 9.85269 3.86123 12.1384C6.1469 14.424 9.85292 14.4246 12.1387 12.1391L13.1282 13.1286C10.2957 15.9609 5.70341 15.961 2.871 13.1286Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_download_outline_16 */\nexport const IconDownloadOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.3695 11.411L15.1234 12.8866C14.8869 14.3042 13.6603 15.3436 12.223 15.3436H3.77673C2.33958 15.3434 1.1128 14.3042 0.876343 12.8866L0.630249 11.411L2.05408 11.1747L2.29919 12.6493C2.41973 13.3713 3.04475 13.9001 3.77673 13.9003H12.223C12.9551 13.9002 13.58 13.3713 13.7006 12.6493L13.9457 11.1747L15.3695 11.411ZM8.72205 8.994C8.77717 8.93934 8.83792 8.88106 8.90271 8.81627L12.4828 5.23424L13.5043 6.25572L9.92224 9.8358C9.6395 10.1185 9.38763 10.3732 9.15857 10.5575C8.91892 10.7503 8.63953 10.9224 8.2865 10.9784C8.09711 11.0083 7.90363 11.0083 7.71423 10.9784C7.36106 10.9224 7.0809 10.7503 6.84119 10.5575C6.61215 10.3732 6.36022 10.1185 6.07751 9.8358L2.49646 6.25572L3.51697 5.23424L7.09705 8.81627C7.16219 8.88142 7.22331 8.94006 7.27869 8.99498V1.3065H8.72205V8.994Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_play_outline_16 */\nexport const IconPlayOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.1446 8C14.1446 4.6062 11.3938 1.85539 8 1.85539C4.6062 1.85539 1.85539 4.6062 1.85539 8C1.85539 11.3938 4.6062 14.1446 8 14.1446C11.3938 14.1446 14.1446 11.3938 14.1446 8ZM15.511 8C15.511 12.148 12.148 15.511 8 15.511C3.85202 15.511 0.489014 12.148 0.489014 8C0.489014 3.85202 3.85202 0.489014 8 0.489014C12.148 0.489014 15.511 3.85202 15.511 8Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.5617 8.42578C10.852 8.21614 10.852 7.78386 10.5617 7.57422L7.25708 5.18751C6.90974 4.93666 6.42436 5.18484 6.42436 5.61329V10.3867C6.42436 10.8152 6.90974 11.0633 7.25708 10.8125L10.5617 8.42578Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_pause_outline_16 */\nexport const IconPauseOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.1448 8.00024C14.1448 4.60644 11.394 1.85563 8.00024 1.85563C4.60644 1.85563 1.85563 4.60644 1.85563 8.00024C1.85563 11.394 4.60644 14.1448 8.00024 14.1448C11.394 14.1448 14.1448 11.394 14.1448 8.00024ZM15.5112 8.00024C15.5112 12.1482 12.1482 15.5112 8.00024 15.5112C3.85226 15.5112 0.489258 12.1482 0.489258 8.00024C0.489258 3.85226 3.85226 0.489258 8.00024 0.489258C12.1482 0.489258 15.5112 3.85226 15.5112 8.00024Z\"\n fill=\"currentColor\"\n />\n <path d=\"M7.14244 5.14258V10.8569H5.71387V5.14258H7.14244Z\" fill=\"currentColor\" />\n <path d=\"M10.286 5.14258V10.8569H8.85742V5.14258H10.286Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** ic_ds_fullscreen_outline_16 */\nexport const IconFullscreenOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.58875 12.3407L6.59167 8.33777L7.66296 9.40808L3.66003 13.411H7.99988V14.8065H3.05457C2.02633 14.8065 1.19324 13.9734 1.19324 12.9452V7.99988H2.58875V12.3407Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9452 1.19324C13.9734 1.19324 14.8065 2.02633 14.8065 3.05457V7.99988H13.411V3.66003L9.40808 7.66296L8.33777 6.59167L12.3407 2.58875H7.99988V1.19324H12.9452Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_code_outline_16 */\nexport const IconCodeOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.3368 1.53569L11.931 4.43172H14.8086V5.79673H11.7404L11.1962 9.67859H14.2839V11.0436H11.0056L10.4994 14.6529L9.14873 14.4643L9.62731 11.0436H5.75876L5.25252 14.6529L3.90186 14.4643L4.38043 11.0436H1.69141V9.67859H4.57104L5.11417 5.79673H2.21609V4.43172H5.30581L5.73724 1.34713L7.08995 1.53569L6.68414 4.43172H10.5527L10.9841 1.34713L12.3368 1.53569ZM5.94937 9.67859H9.81791L10.361 5.79673H6.49353L5.94937 9.67859Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_cordis_plugin_outline_14 */\nexport const IconCordisPluginOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_1840_45990)\">\n <path\n d=\"M3.03426 5.66661L1.70084 7.00003L3.0315 8.33069L2.14762 9.21457L-0.0669245 7.00003L2.15038 4.78273L3.03426 5.66661ZM7 14.067L4.77924 11.8462L5.66313 10.9623L7 12.2992L8.33342 10.9658L9.2173 11.8496L7 14.067ZM11.8489 9.21803L10.965 8.33414L12.2992 7.00003L10.9623 5.66316L11.8462 4.77927L14.0669 7.00003L11.8489 9.21803ZM8.33066 3.03153L7 1.70087L5.66589 3.03498L4.782 2.1511L7 -0.0668945L9.21454 2.14765L8.33066 3.03153Z\"\n fill=\"currentColor\"\n />\n <rect x=\"5.98535\" y=\"5.98535\" width=\"2.02942\" height=\"2.02942\" fill=\"currentColor\" />\n </g>\n <defs>\n <clipPath id=\"clip0_1840_45990\">\n <rect width=\"14\" height=\"14\" fill=\"currentColor\" />\n </clipPath>\n </defs>\n </svg>\n)\n\n/** ic_ds_api_outline (figma extract) */\nexport const IconApiOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\">\n <path transform=\"translate(0.6689 1.073)\" d=\"M11.4818 5.57813C11.4818 4.45301 11.4807 3.66237 11.4075 3.05908C11.3359 2.46953 11.2024 2.13852 10.9939 1.89441C10.9247 1.81341 10.8493 1.73801 10.7683 1.66882C10.5242 1.46033 10.1932 1.32686 9.60364 1.25525C9.00034 1.18198 8.20974 1.18091 7.0846 1.18091L5.57813 1.18091C4.45301 1.18091 3.66238 1.18198 3.05908 1.25525C2.46953 1.32686 2.13852 1.46033 1.89441 1.66882C1.81341 1.73801 1.73801 1.81341 1.66882 1.89441C1.46033 2.13852 1.32686 2.46953 1.25525 3.05908C1.18198 3.66238 1.18091 4.45301 1.18091 5.57813L1.18091 6.2771C1.18091 7.40218 1.18197 8.19288 1.25525 8.79614C1.32687 9.38553 1.46036 9.71674 1.66882 9.96082C1.73797 10.0417 1.81347 10.1173 1.89441 10.1864C2.13851 10.3948 2.46965 10.5275 3.05908 10.5991C3.66238 10.6724 4.45298 10.6735 5.57813 10.6735L7.0846 10.6735C8.20977 10.6735 9.00033 10.6724 9.60364 10.5991C10.1931 10.5275 10.5242 10.3948 10.7683 10.1864C10.8493 10.1173 10.9247 10.0417 10.9939 9.96082C11.2024 9.71674 11.3358 9.38553 11.4075 8.79614C11.4808 8.19288 11.4818 7.40218 11.4818 6.2771L11.4818 5.57813ZM12.6627 6.2771C12.6627 7.37222 12.6637 8.247 12.5798 8.93799C12.4942 9.64284 12.3133 10.2359 11.8928 10.7282C11.7834 10.8562 11.6637 10.9751 11.5356 11.0845C11.0434 11.5049 10.4511 11.6867 9.74634 11.7723C9.05525 11.8563 8.17999 11.8552 7.0846 11.8552L5.57813 11.8552C4.48273 11.8552 3.60747 11.8563 2.91638 11.7723C2.21157 11.6867 1.61933 11.5049 1.12708 11.0845C0.99901 10.9751 0.879281 10.8562 0.769898 10.7282C0.349454 10.2359 0.168506 9.64284 0.0828864 8.93799C-0.00101964 8.247 4.88512e-07 7.37222 6.47206e-07 6.2771L6.47206e-07 5.57813C6.47206e-07 4.48273 -0.00106163 3.60747 0.0828864 2.91638C0.168502 2.21168 0.349594 1.61928 0.769898 1.12708C0.879302 0.998981 0.998981 0.879302 1.12708 0.769898C1.61928 0.349594 2.21168 0.168502 2.91638 0.0828864C3.60747 -0.00106163 4.48273 6.47206e-07 5.57813 6.47206e-07L7.0846 6.47206e-07C8.17999 6.47206e-07 9.05525 -0.00106163 9.74634 0.0828864C10.451 0.168505 11.0434 0.349587 11.5356 0.769898C11.6637 0.879302 11.7834 0.998981 11.8928 1.12708C12.3131 1.61928 12.4942 2.21169 12.5798 2.91638C12.6638 3.60747 12.6627 4.48273 12.6627 5.57813L12.6627 6.2771Z\" fill=\"currentColor\"/>\n <path transform=\"translate(0.6689 1.073)\" d=\"M6.02607 5.50955L6.44306 5.9274L3.84284 8.52762L3.425 8.11063L3.00715 7.69278L4.77253 5.9274L3.00715 4.16202L3.84284 3.32633L6.02607 5.50955Z\" fill=\"currentColor\"/>\n <path transform=\"translate(0.6689 1.073)\" d=\"M9.23789 7.35397L9.23789 8.53488L6.96238 8.53488L6.96238 7.35397L9.23789 7.35397Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** ic_ds_personalization_outline_16 (figma extract) */\nexport const IconPersonalizationOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\">\n <path transform=\"translate(1.292 1.3)\" d=\"M10.3232 9.18164C11.2868 9.18164 12.0985 9.82833 12.3506 10.7109L13.415 10.7109L13.415 11.8711L12.3496 11.8711C12.0971 12.7532 11.2864 13.3994 10.3232 13.3994C9.36031 13.3992 8.55012 12.7531 8.29785 11.8711L0 11.8711L0 10.7109L8.29688 10.7109C8.54876 9.82845 9.35988 9.18186 10.3232 9.18164ZM10.3232 10.3418C9.7999 10.3421 9.37534 10.7667 9.375 11.29C9.375 11.8137 9.79969 12.239 10.3232 12.2393C10.847 12.2393 11.2725 11.8138 11.2725 11.29C11.2721 10.7666 10.8468 10.3418 10.3232 10.3418ZM12.4326 11.291C12.4326 11.3549 12.4284 11.418 12.4229 11.4805C12.4287 11.4181 12.4326 11.355 12.4326 11.291ZM8.21484 11.2832C8.21484 11.2856 8.21484 11.2886 8.21484 11.291L8.21484 11.29C8.21484 11.2878 8.21484 11.2855 8.21484 11.2832ZM3.08301 4.59082C4.04605 4.59095 4.85696 5.23717 5.10938 6.11914L13.415 6.11914L13.415 7.2793L5.11035 7.2793C4.85833 8.16202 4.04648 8.80846 3.08301 8.80859C2.11972 8.80843 1.30963 8.16179 1.05762 7.2793L0 7.2793L0 6.11914L1.05762 6.11914C1.30994 5.23728 2.12006 4.59098 3.08301 4.59082ZM3.08301 5.75098C2.55962 5.75117 2.13512 6.17587 2.13477 6.69922C2.13477 7.22287 2.5594 7.64824 3.08301 7.64844C3.60665 7.64828 4.03223 7.2229 4.03223 6.69922C4.03187 6.17585 3.60643 5.75113 3.08301 5.75098ZM5.19238 6.69922C5.19238 6.763 5.18816 6.82633 5.18262 6.88867C5.18846 6.82629 5.19238 6.76313 5.19238 6.69922C5.19236 6.63495 5.18853 6.57152 5.18262 6.50879C5.18826 6.57154 5.19236 6.635 5.19238 6.69922ZM0.982422 6.52344C0.977382 6.58136 0.97463 6.63999 0.974609 6.69922C0.974609 6.75775 0.977496 6.81579 0.982422 6.87305C0.977758 6.81579 0.974609 6.75767 0.974609 6.69922C0.974628 6.64 0.977618 6.58142 0.982422 6.52344ZM10.3232 0C11.2869 0 12.0986 0.646596 12.3506 1.5293L13.415 1.5293L13.415 2.68945L12.3496 2.68945C12.363 2.64266 12.3754 2.59488 12.3857 2.54688C12.1838 3.50118 11.3376 4.21777 10.3232 4.21777C9.36037 4.21756 8.55018 3.57139 8.29785 2.68945L0 2.68945L0 1.5293L8.29688 1.5293C8.5487 0.646717 9.35981 0.00021854 10.3232 0ZM10.3232 1.16016C9.79984 1.16042 9.37524 1.58499 9.375 2.1084C9.375 2.63201 9.79969 3.05735 10.3232 3.05762C10.847 3.05762 11.2725 2.63217 11.2725 2.1084C11.2722 1.58483 10.8469 1.16016 10.3232 1.16016ZM12.4229 2.29883C12.4287 2.23641 12.4326 2.17331 12.4326 2.10938C12.4326 2.17327 12.4284 2.23638 12.4229 2.29883ZM8.21484 2.10938L8.21484 2.1084L8.21484 2.10938ZM8.22266 1.93359C8.21785 1.98897 8.21506 2.04499 8.21484 2.10156C8.21503 2.04501 8.2181 1.98902 8.22266 1.93359ZM8.22266 11.1162C8.2179 11.1713 8.21507 11.227 8.21484 11.2832C8.21504 11.227 8.21814 11.1713 8.22266 11.1162Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** ic_ds_project_add_outline_16 (figma extract) */\nexport const IconProjectAddOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\">\n <path transform=\"translate(9.52 2.52)\" d=\"M3.55246 0L3.55246 2.44252L6 2.44252L6 3.55748L3.55246 3.55748L3.55246 6L2.43834 6L2.43834 3.55748L0 3.55748L0 2.44252L2.43834 2.44252L2.43834 0L3.55246 0Z\" fill=\"currentColor\"/>\n <path transform=\"translate(0.3496 2.35)\" d=\"M4.76367 0C5.36861 1.80598e-05 5.93113 0.310294 6.25488 0.821289L6.78027 1.64941C6.79685 1.67558 6.81791 1.69775 6.83887 1.71973C6.72186 2.15521 6.65702 2.61192 6.65137 3.08301C6.25601 2.96045 5.90909 2.70478 5.68164 2.3457L5.15723 1.5166C5.07183 1.38189 4.92318 1.3008 4.76367 1.30078L2.32422 1.30078C1.7589 1.30078 1.30078 1.7589 1.30078 2.32422L1.30078 10.1338C1.30078 10.6991 1.7589 11.1572 2.32422 11.1572L11.9766 11.1572C12.5419 11.1572 13 10.6991 13 10.1338L13 8.58398C13.4545 8.5135 13.8903 8.38748 14.3008 8.21289L14.3008 10.1338C14.3008 11.4171 13.2598 12.458 11.9766 12.458L2.32422 12.458C1.04093 12.458 0 11.4171 0 10.1338L0 2.32422C0 1.04093 1.04093 0 2.32422 0L4.76367 0Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/**\n * folder_open_16, outline layer only: the duotone original above reads a rung\n * heavier than the …Outline16 family, so an icon-button row mixing them looks\n * mismatched — this is the same geometry without the 20%-opacity inner fill.\n */\nexport const IconFolderOpenOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M5.19629 1.57104C5.81144 1.5711 6.38623 1.8786 6.72754 2.39038L7.19922 3.09839C7.28454 3.22635 7.42824 3.30344 7.58203 3.30347H12.1699C13.5039 3.30348 14.5859 4.38548 14.5859 5.71948V6.62671C15.2694 7.02689 15.6605 7.85012 15.4385 8.68726L14.3848 12.658C14.1037 13.7164 13.1449 14.4527 12.0498 14.4529H2.91699C1.51651 14.4529 0.451662 13.2814 0.501954 11.9519V3.98706C0.501954 2.65305 1.58396 1.57104 2.91797 1.57104H5.19629ZM3.7793 7.75562C3.30994 7.75562 2.89883 8.07153 2.77832 8.52515L1.91602 11.7722C1.74167 12.4291 2.23734 13.073 2.91699 13.073H12.0498C12.5191 13.0728 12.9304 12.757 13.0508 12.3035L14.1045 8.33374C14.1819 8.04202 13.9619 7.756 13.6602 7.75562H3.7793ZM2.91797 2.9519C2.34625 2.9519 1.88281 3.41534 1.88281 3.98706V7.2937C2.33068 6.7269 3.02249 6.37476 3.7793 6.37476H13.2051V5.71948C13.2051 5.14777 12.7416 4.68434 12.1699 4.68433H7.58203C6.96675 4.6843 6.39209 4.37595 6.05078 3.86401L5.5791 3.15601C5.49379 3.02821 5.34995 2.95196 5.19629 2.9519H2.91797Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** folder_open_16 (figma extract): outline at full ink + 20%-opacity inner fill riding the same currentColor. */\nexport const IconFolderOpen16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M5.19629 1.57104C5.81144 1.5711 6.38623 1.8786 6.72754 2.39038L7.19922 3.09839C7.28454 3.22635 7.42824 3.30344 7.58203 3.30347H12.1699C13.5039 3.30348 14.5859 4.38548 14.5859 5.71948V6.62671C15.2694 7.02689 15.6605 7.85012 15.4385 8.68726L14.3848 12.658C14.1037 13.7164 13.1449 14.4527 12.0498 14.4529H2.91699C1.51651 14.4529 0.451662 13.2814 0.501954 11.9519V3.98706C0.501954 2.65305 1.58396 1.57104 2.91797 1.57104H5.19629ZM3.7793 7.75562C3.30994 7.75562 2.89883 8.07153 2.77832 8.52515L1.91602 11.7722C1.74167 12.4291 2.23734 13.073 2.91699 13.073H12.0498C12.5191 13.0728 12.9304 12.757 13.0508 12.3035L14.1045 8.33374C14.1819 8.04202 13.9619 7.756 13.6602 7.75562H3.7793ZM2.91797 2.9519C2.34625 2.9519 1.88281 3.41534 1.88281 3.98706V7.2937C2.33068 6.7269 3.02249 6.37476 3.7793 6.37476H13.2051V5.71948C13.2051 5.14777 12.7416 4.68434 12.1699 4.68433H7.58203C6.96675 4.6843 6.39209 4.37595 6.05078 3.86401L5.5791 3.15601C5.49379 3.02821 5.34995 2.95196 5.19629 2.9519H2.91797Z\" fill=\"currentColor\"/>\n <path opacity=\"0.2\" d=\"M13.6602 7.75525C13.9618 7.7556 14.1815 8.04179 14.1045 8.33337L13.0508 12.3031C12.9304 12.7567 12.5191 13.0725 12.0498 13.0726H2.91701C2.23744 13.0725 1.7417 12.4287 1.91603 11.7719L2.77834 8.52478C2.89898 8.07146 3.31018 7.75532 3.77931 7.75525H13.6602ZM5.1963 2.95154C5.34985 2.95159 5.49377 3.02803 5.57912 3.15564L6.0508 3.86365C6.39205 4.37553 6.96685 4.68385 7.58205 4.68396H12.1699C12.7416 4.68396 13.2049 5.14754 13.2051 5.71912V6.37439H3.77931C3.02267 6.37444 2.33067 6.72671 1.88283 7.29333V3.98669C1.88299 3.4152 2.34649 2.95168 2.91798 2.95154H5.1963Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** folder_close_16 (figma extract) */\nexport const IconFolderClose16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\">\n <path transform=\"translate(1.5 2.429)\" d=\"M5.05582 0.518756L4.50669 0.86654L5.05582 0.518756ZM13 9.4837L13.65 9.4837L13.65 3.53962L13 3.53962L12.35 3.53962L12.35 9.4837L13 9.4837ZM11.3264 1.86603L11.3264 1.21603L6.52313 1.21603L6.52313 1.86603L6.52313 2.51603L11.3264 2.51603L11.3264 1.86603ZM5.58054 1.34727L6.12968 0.999489L5.60495 0.170972L5.05582 0.518756L4.50669 0.86654L5.03141 1.69506L5.58054 1.34727ZM4.11323 1.23058e-13L4.11323 -0.65L1.67359 -0.65L1.67359 5.00699e-14L1.67359 0.65L4.11323 0.65L4.11323 1.23058e-13ZM0 1.67359L-0.65 1.67359L-0.65 9.4837L0 9.4837L0.65 9.4837L0.65 1.67359L0 1.67359ZM11.3264 11.1573L11.3264 10.5073L1.67359 10.5073L1.67359 11.1573L1.67359 11.8073L11.3264 11.8073L11.3264 11.1573ZM0 9.4837L-0.65 9.4837C-0.65 10.767 0.390308 11.8073 1.67359 11.8073L1.67359 11.1573L1.67359 10.5073C1.10828 10.5073 0.65 10.049 0.65 9.4837L0 9.4837ZM1.67359 5.00699e-14L1.67359 -0.65C0.390307 -0.65 -0.65 0.390309 -0.65 1.67359L0 1.67359L0.65 1.67359C0.65 1.10828 1.10828 0.65 1.67359 0.65L1.67359 5.00699e-14ZM5.05582 0.518756L5.60495 0.170972C5.28121 -0.340193 4.71829 -0.65 4.11323 -0.65L4.11323 1.23058e-13L4.11323 0.65C4.27282 0.65 4.4213 0.731715 4.50669 0.86654L5.05582 0.518756ZM6.52313 1.86603L6.52313 1.21603C6.36354 1.21603 6.21507 1.13431 6.12968 0.999489L5.58054 1.34727L5.03141 1.69506C5.35515 2.20622 5.91808 2.51603 6.52313 2.51603L6.52313 1.86603ZM13 3.53962L13.65 3.53962C13.65 2.25634 12.6097 1.21603 11.3264 1.21603L11.3264 1.86603L11.3264 2.51603C11.8917 2.51603 12.35 2.97431 12.35 3.53962L13 3.53962ZM13 9.4837L12.35 9.4837C12.35 10.049 11.8917 10.5073 11.3264 10.5073L11.3264 11.1573L11.3264 11.8073C12.6097 11.8073 13.65 10.767 13.65 9.4837L13 9.4837Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** tree_corner_8x10 (figma extract; session-tree \"L\" connector, stroke geometry pre-expanded) */\nexport const IconTreeCorner8x10 = ({ size = 10, className }: IconProps) => (\n <svg width={(size * 8) / 10} height={size} className={className} viewBox=\"-0.5 0 8.5 10.5\" fill=\"none\">\n <path d=\"M0 0L-0.5 0L-0.5 7L0 7L0.5 7L0.5 0L0 0ZM3 10L3 10.5L8 10.5L8 10L8 9.5L3 9.5L3 10ZM0 7L-0.5 7C-0.5 8.933 1.067 10.5 3 10.5L3 10L3 9.5C1.61929 9.5 0.5 8.38071 0.5 7L0 7Z\" fill=\"currentColor\"/>\n </svg>\n)\n\n/** ic_ds_light_outline_16 */\nexport const IconLightOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.3496 8C11.3496 6.14985 9.85015 4.65039 8 4.65039C6.14985 4.65039 4.65039 6.14985 4.65039 8C4.65039 9.85015 6.14985 11.3496 8 11.3496C9.85015 11.3496 11.3496 9.85015 11.3496 8ZM12.6504 8C12.6504 10.5681 10.5681 12.6504 8 12.6504C5.43188 12.6504 3.34961 10.5681 3.34961 8C3.34961 5.43188 5.43188 3.34961 8 3.34961C10.5681 3.34961 12.6504 5.43188 12.6504 8Z\"\n fill=\"currentColor\"\n />\n <path d=\"M8.65039 0.5V2.5H7.34961V0.5H8.65039Z\" fill=\"currentColor\" />\n <path d=\"M8.65039 13.5V15.5H7.34961V13.5H8.65039Z\" fill=\"currentColor\" />\n <path\n d=\"M3.15808 2.24035L4.57229 3.65456L3.6525 4.57435L2.23829 3.16014L3.15808 2.24035Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.3505 11.4327L13.7647 12.8469L12.8449 13.7667L11.4307 12.3525L12.3505 11.4327Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.24537 12.8469L3.65958 11.4327L4.57937 12.3525L3.16516 13.7667L2.24537 12.8469Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.4377 3.65455L12.852 2.24033L13.7718 3.16012L12.3575 4.57434L11.4377 3.65455Z\"\n fill=\"currentColor\"\n />\n <path d=\"M0.5 7.35461H2.5V8.6554H0.5L0.5 7.35461Z\" fill=\"currentColor\" />\n <path d=\"M13.5 7.35461H15.5V8.6554H13.5V7.35461Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** ic_ds_dark_outline_16 */\nexport const IconDarkOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13.2764 9.52324C12.5607 9.97754 11.7177 10.242 10.7812 10.242C8.11386 10.2419 5.95042 8.07997 5.9502 5.41289C5.9502 4.48128 6.21453 3.61071 6.67188 2.87285C4.30332 3.4658 2.54992 5.60845 2.5498 8.16093C2.5498 11.1712 4.99103 13.6102 8 13.6102C10.5383 13.6102 12.6709 11.8724 13.2764 9.52324ZM7.05078 5.41289C7.051 7.47224 8.72116 9.1423 10.7812 9.14238C11.9248 9.14238 12.887 8.63397 13.5781 7.8084C13.7266 7.63106 13.9701 7.56547 14.1875 7.64433C14.4049 7.72329 14.5497 7.9297 14.5498 8.16093C14.5498 11.7766 11.6161 14.7098 8 14.7098C4.38402 14.7098 1.4502 11.7792 1.4502 8.16093C1.45033 4.54322 4.3812 1.61015 8 1.61015C8.23027 1.61015 8.43585 1.75352 8.51562 1.96953C8.59536 2.18554 8.53241 2.42829 8.35742 2.57793C7.55573 3.26311 7.05078 4.27876 7.05078 5.41289Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_followsystem_outline_16 */\nexport const IconFollowsystemOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12.1665 13.5811V14.7803H3.66651V13.5811H12.1665Z\" fill=\"currentColor\" />\n <path\n d=\"M13.4453 7.02379C13.4453 6.04702 13.4452 5.3616 13.3887 4.83434C13.3333 4.31828 13.2302 4.02378 13.0723 3.80309C12.9446 3.62475 12.7877 3.46883 12.6094 3.34117C12.3887 3.18328 12.0942 3.08007 11.5781 3.02477C11.0508 2.96829 10.3655 2.96715 9.38867 2.96715H6.61035C5.63359 2.96715 4.94816 2.96827 4.4209 3.02477C3.90486 3.0801 3.61034 3.18321 3.38965 3.34117C3.21143 3.46878 3.05534 3.62487 2.92774 3.80309C2.76977 4.02377 2.66667 4.3183 2.61133 4.83434C2.55483 5.3616 2.55371 6.04702 2.55371 7.02379C2.55371 8.0006 2.55485 8.68596 2.61133 9.21324C2.66663 9.72936 2.76983 10.0238 2.92774 10.2445C3.0554 10.4228 3.21131 10.5797 3.38965 10.7074C3.61034 10.8654 3.90484 10.9685 4.4209 11.0238C4.94816 11.0803 5.63359 11.0804 6.61035 11.0804H9.38867C10.3654 11.0804 11.0508 11.0803 11.5781 11.0238C12.0941 10.9685 12.3887 10.8652 12.6094 10.7074C12.7877 10.5797 12.9446 10.4229 13.0723 10.2445C13.2301 10.0238 13.3334 9.72927 13.3887 9.21324C13.4452 8.68596 13.4453 8.00058 13.4453 7.02379ZM14.6455 7.02379C14.6455 7.97428 14.646 8.73509 14.5811 9.34117C14.5149 9.95828 14.3756 10.4858 14.0479 10.9437C13.8436 11.229 13.5938 11.4788 13.3086 11.683C12.8507 12.0108 12.3232 12.15 11.7061 12.2162C11.1 12.2811 10.3391 12.2806 9.38867 12.2806H6.61035C5.66018 12.2806 4.89991 12.2811 4.29395 12.2162C3.67684 12.15 3.14935 12.0108 2.69141 11.683C2.40613 11.4788 2.15639 11.229 1.95215 10.9437C1.62436 10.4858 1.4841 9.95828 1.41797 9.34117C1.35305 8.73511 1.35449 7.97424 1.35449 7.02379C1.35449 6.07366 1.35308 5.31333 1.41797 4.70738C1.4841 4.09028 1.62436 3.56279 1.95215 3.10485C2.15638 2.81956 2.40613 2.56982 2.69141 2.36559C3.14935 2.03779 3.67684 1.89753 4.29395 1.83141C4.8999 1.76652 5.66022 1.76793 6.61035 1.76793H9.38867C10.3391 1.76793 11.1 1.76649 11.7061 1.83141C12.3232 1.89753 12.8507 2.03779 13.3086 2.36559C13.5939 2.56982 13.8436 2.81957 14.0479 3.10485C14.3756 3.56279 14.5149 4.09028 14.5811 4.70738C14.646 5.31335 14.6455 6.07362 14.6455 7.02379Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_data_outline_16 */\nexport const IconDataOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.0997 8.54554C12.2905 8.54989 12.3541 8.58056 12.4535 8.74614L12.8849 9.46387C12.9851 9.63071 13.0464 9.66013 13.2388 9.66447H14.1138C14.3417 9.66448 14.3512 9.66937 14.4686 9.86507L14.892 10.5717C14.9942 10.7422 14.9948 10.8247 14.892 10.9961L14.4756 11.6906C14.3741 11.8677 14.3694 11.9379 14.4756 12.115L14.892 12.8096C14.9942 12.9801 14.9947 13.0625 14.892 13.234L14.4686 13.9406C14.3643 14.1028 14.3063 14.1354 14.1138 14.1412H13.2388C13.0465 14.1456 12.985 14.1752 12.8849 14.3418L12.4535 15.0595C12.353 15.2195 12.2895 15.2558 12.0997 15.2601H11.2237C10.9962 15.2601 10.9871 15.2548 10.8699 15.0595L10.4384 14.3418C10.3383 14.175 10.2767 14.1456 10.0846 14.1412H9.2096C9.01854 14.1355 8.95761 14.1006 8.85477 13.9406L8.43139 13.234C8.32562 13.0576 8.33148 12.9862 8.43139 12.8096L8.84771 12.115C8.95165 11.9416 8.94659 11.863 8.84771 11.6906L8.43139 10.9961C8.32767 10.8232 8.33411 10.7437 8.43139 10.5717L8.85477 9.86507C8.95447 9.69891 9.01875 9.67017 9.2096 9.66447H10.0846C10.2741 9.66441 10.3414 9.62547 10.4384 9.46387L10.8699 8.74614C10.987 8.55106 10.9963 8.54554 11.2237 8.54554H12.0997ZM11.6612 10.232C11.3326 10.7798 10.8155 11.0948 10.1743 11.106C10.4443 11.61 10.4425 12.1976 10.1743 12.6987C10.803 12.7096 11.3391 13.0359 11.6612 13.5727C11.9855 13.0323 12.5131 12.7098 13.148 12.6987C12.879 12.196 12.8789 11.6086 13.148 11.106C12.5076 11.0948 11.9894 10.7794 11.6612 10.232Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.51205 0.790627C9.19055 0.790649 10.7401 1.0691 11.892 1.54364C12.4664 1.78029 12.9719 2.07885 13.3436 2.4408C13.7171 2.80467 13.9916 3.27253 13.9918 3.82384V7.90442C13.6067 7.69532 13.1907 7.53597 12.7529 7.43366V5.66454C12.4928 5.82898 12.2028 5.97601 11.892 6.10405C10.74 6.57865 9.19071 6.85706 7.51205 6.85706C5.8337 6.85703 4.285 6.57852 3.13309 6.10405C2.82215 5.97593 2.53164 5.8291 2.27121 5.66454V7.4135C2.27134 7.75678 2.6066 8.27106 3.62502 8.73405C4.58641 9.17097 5.95762 9.45591 7.50499 9.45681C7.24582 9.83133 7.03684 10.2434 6.88706 10.6826C5.44388 10.6162 4.12516 10.3216 3.11192 9.86104C2.81708 9.72698 2.53185 9.56866 2.27121 9.38928V11.2542C2.27158 11.5974 2.60697 12.1109 3.62502 12.5737C4.41933 12.9347 5.4937 13.1898 6.71569 13.2693C6.80349 13.7128 6.9513 14.1345 7.14814 14.5273C5.60324 14.4862 4.18593 14.1889 3.11192 13.7007C2.01039 13.1998 1.03366 12.3814 1.03333 11.2542V3.82384C1.03352 3.27273 1.30721 2.80461 1.68049 2.4408C2.05211 2.07893 2.55887 1.78026 3.13309 1.54364C4.28492 1.06926 5.83393 0.790683 7.51205 0.790627ZM7.51205 2.02851C5.95492 2.02857 4.57354 2.29079 3.60486 2.68979C3.11958 2.88977 2.76667 3.11253 2.5454 3.32788C2.32671 3.54101 2.2714 3.7089 2.27121 3.82384C2.27121 3.93882 2.32624 4.10625 2.5454 4.3198C2.76667 4.53527 3.11927 4.75781 3.60486 4.9579C4.5736 5.35699 5.95467 5.61914 7.51205 5.61918C9.06942 5.61918 10.4505 5.35695 11.4192 4.9579C11.9051 4.75773 12.2584 4.53536 12.4797 4.3198C12.6988 4.10627 12.7529 3.93882 12.7529 3.82384C12.7527 3.70889 12.6984 3.54104 12.4797 3.32788C12.2584 3.11239 11.9049 2.88989 11.4192 2.68979C10.4505 2.29079 9.06925 2.02853 7.51205 2.02851Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_send_outline_14 (figma extract): thin-stroke upward send arrow. */\nexport const IconSendOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.24707 1.01771C7.52897 1.07653 7.77619 1.19694 8.00391 1.38001C8.19202 1.53136 8.39884 1.73784 8.61914 1.95814L12.6396 5.9806L11.6299 6.99134L7.71484 3.0763V13.0001H6.28516V3.0763L2.36914 6.99134L1.35938 5.9806L5.38086 1.95814C5.60116 1.73784 5.80798 1.53136 5.99609 1.38001C6.19476 1.22027 6.4385 1.06739 6.75195 1.01771C6.91296 0.992304 7.07471 0.997504 7.24707 1.01771Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_queue_outline_14 (figma extract): open chat bubble with two queued lines. */\nexport const IconQueueOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00049 0.199829C3.24488 0.199829 0.199952 3.24408 0.199707 6.99963C0.199707 8.0414 0.434087 9.03061 0.854004 9.91467L1.11279 10.4576L2.19775 9.94202L1.94092 9.39905L1.81787 9.12268C1.5498 8.46885 1.40186 7.75171 1.40186 6.99963C1.4021 3.90808 3.90888 1.40198 7.00049 1.40198C10.0919 1.40219 12.5979 3.90821 12.5981 6.99963C12.5981 10.0913 10.0921 12.5981 7.00049 12.5983C6.36734 12.5983 5.90348 12.5535 5.49268 12.4401C5.08803 12.3283 4.7041 12.1414 4.24463 11.8209C3.57111 11.3511 2.60588 11.1855 1.81006 11.6881L1.79736 11.6959L1.78467 11.7047L1.25537 12.0778L1.65381 13.2672L2.46045 12.6989C2.75029 12.5214 3.18004 12.5442 3.55615 12.8063C4.10063 13.1861 4.60863 13.4423 5.17334 13.5983C5.73194 13.7525 6.31665 13.8004 7.00049 13.8004C10.7561 13.8002 13.8003 10.7553 13.8003 6.99963C13.8 3.24421 10.7559 0.200041 7.00049 0.199829ZM3.81201 7.47327V8.67542H7.11572V7.47327H3.81201ZM3.81201 6.34924H10.2173V5.14709H3.81201V6.34924Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_checklist_outline_14 (figma extract): two rings + two list bars. */\nexport const IconChecklistOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.3277 9.69629V10.976H7.28086V9.69629H13.3277Z\" fill=\"currentColor\" />\n <path d=\"M13.3277 2.97256V4.25225H7.28086V2.97256H13.3277Z\" fill=\"currentColor\" />\n <path d=\"M4.64512 10.336C4.64505 9.62755 4.07081 9.05322 3.3623 9.05322C2.65386 9.05329 2.07956 9.62759 2.07949 10.336C2.07949 11.0445 2.65382 11.6188 3.3623 11.6188C4.07085 11.6188 4.64512 11.0446 4.64512 10.336ZM5.92559 10.336C5.92559 11.7515 4.77777 12.8993 3.3623 12.8993C1.94689 12.8993 0.799805 11.7515 0.799805 10.336C0.799871 8.92066 1.94693 7.7736 3.3623 7.77354C4.77773 7.77354 5.92552 8.92062 5.92559 10.336Z\" fill=\"currentColor\" />\n <path d=\"M4.64531 3.6123C4.6453 2.90382 4.07098 2.32949 3.3625 2.32949C2.65403 2.32951 2.0797 2.90383 2.07969 3.6123C2.07969 4.32079 2.65402 4.8951 3.3625 4.89512C4.07099 4.89512 4.64531 4.3208 4.64531 3.6123ZM5.925 3.6123C5.925 5.02772 4.77792 6.1748 3.3625 6.1748C1.9471 6.17479 0.8 5.02771 0.8 3.6123C0.800013 2.19691 1.9471 1.04982 3.3625 1.0498C4.77791 1.0498 5.92499 2.1969 5.925 3.6123Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** ic_ds_List_Pen_outline_16 */\nexport const IconListPenOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M10.8239 3.54733V4.78443H4.63437V3.54733H10.8239Z\" fill=\"currentColor\" />\n <path d=\"M10.8239 6.12629V7.36338H4.63437V6.12629H10.8239Z\" fill=\"currentColor\" />\n <path d=\"M9.073 8.70524V9.94234H4.63437V8.70524H9.073Z\" fill=\"currentColor\" />\n <path\n d=\"M9.13321 0.573526C10.0076 0.573525 10.7179 0.572522 11.285 0.63397C11.8645 0.696791 12.3743 0.831648 12.8193 1.1548C13.0776 1.34246 13.3056 1.57047 13.4933 1.82875C13.8164 2.2737 13.9513 2.7836 14.0141 3.36303C14.0755 3.93015 14.0745 4.64049 14.0745 5.51485V6.1757L12.7327 7.5629V5.51485C12.7327 4.61092 12.732 3.9862 12.6803 3.5081C12.6298 3.0427 12.5379 2.79497 12.4083 2.61654C12.3033 2.47211 12.176 2.34472 12.0315 2.23977C11.8531 2.11016 11.6054 2.01823 11.14 1.96777C10.6618 1.91601 10.0372 1.91539 9.13321 1.91539H6.32658C5.42262 1.91539 4.79796 1.91604 4.31983 1.96777C3.85451 2.01819 3.60672 2.11029 3.42827 2.23977C3.28392 2.34465 3.15643 2.47223 3.0515 2.61654C2.9219 2.79496 2.82997 3.04274 2.7795 3.5081C2.72774 3.9862 2.72712 4.61092 2.72712 5.51485V10.023C2.72712 10.9273 2.72773 11.5525 2.7795 12.0307C2.82992 12.4959 2.92205 12.7429 3.0515 12.9213C3.15645 13.0657 3.28384 13.1931 3.42827 13.2981C3.60676 13.4277 3.85408 13.5206 4.31983 13.5711C4.79797 13.6228 5.42259 13.6234 6.32658 13.6234H6.87057L5.57707 14.9593C5.03527 14.9556 4.57031 14.9467 4.17476 14.9039C3.59508 14.841 3.08558 14.7063 2.64048 14.383C2.38215 14.1953 2.15422 13.9684 1.96653 13.7101C1.64319 13.2649 1.50851 12.7546 1.4457 12.1748C1.38432 11.6076 1.38525 10.8974 1.38525 10.023V5.51485C1.38525 4.64049 1.38426 3.93015 1.4457 3.36303C1.50853 2.78363 1.64341 2.27368 1.96653 1.82875C2.15417 1.57059 2.38228 1.34239 2.64048 1.1548C3.08544 0.831805 3.59533 0.696762 4.17476 0.63397C4.74193 0.572552 5.45218 0.573525 6.32658 0.573526H9.13321Z\"\n fill=\"currentColor\"\n />\n <path d=\"M14.2193 14.9553H10.0124L11.3744 13.6134H14.2193V14.9553Z\" fill=\"currentColor\" />\n <path\n d=\"M8.24493 13.3711L7.49015 14.8806C7.40148 15.058 7.58961 15.2461 7.76695 15.1574L9.27651 14.4027L14.6147 9.09934L13.5832 8.06775L8.24493 13.3711Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_goal_outline_16 (goal strip leading glyph: dartboard with a landed arrow) */\nexport const IconGoalOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8 0C8.31451 0 8.62464 0.019379 8.92969 0.0546875C8.48228 0.403371 8.0952 0.825758 7.78809 1.30469C4.18586 1.41664 1.2998 4.37061 1.2998 8C1.2998 11.7003 4.29969 14.7002 8 14.7002C11.6297 14.7002 14.5829 11.8136 14.6943 8.21094C15.1734 7.90377 15.5956 7.51688 15.9443 7.06934C15.9797 7.37473 16 7.68512 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM7.0166 3.6084C7.00658 3.73765 7 3.86817 7 4C7 4.31845 7.03098 4.62973 7.08789 4.93164C5.76489 5.32438 4.7998 6.54958 4.7998 8C4.7998 9.76731 6.23269 11.2002 8 11.2002C9.45065 11.2002 10.6749 10.2345 11.0674 8.91113C11.3696 8.96818 11.6812 9 12 9C12.1315 9 12.2617 8.99239 12.3906 8.98242C11.9423 10.995 10.1477 12.5 8 12.5C5.51472 12.5 3.5 10.4853 3.5 8C3.5 5.85255 5.00435 4.05702 7.0166 3.6084Z\"\n fill=\"currentColor\"\n />\n <path d=\"M7.5 8.62109L9.12109 7\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path\n d=\"M9.08245 3.35798L11.8651 0.575334C11.895 0.545384 11.9463 0.56391 11.9502 0.606086L12.2362 3.69859C12.2384 3.72259 12.2574 3.74159 12.2814 3.74378L15.3697 4.02583C15.4119 4.02968 15.4305 4.08101 15.4005 4.11098L12.618 6.89351C12.6086 6.90289 12.5959 6.90816 12.5826 6.90816L9.11781 6.90815C9.09019 6.90816 9.06781 6.88577 9.06781 6.85816L9.06781 3.39333C9.06781 3.38007 9.07308 3.36735 9.08245 3.35798Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n />\n </svg>\n)\n\n/** sparkle_16 (Others tool-row leading glyph; hand-authored three-star\n * approximation — the figma 43:31850 glyph is an SF Symbols \"sparkles\" text glyph,\n * not extractable as vector data) */\nexport const IconSparkle16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6.1 3.1Q6.6 7.8 11.3 8.3Q6.6 8.8 6.1 13.5Q5.6 8.8 0.9 8.3Q5.6 7.8 6.1 3.1Z\" fill=\"currentColor\" />\n <path d=\"M11.9 1Q12.2 3.7 14.9 4Q12.2 4.3 11.9 7Q11.6 4.3 8.9 4Q11.6 3.7 11.9 1Z\" fill=\"currentColor\" />\n <path d=\"M12.5 9.4Q12.7 11.4 14.7 11.6Q12.7 11.8 12.5 13.8Q12.3 11.8 10.3 11.6Q12.3 11.4 12.5 9.4Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** inspect_outline_12 (shared tool-row trajectory affordance glyph) */\nexport const IconInspectOutline12 = ({ size = 12, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden>\n <path d=\"M16 8L10.8571 12V10.552L14.1383 8L10.8571 5.448V4L16 8ZM5.14286 10.552L1.86171 8L5.14286 5.448V4L0 8L5.14286 12V10.552ZM9.02514 4L5.59657 12H6.84057L10.2691 4H9.02514Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** skill_outline_16 (skill tool-row glyph; document instructions + sparkle) */\nexport const IconSkillOutline16 = ({ size = 16, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.5113 15.4067C12.4395 15.6249 12.1308 15.6249 12.059 15.4067L11.643 14.1416C11.454 13.567 11.0033 13.1164 10.4288 12.9274L9.16369 12.5113C8.94544 12.4395 8.94544 12.1308 9.16369 12.059L10.4288 11.643C11.0033 11.454 11.454 11.0033 11.643 10.4288L12.059 9.16369C12.1308 8.94544 12.4395 8.94544 12.5113 9.16369L12.9274 10.4288C13.1164 11.0033 13.567 11.454 14.1416 11.643L15.4067 12.059C15.6249 12.1308 15.6249 12.4395 15.4067 12.5113L14.1416 12.9274C13.567 13.1164 13.1164 13.567 12.9274 14.1416L12.5113 15.4067Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.02246 0.546878C9.9822 0.546878 10.7564 0.545403 11.374 0.612307C12.0042 0.680586 12.5515 0.826244 13.0273 1.17188C13.3052 1.37376 13.5501 1.61868 13.752 1.89649C14.0975 2.37225 14.2432 2.91984 14.3115 3.54981C14.3784 4.16727 14.377 4.94206 14.377 5.90137V8.51367C13.9611 8.29533 13.5071 8.13985 13.0273 8.06055V5.90137C13.0273 4.9121 13.0259 4.22322 12.9688 3.69532C12.9129 3.18044 12.8098 2.89782 12.6592 2.69043C12.5406 2.52724 12.3966 2.38326 12.2334 2.26465C12.026 2.11404 11.7437 2.0109 11.2285 1.95508C10.7005 1.89789 10.0122 1.89649 9.02246 1.89649H6.55371C5.56395 1.89649 4.87569 1.89787 4.34766 1.95508C3.83242 2.01092 3.55022 2.11398 3.34278 2.26465C3.17953 2.38329 3.03564 2.52719 2.91699 2.69043C2.76642 2.89782 2.66325 3.18042 2.60742 3.69532C2.55027 4.22322 2.54883 4.9121 2.54883 5.90137V10.0986C2.54883 11.0878 2.55031 11.7768 2.60742 12.3047C2.66326 12.8196 2.76642 13.1032 2.91699 13.3105C3.03558 13.4736 3.17966 13.6178 3.34278 13.7363C3.5502 13.8869 3.83265 13.9901 4.34766 14.0459C4.87568 14.1031 5.56398 14.1035 6.55371 14.1035H8.08399C8.27443 14.6025 8.55077 15.0585 8.89551 15.4541H6.55371C5.59402 15.4541 4.81976 15.4546 4.20215 15.3877C3.57204 15.3194 3.02468 15.1738 2.54883 14.8281C2.27111 14.6263 2.02606 14.3813 1.82422 14.1035C1.47883 13.6278 1.33293 13.08 1.26465 12.4502C1.19783 11.8327 1.19922 11.0579 1.19922 10.0986V5.90137C1.19922 4.94206 1.1978 4.16727 1.26465 3.54981C1.33295 2.91984 1.47867 2.37225 1.82422 1.89649C2.02613 1.61864 2.27098 1.37379 2.54883 1.17188C3.02472 0.826181 3.57197 0.6806 4.20215 0.612307C4.81976 0.545393 5.594 0.546877 6.55371 0.546878H9.02246ZM9.19629 9.14649H4.5459V7.84571H9.19629V9.14649ZM11.0303 6.10645H4.5459V4.80567H11.0303V6.10645Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\n/** ic_ds_question_outline_14 (figma extract): ring + question glyph. */\nexport const IconQuestionOutline14 = ({ size = 14, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.5757 7.00012C12.5757 3.92085 10.0794 1.42463 7.00012 1.42456C3.9208 1.42456 1.42456 3.9208 1.42456 7.00012C1.42463 10.0794 3.92085 12.5757 7.00012 12.5757C10.0793 12.5756 12.5756 10.0793 12.5757 7.00012ZM13.8002 7.00012C13.8001 10.7559 10.7559 13.8001 7.00012 13.8002C3.2443 13.8002 0.199291 10.7559 0.199219 7.00012C0.199219 3.24426 3.24426 0.199219 7.00012 0.199219C10.7559 0.199291 13.8002 3.2443 13.8002 7.00012Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.18042 8.68184C6.18043 8.09153 6.32893 7.34655 6.92127 6.8481C7.28566 6.54148 7.76104 6.27318 8.0022 6.10811C8.28964 5.91137 8.42234 5.76562 8.48328 5.58944C8.57774 5.31609 8.53121 5.00904 8.34912 4.76741C8.17409 4.53522 7.83879 4.32222 7.28186 4.32222C5.99668 4.32225 5.46969 5.11832 5.46949 5.78939H4.24414C4.24436 4.39942 5.36327 3.09691 7.28186 3.09688C8.17773 3.09688 8.89489 3.45606 9.32752 4.02999C9.75287 4.59438 9.86938 5.32775 9.64026 5.99019C9.44847 6.5444 9.04722 6.87743 8.69434 7.11898C8.29506 7.39226 8.02318 7.52192 7.70996 7.78548C7.51943 7.94582 7.40577 8.24899 7.40577 8.68184V8.75533H6.18042V8.68184Z\"\n fill=\"currentColor\"\n />\n <path d=\"M7.39455 9.44026V10.8109H6.16921V9.44026H7.39455Z\" fill=\"currentColor\" />\n </svg>\n)\n\n/** ic_ds_archive_outline_20 (figma extract): lidded box + label slot. The export's\n * 0.11px stroke ring around the box contour is dropped — it restates the same\n * contour in the same ink, which currentColor already carries. */\nexport const IconArchiveOutline20 = ({ size = 20, className }: IconProps) => (\n <svg width={size} height={size} className={className} viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.8659 2.05975C17.2603 2.05995 18.3913 3.19096 18.3914 4.58527V5.4874C18.3914 6.02747 18.2192 6.52672 17.9303 6.93735C17.9336 6.96524 17.9388 6.99318 17.9388 7.02195V12.8884C17.9388 13.6345 17.9395 14.2379 17.8996 14.7254C17.8642 15.1593 17.7936 15.5499 17.6373 15.9141L17.5654 16.0685C17.278 16.6328 16.8405 17.1046 16.3038 17.434L16.0679 17.5661C15.66 17.7739 15.2196 17.8598 14.7237 17.9003C14.2362 17.9401 13.6327 17.9405 12.8867 17.9405H7.11122C6.36511 17.9405 5.76171 17.9401 5.27418 17.9003C4.84051 17.8649 4.44949 17.7952 4.08545 17.6391L3.93104 17.5661C3.36673 17.2785 2.89392 16.8414 2.56465 16.3044L2.43245 16.0685C2.22473 15.6608 2.13878 15.2211 2.09825 14.7254C2.05841 14.2379 2.05912 13.6345 2.05912 12.8884V7.02195C2.05912 6.99284 2.06422 6.96449 2.06758 6.93629C1.77931 6.52592 1.60858 6.02687 1.60858 5.4874V4.58527C1.60876 3.19084 2.73962 2.05975 4.1341 2.05975H15.8659ZM16.4984 7.92936C16.296 7.98169 16.0847 8.01288 15.8659 8.01291H4.1341C3.91478 8.01291 3.70246 7.98194 3.49955 7.92936V12.8884C3.49955 13.6582 3.50053 14.1927 3.53445 14.608C3.56769 15.0146 3.62923 15.244 3.71635 15.415L3.7925 15.5514C3.98339 15.8627 4.25749 16.1165 4.58464 16.2833L4.72529 16.3435C4.88095 16.3993 5.08638 16.4402 5.39158 16.4651C5.80685 16.4991 6.34138 16.5001 7.11122 16.5001H12.8867C13.6564 16.5001 14.1911 16.499 14.6063 16.4651C15.0128 16.432 15.2423 16.3703 15.4133 16.2833L15.5508 16.2061C15.8618 16.0152 16.116 15.7419 16.2827 15.415L16.3429 15.2732C16.3985 15.1177 16.4396 14.9128 16.4645 14.608C16.4985 14.1927 16.4984 13.6583 16.4984 12.8884V7.92936ZM4.1341 3.50019C3.53511 3.50019 3.0492 3.98631 3.04902 4.58527V5.4874C3.04902 6.08649 3.535 6.57248 4.1341 6.57248H15.8659C16.4648 6.57228 16.951 6.08638 16.951 5.4874V4.58527C16.9509 3.98644 16.4647 3.50038 15.8659 3.50019H4.1341Z\"\n fill=\"currentColor\"\n />\n <path d=\"M12.7962 12.5661V11.0832H7.20548V12.5661L12.7962 12.5661Z\" fill=\"currentColor\" />\n </svg>\n)\n","import { type KeyboardEvent, type MouseEvent, type ReactNode } from 'react'\nimport clsx from 'clsx'\nimport { IconChevronDownOutline14 } from './icons/index.tsx'\nimport css from './DisclosureRow.module.css'\n\n/** Shared 24px disclosure chrome for compact flow rows. */\nexport interface DisclosureRowProps {\n icon: ReactNode\n title: string\n open: boolean\n expandable: boolean\n onToggle: () => void\n /** Makes the complete title row the disclosure target. */\n expandOnRowClick?: boolean | undefined\n /** Replaces the collapsed icon with a chevron while the row is hovered. */\n previewChevron?: boolean | undefined\n /** Keeps `collapsedContent` inline while open. */\n keepContentWhenOpen?: boolean | undefined\n collapsedContent?: ReactNode\n children?: ReactNode\n className?: string | undefined\n rowClassName?: string | undefined\n leadingClassName?: string | undefined\n chevronClassName?: string | undefined\n titleClassName?: string | undefined\n}\n\n/**\n * Render one disclosure header and its controlled expanded content.\n * @param props - Visual content, controlled state, and interaction policy.\n * @returns the disclosure row.\n */\nexport function DisclosureRow({\n icon,\n title,\n open,\n expandable,\n onToggle,\n expandOnRowClick = false,\n previewChevron = expandable,\n keepContentWhenOpen = false,\n collapsedContent,\n children,\n className,\n rowClassName,\n leadingClassName,\n chevronClassName,\n titleClassName,\n}: DisclosureRowProps) {\n const rowExpands = expandable && expandOnRowClick\n const toggleFromLeading = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation()\n onToggle()\n }\n const toggleFromKeyboard = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!rowExpands || (event.key !== 'Enter' && event.key !== ' ')) return\n event.preventDefault()\n onToggle()\n }\n const collapsedLeading = previewChevron\n ? (\n <>\n <span className={css.iconIdle}>{icon}</span>\n <IconChevronDownOutline14 className={clsx(chevronClassName, css.chevronHover)} />\n </>\n )\n : icon\n const leading = open\n ? <IconChevronDownOutline14 className={chevronClassName} />\n : collapsedLeading\n\n return (\n <div className={clsx(css.root, className)} data-open={open || undefined}>\n <div\n className={clsx(css.row, rowClassName)}\n data-disclosure-row\n data-expandable={rowExpands || undefined}\n role={rowExpands ? 'button' : undefined}\n tabIndex={rowExpands ? 0 : undefined}\n aria-expanded={rowExpands ? open : undefined}\n onClick={rowExpands ? onToggle : undefined}\n onKeyDown={rowExpands ? toggleFromKeyboard : undefined}\n >\n {expandable && !rowExpands ? (\n <button\n type=\"button\"\n className={clsx(css.leading, leadingClassName)}\n aria-expanded={open}\n onClick={toggleFromLeading}\n >\n {leading}\n </button>\n ) : (\n <span className={clsx(css.leading, leadingClassName)}>\n {leading}\n </span>\n )}\n <span className={clsx(css.title, titleClassName)}>{title}</span>\n {(keepContentWhenOpen || !open) && collapsedContent}\n </div>\n {open && children}\n </div>\n )\n}\n","// Button: token-styled button atom. Variants map to the --dsw-alias-button-*\n// fill families; no framework imports, all behavior via props.\n\nimport type { ButtonHTMLAttributes, ReactNode } from 'react'\nimport clsx from 'clsx'\nimport css from './Button.module.css'\n\n/** Visual variant, each backed by its --dsw-alias-button-* token family. */\nexport type ButtonVariant = 'primary' | 'ghost' | 'outline' | 'toolbar'\n\n/**\n * Render a button.\n * @param props.variant - visual family (default 'ghost').\n * @param props.size - 'md' 36px capsule (figma Button) or 'sm' 28px compact.\n * @param props.icon - optional leading 16px icon node.\n * @returns the button element; native button attributes pass through.\n */\nexport function Button({ variant = 'ghost', size = 'md', icon, className, children, ...rest }: {\n variant?: ButtonVariant\n size?: 'md' | 'sm'\n icon?: ReactNode\n className?: string | undefined\n children?: ReactNode\n} & ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button type=\"button\" className={clsx(css.button, css[variant], css[size], className)} {...rest}>\n {icon != null && <span className={css.icon}>{icon}</span>}\n {children}\n </button>\n )\n}\n","// Pill: small rounded label chip (view switcher tabs, filters, badges).\n\nimport type { ButtonHTMLAttributes, ReactNode } from 'react'\nimport clsx from 'clsx'\nimport css from './Pill.module.css'\n\n/**\n * Render a pill chip. Interactive when onClick is supplied (renders a button);\n * otherwise a static span.\n * @param props.active - selected/active visual state.\n * @returns pill element.\n */\nexport function Pill({ active = false, className, children, onClick, ...rest }: {\n active?: boolean\n // `| undefined` so a caller can forward an optional class straight through\n // under exactOptionalPropertyTypes (a CSS-module lookup is string|undefined).\n className?: string | undefined\n children?: ReactNode\n} & ButtonHTMLAttributes<HTMLButtonElement>) {\n if (!onClick) {\n return <span className={clsx(css.pill, active && css.active, className)}>{children}</span>\n }\n return (\n <button\n type=\"button\"\n className={clsx(css.pill, css.interactive, active && css.active, className)}\n onClick={onClick}\n {...rest}\n >\n {children}\n </button>\n )\n}\n","// Input: single-line text input atom (search boxes, inline forms). Composer\n// textareas are NOT this atom — they live with the conversation package.\n\nimport type { InputHTMLAttributes, ReactNode } from 'react'\nimport clsx from 'clsx'\nimport css from './Input.module.css'\n\n/**\n * Render a text input with an optional leading icon.\n * @param props.icon - optional 16px leading icon node.\n * @returns wrapper span containing the native input; input attributes pass through.\n */\nexport function Input({ icon, className, ...rest }: {\n icon?: ReactNode\n className?: string\n} & InputHTMLAttributes<HTMLInputElement>) {\n return (\n <span className={clsx(css.wrap, className)}>\n {icon != null && <span className={css.icon}>{icon}</span>}\n <input className={css.input} {...rest} />\n </span>\n )\n}\n","// Shared close timing for pointer-dismissed popups (HoverCard, hover-closing\n// Menu). Both float free of their anchor, so the pointer has to cross ground\n// that belongs to neither on its way in; closing on the first pointerleave\n// makes the popup unreachable. The grace turns that transit into a cancelable\n// pending close.\n\nimport { useCallback, useEffect, useRef } from 'react'\n\n/**\n * Grace before a pointer-dismissed popup closes. Covers the anchor->popup gap\n * (8px for HoverCard, 4px for Menu) at a hand's travel speed without leaving a\n * popup lingering once the pointer has genuinely moved on.\n */\nexport const POINTER_GRACE_MS = 200\n\n/** Cancelable delayed close for a pointer-dismissed popup. */\nexport interface PointerGrace {\n /** Schedule the close {@link POINTER_GRACE_MS} from now, replacing any pending one. */\n arm: () => void\n /** Abort a pending close (the pointer came back). */\n cancel: () => void\n}\n\n/**\n * Delay a pointer-dismissed popup's close so the pointer can cross the gap\n * between anchor and popup. A pending close is dropped on unmount.\n * @param close - runs when the grace elapses with no re-entry; read at fire\n * time, so callers may pass a fresh closure each render.\n * @returns the {@link PointerGrace} handle.\n */\nexport function usePointerGrace(close: () => void): PointerGrace {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const closeRef = useRef(close)\n closeRef.current = close\n\n const cancel = useCallback(() => {\n if (timerRef.current === null) return\n clearTimeout(timerRef.current)\n timerRef.current = null\n }, [])\n\n const arm = useCallback(() => {\n cancel()\n timerRef.current = setTimeout(() => {\n timerRef.current = null\n closeRef.current()\n }, POINTER_GRACE_MS)\n }, [cancel])\n\n useEffect(() => cancel, [cancel])\n\n return { arm, cancel }\n}\n","// Menu: minimal controlled dropdown (group-by pickers, project selectors).\n// Default: pure CSS positioning relative to the anchor wrapper — no popper.\n// Opt-in `portal` renders the list into document.body, fixed-positioned from\n// the anchor rect, for anchors inside overflow-clipping containers (sidebar).\n// The owner controls `open`; outside-click closing uses one document listener\n// active only while open. Submenus open on hover/focus inside the same root.\n// Entries also cover non-interactive `label` headings and `danger` rows.\n// Lists keep 12px clearance to the viewport's top/bottom edges and scroll\n// internally past that; submenu-bearing menus are exempt (see .scrollable).\n\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport type { CSSProperties, ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport clsx from 'clsx'\nimport { IconCheckOutline16 } from './icons/index.tsx'\nimport { usePointerGrace } from './pointer-grace.ts'\nimport css from './Menu.module.css'\n\n/** Selectable row (optionally with a nested submenu). */\nexport interface MenuItem {\n id: string\n label: ReactNode\n disabled?: boolean\n /** Leading icon (figma .Menu_cell gap 8). */\n icon?: ReactNode\n /** Destructive row: error-colored text/icon and danger hover fill. */\n danger?: boolean\n /** Nested card opened to the right on hover/focus. */\n submenu?: readonly MenuItem[]\n}\n\n/** Hairline between item groups (not selectable). */\nexport interface MenuSeparator {\n type: 'separator'\n id: string\n}\n\n/** Non-interactive heading row above a group of items. */\nexport interface MenuLabel {\n type: 'label'\n id: string\n text: string\n}\n\n/** One primary-menu entry: a row, a separator, or a heading label. */\nexport type MenuEntry = MenuItem | MenuSeparator | MenuLabel\n\nfunction isSeparator(entry: MenuEntry): entry is MenuSeparator {\n return 'type' in entry && entry.type === 'separator'\n}\n\nfunction isLabel(entry: MenuEntry): entry is MenuLabel {\n return 'type' in entry && entry.type === 'label'\n}\n\n/** Unplaced portal list: hidden but laid out at a fixed origin so offsetWidth/offsetHeight are real. */\nconst MEASURE_STYLE: CSSProperties = { visibility: 'hidden', left: 0, top: 0 }\n\n/**\n * Render an anchored dropdown menu.\n * @param props.open - whether the list is showing (owner-controlled).\n * @param props.anchor - the trigger element (rendered in place).\n * @param props.items - selectable rows and optional separators.\n * @param props.selectedId - row shown as selected.\n * @param props.selectedIds - rows shown as selected when a menu contains independent option groups.\n * @param props.onSelect - row click callback (not called for disabled rows or submenu parents that only open children).\n * @param props.onClose - invoked on outside click or Escape.\n * @param props.align - list alignment against the anchor (default 'start').\n * @param props.side - open below (`bottom`, default) or above (`top`) the anchor.\n * @param props.portal - render the list into document.body, fixed-positioned\n * from the anchor rect (repositions on scroll/resize while open). Use when an\n * ancestor's overflow clipping would crop the in-place list; default false\n * keeps the pure-CSS in-place behavior.\n * @param props.closeOnPointerLeave - close the list once the pointer has left\n * both trigger and list for the pointer grace (default false keeps it open\n * until outside click/Escape/selection). The grace makes the 4px trigger->list\n * gap and a brief overshoot survivable; coming back cancels the close.\n * @param props.dense - reduce vertical row spacing without changing the standard typography or card width.\n * @param props.compact - use reduced menu typography and spacing.\n * @param props.getAnchorRect - portal mode only: supply the anchor rect\n * directly (e.g. from a host-owned trigger button) instead of measuring the\n * Menu's own wrapper span. Required when the wrapper isn't itself laid out at\n * the trigger (render-prop anchors, effect-positioned proxies — measuring the\n * wrapper there races the host's layout effects). Called on open and on every\n * scroll/resize; return null to skip placement for that frame.\n * @param props.footer - rows pinned below the scrolling items area, separated\n * by a hairline; they stay visible while the items above scroll.\n * @returns anchor wrapper with the conditional list.\n */\nexport function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose, align = 'start', side = 'bottom', portal = false, closeOnPointerLeave = false, dense = false, compact = false, getAnchorRect, footer, className }: {\n open: boolean\n anchor: ReactNode\n items: readonly MenuEntry[]\n footer?: readonly MenuEntry[]\n selectedId?: string | undefined\n selectedIds?: readonly string[] | undefined\n onSelect: (id: string) => void\n onClose: () => void\n align?: 'start' | 'end'\n side?: 'bottom' | 'top' | 'right'\n portal?: boolean\n closeOnPointerLeave?: boolean\n dense?: boolean\n compact?: boolean\n getAnchorRect?: () => DOMRect | null\n className?: string\n}) {\n const rootRef = useRef<HTMLSpanElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n const [openSubmenuId, setOpenSubmenuId] = useState<string | null>(null)\n const [fixedPos, setFixedPos] = useState<CSSProperties | null>(null)\n const { arm: armClose, cancel: cancelClose } = usePointerGrace(onClose)\n\n // Portal mode: fixed-position the list from the anchor rect before paint;\n // track the anchor while open (capture-phase scroll catches nested panes).\n // getAnchorRect trumps measuring the wrapper span: a child layout effect\n // runs before the parent's, so a wrapper the host positions in its own\n // effect measures stale here — the host callback owns the truth instead.\n useLayoutEffect(() => {\n if (!open || !portal) { setFixedPos(null); return }\n const place = () => {\n let r: DOMRect | null\n if (getAnchorRect !== undefined) {\n r = getAnchorRect()\n } else {\n /* v8 ignore next 2 -- the ref is attached before the layout effect runs and the listeners die with it. */\n r = rootRef.current?.getBoundingClientRect() ?? null\n }\n if (r === null) return\n const MARGIN = 12\n const vw = window.innerWidth\n const vh = window.innerHeight\n const listEl = listRef.current\n const lw = listEl?.offsetWidth ?? 0\n const lh = listEl?.offsetHeight ?? 0\n\n let x: number\n let y: number\n if (side === 'right') {\n x = r.right + 4\n y = r.top\n } else if (align === 'start') {\n x = r.left\n y = side === 'bottom' ? r.bottom + 4 : r.top - lh - 4\n } else {\n x = r.right - lw\n y = side === 'bottom' ? r.bottom + 4 : r.top - lh - 4\n }\n\n if (lw > 0) x = Math.min(Math.max(x, MARGIN), vw - lw - MARGIN)\n if (lh > 0) y = Math.min(Math.max(y, MARGIN), vh - lh - MARGIN)\n\n setFixedPos({ left: x, top: y })\n }\n // First run measures the hidden pre-render (same commit as `open`), so\n // end/top alignment and clamping use real dimensions before anything\n // paints — no visible jump from a zero-size first guess.\n place()\n window.addEventListener('scroll', place, true)\n window.addEventListener('resize', place)\n return () => {\n window.removeEventListener('scroll', place, true)\n window.removeEventListener('resize', place)\n }\n }, [open, portal, align, side, getAnchorRect])\n\n useEffect(() => {\n if (!open) {\n setOpenSubmenuId(null)\n return\n }\n const onPointerDown = (e: PointerEvent) => {\n if (!(e.target instanceof Node)) return\n // The portaled list is outside the anchor subtree; check both.\n if (rootRef.current?.contains(e.target) === true) return\n if (listRef.current?.contains(e.target) === true) return\n onClose()\n }\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n document.addEventListener('pointerdown', onPointerDown)\n document.addEventListener('keydown', onKeyDown)\n return () => {\n document.removeEventListener('pointerdown', onPointerDown)\n document.removeEventListener('keydown', onKeyDown)\n }\n }, [open, onClose])\n\n // A close from selection/Escape/outside click outruns a pending grace close;\n // left armed it would shut a list reopened inside the grace window. Its own\n // effect, not the listener effect above: that one re-runs on every `onClose`\n // identity change and would cancel the grace mid-transit.\n useEffect(() => {\n if (!open) cancelClose()\n }, [open, cancelClose])\n\n // The submenu card is absolutely positioned outside the list box; the\n // scroll clip would crop it, so only submenu-free menus get the height cap.\n const scrollable = !items.some(entry => !isSeparator(entry) && !isLabel(entry) && entry.submenu !== undefined && entry.submenu.length > 0)\n\n const renderEntry = (entry: MenuEntry) => {\n if (isSeparator(entry)) {\n return <div key={entry.id} className={css.separator} role=\"separator\" />\n }\n if (isLabel(entry)) {\n return <div key={entry.id} className={css.label} role=\"presentation\">{entry.text}</div>\n }\n const hasSub = entry.submenu !== undefined && entry.submenu.length > 0\n const subOpen = hasSub && openSubmenuId === entry.id\n const selected = entry.id === selectedId || selectedIds?.includes(entry.id) === true\n return (\n <div\n key={entry.id}\n className={css.itemWrap}\n onMouseEnter={() => { setOpenSubmenuId(hasSub ? entry.id : null) }}\n onMouseLeave={() => { setOpenSubmenuId(null) }}\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n className={clsx(css.item, selected && css.selected, entry.danger === true && css.danger)}\n disabled={entry.disabled}\n aria-haspopup={hasSub ? 'menu' : undefined}\n aria-expanded={hasSub ? subOpen : undefined}\n onFocus={() => { setOpenSubmenuId(hasSub ? entry.id : null) }}\n onClick={() => {\n if (hasSub) {\n setOpenSubmenuId(entry.id)\n return\n }\n onSelect(entry.id)\n }}\n >\n {entry.icon !== undefined && <span className={css.itemIcon}>{entry.icon}</span>}\n <span className={css.itemLabel}>{entry.label}</span>\n {/* Selection marker is a trailing check (figma .Menu_cell), not a fill. */}\n {selected && <IconCheckOutline16 className={css.check} />}\n </button>\n {subOpen && entry.submenu !== undefined && (\n <div className={clsx(css.submenu, compact && css.compactList)} role=\"menu\">\n {entry.submenu.map(sub => (\n <button\n key={sub.id}\n type=\"button\"\n role=\"menuitem\"\n className={css.item}\n disabled={sub.disabled}\n onClick={() => { onSelect(sub.id) }}\n >\n {sub.icon !== undefined && <span className={css.itemIcon}>{sub.icon}</span>}\n <span className={css.itemLabel}>{sub.label}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n )\n }\n\n // Portal lists render hidden until placed: the placement effect measures\n // this pre-render in the same commit, so the first painted frame is\n // already at the final position (with getAnchorRect returning null the\n // list simply stays hidden).\n const list = open && (\n <div\n ref={listRef}\n className={clsx(css.list, dense && css.denseList, compact && css.compactList, scrollable && css.scrollable, portal && css.portal, side === 'top' && !portal && css.sideTop, align === 'end' && !portal && css.alignEnd)}\n style={portal ? fixedPos ?? MEASURE_STYLE : undefined}\n role=\"menu\"\n // React portals bubble synthetic events through the REACT tree: without\n // this stop, an item click re-fires the anchor row's own onClick\n // (open/toggle) after onSelect.\n onClick={(e) => { e.stopPropagation() }}\n >\n <div className={css.viewport} role=\"presentation\">\n {items.map(renderEntry)}\n </div>\n {footer !== undefined && footer.length > 0 && (\n <div className={css.footer} role=\"presentation\">\n {footer.map(renderEntry)}\n </div>\n )}\n </div>\n )\n\n // Pointer-leave dismissal watches the WRAPPER, not the list: React's\n // enter/leave traversal runs over the React tree, so trigger and portaled\n // list are one region here. Aiming back at the trigger, or crossing the 4px\n // gap between them, therefore never counts as leaving.\n return (\n <span\n ref={rootRef}\n className={clsx(css.root, className)}\n onPointerEnter={closeOnPointerLeave ? cancelClose : undefined}\n onPointerLeave={closeOnPointerLeave ? () => { if (open) armClose() } : undefined}\n >\n {anchor}\n {portal ? (list !== false && createPortal(list, document.body)) : list}\n </span>\n )\n}\n","/**\n * Viewport-fit hook for bottom-anchored overlays (slash menu, popupSelect):\n * the element's bottom edge is laid out independent of its height, so it\n * grows upward and only the top edge can collide with the viewport — clamp\n * the design cap to the space between that edge and the viewport top.\n */\nimport { useLayoutEffect, useState } from 'react'\nimport type { RefObject } from 'react'\n\n/** Safe distance kept between the overlay and the viewport top edge (mirrors the Menu portal margin). */\nconst MARGIN = 12\n\n/**\n * Clamp a bottom-anchored overlay's max-height to the viewport.\n * @param ref - the overlay element; a null current (overlay closed) skips measuring.\n * @param cap - design max-height in px (the clamp never exceeds it).\n * @param signal - re-measure trigger: pass the overlay's render state so anchor\n * moves (composer growth) re-fit; resize/scroll re-fit while mounted.\n * @returns the max-height to apply inline, in px.\n */\nexport function useAnchoredMaxHeight(ref: RefObject<HTMLElement>, cap: number, signal: unknown): number {\n const [maxHeight, setMaxHeight] = useState(cap)\n useLayoutEffect(() => {\n const el = ref.current\n if (el === null) return\n const fit = () => {\n setMaxHeight(Math.min(cap, Math.max(0, el.getBoundingClientRect().bottom - MARGIN)))\n }\n fit()\n window.addEventListener('resize', fit)\n window.addEventListener('scroll', fit, true)\n return () => {\n window.removeEventListener('resize', fit)\n window.removeEventListener('scroll', fit, true)\n }\n }, [ref, cap, signal])\n return maxHeight\n}\n","/**\n * Outside-pointer dismissal for trigger-owned popovers (jobs list, Cordis\n * panel): while the surface is open, a pointerdown outside the root closes it.\n */\nimport { useEffect } from 'react'\nimport type { RefObject } from 'react'\n\n/**\n * Close an open popover when a pointerdown lands outside its root element.\n * @param root - element containing both the trigger and the open surface.\n * @param open - whether the surface is showing; false detaches the listener.\n * @param setOpen - state setter invoked with false on an outside pointerdown.\n */\nexport function useDismissOnOutsidePointer(\n root: RefObject<HTMLElement | null>,\n open: boolean,\n setOpen: (open: boolean) => void,\n): void {\n useEffect(() => {\n if (!open) return\n const closeOutside = (event: PointerEvent): void => {\n if (event.target instanceof Node && !root.current?.contains(event.target)) {\n setOpen(false)\n }\n }\n document.addEventListener('pointerdown', closeOutside)\n return () => { document.removeEventListener('pointerdown', closeOutside) }\n }, [root, open, setOpen])\n}\n","// Host clipboard write shared by Web UI copy controls. Success feedback stays\n// with each control; this helper only reports whether the host accepted a write.\n\n/**\n * Write text to the host clipboard, preferring the async Clipboard API and\n * falling back to `execCommand('copy')` on hosts (jsdom, insecure contexts)\n * that omit it.\n * @param text - the exact text to place on the clipboard.\n * @returns true only when the host accepted the write.\n */\nexport async function writeClipboard(text: string): Promise<boolean> {\n // lib.dom types clipboard non-optional, but insecure contexts omit it —\n // that runtime gap is exactly what this guard detects.\n /* oxlint-disable-next-line typescript/no-unnecessary-condition */\n if (navigator.clipboard?.writeText) {\n try {\n await navigator.clipboard.writeText(text)\n return true\n } catch {\n // Denied permissions / iframe policy — do not claim success.\n return false\n }\n }\n // jsdom and older hosts: best-effort execCommand path when present.\n // execCommand('copy') is the only clipboard fallback where the async API\n // is missing; deprecated but deliberately retained.\n /* oxlint-disable typescript/no-deprecated */\n const exec = typeof document.execCommand === 'function'\n ? document.execCommand.bind(document)\n : undefined\n if (exec === undefined) return false\n const el = document.createElement('textarea')\n el.value = text\n el.setAttribute('readonly', '')\n el.style.position = 'fixed'\n el.style.left = '-9999px'\n document.body.appendChild(el)\n el.select()\n try {\n return exec('copy')\n } catch {\n return false\n } finally {\n el.remove()\n }\n /* oxlint-enable typescript/no-deprecated */\n}\n","// HoverCard: delayed hover-preview card portaled to document.body.\n// Same portal mechanics as Menu: the wrapper span supplies the anchor rect,\n// the card is fixed-positioned at its right edge and repositions on\n// scroll/resize while open. The card is reachable: it takes pointer events,\n// and leaving the anchor only arms a grace-delayed close, so the pointer can\n// cross the 8px gap and settle on the card to read a clipped path or title.\n// The portaled card is a React child of the wrapper, so React's enter/leave\n// traversal already treats it as inside — one pair of wrapper handlers covers\n// anchor and card alike.\n\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { writeClipboard } from './clipboard.ts'\nimport { usePointerGrace } from './pointer-grace.ts'\nimport css from './HoverCard.module.css'\n\n/**\n * Render an anchor with a hover-triggered preview card.\n * @param props.anchor - the hover target (rendered in place inside a wrapper span).\n * @param props.content - card content; the pointer may rest on it, so it is\n * readable and selectable, but it carries no dismissal affordance of its own.\n * @param props.openDelayMs - hover dwell before the card shows (default 500).\n * @param props.disabled - suppress opening; turning true closes an open card.\n * @param props.copyText - optional primary value copied by activation and\n * included in the card's accessible name.\n * @param props.copyLabel - accessible activation-label prefix (default \"复制\").\n * @param props.copiedLabel - visible success label (default \"复制成功\").\n * @returns anchor wrapper with the conditional portaled card.\n */\nexport function HoverCard({\n anchor, content, openDelayMs = 500, disabled = false,\n copyText, copyLabel = '复制', copiedLabel = '复制成功',\n}: {\n anchor: ReactNode\n content: ReactNode\n openDelayMs?: number\n disabled?: boolean\n copyText?: string | undefined\n copyLabel?: string | undefined\n copiedLabel?: string | undefined\n}) {\n const rootRef = useRef<HTMLSpanElement>(null)\n const cardRef = useRef<HTMLDivElement>(null)\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const copyTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const copyHeightRef = useRef<number | null>(null)\n const copyEpochRef = useRef(0)\n const copyingRef = useRef(false)\n const mountedRef = useRef(true)\n const [open, setOpen] = useState(false)\n const [pos, setPos] = useState<{ left: number; top: number } | null>(null)\n const [copied, setCopied] = useState(false)\n\n const clearCopied = useCallback(() => {\n if (copyTimerRef.current !== null) {\n clearTimeout(copyTimerRef.current)\n copyTimerRef.current = null\n }\n copyHeightRef.current = null\n setCopied(false)\n }, [])\n\n const close = useCallback(() => {\n copyEpochRef.current += 1\n clearCopied()\n setOpen(false)\n }, [clearCopied])\n\n const { arm: armClose, cancel: cancelClose } = usePointerGrace(close)\n\n const clearTimer = () => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current)\n timerRef.current = null\n }\n }\n\n // Owner disabling mid-hover (menu opened, drag started) closes immediately.\n useEffect(() => {\n if (!disabled) return\n clearTimer()\n cancelClose()\n close()\n }, [disabled, cancelClose, close])\n\n useEffect(() => {\n mountedRef.current = true\n return () => {\n mountedRef.current = false\n copyEpochRef.current += 1\n clearTimer()\n if (copyTimerRef.current !== null) {\n clearTimeout(copyTimerRef.current)\n copyTimerRef.current = null\n }\n }\n }, [])\n\n // Fixed-position from the anchor rect before paint; track the anchor while\n // open (capture-phase scroll catches nested panes), as in Menu portal mode.\n useLayoutEffect(() => {\n if (!open) { setPos(null); return }\n const place = () => {\n const wrapper = rootRef.current\n /* v8 ignore next -- the ref is attached before the layout effect runs and the listeners die with it. */\n if (wrapper === null) return\n const r = wrapper.getBoundingClientRect()\n const h = cardRef.current?.offsetHeight ?? 0\n const top = r.top + h > window.innerHeight - 8 ? window.innerHeight - h - 8 : r.top\n setPos({ left: r.right + 8, top })\n }\n place()\n window.addEventListener('scroll', place, true)\n window.addEventListener('resize', place)\n return () => {\n window.removeEventListener('scroll', place, true)\n window.removeEventListener('resize', place)\n }\n }, [open])\n\n // The first placement ran before the card mounted (height read 0): once the\n // card's real height is measurable, correct the bottom-edge clamp. The\n // correction converges — a clamped top satisfies the guard, so it runs once.\n useLayoutEffect(() => {\n if (!open || pos === null) return\n /* v8 ignore next -- the card is mounted whenever pos is set, so the ref is attached here. */\n const h = cardRef.current?.offsetHeight ?? 0\n if (pos.top + h > window.innerHeight - 8) {\n setPos({ left: pos.left, top: window.innerHeight - h - 8 })\n }\n }, [open, pos])\n\n const copy = async (text: string): Promise<void> => {\n if (copied || copyingRef.current) return\n copyingRef.current = true\n const copyEpoch = copyEpochRef.current\n const accepted = await writeClipboard(text)\n copyingRef.current = false\n const card = cardRef.current\n if (!accepted || !mountedRef.current || copyEpoch !== copyEpochRef.current || card === null) return\n const height = card.offsetHeight\n copyHeightRef.current = height > 0 ? height : null\n setCopied(true)\n copyTimerRef.current = setTimeout(clearCopied, 1000)\n }\n\n const copyable = copyText !== undefined\n const card = open && pos !== null && (\n <div\n ref={cardRef}\n className={`${css.card}${copyable ? ` ${css.copyable}` : ''}${copied ? ` ${css.feedback}` : ''}`}\n style={{ ...pos, minHeight: copied && copyHeightRef.current !== null ? copyHeightRef.current : undefined }}\n role={copyable ? 'button' : undefined}\n tabIndex={copyable ? 0 : undefined}\n aria-label={copyable ? `${copyLabel}: ${copyText}` : undefined}\n onClick={copyable\n ? (e) => {\n const selection = window.getSelection()\n if (selection !== null && !selection.isCollapsed) {\n for (let i = 0; i < selection.rangeCount; i += 1) {\n if (selection.getRangeAt(i).intersectsNode(e.currentTarget)) return\n }\n }\n void copy(copyText)\n }\n : undefined}\n onKeyDown={copyable\n ? (e) => {\n if (e.key !== 'Enter' && e.key !== ' ') return\n e.preventDefault()\n void copy(copyText)\n }\n : undefined}\n >\n {copied ? <span className={css.copied} aria-hidden=\"true\">{copiedLabel}</span> : content}\n </div>\n )\n\n return (\n <span\n ref={rootRef}\n className={css.root}\n onPointerEnter={() => {\n if (disabled) return\n // Coming back inside during the grace (the gap, or the card itself)\n // keeps the current card rather than restarting the dwell.\n cancelClose()\n if (open) return\n clearTimer()\n timerRef.current = setTimeout(() => { setOpen(true) }, openDelayMs)\n }}\n onPointerLeave={() => {\n clearTimer()\n // Leaving a closed card schedules a no-op close; only arm while\n // open, matching Menu's shape.\n if (open) armClose()\n }}\n // A press inside the anchor (row click, menu trigger) dismisses the\n // card immediately, without waiting for the owner to flip `disabled`.\n // Capture presses reach this handler from the card too — it is a React\n // child of the wrapper — but a press there starts a selection, so the\n // card must stay mounted under it (and the browser's click with it).\n onPointerDownCapture={(e) => {\n if (cardRef.current?.contains(e.target as Node)) return\n clearTimer()\n cancelClose()\n close()\n }}\n >\n {anchor}\n {open && copyable && <span className={css.status} role=\"status\">{copied ? copiedLabel : ''}</span>}\n {card !== false && createPortal(card, document.body)}\n </span>\n )\n}\n","// Modal: controlled full-viewport dialog (create-workspace and similar).\n// The overlay portals to this document's body so ancestor stacking contexts\n// cannot leave sticky page controls above the mask. This is still an in-page\n// WebUI dialog; it never creates or targets another browser/native window.\n\nimport { useEffect } from 'react'\nimport type { ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport clsx from 'clsx'\nimport { IconCloseOutline16 } from './icons/index.tsx'\nimport css from './Modal.module.css'\n\n/**\n * Render a centered modal over a blurred page mask.\n * @param props.open - whether the dialog is showing.\n * @param props.onClose - Escape or mask click.\n * @param props.title - dialog heading (aria-label in every mode).\n * @param props.closeLabel - accessible close-button label.\n * @param props.description - optional supporting sentence under the title.\n * @param props.children - body (inputs, etc.).\n * @param props.footer - action row (Cancel / Create).\n * @param props.contentClassName - optional class for a scrollable content region.\n * @param props.headless - render children directly in the card (no default\n * header/close/body chrome) for dialogs whose figma frame owns its own\n * header structure; mask, card, Escape, and aria-label remain.\n * @param props.closeLabel - close-button aria label; the owner passes\n * localized copy (this package is cordis-free, so copy arrives via props).\n * @returns null when closed; otherwise the overlay tree.\n */\nexport function Modal({\n open, onClose, title, closeLabel = 'Close', description, children, footer, className, contentClassName, headless = false,\n}: {\n open: boolean\n onClose: () => void\n title: string\n closeLabel?: string\n description?: string\n children?: ReactNode\n footer?: ReactNode\n className?: string\n contentClassName?: string\n headless?: boolean\n}) {\n useEffect(() => {\n if (!open) return\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n document.addEventListener('keydown', onKeyDown)\n return () => { document.removeEventListener('keydown', onKeyDown) }\n }, [open, onClose])\n\n if (!open) return null\n\n return createPortal((\n <div className={css.root} role=\"presentation\">\n <div className={css.mask} aria-hidden=\"true\" onClick={onClose} />\n <div\n className={clsx(css.dialog, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n >\n {headless\n ? children\n : (\n <>\n <div className={clsx(css.content, contentClassName)}>\n <div className={css.header}>\n <h2 className={css.title}>{title}</h2>\n <button type=\"button\" className={css.close} aria-label={closeLabel} onClick={onClose}>\n <IconCloseOutline16 size={14} />\n </button>\n </div>\n {description !== undefined && description !== '' && (\n <p className={css.description}>{description}</p>\n )}\n {children !== undefined && <div className={css.body}>{children}</div>}\n </div>\n {footer !== undefined && <div className={css.footer}>{footer}</div>}\n </>\n )}\n </div>\n </div>\n ), document.body)\n}\n","// OnboardingSurface: the full-viewport first-run takeover an onboarding step\n// wraps its visible content in. The overlay portals to this document's body\n// (the Modal precedent: ancestor stacking contexts cannot leave sticky page\n// controls above the mask), and the surface holds `#root` inert for exactly\n// its own lifetime — a step that renders null paints nothing and blocks\n// nothing, so \"should onboarding show right now\" stays a plain render\n// decision inside the step component.\n\nimport { useEffect } from 'react'\nimport type { ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport css from './OnboardingSurface.module.css'\n\n/**\n * Render the onboarding takeover chrome (mask + opaque stage) around one\n * step's content and keep the application root inert while mounted.\n * @param props.children - the step's page content, centered on the stage.\n * @returns the body-portaled overlay tree.\n */\nexport function OnboardingSurface({ children }: { children: ReactNode }) {\n useEffect(() => {\n const appRoot = document.getElementById('root')\n if (appRoot === null) return\n appRoot.inert = true\n return () => { appRoot.inert = false }\n }, [])\n\n return createPortal((\n <div className={css.onboardingOverlay} role=\"presentation\">\n <div className={css.onboardingMask} aria-hidden=\"true\" />\n <div className={css.onboardingStage}>{children}</div>\n </div>\n ), document.body)\n}\n","/**\n * Controlled risk acknowledgement dialog shared by product surfaces that\n * must gate a sensitive action behind an explicit checkbox.\n */\nimport { Button } from './Button.tsx'\nimport { IconWarningOutline16 } from './icons/index.tsx'\nimport { Modal } from './Modal.tsx'\nimport css from './RiskConfirmation.module.css'\n\nexport interface RiskConfirmationProps {\n open: boolean\n title: string\n description: string\n acknowledgeLabel: string\n cancelLabel: string\n confirmLabel: string\n acknowledged: boolean\n disabled?: boolean\n onAcknowledgedChange: (acknowledged: boolean) => void\n onCancel: () => void\n onConfirm: () => void\n}\n\n/**\n * Render one in-page confirmation whose primary action is unavailable until\n * the caller-controlled acknowledgement is checked.\n */\nexport function RiskConfirmation({\n open,\n title,\n description,\n acknowledgeLabel,\n cancelLabel,\n confirmLabel,\n acknowledged,\n disabled = false,\n onAcknowledgedChange,\n onCancel,\n onConfirm,\n}: RiskConfirmationProps) {\n return (\n <Modal\n open={open}\n onClose={onCancel}\n title={title}\n className={css.confirmation ?? ''}\n contentClassName={css.confirmationContent ?? ''}\n footer={(\n <>\n <Button variant=\"outline\" className={css.modalAction} onClick={onCancel}>\n {cancelLabel}\n </Button>\n <Button\n variant=\"primary\"\n className={css.confirmAction}\n disabled={disabled || !acknowledged}\n onClick={onConfirm}\n >\n {confirmLabel}\n </Button>\n </>\n )}\n >\n <div className={css.warning}>\n <IconWarningOutline16 size={18} className={css.warningIcon} />\n <p>{description}</p>\n </div>\n <label className={css.acknowledgement}>\n <input\n type=\"checkbox\"\n checked={acknowledged}\n disabled={disabled}\n autoFocus\n onChange={(event) => { onAcknowledgedChange(event.currentTarget.checked) }}\n />\n <span>{acknowledgeLabel}</span>\n </label>\n </Modal>\n )\n}\n","// ConnectionBanner: top strip surfacing connection loss. The atom is pure:\n// the owner subscribes to connection state and passes `reconnecting` down.\n// A null/connecting state upstream should stay quiet too — only an actual\n// outage (reconnect backoff in progress) shows the strip.\n\nimport css from './ConnectionBanner.module.css'\n\n/**\n * Render the reconnecting banner.\n * @param props.reconnecting - true while the connection is in backoff/retry.\n * @param props.label - banner text; the owner passes localized copy (this\n * package is cordis-free, so copy arrives via props).\n * @returns the banner, or null when connected.\n */\nexport function ConnectionBanner({ reconnecting, label = '连接已断开,正在重连…' }: {\n reconnecting: boolean\n label?: string | undefined\n}) {\n if (!reconnecting) return null\n return <div className={css.banner}>{label}</div>\n}\n","/**\n * XRK mark — paths traced from `apps/web/public/logo-plate.png` (vectorizer).\n * Do not hand-edit the petal geometry; re-trace from the plate PNG instead.\n */\nimport type { IconProps } from './icons/props.ts'\n\nconst VIEW = 348\n\n/**\n * Render the XRK sunflower mark.\n * @param props.size - width/height in px (square; default 24).\n * @param props.className - extra class for layout placement.\n * @returns the mark svg (aria-hidden; pair with the wordmark for accessibility).\n */\nexport function BrandMark({ size = 24, className }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n className={className}\n viewBox={`0 0 ${VIEW} ${VIEW}`}\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n fill=\"currentColor\"\n d=\"M86.406 81.629c2.27 1.72 4.44 3.51 6.59 5.37.82.69 1.63 1.38 2.46 2.09 25.71 22.47 43.77 54.11 61.54 82.91.61.98 1.22 1.96 1.84 2.96q2.94 4.74 5.85 9.48c.61.99 1.23 1.98 1.86 3 .57.93 1.13 1.85 1.72 2.81.25.41.25.41 1.53 2.49 1.18 2.21 1.97 3.77 2.2 6.26-.88 2.21-.88 2.21-2.33 4.67-.54.93-1.08 1.87-1.64 2.84-.61 1.03-1.21 2.06-1.84 3.12-1.3 2.26-2.61 4.52-3.9 6.79-.35.61-.69 1.21-1.05 1.83-3.83 6.73-7.4 13.59-10.98 20.46-6.04 11.56-12.24 23-18.88 34.23-.63 1.06-1.25 2.13-1.9 3.22-11.79 19.69-25.82 39.96-48.48 47.51-10.71 1.78-20.46.42-29.65-5.33-9.83-7.21-15.67-17.18-17.85-29.07-1.59-12.52 1.65-24.74 8.5-35.27 28.51-36.57 84.36-48.92 128-56-1-.19-2-.38-3.03-.57-90.61-17.27-90.61-17.27-121.97-35.43-.6-.35-1.21-.7-1.84-1.06-14.95-8.68-25.44-19.19-30.59-36-1.9-13.26-.35-25.85 7.75-36.88 17.57-21.44 43.9-21.45 66.09-6.43m228.871-5.274c2.02 1.45 3.87 2.98 5.72 4.64.61.51 1.21 1.01 1.83 1.52 8.02 7.18 12.62 17.85 13.39 28.48.43 14.55-4.03 26.78-13.97 37.5-35.73 33.85-97.7 41.13-144.25 49.5.71.14 1.42.27 2.16.41 98.75 18.95 98.75 18.95 125.84 55.66 7.55 11.69 10.51 24.99 7.89 38.76-3.53 12.6-10.16 21.1-21.23 27.73-8.46 4.6-18.61 4.78-27.84 2.32-35.78-12.49-54-59.52-70.19-90.41-4.88-9.28-9.9-18.43-15.36-27.38-.23-.38-.23-.38-1.37-2.3-.4-.64-.79-1.28-1.19-1.94-.92-2.4-.6-3.46.29-5.85.7-1.35 1.45-2.68 2.23-3.99.24-.39.24-.39 1.41-2.35.26-.42.26-.42 1.55-2.53.53-.88 1.07-1.76 1.62-2.67 62.44-102.54 62.44-102.54 98.19-111.46 11.36-2.66 23.17-1.66 33.28 4.36\"\n />\n <path\n fill=\"#eab039\"\n d=\"M193.129 29.54c9.42 7.83 14.99 17.28 16.87 29.46 2.5 39.35-18.68 77.3-35 112h-2c-24.9-52.02-24.9-52.02-32-79-.33-1.27-.67-2.54-1.01-3.84-3.52-15.22-3.98-31.59 3.37-45.78 5.93-9.44 13.18-15.79 24.02-18.69 9.34-1.78 18.07.3 25.75 5.85\"\n />\n </svg>\n )\n}\n","/**\n * XRK Harness wordmark: plate-traced mark + XRK lettering + HARNESS badge.\n * Mark paths traced from `apps/web/public/logo-plate.png` (vectorizer).\n */\nimport type { IconProps } from './icons/props.ts'\n\nconst MARK = 348\n/** Mark column + gap + lettering + gap + badge. */\nconst WORD_W = 168\nconst WORD_H = 28\n\n/**\n * Render the full brand wordmark.\n * @param props.size - height in px (default 24; width keeps the wordmark ratio).\n * @param props.className - extra class for layout placement.\n * @returns the wordmark svg (aria-hidden decorative brand art).\n */\nexport function BrandWordmark({ size = 24, className }: IconProps) {\n return (\n <svg\n width={(size * WORD_W) / WORD_H}\n height={size}\n className={className}\n viewBox={`0 0 ${WORD_W} ${WORD_H}`}\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <g transform={`translate(0 ${(WORD_H - 24) / 2}) scale(${24 / MARK})`}>\n <path\n fill=\"currentColor\"\n d=\"M86.406 81.629c2.27 1.72 4.44 3.51 6.59 5.37.82.69 1.63 1.38 2.46 2.09 25.71 22.47 43.77 54.11 61.54 82.91.61.98 1.22 1.96 1.84 2.96q2.94 4.74 5.85 9.48c.61.99 1.23 1.98 1.86 3 .57.93 1.13 1.85 1.72 2.81.25.41.25.41 1.53 2.49 1.18 2.21 1.97 3.77 2.2 6.26-.88 2.21-.88 2.21-2.33 4.67-.54.93-1.08 1.87-1.64 2.84-.61 1.03-1.21 2.06-1.84 3.12-1.3 2.26-2.61 4.52-3.9 6.79-.35.61-.69 1.21-1.05 1.83-3.83 6.73-7.4 13.59-10.98 20.46-6.04 11.56-12.24 23-18.88 34.23-.63 1.06-1.25 2.13-1.9 3.22-11.79 19.69-25.82 39.96-48.48 47.51-10.71 1.78-20.46.42-29.65-5.33-9.83-7.21-15.67-17.18-17.85-29.07-1.59-12.52 1.65-24.74 8.5-35.27 28.51-36.57 84.36-48.92 128-56-1-.19-2-.38-3.03-.57-90.61-17.27-90.61-17.27-121.97-35.43-.6-.35-1.21-.7-1.84-1.06-14.95-8.68-25.44-19.19-30.59-36-1.9-13.26-.35-25.85 7.75-36.88 17.57-21.44 43.9-21.45 66.09-6.43m228.871-5.274c2.02 1.45 3.87 2.98 5.72 4.64.61.51 1.21 1.01 1.83 1.52 8.02 7.18 12.62 17.85 13.39 28.48.43 14.55-4.03 26.78-13.97 37.5-35.73 33.85-97.7 41.13-144.25 49.5.71.14 1.42.27 2.16.41 98.75 18.95 98.75 18.95 125.84 55.66 7.55 11.69 10.51 24.99 7.89 38.76-3.53 12.6-10.16 21.1-21.23 27.73-8.46 4.6-18.61 4.78-27.84 2.32-35.78-12.49-54-59.52-70.19-90.41-4.88-9.28-9.9-18.43-15.36-27.38-.23-.38-.23-.38-1.37-2.3-.4-.64-.79-1.28-1.19-1.94-.92-2.4-.6-3.46.29-5.85.7-1.35 1.45-2.68 2.23-3.99.24-.39.24-.39 1.41-2.35.26-.42.26-.42 1.55-2.53.53-.88 1.07-1.76 1.62-2.67 62.44-102.54 62.44-102.54 98.19-111.46 11.36-2.66 23.17-1.66 33.28 4.36\"\n />\n <path\n fill=\"#eab039\"\n d=\"M193.129 29.54c9.42 7.83 14.99 17.28 16.87 29.46 2.5 39.35-18.68 77.3-35 112h-2c-24.9-52.02-24.9-52.02-32-79-.33-1.27-.67-2.54-1.01-3.84-3.52-15.22-3.98-31.59 3.37-45.78 5.93-9.44 13.18-15.79 24.02-18.69 9.34-1.78 18.07.3 25.75 5.85\"\n />\n </g>\n <text\n x=\"30\"\n y=\"19.5\"\n fill=\"currentColor\"\n fontFamily=\"ui-sans-serif, system-ui, sans-serif\"\n fontSize=\"14\"\n fontWeight=\"700\"\n letterSpacing=\"0.04em\"\n >\n XRK\n </text>\n <rect x=\"72\" y=\"6\" width=\"92\" height=\"16\" rx=\"2\" fill=\"currentColor\" />\n <text\n x=\"118\"\n y=\"17.5\"\n fill=\"var(--dsw-alias-label-primary-inverted, #fff)\"\n fontFamily=\"ui-sans-serif, system-ui, sans-serif\"\n fontSize=\"9\"\n fontWeight=\"700\"\n letterSpacing=\"0.12em\"\n textAnchor=\"middle\"\n >\n HARNESS\n </text>\n </svg>\n )\n}\n","// Hover/focus label bubble (figma tooltip pill: dark plate, white text).\n// TODO: interaction is a placeholder (horizontal overflow clamps and a\n// vertical collision flips the bubble to the other side, but there is no\n// arrow) — visuals and behavior get a proper pass later.\n// The anchor is the child element itself (cloneElement, no wrapper node), so\n// attaching a tooltip never changes the anchor's layout context. The bubble is\n// position:fixed and coordinates come from the anchor's rect at show time, so\n// it escapes ancestor overflow clipping (the sidebar rail clips its column)\n// without a portal.\n\nimport { cloneElement, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport type { FocusEventHandler, MouseEventHandler, MutableRefObject, ReactElement, Ref } from 'react'\nimport css from './Tooltip.module.css'\n\n/** Bubble placement relative to the anchor. */\nexport type TooltipSide = 'right' | 'bottom' | 'top'\n\n/** Props Tooltip injects into its anchor child; the child's own handlers are chained ahead of the tooltip's. */\ninterface AnchorProps {\n ref?: Ref<HTMLElement> | undefined\n onMouseEnter?: MouseEventHandler | undefined\n onMouseLeave?: MouseEventHandler | undefined\n onFocus?: FocusEventHandler | undefined\n onBlur?: FocusEventHandler | undefined\n}\n\ntype TooltipLabel = string | (() => string)\n\n/**\n * Attach a hover/focus tooltip to an anchor element.\n * @param props.label - bubble text, or a resolver evaluated only while the bubble is visible.\n * @param props.side - placement relative to the anchor (default 'right').\n * @param props.delayMs - hover delay in milliseconds; keyboard focus remains immediate.\n * @param props.disabled - suppress the bubble while true; the anchor renders identically so\n * toggling never remounts it (which would cut its CSS transitions).\n * @param props.maxWidth - bubble width cap in pixels, for labels long enough that the default\n * half-viewport cap would render a slab wider than the surface the anchor sits on.\n * @param props.children - a single anchor element; its own ref (callback or object) is forwarded alongside the tooltip's.\n * @returns the cloned anchor plus a fixed-position bubble while hovered/focused.\n */\nexport function Tooltip({ label, side = 'right', delayMs = 0, disabled = false, maxWidth, children }: { label: TooltipLabel; side?: TooltipSide; delayMs?: number; disabled?: boolean; maxWidth?: number; children: ReactElement<AnchorProps> }) {\n const anchor = useRef<HTMLElement | null>(null)\n // React 18 keeps the element's ref outside props; forward it so wrapping an\n // anchor in Tooltip never silently severs the owner's ref.\n const childRef = (children as ReactElement<AnchorProps> & { ref?: Ref<HTMLElement> }).ref\n const mergedRef = useCallback((el: HTMLElement | null) => {\n anchor.current = el\n if (typeof childRef === 'function') childRef(el)\n else if (childRef != null) (childRef as MutableRefObject<HTMLElement | null>).current = el\n }, [childRef])\n // The anchor's edges rather than final coordinates: a vertical flip has to\n // re-derive the bubble's own top from the opposite edge.\n const [pos, setPos] = useState<{ x: number; top: number; bottom: number } | null>(null)\n // Where the bubble actually sits, which is the requested side until the\n // viewport refuses it.\n const [placement, setPlacement] = useState<TooltipSide>(side)\n const bubble = useRef<HTMLSpanElement | null>(null)\n const resolvedLabel = pos === null\n ? null\n : typeof label === 'function' ? label() : label\n const y = pos === null\n ? 0\n : placement === 'right'\n ? pos.top + (pos.bottom - pos.top) / 2\n : placement === 'top' ? pos.top - 8 : pos.bottom + 8\n const EDGE_MARGIN = 12\n // Viewport fit: fixed positioning knows nothing about edges, so a centered\n // bubble near the right edge would clip and a long label under an anchor low\n // on the page would run off the bottom. Horizontally the bubble slides back\n // inside; vertically it flips to the opposite side, which is the only move\n // that does not cover the anchor being read. Each measurement resets the base\n // position first, so a shorter label or a larger viewport releases a previous\n // adjustment without another render.\n useLayoutEffect(() => {\n if (pos === null) return\n const fit = () => {\n const el = bubble.current\n /* v8 ignore next -- pos is set only while the bubble is mounted. */\n if (el === null) return\n el.style.left = `${pos.x}px`\n const r = el.getBoundingClientRect()\n let dx = 0\n if (r.right > window.innerWidth - EDGE_MARGIN) dx = window.innerWidth - EDGE_MARGIN - r.right\n if (r.left + dx < EDGE_MARGIN) dx = EDGE_MARGIN - r.left\n el.style.left = `${pos.x + dx}px`\n if (side === 'right') return\n // Flip only into a side that genuinely fits, so an anchor with room on\n // neither side keeps the requested placement instead of oscillating.\n const fitsBelow = pos.bottom + 8 + r.height <= window.innerHeight - EDGE_MARGIN\n const fitsAbove = pos.top - 8 - r.height >= EDGE_MARGIN\n if (placement === 'bottom' && !fitsBelow && fitsAbove) setPlacement('top')\n if (placement === 'top' && !fitsAbove && fitsBelow) setPlacement('bottom')\n }\n fit()\n window.addEventListener('resize', fit)\n return () => { window.removeEventListener('resize', fit) }\n }, [placement, pos, resolvedLabel, side])\n const showTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n // Hover and focus are independent triggers: the bubble hides only after\n // BOTH clear (hovering away from a focused anchor must not drop it).\n const triggers = useRef({ hover: false, focus: false })\n\n // Disabling mid-hover (e.g. clicking a rail control expands the sidebar)\n // must drop an already-visible bubble: no mouseleave fires.\n const cancelShow = useCallback(() => {\n if (showTimer.current === null) return\n clearTimeout(showTimer.current)\n showTimer.current = null\n }, [])\n useEffect(() => {\n if (disabled) {\n cancelShow()\n triggers.current = { hover: false, focus: false }\n setPos(null)\n }\n return cancelShow\n }, [cancelShow, disabled])\n\n const show = () => {\n if (disabled) return\n const el = anchor.current\n /* v8 ignore next -- the ref is attached by event time: events fire on the cloned anchor. */\n if (el === null) return\n const r = el.getBoundingClientRect()\n // Every show starts from the requested side; the fit pass flips it only\n // where this anchor's position demands it.\n setPlacement(side)\n setPos({ x: side === 'right' ? r.right + 10 : r.left + r.width / 2, top: r.top, bottom: r.bottom })\n }\n const showAfterHoverDelay = () => {\n cancelShow()\n if (delayMs <= 0) {\n show()\n return\n }\n showTimer.current = setTimeout(() => {\n showTimer.current = null\n show()\n }, delayMs)\n }\n const hide = () => {\n cancelShow()\n if (!triggers.current.hover && !triggers.current.focus) setPos(null)\n }\n\n return (\n <>\n {cloneElement(children, {\n ref: mergedRef,\n onMouseEnter: (e) => { children.props.onMouseEnter?.(e); triggers.current.hover = true; showAfterHoverDelay() },\n onMouseLeave: (e) => { children.props.onMouseLeave?.(e); triggers.current.hover = false; cancelShow(); setPos(null) },\n onFocus: (e) => { children.props.onFocus?.(e); triggers.current.focus = true; cancelShow(); show() },\n onBlur: (e) => { children.props.onBlur?.(e); triggers.current.focus = false; hide() },\n })}\n {pos !== null && (\n <span\n ref={bubble}\n className={css.bubble}\n data-side={placement}\n style={{ left: pos.x, top: y, ...maxWidth === undefined ? {} : { maxWidth } }}\n role=\"tooltip\"\n >\n {resolvedLabel}\n </span>\n )}\n </>\n )\n}\n","import { useEffect, useLayoutEffect, useState } from 'react'\nimport type { ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport css from './Toast.module.css'\n\n/** Full-opacity hold before the fade starts. Must agree with the stylesheet's\n * toast-fade delay (Toast.module.css) or the banner unmounts mid-fade. */\nconst HOLD_MS = 3000\n/** Fade duration. Must agree with the stylesheet's toast-fade duration. */\nconst FADE_MS = 1000\n\n/**\n * Transient top-center banner: slides in, holds at full opacity, fades out,\n * then reports done so the owner can unmount it. Re-showing the same text\n * restarts the cycle when the owner remounts the component (key it by a\n * per-show sequence). Rendered through a body portal so an owner inside a\n * transformed or filtered ancestor cannot trap the fixed banner in that\n * ancestor's box.\n *\n * @param props.text - resolved banner copy; the owner passes localized text.\n * @param props.icon - optional leading glyph (e.g. a warning icon).\n * @param props.anchor - optional element whose horizontal center the banner\n * follows (e.g. the composer card, so the banner centers over the chat column\n * rather than the whole window); omitted, it centers on the viewport.\n * @param props.onDone - called once the fade completes; unmount the toast here.\n * @returns the floating banner.\n */\nexport function Toast({ text, icon, anchor, onDone }: {\n text: string\n icon?: ReactNode\n anchor?: HTMLElement | null\n onDone: () => void\n}) {\n useEffect(() => {\n const timer = setTimeout(onDone, HOLD_MS + FADE_MS)\n return () => { clearTimeout(timer) }\n }, [onDone])\n // Anchor-centered placement re-measures on window resizes; the banner lives\n // four seconds, so sub-window layout drift within that span stays out of\n // scope.\n const [left, setLeft] = useState<number | null>(null)\n useLayoutEffect(() => {\n if (anchor == null) return\n const measure = (): void => {\n const rect = anchor.getBoundingClientRect()\n setLeft(rect.left + rect.width / 2)\n }\n measure()\n window.addEventListener('resize', measure)\n return () => { window.removeEventListener('resize', measure) }\n }, [anchor])\n return createPortal(\n <div className={css.toast} role=\"alert\" style={left === null ? undefined : { left }}>\n {icon !== undefined && <span className={css.icon} aria-hidden>{icon}</span>}\n <span className={css.text}>{text}</span>\n </div>,\n document.body,\n )\n}\n","import clsx from 'clsx'\nimport { useEffect, useId, useMemo, useRef, useState } from 'react'\nimport type {\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n UIEvent as ReactUIEvent,\n} from 'react'\nimport { IconCheckOutline16, IconCopyOutline16 } from './icons/index.tsx'\nimport { Menu } from './Menu.tsx'\nimport type { MenuEntry } from './Menu.tsx'\nimport css from './JsonTree.module.css'\n\nconst OBJECT_PREVIEW_LIMIT = 4\nconst ARRAY_PREVIEW_LIMIT = 5\nconst PREVIEW_DEPTH_LIMIT = 2\n\n/**\n * Display copy for the tree's copy affordance; the owner passes localized\n * labels (this package is cordis-free, so copy arrives via props). Every\n * field defaults to the current built-in value, so existing consumers render\n * unchanged.\n */\nexport interface JsonTreeLabels {\n /** Menu item: copy the raw primitive value. */\n copyValue: string\n /** Menu item: copy the value as compact JSON (primitive rows). */\n copyJson: string\n /** Menu item: copy the property path. */\n copyPath: string\n /** Menu item: copy the value as pretty-printed JSON. */\n copyPrettyJson: string\n /** Menu item: copy the value as compact JSON (object rows). */\n copyCompactJson: string\n /** Copy-button state label after a successful copy. */\n copied: string\n /** Copy-button state label after a failed copy. */\n copyFailed: string\n /** Expander aria label while expanded. */\n collapseNode: string\n /** Expander aria label while collapsed. */\n expandNode: string\n /** Copy-button tooltip, given the current action label. */\n copyButtonTitle: (action: string) => string\n}\n\nconst DEFAULT_LABELS: JsonTreeLabels = {\n copyValue: 'Copy value',\n copyJson: 'Copy JSON',\n copyPath: 'Copy property path',\n copyPrettyJson: 'Copy pretty JSON',\n copyCompactJson: 'Copy compact JSON',\n copied: 'Copied',\n copyFailed: 'Copy failed',\n collapseNode: 'Collapse JSON node',\n expandNode: 'Expand JSON node',\n copyButtonTitle: action => `${action}; right-click for copy options`,\n}\n\nfunction valueCopyMenuItems(labels: JsonTreeLabels): readonly MenuEntry[] {\n return [\n { id: 'value', label: labels.copyValue },\n { id: 'json', label: labels.copyJson },\n { id: 'path', label: labels.copyPath },\n ]\n}\n\nfunction objectCopyMenuItems(labels: JsonTreeLabels): readonly MenuEntry[] {\n return [\n { id: 'prettyJson', label: labels.copyPrettyJson },\n { id: 'json', label: labels.copyCompactJson },\n { id: 'path', label: labels.copyPath },\n ]\n}\n\ntype JsonPath = readonly (number | string)[]\n\ninterface RowTarget {\n path: JsonPath\n value: unknown\n}\n\ninterface CopyTarget extends RowTarget {\n left: number\n side: 'bottom' | 'top'\n top: number\n}\n\nfunction isExpandableValue(value: unknown): value is object | unknown[] {\n return typeof value === 'object' && value !== null && !(value instanceof Date)\n}\n\nfunction entriesOf(value: object | unknown[]): readonly (readonly [string, unknown])[] {\n if (Array.isArray(value)) {\n return value.map((item, index) => [String(index), item] as const)\n }\n return Object.keys(value).map(key => [\n key,\n (value as Record<string, unknown>)[key],\n ] as const)\n}\n\nfunction bracketOf(value: object | unknown[]): readonly [string, string] {\n return Array.isArray(value) ? ['[', ']'] : ['{', '}']\n}\n\nfunction previewPrimitive(value: unknown): ReactNode {\n if (value === null) return <span className={css.keywordValue}>null</span>\n if (typeof value === 'string') {\n return <span className={css.stringValue}>{JSON.stringify(value)}</span>\n }\n if (typeof value === 'number') {\n return <span className={css.numberValue}>{String(value)}</span>\n }\n if (typeof value === 'boolean') {\n return <span className={css.keywordValue}>{String(value)}</span>\n }\n if (typeof value === 'bigint') {\n return <span className={css.otherValue}>{value.toString()}</span>\n }\n if (typeof value === 'undefined') {\n return <span className={css.otherValue}>undefined</span>\n }\n if (typeof value === 'symbol') {\n return <span className={css.otherValue}>{value.description ?? 'Symbol'}</span>\n }\n if (typeof value === 'function') {\n return <span className={css.otherValue}>{value.name || 'Function'}</span>\n }\n return null\n}\n\nfunction previewValue(value: unknown, depth: number): ReactNode {\n if (!isExpandableValue(value)) return previewPrimitive(value)\n\n const array = Array.isArray(value)\n const entries = entriesOf(value)\n const limit = array ? ARRAY_PREVIEW_LIMIT : OBJECT_PREVIEW_LIMIT\n const visible = entries.slice(0, limit)\n const [open, close] = bracketOf(value)\n\n return (\n <>\n <span className={css.punctuation}>{open}</span>\n {depth >= PREVIEW_DEPTH_LIMIT\n ? <span className={css.previewEllipsis}>…</span>\n : visible.map(([key, item], index) => (\n <span key={key}>\n {index > 0 && <span className={css.punctuation}>, </span>}\n {!array && (\n <>\n <span className={css.previewProperty}>{key}</span>\n <span className={css.punctuation}>: </span>\n </>\n )}\n {previewValue(item, depth + 1)}\n </span>\n ))}\n {depth < PREVIEW_DEPTH_LIMIT && entries.length > limit && (\n <span className={css.previewEllipsis}>, …</span>\n )}\n <span className={css.punctuation}>{close}</span>\n </>\n )\n}\n\nfunction primitiveValue(value: unknown): ReactNode {\n if (value === null) return <span className={css.keywordValue}>null</span>\n if (typeof value === 'string') {\n return <span className={css.stringValue}>{JSON.stringify(value)}</span>\n }\n if (typeof value === 'boolean') {\n return <span className={css.keywordValue}>{String(value)}</span>\n }\n if (typeof value === 'number') {\n return <span className={css.numberValue}>{String(value)}</span>\n }\n if (typeof value === 'bigint') {\n return <span className={css.numberValue}>{`${value.toString()}n`}</span>\n }\n if (value instanceof Date) {\n return <span className={css.otherValue}>{value.toISOString()}</span>\n }\n if (typeof value === 'function') {\n return <span className={css.otherValue}>function() {'{ }'}</span>\n }\n if (typeof value === 'undefined') {\n return <span className={css.otherValue}>undefined</span>\n }\n return <span className={css.otherValue}>{(value as symbol).toString()}</span>\n}\n\nfunction fieldText(field: string): string {\n return field === '' ? '\"\"' : field\n}\n\nfunction pathId(path: JsonPath): string {\n return path.map(part => (\n typeof part === 'number' ? `n${String(part)}` : `s${String(part.length)}:${part}`\n )).join('/')\n}\n\nfunction claimFocus(button: HTMLElement): void {\n button.focus()\n}\n\nfunction moveFocus(button: HTMLElement, direction: -1 | 1): void {\n const tree = button.closest<HTMLElement>('[role=\"tree\"]')\n /* v8 ignore next -- JsonTree attaches expander handlers only beneath its owning role=tree. */\n if (tree === null) return\n const expanders = Array.from(tree.querySelectorAll<HTMLElement>('[data-json-expander]'))\n const current = expanders.indexOf(button)\n /* v8 ignore next -- the current expander is a member of the queried non-empty set. */\n if (current < 0 || expanders.length === 0) return\n const next = (current + direction + expanders.length) % expanders.length\n const nextExpander = expanders[next]\n /* v8 ignore next -- modulo over the non-empty expander set always resolves a member. */\n if (nextExpander !== undefined) claimFocus(nextExpander)\n}\n\nfunction NodeField({\n field,\n expandable,\n onToggle,\n}: {\n field: string | undefined\n expandable: boolean\n onToggle: () => void\n}) {\n if (field === undefined) return null\n return (\n <span\n className={clsx(css.label, expandable && css.clickableLabel)}\n onClick={expandable ? onToggle : undefined}\n >\n {fieldText(field)}:\n </span>\n )\n}\n\ninterface JsonTreeNodeProps {\n field?: string\n initialExpanded: boolean\n labels: JsonTreeLabels\n lastElement: boolean\n onClaimTabStop: (id: string) => void\n onRowHover: (row: HTMLElement, target: RowTarget) => void\n path: JsonPath\n tabStopId: string | null\n value: unknown\n}\n\nfunction JsonTreeNode({\n field,\n initialExpanded,\n labels,\n lastElement,\n onClaimTabStop,\n onRowHover,\n path,\n tabStopId,\n value,\n}: JsonTreeNodeProps) {\n const contentsId = useId()\n const expanderRef = useRef<HTMLSpanElement>(null)\n const [expanded, setExpanded] = useState(initialExpanded)\n const nodeId = pathId(path)\n const container = isExpandableValue(value)\n const entries = container ? entriesOf(value) : []\n const expandable = entries.length > 0\n\n const toggle = () => {\n setExpanded(current => !current)\n claimFocus(expanderRef.current as HTMLSpanElement)\n }\n\n const onExpanderKeyDown = (event: ReactKeyboardEvent<HTMLSpanElement>) => {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n event.preventDefault()\n setExpanded(event.key === 'ArrowRight')\n return\n }\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault()\n moveFocus(event.currentTarget, event.key === 'ArrowUp' ? -1 : 1)\n }\n }\n\n const row = (children: ReactNode, ariaExpanded?: boolean) => (\n <div\n className={css.row}\n role=\"treeitem\"\n aria-expanded={ariaExpanded}\n onMouseOver={(event) => {\n event.stopPropagation()\n onRowHover(event.currentTarget, { path, value })\n }}\n >\n {children}\n </div>\n )\n\n if (!container) {\n return row((\n <>\n <NodeField field={field} expandable={false} onToggle={toggle} />\n {primitiveValue(value)}\n {!lastElement && <span className={css.punctuation}>,</span>}\n </>\n ))\n }\n\n const [open, close] = bracketOf(value)\n if (!expandable) {\n return row((\n <>\n <NodeField field={field} expandable={false} onToggle={toggle} />\n <span className={css.punctuation}>{open}</span>\n <span className={css.punctuation}>{close}</span>\n {!lastElement && <span className={css.punctuation}>,</span>}\n </>\n ))\n }\n\n return row((\n <>\n <span\n ref={expanderRef}\n className={clsx(css.expander, expanded ? css.collapseIcon : css.expandIcon)}\n data-json-expander\n role=\"button\"\n aria-label={expanded ? labels.collapseNode : labels.expandNode}\n aria-expanded={expanded}\n aria-controls={expanded ? contentsId : undefined}\n tabIndex={tabStopId === nodeId ? 0 : -1}\n onFocus={() => { onClaimTabStop(nodeId) }}\n onClick={toggle}\n onKeyDown={onExpanderKeyDown}\n />\n <NodeField field={field} expandable onToggle={toggle} />\n <span className={css.preview}>{previewValue(value, 0)}</span>\n {!lastElement && <span className={css.punctuation}>,</span>}\n {expanded && (\n <ul id={contentsId} role=\"group\" className={css.children}>\n {entries.map(([key, item], index) => (\n <JsonTreeNode\n key={key}\n field={key}\n value={item}\n path={[...path, Array.isArray(value) ? index : key]}\n labels={labels}\n lastElement={index === entries.length - 1}\n initialExpanded={false}\n tabStopId={tabStopId}\n onClaimTabStop={onClaimTabStop}\n onRowHover={onRowHover}\n />\n ))}\n </ul>\n )}\n </>\n ), expanded)\n}\n\nfunction formattedPath(path: JsonPath): string {\n return path.reduce<string>((result, part) => {\n if (typeof part === 'number') return `${result}[${String(part)}]`\n return /^[A-Za-z_$][\\w$]*$/.test(part)\n ? `${result}.${part}`\n : `${result}[${JSON.stringify(part)}]`\n }, '$')\n}\n\nfunction copyText(target: CopyTarget, mode: 'json' | 'path' | 'prettyJson' | 'value'): string {\n if (mode === 'path') return formattedPath(target.path)\n if (mode === 'prettyJson') return JSON.stringify(target.value, null, 2)\n if (mode === 'json') return JSON.stringify(target.value)\n if (typeof target.value === 'string') return target.value\n if (typeof target.value === 'undefined') return 'undefined'\n if (typeof target.value === 'bigint') return target.value.toString()\n if (typeof target.value === 'symbol') return target.value.description ?? 'Symbol'\n if (typeof target.value === 'function') return target.value.name || 'Function'\n return JSON.stringify(target.value)\n}\n\n/** Props for the read-only, token-themed JSON tree. */\nexport interface JsonTreeProps {\n /** Parsed JSON object or array. */\n data: object | unknown[]\n /** Accessible label for the tree. */\n label?: string\n /** Optional positioning class owned by the caller. */\n className?: string | undefined\n /** Whether JSON rows expose copy actions. */\n copyable?: boolean\n /** Whether the top-level object or array is always expanded. */\n expandTopLevel?: boolean\n /** Localized display copy; omitted fields keep the built-in defaults. */\n labels?: Partial<JsonTreeLabels> | undefined\n}\n\n/**\n * Render parsed JSON as a compact, keyboard-accessible inspector tree.\n * @param props - Parsed data, accessible label, and display options.\n * @returns A read-only JSON tree with an optionally fixed-open top level.\n */\nexport function JsonTree({\n data,\n label = 'JSON',\n className,\n copyable = true,\n expandTopLevel = true,\n labels,\n}: JsonTreeProps) {\n const copyLabels = useMemo<JsonTreeLabels>(\n () => (labels === undefined ? DEFAULT_LABELS : { ...DEFAULT_LABELS, ...labels }),\n [labels],\n )\n const rootEntries = entriesOf(data)\n const firstExpandableIndex = rootEntries.findIndex(([, value]) => (\n isExpandableValue(value) && entriesOf(value).length > 0\n ))\n const firstExpandableEntry = rootEntries[firstExpandableIndex]\n const initialTabStopId = expandTopLevel\n ? firstExpandableEntry === undefined\n ? null\n : pathId([Array.isArray(data) ? firstExpandableIndex : firstExpandableEntry[0]])\n : isExpandableValue(data) && rootEntries.length > 0 ? pathId([]) : null\n const rootRef = useRef<HTMLDivElement>(null)\n const activeRowRef = useRef<HTMLElement>()\n const copyButtonRef = useRef<HTMLButtonElement>(null)\n const copyMenuOpenRef = useRef(false)\n const resetTimer = useRef<ReturnType<typeof setTimeout>>()\n const [copyTarget, setCopyTarget] = useState<CopyTarget>()\n const [copyState, setCopyState] = useState<'idle' | 'copied' | 'failed'>('idle')\n const [copyMenuOpen, setCopyMenuOpen] = useState(false)\n const [tabStopId, setTabStopId] = useState<string | null>(initialTabStopId)\n\n const setActiveRow = (row: HTMLElement | undefined) => {\n activeRowRef.current?.removeAttribute('data-json-copy-active')\n activeRowRef.current = row\n row?.setAttribute('data-json-copy-active', '')\n }\n\n const clearCopyTarget = () => {\n setActiveRow(undefined)\n setCopyTarget(undefined)\n setCopyState('idle')\n copyMenuOpenRef.current = false\n setCopyMenuOpen(false)\n }\n\n const copyPosition = (row: HTMLElement): Pick<CopyTarget, 'left' | 'side' | 'top'> => {\n const root = rootRef.current\n /* v8 ignore next -- row events and viewport listeners run only after the root ref mounts. */\n if (root === null) throw new Error('JsonTree root is not mounted')\n const rootRect = root.getBoundingClientRect()\n const rowRect = row.getBoundingClientRect()\n return {\n left: rootRect.left + root.clientWidth - 26,\n side: rowRect.top - rootRect.top > root.clientHeight / 2 ? 'top' : 'bottom',\n top: rowRect.top,\n }\n }\n\n const positionCopyButton = (row: HTMLElement, target: RowTarget) => {\n const position = copyPosition(row)\n setCopyTarget({ ...target, ...position })\n }\n\n const repositionCopyButton = (row: HTMLElement) => {\n const position = copyPosition(row)\n setCopyTarget((current) => {\n /* v8 ignore next -- an active row and its copy target are installed together. */\n if (current === undefined) return current\n return { ...current, ...position }\n })\n }\n\n useEffect(() => () => {\n if (resetTimer.current !== undefined) clearTimeout(resetTimer.current)\n activeRowRef.current?.removeAttribute('data-json-copy-active')\n }, [])\n\n useEffect(() => {\n activeRowRef.current?.removeAttribute('data-json-copy-active')\n activeRowRef.current = undefined\n copyMenuOpenRef.current = false\n setCopyTarget(undefined)\n setCopyState('idle')\n setCopyMenuOpen(false)\n setTabStopId(initialTabStopId)\n }, [data, expandTopLevel, initialTabStopId])\n\n useEffect(() => {\n const reposition = () => {\n const row = activeRowRef.current\n if (row !== undefined) repositionCopyButton(row)\n }\n window.addEventListener('scroll', reposition, true)\n window.addEventListener('resize', reposition)\n return () => {\n window.removeEventListener('scroll', reposition, true)\n window.removeEventListener('resize', reposition)\n }\n }, [])\n\n const handleRowHover = (row: HTMLElement, target: RowTarget) => {\n if (!copyable || copyMenuOpenRef.current) return\n if (activeRowRef.current === row) return\n setActiveRow(row)\n setCopyState('idle')\n copyMenuOpenRef.current = false\n setCopyMenuOpen(false)\n positionCopyButton(row, target)\n }\n\n const handleRootMouseOver = (event: ReactMouseEvent<HTMLDivElement>) => {\n if (!copyable || copyMenuOpenRef.current) return\n /* v8 ignore next -- browser mouse events delivered through React target an Element. */\n if (!(event.target instanceof Element)) return\n if (event.target.closest('[data-json-copy-button]') === null) clearCopyTarget()\n }\n\n const handleScroll = (_event: ReactUIEvent<HTMLDivElement>) => {\n const row = activeRowRef.current\n if (row !== undefined) repositionCopyButton(row)\n }\n\n const copy = async (mode: 'json' | 'path' | 'prettyJson' | 'value') => {\n /* v8 ignore next -- copy controls only render while their target exists. */\n if (copyTarget === undefined) return\n try {\n await navigator.clipboard.writeText(copyText(copyTarget, mode))\n setCopyState('copied')\n } catch {\n setCopyState('failed')\n }\n if (resetTimer.current !== undefined) clearTimeout(resetTimer.current)\n resetTimer.current = setTimeout(() => { setCopyState('idle') }, 1_500)\n }\n\n const [rootOpen, rootClose] = bracketOf(data)\n const copyTargetIsObject = typeof copyTarget?.value === 'object' && copyTarget.value !== null\n const defaultCopyMode = copyTargetIsObject ? 'prettyJson' : 'value'\n const copyTitle = copyState === 'copied'\n ? copyLabels.copied\n : copyState === 'failed'\n ? copyLabels.copyFailed\n : copyTargetIsObject ? copyLabels.copyPrettyJson : copyLabels.copyValue\n\n return (\n <div\n ref={rootRef}\n className={clsx(css.root, className)}\n onMouseOver={handleRootMouseOver}\n onMouseLeave={() => {\n if (!copyMenuOpenRef.current) clearCopyTarget()\n }}\n onScroll={handleScroll}\n >\n {expandTopLevel\n ? (\n <div className={css.expandedTopLevel}>\n <div\n className={clsx(css.row, css.topLevelBracket)}\n data-json-root-row\n onMouseOver={(event) => {\n event.stopPropagation()\n handleRowHover(event.currentTarget, { path: [], value: data })\n }}\n >\n <span className={css.punctuation}>{rootOpen}</span>\n </div>\n <div\n aria-label={label}\n className={clsx(css.container, css.expandedTopLevelContainer)}\n role=\"tree\"\n >\n {rootEntries.map(([key, value], index) => (\n <JsonTreeNode\n key={key}\n field={key}\n value={value}\n path={[Array.isArray(data) ? index : key]}\n labels={copyLabels}\n lastElement={index === rootEntries.length - 1}\n initialExpanded={false}\n tabStopId={tabStopId}\n onClaimTabStop={setTabStopId}\n onRowHover={handleRowHover}\n />\n ))}\n </div>\n <div className={clsx(css.row, css.topLevelBracket)}>\n <span className={css.punctuation}>{rootClose}</span>\n </div>\n </div>\n )\n : (\n <div aria-label={label} className={css.container} role=\"tree\">\n <JsonTreeNode\n value={data}\n path={[]}\n labels={copyLabels}\n lastElement\n initialExpanded\n tabStopId={tabStopId}\n onClaimTabStop={setTabStopId}\n onRowHover={handleRowHover}\n />\n </div>\n )}\n {copyTarget !== undefined && (\n <span\n className={css.copyAnchor}\n style={{ left: copyTarget.left, top: copyTarget.top }}\n >\n <Menu\n open={copyMenuOpen}\n compact\n portal\n align=\"end\"\n side={copyTarget.side}\n anchor={(\n <button\n ref={copyButtonRef}\n type=\"button\"\n className={css.copyButton}\n data-json-copy-button\n data-state={copyState}\n aria-label={copyTitle}\n title={copyLabels.copyButtonTitle(copyTitle)}\n onClick={() => void copy(defaultCopyMode)}\n onContextMenu={(event) => {\n event.preventDefault()\n event.stopPropagation()\n copyMenuOpenRef.current = true\n setCopyMenuOpen(true)\n }}\n >\n {copyState === 'copied'\n ? <IconCheckOutline16 size={12} />\n : <IconCopyOutline16 size={12} />}\n </button>\n )}\n items={copyTargetIsObject ? objectCopyMenuItems(copyLabels) : valueCopyMenuItems(copyLabels)}\n onSelect={(id) => {\n void copy(id as 'json' | 'path' | 'prettyJson' | 'value')\n copyMenuOpenRef.current = false\n setCopyMenuOpen(false)\n }}\n onClose={clearCopyTarget}\n getAnchorRect={() => (\n copyButtonRef.current as HTMLButtonElement\n ).getBoundingClientRect()}\n />\n </span>\n )}\n </div>\n )\n}\n","\"use strict\";\n\n// This file was originally written by @drudru (https://github.com/drudru/ansi_up), MIT, 2011\n\nconst ANSI_COLORS = [\n [\n { color: \"0, 0, 0\", \"class\": \"ansi-black\" }\n , { color: \"187, 0, 0\", \"class\": \"ansi-red\" }\n , { color: \"0, 187, 0\", \"class\": \"ansi-green\" }\n , { color: \"187, 187, 0\", \"class\": \"ansi-yellow\" }\n , { color: \"0, 0, 187\", \"class\": \"ansi-blue\" }\n , { color: \"187, 0, 187\", \"class\": \"ansi-magenta\" }\n , { color: \"0, 187, 187\", \"class\": \"ansi-cyan\" }\n , { color: \"255,255,255\", \"class\": \"ansi-white\" }\n ]\n , [\n { color: \"85, 85, 85\", \"class\": \"ansi-bright-black\" }\n , { color: \"255, 85, 85\", \"class\": \"ansi-bright-red\" }\n , { color: \"0, 255, 0\", \"class\": \"ansi-bright-green\" }\n , { color: \"255, 255, 85\", \"class\": \"ansi-bright-yellow\" }\n , { color: \"85, 85, 255\", \"class\": \"ansi-bright-blue\" }\n , { color: \"255, 85, 255\", \"class\": \"ansi-bright-magenta\" }\n , { color: \"85, 255, 255\", \"class\": \"ansi-bright-cyan\" }\n , { color: \"255, 255, 255\", \"class\": \"ansi-bright-white\" }\n ]\n];\n// https://datatracker.ietf.org/doc/html/rfc3986#appendix-A\nconst linkRegex = /(https?:\\/\\/(?:[A-Za-z0-9#;/?:@=+$',_.!~*()[\\]-]|&|%[A-Fa-f0-9]{2})+)/gm;\n\nclass Anser {\n\n /**\n * Anser.escapeForHtml\n * Escape the input HTML.\n *\n * This does the minimum escaping of text to make it compliant with HTML.\n * In particular, the '&','<', and '>' characters are escaped. This should\n * be run prior to `ansiToHtml`.\n *\n * @name Anser.escapeForHtml\n * @function\n * @param {String} txt The input text (containing the ANSI snippets).\n * @returns {String} The escaped html.\n */\n static escapeForHtml (txt) {\n return new Anser().escapeForHtml(txt);\n }\n\n /**\n * Anser.linkify\n * Adds the links in the HTML.\n *\n * This replaces any links in the text with anchor tags that display the\n * link. You should apply this after you have run `ansiToHtml` on the text.\n *\n * @name Anser.linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML containing the <a> tags (unescaped).\n */\n static linkify (txt) {\n return new Anser().linkify(txt);\n }\n\n /**\n * Anser.ansiToHtml\n * This replaces ANSI terminal escape codes with SPAN tags that wrap the\n * content.\n *\n * This function only interprets ANSI SGR (Select Graphic Rendition) codes\n * that can be represented in HTML.\n * For example, cursor movement codes are ignored and hidden from output.\n * The default style uses colors that are very close to the prescribed\n * standard. The standard assumes that the text will have a black\n * background. These colors are set as inline styles on the SPAN tags.\n *\n * Another option is to set `use_classes: true` in the options argument.\n * This will instead set classes on the spans so the colors can be set via\n * CSS. The class names used are of the format `ansi-*-fg/bg` and\n * `ansi-bright-*-fg/bg` where `*` is the color name,\n * i.e black/red/green/yellow/blue/magenta/cyan/white.\n *\n * @name Anser.ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n static ansiToHtml (txt, options) {\n return new Anser().ansiToHtml(txt, options);\n }\n\n /**\n * Anser.ansiToJson\n * Converts ANSI input into JSON output.\n *\n * @name Anser.ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n static ansiToJson (txt, options) {\n return new Anser().ansiToJson(txt, options);\n }\n\n /**\n * Anser.ansiToText\n * Converts ANSI input into text output.\n *\n * @name Anser.ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n static ansiToText (txt) {\n return new Anser().ansiToText(txt);\n }\n\n /**\n * Anser\n * The `Anser` class.\n *\n * @name Anser\n * @function\n * @returns {Anser}\n */\n constructor () {\n this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n this.bright = 0;\n this.decorations = [];\n }\n\n /**\n * setupPalette\n * Sets up the palette.\n *\n * @name setupPalette\n * @function\n */\n setupPalette () {\n this.PALETTE_COLORS = [];\n\n // Index 0..15 : System color\n for (let i = 0; i < 2; ++i) {\n for (let j = 0; j < 8; ++j) {\n this.PALETTE_COLORS.push(ANSI_COLORS[i][j].color);\n }\n }\n\n // Index 16..231 : RGB 6x6x6\n // https://gist.github.com/jasonm23/2868981#file-xterm-256color-yaml\n let levels = [0, 95, 135, 175, 215, 255];\n let format = (r, g, b) => levels[r] + \", \" + levels[g] + \", \" + levels[b];\n let r, g, b;\n for (let r = 0; r < 6; ++r) {\n for (let g = 0; g < 6; ++g) {\n for (let b = 0; b < 6; ++b) {\n this.PALETTE_COLORS.push(format(r, g, b));\n }\n }\n }\n\n // Index 232..255 : Grayscale\n let level = 8;\n for (let i = 0; i < 24; ++i, level += 10) {\n this.PALETTE_COLORS.push(level + \", \" + level + \", \" + level);\n }\n }\n\n /**\n * escapeForHtml\n * Escapes the input text.\n *\n * @name escapeForHtml\n * @function\n * @param {String} txt The input text.\n * @returns {String} The escpaed HTML output.\n */\n escapeForHtml (txt) {\n return txt.replace(/[&<>\\\"]/gm, str =>\n str == \"&\" ? \"&\" :\n str == '\"' ? \""\" :\n str == \"<\" ? \"<\" :\n str == \">\" ? \">\" : \"\"\n );\n }\n\n /**\n * linkify\n * Adds HTML link elements.\n *\n * @name linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML output containing link elements.\n */\n linkify (txt) {\n return txt.replace(linkRegex, str => `<a href=\"${str}\">${str}</a>`);\n }\n\n /**\n * ansiToHtml\n * Converts ANSI input into HTML output.\n *\n * @name ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The HTML output.\n */\n ansiToHtml (txt, options) {\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToJson\n * Converts ANSI input into HTML output.\n *\n * @name ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The JSON output.\n */\n ansiToJson (txt, options) {\n options = options || {};\n options.json = true;\n options.clearLine = false;\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToText\n * Converts ANSI input into HTML output.\n *\n * @name ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n ansiToText (txt) {\n return this.process(txt, {}, false);\n }\n\n /**\n * process\n * Processes the input.\n *\n * @name process\n * @function\n * @param {String} txt The input text.\n * @param {Object} options An object passed to `processChunk` method, extended with:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup\n */\n process (txt, options, markup) {\n let self = this;\n let raw_text_chunks = txt.split(/\\033\\[/);\n let first_chunk = raw_text_chunks.shift(); // the first chunk is not the result of the split\n\n if (options === undefined || options === null) {\n options = {};\n }\n options.clearLine = /\\r/.test(txt); // check for Carriage Return\n let color_chunks = raw_text_chunks.map(chunk => this.processChunk(chunk, options, markup))\n\n if (options && options.json) {\n let first = self.processChunkJson(\"\");\n first.content = first_chunk;\n first.clearLine = options.clearLine;\n color_chunks.unshift(first);\n if (options.remove_empty) {\n color_chunks = color_chunks.filter(c => !c.isEmpty());\n }\n return color_chunks;\n } else {\n color_chunks.unshift(first_chunk);\n }\n\n return color_chunks.join(\"\");\n }\n\n /**\n * processChunkJson\n * Processes the current chunk into json output.\n *\n * @name processChunkJson\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object} The result object:\n *\n * - `content` (String): The text.\n * - `fg` (String|null): The foreground color.\n * - `bg` (String|null): The background color.\n * - `fg_truecolor` (String|null): The foreground true color (if 16m color is enabled).\n * - `bg_truecolor` (String|null): The background true color (if 16m color is enabled).\n * - `clearLine` (Boolean): `true` if a carriageReturn \\r was fount at end of line.\n * - `was_processed` (Bolean): `true` if the colors were processed, `false` otherwise.\n * - `isEmpty` (Function): A function returning `true` if the content is empty, or `false` otherwise.\n *\n */\n processChunkJson (text, options, markup) {\n\n // Are we using classes or styles?\n options = typeof options == \"undefined\" ? {} : options;\n let use_classes = options.use_classes = typeof options.use_classes != \"undefined\" && options.use_classes;\n let key = options.key = use_classes ? \"class\" : \"color\";\n\n let result = {\n content: text\n , fg: null\n , bg: null\n , fg_truecolor: null\n , bg_truecolor: null\n , isInverted: false\n , clearLine: options.clearLine\n , decoration: null\n , decorations: []\n , was_processed: false\n , isEmpty: () => !result.content\n };\n\n // Each \"chunk\" is the text after the CSI (ESC + \"[\") and before the next CSI/EOF.\n //\n // This regex matches four groups within a chunk.\n //\n // The first and third groups match code type.\n // We supported only SGR command. It has empty first group and \"m\" in third.\n //\n // The second group matches all of the number+semicolon command sequences\n // before the \"m\" (or other trailing) character.\n // These are the graphics or SGR commands.\n //\n // The last group is the text (including newlines) that is colored by\n // the other group\"s commands.\n let matches = text.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n\n if (!matches) return result;\n\n let orig_txt = result.content = matches[4];\n let nums = matches[2].split(\";\");\n\n // We currently support only \"SGR\" (Select Graphic Rendition)\n // Simply ignore if not a SGR command.\n if (matches[1] !== \"\" || matches[3] !== \"m\") {\n return result;\n }\n\n if (!markup) {\n return result;\n }\n\n let self = this;\n\n while (nums.length > 0) {\n let num_str = nums.shift();\n let num = parseInt(num_str);\n\n if (isNaN(num) || num === 0) {\n self.fg = self.bg = null;\n self.decorations = [];\n } else if (num === 1) {\n self.decorations.push(\"bold\");\n } else if (num === 2) {\n self.decorations.push(\"dim\");\n // Enable code 2 to get string\n } else if (num === 3) {\n self.decorations.push(\"italic\");\n } else if (num === 4) {\n self.decorations.push(\"underline\");\n } else if (num === 5) {\n self.decorations.push(\"blink\");\n } else if (num === 7) {\n self.decorations.push(\"reverse\");\n } else if (num === 8) {\n self.decorations.push(\"hidden\");\n // Enable code 9 to get strikethrough\n } else if (num === 9) {\n self.decorations.push(\"strikethrough\");\n /**\n * Add several widely used style codes\n * @see https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters\n */\n } else if (num === 21) {\n self.removeDecoration(\"bold\");\n } else if (num === 22) {\n self.removeDecoration(\"bold\");\n self.removeDecoration(\"dim\");\n } else if (num === 23) {\n self.removeDecoration(\"italic\");\n } else if (num === 24) {\n self.removeDecoration(\"underline\");\n } else if (num === 25) {\n self.removeDecoration(\"blink\");\n } else if (num === 27) {\n self.removeDecoration(\"reverse\");\n } else if (num === 28) {\n self.removeDecoration(\"hidden\");\n } else if (num === 29) {\n self.removeDecoration(\"strikethrough\");\n } else if (num === 39) {\n self.fg = null;\n } else if (num === 49) {\n self.bg = null;\n // Foreground color\n } else if ((num >= 30) && (num < 38)) {\n self.fg = ANSI_COLORS[0][(num % 10)][key];\n // Foreground bright color\n } else if ((num >= 90) && (num < 98)) {\n self.fg = ANSI_COLORS[1][(num % 10)][key];\n // Background color\n } else if ((num >= 40) && (num < 48)) {\n self.bg = ANSI_COLORS[0][(num % 10)][key];\n // Background bright color\n } else if ((num >= 100) && (num < 108)) {\n self.bg = ANSI_COLORS[1][(num % 10)][key];\n } else if (num === 38 || num === 48) { // extend color (38=fg, 48=bg)\n let is_foreground = (num === 38);\n if (nums.length >= 1) {\n let mode = nums.shift();\n if (mode === \"5\" && nums.length >= 1) { // palette color\n let palette_index = parseInt(nums.shift());\n if (palette_index >= 0 && palette_index <= 255) {\n if (!use_classes) {\n if (!this.PALETTE_COLORS) {\n self.setupPalette();\n }\n if (is_foreground) {\n self.fg = this.PALETTE_COLORS[palette_index];\n } else {\n self.bg = this.PALETTE_COLORS[palette_index];\n }\n } else {\n let klass = (palette_index >= 16)\n ? (\"ansi-palette-\" + palette_index)\n : ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8][\"class\"];\n if (is_foreground) {\n self.fg = klass;\n } else {\n self.bg = klass;\n }\n }\n }\n } else if(mode === \"2\" && nums.length >= 3) { // true color\n let r = parseInt(nums.shift());\n let g = parseInt(nums.shift());\n let b = parseInt(nums.shift());\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n let color = r + \", \" + g + \", \" + b;\n if (!use_classes) {\n if (is_foreground) {\n self.fg = color;\n } else {\n self.bg = color;\n }\n } else {\n if (is_foreground) {\n self.fg = \"ansi-truecolor\";\n self.fg_truecolor = color;\n } else {\n self.bg = \"ansi-truecolor\";\n self.bg_truecolor = color;\n }\n }\n }\n }\n }\n }\n }\n\n if ((self.fg === null) && (self.bg === null) && (self.decorations.length === 0)) {\n return result;\n } else {\n let styles = [];\n let classes = [];\n let data = {};\n\n result.fg = self.fg;\n result.bg = self.bg;\n result.fg_truecolor = self.fg_truecolor;\n result.bg_truecolor = self.bg_truecolor;\n result.decorations = self.decorations;\n result.decoration = self.decorations.slice(-1).pop() || null;\n result.was_processed = true;\n\n return result;\n }\n }\n\n /**\n * processChunk\n * Processes the current chunk of text.\n *\n * @name processChunk\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object|String} The result (object if `json` is wanted back or string otherwise).\n */\n processChunk (text, options, markup) {\n options = options || {};\n let jsonChunk = this.processChunkJson(text, options, markup);\n let use_classes = options.use_classes;\n\n // \"reverse\" decoration reverses foreground and background colors\n jsonChunk.decorations = jsonChunk.decorations\n .filter((decoration) => {\n if (decoration === \"reverse\") {\n // when reversing, missing colors are defaulted to black (bg) and white (fg)\n if (!jsonChunk.fg) {\n jsonChunk.fg = ANSI_COLORS[0][7][use_classes ? \"class\" : \"color\"];\n }\n if (!jsonChunk.bg) {\n jsonChunk.bg = ANSI_COLORS[0][0][use_classes ? \"class\" : \"color\"];\n }\n let tmpFg = jsonChunk.fg;\n jsonChunk.fg = jsonChunk.bg;\n jsonChunk.bg = tmpFg;\n let tmpFgTrue = jsonChunk.fg_truecolor;\n jsonChunk.fg_truecolor = jsonChunk.bg_truecolor;\n jsonChunk.bg_truecolor = tmpFgTrue;\n jsonChunk.isInverted = true;\n return false;\n }\n return true;\n });\n\n if (options.json) { return jsonChunk; }\n if (jsonChunk.isEmpty()) { return \"\"; }\n if (!jsonChunk.was_processed) { return jsonChunk.content; }\n\n let colors = [];\n let decorations = [];\n let textDecorations = [];\n let data = {};\n\n let render_data = data => {\n let fragments = [];\n let key;\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n fragments.push(\"data-\" + key + \"=\\\"\" + this.escapeForHtml(data[key]) + \"\\\"\");\n }\n }\n return fragments.length > 0 ? \" \" + fragments.join(\" \") : \"\";\n };\n\n if (jsonChunk.isInverted) {\n data[\"ansi-is-inverted\"] = \"true\";\n }\n\n if (jsonChunk.fg) {\n if (use_classes) {\n colors.push(jsonChunk.fg + \"-fg\");\n if (jsonChunk.fg_truecolor !== null) {\n data[\"ansi-truecolor-fg\"] = jsonChunk.fg_truecolor;\n jsonChunk.fg_truecolor = null;\n }\n } else {\n colors.push(\"color:rgb(\" + jsonChunk.fg + \")\");\n }\n }\n\n if (jsonChunk.bg) {\n if (use_classes) {\n colors.push(jsonChunk.bg + \"-bg\");\n if (jsonChunk.bg_truecolor !== null) {\n data[\"ansi-truecolor-bg\"] = jsonChunk.bg_truecolor;\n jsonChunk.bg_truecolor = null;\n }\n } else {\n colors.push(\"background-color:rgb(\" + jsonChunk.bg + \")\");\n }\n }\n\n jsonChunk.decorations.forEach((decoration) => {\n // use classes\n if (use_classes) {\n decorations.push(\"ansi-\" + decoration);\n return;\n }\n // use styles\n if (decoration === \"bold\") {\n decorations.push(\"font-weight:bold\");\n } else if (decoration === \"dim\") {\n decorations.push(\"opacity:0.5\");\n } else if (decoration === \"italic\") {\n decorations.push(\"font-style:italic\");\n } else if (decoration === \"hidden\") {\n decorations.push(\"visibility:hidden\");\n } else if (decoration === \"strikethrough\") {\n textDecorations.push(\"line-through\");\n } else {\n // underline and blink are treated here\n textDecorations.push(decoration);\n }\n });\n\n if (textDecorations.length) {\n decorations.push(\"text-decoration:\" + textDecorations.join(\" \"));\n }\n\n if (use_classes) {\n return \"<span class=\\\"\" + colors.concat(decorations).join(\" \") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n } else {\n return \"<span style=\\\"\" + colors.concat(decorations).join(\";\") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n }\n }\n\n removeDecoration(decoration) {\n const index = this.decorations.indexOf(decoration);\n\n if (index >= 0) {\n this.decorations.splice(index, 1);\n }\n }\n}\n\nmodule.exports = Anser;\n","// ANSI model behind TerminalBlock: anser splits the SGR runs, this module\n// resolves each run's colors and decorations into a plain style record and\n// folds the runs into per-line span arrays so a height cap can slice whole\n// lines. Sequences anser does not turn into color (OSC, cursor movement,\n// other C0 controls) are removed before parsing so they never reach the DOM\n// as literal characters.\n\nimport Anser from 'anser'\nimport type { CSSProperties } from 'react'\n\n/**\n * The subset of one anser JSON chunk this module reads. anser's own types\n * declare `fg`/`bg` as `string`, but its parser leaves them `null` for a run\n * that sets no color, so the null is spelled out here.\n */\ninterface AnsiChunk {\n /** Run text with its SGR codes already removed. */\n content: string\n /** Foreground as an `r, g, b` triple, or null when the run sets none. */\n fg: string | null\n /** Background as an `r, g, b` triple, or null when the run sets none. */\n bg: string | null\n /** SGR attributes in effect for the run, in the order they were declared. */\n decorations: readonly string[]\n}\n\n/** One run of terminal text; `style` is undefined for text that carries no SGR state. */\nexport interface AnsiSpan {\n /** The run's plain text, free of escape sequences and newlines. */\n text: string\n /** Resolved inline style, or undefined when the run needs no wrapper. */\n style: CSSProperties | undefined\n}\n\n/** The spans of one output line, in order. */\nexport type AnsiLine = readonly AnsiSpan[]\n\n/**\n * The 8/16 basic ANSI colors, keyed by the whitespace-free `r,g,b` triple\n * anser emits for them, mapped onto the theme tokens that carry the same\n * semantic. Black and white both resolve to the primary label color so text\n * stays legible under either theme instead of matching the surface it sits\n * on; bright black takes the tertiary label color (the muted-gray role).\n * Magenta and cyan have no token equivalent in this design system and fall\n * through to anser's literal rgb, as do all 256-palette and truecolor values.\n */\nconst TOKEN_BY_BASIC_RGB: Record<string, string> = {\n '0,0,0': 'var(--dsw-alias-label-primary)',\n '255,255,255': 'var(--dsw-alias-label-primary)',\n '85,85,85': 'var(--dsw-alias-label-tertiary)',\n '187,0,0': 'var(--dsw-alias-state-error-primary)',\n '255,85,85': 'var(--dsw-alias-state-error-secondary)',\n '0,187,0': 'var(--dsw-alias-state-success-primary)',\n '0,255,0': 'var(--dsw-alias-state-success-secondary)',\n '187,187,0': 'var(--dsw-alias-state-warn-primary)',\n '255,255,85': 'var(--dsw-alias-state-warn-secondary)',\n '0,0,187': 'var(--dsw-alias-state-business-primary)',\n '85,85,255': 'var(--dsw-static-blue-400)',\n}\n\n/**\n * CSS for each SGR attribute anser reports. `blink` is deliberately absent —\n * animated text is not reproduced. `reverse` never arrives here: anser\n * consumes it by swapping the run's foreground and background. Underline and\n * strikethrough share `textDecoration`, so in a run declaring both, the\n * later declaration wins.\n */\nconst STYLE_BY_DECORATION: Record<string, CSSProperties | undefined> = {\n bold: { fontWeight: 700 },\n dim: { opacity: 0.7 },\n italic: { fontStyle: 'italic' },\n underline: { textDecoration: 'underline' },\n strikethrough: { textDecoration: 'line-through' },\n hidden: { visibility: 'hidden' },\n}\n\n/** OSC strings (window title, hyperlinks), with or without their terminator. */\nconst OSC_SEQUENCE = /\\u001b\\][^\\u0007\\u001b]*(?:\\u0007|\\u001b\\\\)?/g\n\n/** Escape sequences other than CSI: charset selection, single-shift, reset. */\nconst NON_CSI_ESCAPE = /\\u001b(?!\\[)[\\u0020-\\u002f]*[\\u0030-\\u007e]?/g\n\n/**\n * C0 controls with no display meaning here. Tab, newline, backspace and ESC\n * survive: the first two for layout, backspace for the cursor replay, ESC\n * for anser's CSI split.\n */\nconst INERT_CONTROL = /[\\u0000-\\u0007\\u000b-\\u001a\\u001c-\\u001f\\u007f]/g\n\n/**\n * Lines whose cursor movements have to be replayed: a carriage return, a\n * backspace, or an erase-in-line. The erase pattern matches the SAME CSI shape\n * `replayLine` parses (parameters may carry `;` and intermediate bytes), so a\n * form like `\\x1b[1;2K` cannot slip past this guard and skip its own erase.\n */\nconst NEEDS_REPLAY = /\\r|\\u0008|\\u001b\\[[\\u0030-\\u003f]*[\\u0020-\\u002f]*K/\n\n/** SGR sequences alone, for folding state through a line that needs no replay. */\nconst SGR_SEQUENCE = /\\u001b\\[([\\u0030-\\u003f]*)[\\u0020-\\u002f]*m/g\n\n/** Terminal tab stop width; a tab advances to the next multiple of this. */\nconst TAB_WIDTH = 8\n\n/**\n * Combining marks and other zero-width code points: a terminal advances no\n * column for them, so `e` + U+0301 occupies one cell and a two-column redraw\n * covers both code points.\n */\nconst ZERO_WIDTH = /^[\\p{Mn}\\p{Me}\\p{Cf}\\u200b-\\u200f\\u2060]$/u\n\n/**\n * Characters a terminal advances two columns for: CJK scripts, fullwidth forms,\n * CJK punctuation, and characters with emoji presentation. Text-presentation\n * symbols (`\\u2713`, `\\u26a0` and the rest of U+2600-U+27BF) are ONE column and\n * must stay out of this set.\n */\nconst WIDE_CHAR = new RegExp(\n '\\\\p{Script=Han}|\\\\p{Script=Hiragana}|\\\\p{Script=Katakana}|\\\\p{Script=Hangul}'\n // Emoji presentation only: the U+2600-U+27BF symbol block is mostly SINGLE\n // width — `\\u2713` (the check every progress line writes, this fixture\n // included) advances one column, verified against a real terminal, so taking\n // the whole block as wide misaligned exactly the output this card exists for.\n + '|\\\\p{Emoji_Presentation}'\n + '|[\\\\uff01-\\\\uff60\\\\u3000-\\\\u303e]',\n 'u',\n)\n\n/**\n * Whether a character occupies two terminal columns (CJK, fullwidth forms,\n * emoji). Covers the ranges a command's output realistically carries; a\n * narrower guess would misalign the columns this card exists to preserve.\n * @param char - one character from the output.\n * @returns true when the terminal advances two columns for it.\n */\nfunction isWide(char: string): boolean {\n const code = char.codePointAt(0)\n if (code === undefined || code < 0x1100) return false\n return WIDE_CHAR.test(char)\n}\n\n/**\n * A cell's graphic state, normalized. Held as fields rather than as the raw\n * sequence history because a terminal tracks CURRENT state, not a transcript:\n * accumulating sequences made each state boundary re-emit the whole chain, so\n * output that switches color without a full reset emitted O(n^2) characters\n * (3200 such cells produced 25 MB and eventually a `RangeError`). It also makes\n * the attribute closers every chalk-based tool writes — `39`, `49`, `22`, `23`,\n * `24`, `27`, `29` — actually close their attribute instead of appending to it.\n */\ninterface SgrState {\n fg: string\n bg: string\n /** Attribute parameters in force, e.g. `1` (bold) or `4` (underline). */\n attrs: readonly string[]\n}\n\n/** The default state: no color, no attributes. */\nconst SGR_NONE: SgrState = { fg: '', bg: '', attrs: [] }\n\n/** Attribute closers, mapped to the opener parameters each one turns off. */\nconst ATTR_CLOSERS: Record<string, readonly string[]> = {\n 22: ['1', '2'], 23: ['3'], 24: ['4'], 25: ['5', '6'], 27: ['7'], 28: ['8'], 29: ['9'],\n}\n\n/**\n * Fold one SGR sequence's parameters into the state it produces.\n * @param state - state in force before the sequence.\n * @param params - the sequence's raw parameter string (`31`, `1;4`, `38;5;208`).\n * @returns the state the sequence leaves in force.\n */\nfunction foldSgr(state: SgrState, params: string): SgrState {\n const codes = params === '' ? ['0'] : params.split(';')\n let next = state\n for (let index = 0; index < codes.length; index++) {\n const code = String(codes[index])\n if (code === '' || code === '0') { next = SGR_NONE; continue }\n // Extended color: `38;5;N` / `38;2;R;G;B` and the `48` background pair\n // consume their own arguments, so they are taken whole.\n if (code === '38' || code === '48') {\n const kind = codes[index + 1] ?? ''\n const span = kind === '2' ? 4 : kind === '5' ? 2 : 0\n const value = codes.slice(index, index + span + 1).join(';')\n next = code === '38' ? { ...next, fg: value } : { ...next, bg: value }\n index += span\n continue\n }\n const closes = ATTR_CLOSERS[code]\n if (closes !== undefined) {\n next = { ...next, attrs: next.attrs.filter(attr => !closes.includes(attr)) }\n continue\n }\n const numeric = Number(code)\n if (code === '39') { next = { ...next, fg: '' }; continue }\n if (code === '49') { next = { ...next, bg: '' }; continue }\n if ((numeric >= 30 && numeric <= 37) || (numeric >= 90 && numeric <= 97)) { next = { ...next, fg: code }; continue }\n if ((numeric >= 40 && numeric <= 47) || (numeric >= 100 && numeric <= 107)) { next = { ...next, bg: code }; continue }\n if (!next.attrs.includes(code)) next = { ...next, attrs: [...next.attrs, code] }\n }\n return next\n}\n\n/**\n * Render a state as the one canonical sequence that establishes it from the\n * default, so a boundary emits a bounded string no matter how the state was\n * reached.\n * @param state - the state to open.\n * @returns the SGR sequence, or the empty string for the default state.\n */\nfunction openSgr(state: SgrState): string {\n const codes = [...state.attrs]\n if (state.fg !== '') codes.push(state.fg)\n if (state.bg !== '') codes.push(state.bg)\n return codes.length === 0 ? '' : `\\u001b[${codes.join(';')}m`\n}\n\n/** Whether two states are the same, so a boundary is only emitted on a change. */\nfunction sameSgr(a: SgrState, b: SgrState): boolean {\n return a.fg === b.fg && a.bg === b.bg && a.attrs.length === b.attrs.length\n && a.attrs.every((attr, index) => attr === b.attrs[index])\n}\n\n/**\n * Replay one line's cursor movements the way a terminal paints it, into a\n * column buffer. Carriage return and backspace only MOVE the cursor — neither\n * erases anything — so what a reader sees is whatever each column last had\n * written to it. That distinction is the whole point of doing this as a buffer\n * rather than as string surgery: `100%\\rOK` shows `OK0%` because the redraw is\n * shorter than the frame beneath it, and a trailing `abc\\b` still shows `abc`\n * because nothing ever overwrote the `c`.\n *\n * A CSI sequence occupies no column; it changes the state that the NEXT writes\n * are stamped with, which is how a terminal stores color per cell. `red bad`\n * then three backspaces then `ok` therefore shows `okd` with the `d` still red:\n * `ok` overwrote two cells and the third kept the state it was written with.\n * The columns are re-emitted as runs, so anser sees that same styling.\n * @param line - one output line, still carrying its CSI sequences.\n * @param entrySgr - SGR state in force when the line begins, since a newline\n * does not reset it.\n * @returns the line as the terminal would have it after every movement, plus the\n * SGR state at its end for the next line to enter with.\n */\nfunction replayLine(line: string, entrySgr: SgrState): { text: string; sgr: SgrState } {\n // Same shape anser splits on, so a sequence is one unit here as well.\n const csi = /\\u001b\\[([\\u0030-\\u003f]*)[\\u0020-\\u002f]*([\\u0040-\\u007e])/g\n /** Per column: the state in force when it was written, and its character. */\n const columns: (Cell | undefined)[] = []\n let cursor = 0\n // State is tracked exactly as a terminal tracks it: each cell is stamped with\n // whatever was in force at the moment of the write, so a later redraw cannot\n // restyle the cells it does not reach. It enters carrying the previous line's\n // state, since a newline does not reset it.\n let sgr = entrySgr\n let at = 0\n\n /** Clear a cell and, for a wide pair, its partner: a terminal erases both. */\n const clear = (index: number, fill: string): void => {\n const cell = columns[index]\n if (cell?.spacer === true && index > 0) columns[index - 1] = { sgr, char: fill }\n else if (cell !== undefined && isWide(cell.char) && columns[index + 1]?.spacer === true) {\n columns[index + 1] = { sgr, char: fill }\n }\n columns[index] = { sgr, char: fill }\n }\n\n const consume = (chunk: string): void => {\n for (const char of chunk) {\n if (char === '\\r') { cursor = 0; continue }\n if (char === '\\u0008') { cursor = Math.max(0, cursor - 1); continue }\n if (char === '\\t') {\n // A tab advances to the next 8-column stop, leaving the cells it skips\n // as they were — which is how a redraw can leave a tabbed column\n // standing. Column alignment is the whole point of this card.\n const stop = cursor + TAB_WIDTH - (cursor % TAB_WIDTH)\n for (; cursor < stop; cursor++) columns[cursor] ??= { sgr, char: ' ' }\n continue\n }\n if (ZERO_WIDTH.test(char)) {\n // No column of its own: it attaches to the cell already written, so a\n // redraw that covers that cell covers the mark with it. With no cell to\n // attach to (line start, or straight after a redraw to column 0) a\n // terminal shows nothing rather than a lone accent.\n const base = cursor > 0 ? columns[cursor - 1] : undefined\n if (base !== undefined) columns[cursor - 1] = { sgr: base.sgr, char: base.char + char }\n continue\n }\n // Writing over either half of a wide pair blanks the other half, since a\n // terminal cannot leave one cell of a two-cell glyph standing.\n clear(cursor, ' ')\n columns[cursor] = { sgr, char }\n cursor++\n // A wide character occupies two columns; the trailing one is a spacer,\n // marked so that overwriting the lead cell leaves a blank behind instead\n // of closing the gap and shifting everything after it left.\n if (isWide(char)) { columns[cursor] = { sgr, char: '', spacer: true }; cursor++ }\n }\n }\n\n for (const match of line.matchAll(csi)) {\n consume(line.slice(at, match.index))\n at = match.index + match[0].length\n // Both groups are mandatory in the pattern, so destructuring types them as\n // strings without a fallback that could never run.\n const params = String(match[1])\n const final = String(match[2])\n if (final === 'K') {\n // Erase in line: the fixed companion of `\\r` in every spinner and progress\n // bar. Without it a shorter redraw leaves the previous frame's tail\n // standing, which is text the terminal never showed. `1` blanks from the\n // line start THROUGH the cursor column (inclusive, per the CSI spec)\n // rather than dropping those cells, since the cursor does not move and a\n // later write can still land past them. Only the FIRST parameter selects\n // the mode; a terminal ignores the rest (`1;2K` erases exactly as `1K`).\n const mode = String(params.split(';')[0])\n if (mode === '1') for (let index = 0; index <= cursor; index++) clear(index, ' ')\n else columns.length = mode === '2' ? 0 : cursor\n continue\n }\n // Only SGR carries graphic state; every other final byte is a cursor or\n // erase action that must not affect a cell's style.\n if (final !== 'm') continue\n sgr = foldSgr(sgr, params)\n }\n consume(line.slice(at))\n\n // Re-emit the columns, opening a run only where its state changes, so anser\n // sees the same styling a terminal shows. Each boundary emits ONE canonical\n // sequence for the state it opens, which is what keeps the output linear in\n // the number of cells however the state was reached.\n let out = ''\n let active = entrySgr\n for (let index = 0; index < columns.length; index++) {\n const column = columns[index] ?? { sgr: SGR_NONE, char: ' ' }\n if (!sameSgr(column.sgr, active)) {\n if (!sameSgr(active, SGR_NONE)) out += '\\u001b[0m'\n out += openSgr(column.sgr)\n active = column.sgr\n }\n // A spacer still holds its column. While its lead cell survives, the wide\n // glyph spans both and the spacer emits nothing; once a later write replaced\n // that lead, the terminal blanks the spacer instead of closing the gap, so\n // emitting nothing would shift everything after it one column left.\n const leadIntact = index > 0 && isWide(columns[index - 1]?.char ?? '')\n out += column.spacer === true && !leadIntact ? ' ' : column.char\n }\n // Converge to the state the SCAN ended in, not the last written cell's: a\n // sequence after the final write (the `\\x1b[0m` closing a colored line) changes\n // no cell yet still ends the run, and it has to reach both the DOM and the\n // next line. Without this a line ending in a reset leaked its color onward.\n if (!sameSgr(active, sgr)) {\n if (!sameSgr(active, SGR_NONE)) out += '\\u001b[0m'\n out += openSgr(sgr)\n }\n return { text: out, sgr }\n}\n\n/** One replayed column: the state it was written with, and its character. */\ninterface Cell {\n sgr: SgrState\n char: string\n /** The trailing half of a wide character's two-column pair. */\n spacer?: boolean\n}\n\n/**\n * Replay every line's cursor movements. A `\\r` that only terminates a CRLF line\n * is dropped first, so those lines keep their text instead of being redrawn onto\n * themselves. SGR state threads across lines: a newline does not reset it, so a\n * run opened before a redraw still colors the lines after it.\n * @param text - output text, already free of OSC and non-CSI escapes.\n * @returns the text with each line painted as the terminal would.\n */\nfunction applyCursorMovements(text: string): string {\n const replayed: string[] = []\n let sgr = SGR_NONE\n for (const raw of text.split('\\n')) {\n const line = raw.replace(/\\r+$/, '')\n if (NEEDS_REPLAY.test(line)) {\n const result = replayLine(line, sgr)\n replayed.push(result.text)\n sgr = result.sgr\n continue\n }\n // No cursor movement: the line needs no column buffer, and painting one\n // would allocate a cell per character of output this card never redraws —\n // an `ls -R` or a 5k-line log. Only its own SGR has to be folded, so a later\n // line that DOES replay enters with the right state.\n replayed.push(line)\n for (const match of line.matchAll(SGR_SEQUENCE)) sgr = foldSgr(sgr, String(match[1]))\n }\n return replayed.join('\\n')\n}\n\n/**\n * Remove every escape sequence and control character that carries no color,\n * leaving CSI sequences for anser and `\\n`/`\\t` for layout. Cursor movements\n * (carriage return, backspace) replay first, since their effect on the visible\n * text must land before the characters that expressed them are dropped.\n * @param text - raw command output.\n * @returns text whose only remaining escapes are CSI sequences.\n */\nfunction sanitize(text: string): string {\n const escaped = text.replace(OSC_SEQUENCE, '').replace(NON_CSI_ESCAPE, '')\n return applyCursorMovements(escaped).replace(INERT_CONTROL, '')\n}\n\n/**\n * Resolve one run's colors and decorations.\n * @param chunk - the anser chunk to style.\n * @returns the run's inline style, or undefined when it carries no SGR state.\n */\nfunction resolveStyle(chunk: AnsiChunk): CSSProperties | undefined {\n const style: CSSProperties = {}\n const background = chunk.bg === null ? undefined : `rgb(${chunk.bg})`\n if (background !== undefined) style.backgroundColor = background\n if (chunk.fg !== null) {\n const literal = `rgb(${chunk.fg})`\n // A run that paints its own background keeps anser's literal pair so the\n // authored foreground/background contrast survives; a foreground-only run\n // maps onto a theme token, which adapts to light and dark surfaces.\n style.color = background === undefined\n ? TOKEN_BY_BASIC_RGB[chunk.fg.replace(/\\s+/g, '')] ?? literal\n : literal\n }\n for (const decoration of chunk.decorations) Object.assign(style, STYLE_BY_DECORATION[decoration])\n return Object.keys(style).length === 0 ? undefined : style\n}\n\n/**\n * Parse command output into styled spans grouped by line.\n * @param text - raw output text, which may contain ANSI escape sequences.\n * @returns one entry per output line (always at least one, possibly empty).\n */\nexport function parseAnsiLines(text: string): AnsiLine[] {\n let current: AnsiSpan[] = []\n const lines: AnsiSpan[][] = [current]\n for (const chunk of Anser.ansiToJson(sanitize(text), { json: true, remove_empty: true })) {\n const style = resolveStyle(chunk)\n for (const [index, part] of chunk.content.split('\\n').entries()) {\n if (index > 0) {\n current = []\n lines.push(current)\n }\n if (part !== '') current.push({ text: part, style })\n }\n }\n return lines\n}\n","// Head/tail height-cap arithmetic shared by the block primitives (TerminalBlock,\n// SearchBlock), so long results use consistent head and tail slices. The split is\n// `ceil(maxLines / 2)` head rows and the remainder as tail rows; a result within\n// the cap shows every row and hides none.\n\n/** The head/tail split metrics for a capped list. */\nexport interface HeadTailCap {\n /** Rows beyond the cap (list length − maxLines); ≤ 0 means nothing is hidden. */\n hidden: number\n /** Whether the list is over the cap and not expanded, so it shows a head/tail slice. */\n capped: boolean\n /** Head-slice row count: `ceil(maxLines / 2)`. */\n headLines: number\n /** Tail-slice row count: the remainder after the head. */\n tailLines: number\n}\n\n/**\n * Compute the head/tail cap metrics for a list of `total` rows against `maxLines`,\n * given whether the surface is expanded. Pure arithmetic; the caller slices its\n * own rows with `headLines`/`tailLines` so a block can layer its own concerns\n * (SearchBlock restores a tail file header) on top.\n * @param total - the list's row count.\n * @param maxLines - the collapsed-height cap in rows.\n * @param expanded - whether the surface is expanded (uncaps the list).\n * @returns the split metrics.\n */\nexport function headTailCap(total: number, maxLines: number, expanded: boolean): HeadTailCap {\n const hidden = total - maxLines\n const headLines = Math.ceil(maxLines / 2)\n return { hidden, capped: hidden > 0 && !expanded, headLines, tailLines: maxLines - headLines }\n}\n","// The copy-to-clipboard-with-feedback hook shared by the block primitives\n// (TerminalBlock, SearchBlock): write the given text, and on success flip a\n// transient `copied` flag that the caller renders as a \"复制成功\" label for one\n// second. A refused write leaves the flag untouched, so the control never claims\n// a copy the host declined.\n\nimport { useCallback, useState } from 'react'\nimport { writeClipboard } from './clipboard.ts'\n\n/** How long the `copied` flag stays true after a successful write, in ms. */\nconst COPIED_FEEDBACK_MS = 1000\n\n/** The copy-feedback hook's return: the transient flag and the copy handler. */\nexport interface CopyFeedback {\n /** True for {@link COPIED_FEEDBACK_MS} after a successful write; render the success label off it. */\n copied: boolean\n /** Copy the hook's text; no-op while `copied` is still true, silent on a refused write. */\n onCopy: () => void\n}\n\n/**\n * Copy `text` to the clipboard with one-second success feedback.\n * @param text - the text to write on copy.\n * @returns the `copied` flag and the `onCopy` handler.\n */\nexport function useCopyFeedback(text: string): CopyFeedback {\n const [copied, setCopied] = useState(false)\n const onCopy = useCallback(() => {\n if (copied) return\n void writeClipboard(text).then((ok) => {\n if (!ok) return\n setCopied(true)\n window.setTimeout(() => { setCopied(false) }, COPIED_FEEDBACK_MS)\n })\n }, [copied, text])\n return { copied, onCopy }\n}\n","// TerminalBlock: the terminal surface for a shell command and its output —\n// prompt line (run-state dot + shortened cwd + command), ANSI-colored output,\n// settled exit status, and a copy control for the raw output. Output never soft-wraps:\n// column-aligned output (ls, tables, box drawing) keeps its alignment and\n// scrolls horizontally instead of folding. Colors resolve through --dsw-*\n// tokens; ANSI parsing lives in ansi.ts.\n\nimport { useCallback, useMemo, useState } from 'react'\nimport clsx from 'clsx'\nimport { parseAnsiLines, type AnsiLine } from './ansi.ts'\nimport { headTailCap } from './head-tail-cap.ts'\nimport { useCopyFeedback } from './use-copy-feedback.ts'\nimport { Pill } from './Pill.tsx'\nimport { StateDot, type StateDotState } from './StateDot.tsx'\nimport css from './TerminalBlock.module.css'\n\n/**\n * Output lines shown before the height cap collapses the middle. Matches the\n * TUI transcript's default tool-output budget so both front ends cut a long\n * command's output at the same place.\n */\nexport const DEFAULT_TERMINAL_MAX_LINES = 16\n\n/**\n * Display copy for the terminal surface; the owner passes localized labels\n * (this package is cordis-free, so copy arrives via props). Every field\n * defaults to the current built-in value, so existing consumers render\n * unchanged.\n */\nexport interface TerminalBlockLabels {\n /** Status pill text for a signal-terminated command. */\n signal: (signal: string) => string\n /** Status pill text for a non-zero exit code. */\n exitCode: (exitCode: number) => string\n /** Run-state text while the command is still running. */\n running: string\n /** Run-state text for a signal or non-zero-exit settle. */\n failed: string\n /** Run-state text for a clean settle. */\n done: string\n /** Copy-button idle label. */\n copy: string\n /** Copy-button label during the post-copy confirmation window. */\n copied: string\n /** Placeholder when a settled command produced no visible output. */\n noOutput: string\n /** Collapse-toggle aria label while expanded. */\n collapseAria: string\n /** Collapse-toggle text while expanded. */\n collapse: string\n /** Expand-toggle aria label while capped, given the hidden line count. */\n expandAria: (hidden: number) => string\n /** Expand-toggle text while capped, given the hidden line count. */\n expand: (hidden: number) => string\n}\n\nconst DEFAULT_LABELS: TerminalBlockLabels = {\n signal: signal => `信号 ${signal}`,\n exitCode: exitCode => `退出码 ${exitCode}`,\n running: '运行中',\n failed: '失败',\n done: '已完成',\n copy: '复制',\n copied: '复制成功',\n noOutput: '无输出',\n collapseAria: '收起输出',\n collapse: '收起',\n expandAria: hidden => `展开其余 ${hidden} 行输出`,\n expand: hidden => `… 其余 ${hidden} 行`,\n}\n\nexport interface TerminalBlockProps {\n /** The command line, rendered verbatim after the prompt label. */\n command: string\n /** Working directory for the prompt label; absent renders a plain `$`. */\n cwd?: string | undefined\n /** Absolute home directory, so a cwd equal to it collapses to `~`; absent disables that collapse. */\n home?: string | undefined\n /** The command's output text; may contain ANSI escape sequences. */\n output?: string | undefined\n /** Settled exit code; a non-zero value renders the status pill. */\n exitCode?: number | undefined\n /** Settled terminating signal name; any value renders the status pill, taking precedence over the exit code. */\n signal?: string | undefined\n /** The command is still running: the block shows the prompt line alone. */\n running?: boolean | undefined\n /** Height cap in output lines before the middle collapses (default {@link DEFAULT_TERMINAL_MAX_LINES}); Infinity disables the cap. */\n maxLines?: number | undefined\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n /** Localized display copy; omitted fields keep the built-in defaults. */\n labels?: Partial<TerminalBlockLabels> | undefined\n}\n\n/**\n * Prompt label for a working directory: `~` for the home directory itself,\n * otherwise the path's last segment (both separators accepted, trailing\n * separators ignored), falling back to the path itself when it has no\n * segment.\n * @param cwd - the working directory path.\n * @param home - absolute home directory, when the caller knows it.\n * @returns the prompt label.\n */\nfunction promptLabel(cwd: string, home: string | undefined): string {\n const trimmed = cwd.replace(/[/\\\\]+$/, '')\n if (home !== undefined && trimmed === home.replace(/[/\\\\]+$/, '')) return '~'\n const segment = trimmed.split(/[/\\\\]/).pop()\n return segment === undefined || segment === '' ? cwd : segment\n}\n\n/**\n * Status pill text for a settled command, or undefined when the command\n * settled cleanly (exit 0, no signal) and needs no pill — the same\n * distinction the bash tool's own exit-status markers draw.\n * @param exitCode - settled exit code, when known.\n * @param signal - settled terminating signal name, when known.\n * @param labels - display copy for the pill text.\n * @returns the pill text, or undefined for a clean exit.\n */\nfunction statusText(\n exitCode: number | undefined,\n signal: string | undefined,\n labels: TerminalBlockLabels,\n): string | undefined {\n if (signal !== undefined) return labels.signal(signal)\n if (exitCode !== undefined && exitCode !== 0) return labels.exitCode(exitCode)\n return undefined\n}\n\n/**\n * Run-state indicator for the command, shown at the head of the prompt line so\n * the card states whether the command is still running without the reader\n * having to infer it from the presence of output. Three of {@link StateDotState}'s\n * four states are reachable: the running chase (the same\n * indicator a running tool row's leading icon uses, so the row and its card\n * never disagree), green for a clean settle, red for a signal or a non-zero\n * exit — the same status distinction {@link statusText} draws for the pill. A\n * settled command whose exit status never reached the view counts as a clean\n * settle: the view says it finished and says nothing went wrong.\n * @param running - the command has not settled.\n * @param exitCode - settled exit code, when known.\n * @param signal - settled terminating signal name, when known.\n * @param labels - display copy for the text label.\n * @returns the dot's state and its text label, since the dot is aria-hidden.\n */\nfunction runState(\n running: boolean,\n exitCode: number | undefined,\n signal: string | undefined,\n labels: TerminalBlockLabels,\n): { state: StateDotState; label: string } {\n if (running) return { state: 'ongoing', label: labels.running }\n if (statusText(exitCode, signal, labels) !== undefined) return { state: 'error', label: labels.failed }\n return { state: 'done', label: labels.done }\n}\n\n/**\n * Render one parsed output line. Runs without SGR state render as bare text,\n * so uncolored output carries no span wrappers.\n * @param line - the line's styled runs.\n * @returns the line's children.\n */\nfunction renderLine(line: AnsiLine) {\n return line.map((span, index) => span.style === undefined\n ? span.text\n : <span key={index} style={span.style}>{span.text}</span>)\n}\n\n/**\n * Render a shell command as a terminal surface.\n * @param props - see {@link TerminalBlockProps}.\n * @returns the terminal block element.\n */\nexport function TerminalBlock({\n command,\n cwd,\n home,\n output,\n exitCode,\n signal,\n running = false,\n maxLines = DEFAULT_TERMINAL_MAX_LINES,\n className,\n labels,\n}: TerminalBlockProps) {\n const copy = useMemo<TerminalBlockLabels>(\n () => (labels === undefined ? DEFAULT_LABELS : { ...DEFAULT_LABELS, ...labels }),\n [labels],\n )\n const text = output ?? ''\n // A command's output ends with a newline; that terminator is not an extra\n // blank line to draw or to count against the height cap. The check runs on the\n // PARSED lines rather than on the raw text, because a reset after the final\n // newline (`line\\n\\x1b[0m`) leaves the string not ending in one while still\n // producing a last line with nothing visible in it. A genuinely blank final\n // line — the double newline — survives, since it has a real empty line before\n // the terminator. The copy control still copies `text` untouched.\n const lines = useMemo(() => {\n const parsed = parseAnsiLines(text)\n const last = parsed[parsed.length - 1]\n const terminated = parsed.length > 1 && last !== undefined\n && last.every(span => span.text === '')\n return terminated ? parsed.slice(0, -1) : parsed\n }, [text])\n const [expanded, setExpanded] = useState(false)\n // The raw output, never the rendered tree: the prompt line and the status pill\n // are chrome the user did not run.\n const { copied, onCopy } = useCopyFeedback(text)\n\n const onToggle = useCallback(() => { setExpanded(value => !value) }, [])\n\n const status = statusText(exitCode, signal, copy)\n const state = runState(running, exitCode, signal, copy)\n // A multi-line command gets one prompt row per line, so a two-command shell\n // snippet reads as the two commands it is instead of collapsing into one\n // ellipsized row. A trailing newline is a terminator, not an empty command.\n const commandLines = useMemo(() => {\n const body = command.endsWith('\\n') ? command.slice(0, -1) : command\n return body.split('\\n')\n }, [command])\n // Read from the parsed lines the card actually renders, not from the raw text:\n // output that is only escapes or control bytes (a lone reset, an OSC title, an\n // erase) survives `text.trim()` yet parses to nothing visible. Judging it on\n // the raw text would draw an output box of blank rows plus a copy control\n // for invisible bytes, and hide the placeholder that belongs there.\n const empty = lines.every(line => line.every(span => span.text.trim() === ''))\n const { hidden, capped, headLines, tailLines } = headTailCap(lines.length, maxLines, expanded)\n\n return (\n <div className={clsx(css.block, className)} data-terminal=\"\" data-running={running ? '' : undefined}>\n <div className={css.header}>\n <div className={css.prompt}>\n <span className={css.runStateLabel}>{state.label}</span>\n {commandLines.map((line, index) => (\n <div key={index} className={css.promptLine}>\n {/* One dot for the card, on the first row: the exit status the\n view carries is the whole call's, and bash reports no\n per-command status, so a dot per row would assert a\n per-line outcome nothing here knows. */}\n {index === 0 && <StateDot state={state.state} className={css.runState} />}\n {/* The cwd labels the CALL, so only its first row carries it. The\n view knows one working directory — where the call started —\n and a later line may well run somewhere else (a `cd` in the\n command is enough), so repeating the label down the rows would\n assert a directory per line that nothing here knows. Later\n rows keep a bare `$` to stay aligned as prompts. */}\n <span className={css.cwd}>\n {index > 0 || cwd === undefined ? '$' : promptLabel(cwd, home)}\n </span>\n <span className={css.command}>{line}</span>\n </div>\n ))}\n </div>\n {status !== undefined && <Pill className={css.status}>{status}</Pill>}\n {!running && !empty && (\n <button type=\"button\" className={css.copyButton} onClick={onCopy}>\n {copied ? copy.copied : copy.copy}\n </button>\n )}\n </div>\n {!running && (empty\n ? <div className={css.empty}>{copy.noOutput}</div>\n : (\n <div className={css.output}>\n {(capped ? lines.slice(0, headLines) : lines).map((line, index) => (\n <div key={index} className={css.line}>{renderLine(line)}</div>\n ))}\n {hidden > 0 && (\n <button\n type=\"button\"\n className={css.expand}\n aria-expanded={expanded}\n aria-label={expanded ? copy.collapseAria : copy.expandAria(hidden)}\n onClick={onToggle}\n >\n {expanded ? copy.collapse : copy.expand(hidden)}\n </button>\n )}\n {capped && lines.slice(lines.length - tailLines).map((line, index) => (\n <div key={index} className={css.line}>{renderLine(line)}</div>\n ))}\n </div>\n ))}\n </div>\n )\n}\n","/**\n * The client's ONE syntax highlighter: a synchronous fine-grained shiki core\n * (JavaScript regex engine — no oniguruma WASM, bundle-friendly) with an\n * explicit grammar allowlist and a CSS-variables theme. Colors live in the\n * theme package's token sheets as `--shiki-*` custom properties (light and\n * dark blocks), never here — the repo's tokens-only styling rule.\n *\n * Only the three markdown-fence and `run_code` grammars (TypeScript, shell,\n * JSON) load into the singleton at boot — the set every session renders. The\n * read card's wider extension set (the file-extension language hints the read\n * tool's `langFromPath` emits — `packages/fs/tool-fs`: python, rust, yaml,\n * markup, …) is imported lazily and registered the first time such a language\n * is requested, so a session that never opens a read card in one of those\n * languages pays neither the ~1.6 MB of grammar modules nor their synchronous\n * init. The first render of a lazy language falls back to plain text while its\n * grammar loads, then {@link onGrammarLoaded} notifies subscribers to re-render\n * with highlighting. An unknown or absent language falls back to plain text (no\n * highlighting, still monospace) — never an error.\n */\n\nimport { createHighlighterCoreSync, createCssVariablesTheme } from 'shiki/core'\nimport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor } from 'shiki/engine/javascript'\nimport langTs from '@shikijs/langs/typescript'\nimport langBash from '@shikijs/langs/shellscript'\nimport langJson from '@shikijs/langs/json'\nimport type { HighlighterCore } from 'shiki/core'\nimport type { CSSProperties } from 'react'\n\n/** A shiki grammar module's default export (a `LanguageRegistration[]`), taken\n * from a boot grammar so no direct `@shikijs/types` dependency is needed. */\ntype LangModule = { default: typeof langTs }\n\n/**\n * Grammars the singleton loads at boot; each entry's own `name` is the id\n * `codeToTokens`/`codeToHtml` resolve. The JS-family aliases (js/jsx/ts/tsx)\n * resolve to the TypeScript grammar rather than a separate one: it tokenizes\n * plain TS/JS exactly, and JSX/TSX approximately (shiki's TS grammar is not the\n * dedicated TSX grammar, so JSX elements tokenize imperfectly) — an accepted\n * trade to keep the boot set to one JS-family grammar. The read card's wider\n * set loads lazily through {@link LAZY_GRAMMARS}.\n */\nconst LANGS = [langTs, langBash, langJson]\n\n/**\n * The read card's extension grammars, each behind a dynamic import so its\n * module stays out of the boot chunk until a read of that language renders.\n * Keyed by the grammar id (`LanguageRegistration.name`) the aliases resolve to.\n * `@shikijs/langs`' default export is a `LanguageRegistration[]`; the loader\n * hands the whole array to `loadLanguageSync`, which registers each entry\n * (including embedded sub-grammars). The three boot grammars are absent —\n * already loaded, so no alias value ever points at a missing entry here.\n */\nconst LAZY_GRAMMARS = new Map<string, () => Promise<LangModule>>([\n ['python', () => import('@shikijs/langs/python')],\n ['ruby', () => import('@shikijs/langs/ruby')],\n ['go', () => import('@shikijs/langs/go')],\n ['rust', () => import('@shikijs/langs/rust')],\n ['java', () => import('@shikijs/langs/java')],\n ['c', () => import('@shikijs/langs/c')],\n ['cpp', () => import('@shikijs/langs/cpp')],\n ['csharp', () => import('@shikijs/langs/csharp')],\n ['kotlin', () => import('@shikijs/langs/kotlin')],\n ['swift', () => import('@shikijs/langs/swift')],\n ['php', () => import('@shikijs/langs/php')],\n ['yaml', () => import('@shikijs/langs/yaml')],\n ['toml', () => import('@shikijs/langs/toml')],\n ['ini', () => import('@shikijs/langs/ini')],\n ['markdown', () => import('@shikijs/langs/markdown')],\n ['mdx', () => import('@shikijs/langs/mdx')],\n ['html', () => import('@shikijs/langs/html')],\n ['css', () => import('@shikijs/langs/css')],\n ['scss', () => import('@shikijs/langs/scss')],\n ['less', () => import('@shikijs/langs/less')],\n ['sql', () => import('@shikijs/langs/sql')],\n ['xml', () => import('@shikijs/langs/xml')],\n ['lua', () => import('@shikijs/langs/lua')],\n])\n\n/**\n * Language ids (and aliases) the highlighter accepts; everything else renders\n * plain. A Map, not an object: fence info strings are assistant-authored, so\n * a label like `constructor` or `__proto__` must miss instead of resolving an\n * inherited property and crashing the renderer inside shiki. Keys cover both\n * the markdown-fence aliases `CodeBlock` uses and the file-extension hint ids\n * the read tool's `langFromPath` emits, so both callers resolve the same\n * grammars. The JS family maps to the TypeScript grammar (see {@link LANGS} for\n * the JSX/TSX approximation). A value not in {@link LANGS} names a\n * {@link LAZY_GRAMMARS} entry loaded on first use.\n */\nconst LANG_ALIASES = new Map<string, string>([\n ['typescript', 'typescript'],\n ['ts', 'typescript'],\n ['tsx', 'typescript'],\n ['javascript', 'typescript'],\n ['js', 'typescript'],\n ['jsx', 'typescript'],\n ['shellscript', 'shellscript'],\n ['bash', 'shellscript'],\n ['sh', 'shellscript'],\n ['shell', 'shellscript'],\n ['zsh', 'shellscript'],\n ['json', 'json'],\n ['jsonc', 'json'],\n ['py', 'python'],\n ['python', 'python'],\n ['rb', 'ruby'],\n ['ruby', 'ruby'],\n ['go', 'go'],\n ['rs', 'rust'],\n ['rust', 'rust'],\n ['java', 'java'],\n ['c', 'c'],\n ['cpp', 'cpp'],\n ['cs', 'csharp'],\n ['csharp', 'csharp'],\n ['kotlin', 'kotlin'],\n ['swift', 'swift'],\n ['php', 'php'],\n ['yaml', 'yaml'],\n ['yml', 'yaml'],\n ['toml', 'toml'],\n ['ini', 'ini'],\n ['md', 'markdown'],\n ['markdown', 'markdown'],\n ['mdx', 'mdx'],\n ['html', 'html'],\n ['css', 'css'],\n ['scss', 'scss'],\n ['less', 'less'],\n ['sql', 'sql'],\n ['xml', 'xml'],\n ['lua', 'lua'],\n])\n\n/** All token colors resolve through `--shiki-*` custom properties (theme package sheets). */\nconst cssVariablesTheme = createCssVariablesTheme({\n name: 'css-variables',\n variablePrefix: '--shiki-',\n fontStyle: true,\n})\n\n/**\n * The client regex engine compiles each TextMate pattern when its scanner is\n * created. Shiki otherwise defers patterns longer than 3,000 characters until\n * their first match; that compilation counts against Shiki's 500 ms per-line\n * budget and can return a partial token stream under host contention. Eager\n * compilation leaves the same budget in place for scanning user content.\n */\nconst regexEngine = createJavaScriptRegexEngine({\n forgiving: true,\n regexConstructor: pattern => defaultJavaScriptRegexConstructor(pattern, {\n lazyCompileLength: Number.POSITIVE_INFINITY,\n }),\n})\n\nlet singleton: HighlighterCore | undefined\n\n/** Representative paths through every boot grammar, compiled before user content is timed. */\nconst BOOT_GRAMMAR_WARMUPS = [\n { lang: 'typescript', code: 'const answer: number = 42' },\n { lang: 'shellscript', code: 'printf \\'%s\\\\n\\' \"$HOME\"' },\n { lang: 'json', code: '{\"ready\":true}' },\n] as const\n\n/** Construct and pre-tokenize the boot grammars outside the user-content scan budget. */\nfunction createHighlighter(): HighlighterCore {\n const instance = createHighlighterCoreSync({\n themes: [cssVariablesTheme],\n langs: LANGS,\n engine: regexEngine,\n })\n for (const sample of BOOT_GRAMMAR_WARMUPS) {\n instance.codeToTokens(sample.code, {\n lang: sample.lang,\n theme: 'css-variables',\n tokenizeTimeLimit: 0,\n })\n }\n return instance\n}\n\n/** The synchronous highlighter (one instance per document); pre-warmed below, lazy as the fallback. */\nfunction highlighter(): HighlighterCore {\n singleton ??= createHighlighter()\n return singleton\n}\n\n/** Grammar ids whose lazy import is in flight or done, so it is requested once. */\nconst requested = new Set<string>()\n/** Subscribers re-rendered after a lazy grammar registers (React callers). */\nconst listeners = new Set<() => void>()\n/** Bumped on each lazy-grammar load; the `useSyncExternalStore` snapshot. */\nlet loadCount = 0\n\n/**\n * Subscribe to lazy-grammar load completions; `listener` fires after a\n * {@link LAZY_GRAMMARS} grammar finishes registering on the singleton, so a\n * caller that rendered its plain fallback while the grammar loaded can\n * re-highlight. Uses the `useSyncExternalStore` subscribe signature; pair it with\n * {@link grammarLoadCount} as the snapshot. Returns an unsubscribe function.\n * @param listener - invoked (no args) on each grammar-load completion.\n * @returns a disposer that removes the listener.\n */\nexport function subscribeGrammarLoaded(listener: () => void): () => void {\n listeners.add(listener)\n return () => { listeners.delete(listener) }\n}\n\n/**\n * The lazy-grammar load counter — a value that changes on every load, so a\n * `useSyncExternalStore` snapshot re-renders the subscriber when a grammar\n * registers. Opaque: only its identity across renders matters.\n * @returns the current load count.\n */\nexport function grammarLoadCount(): number {\n return loadCount\n}\n\n/**\n * Ensure the grammar `resolved` names is registered. A boot grammar (not in\n * {@link LAZY_GRAMMARS}) and an already-loaded lazy grammar report ready\n * synchronously; a lazy grammar not yet loaded starts its import (once) and\n * reports not-ready, so the caller renders plain until a\n * {@link subscribeGrammarLoaded} listener fires.\n * @param resolved - the grammar id an alias resolved to.\n * @returns whether the grammar is registered and ready to tokenize now.\n */\nfunction ensureGrammar(resolved: string): boolean {\n const load = LAZY_GRAMMARS.get(resolved)\n // A boot grammar (already registered) has no lazy loader; it is always ready.\n if (load === undefined) return true\n if (highlighter().getLoadedLanguages().includes(resolved)) return true\n if (!requested.has(resolved)) {\n requested.add(resolved)\n void load().then((mod) => {\n highlighter().loadLanguageSync(mod.default)\n loadCount += 1\n for (const listener of listeners) listener()\n })\n }\n return false\n}\n\n// Engine + grammar construction costs a long task (~120-175ms); building it\n// during the first finalized fence's render would jank exactly when a stream\n// completes. Warm the singleton in a deferred task at module load (= plugin\n// boot) instead; the lazy path above stays as the correctness fallback for a\n// fence that renders before the timer fires. `unref` (Node-only) keeps a\n// non-browser import from pinning the event loop.\nconst warmupTimer = setTimeout(() => { highlighter() }, 0)\n;(warmupTimer as { unref?: () => void }).unref?.()\n\n/**\n * Highlight `code` into shiki's HTML (a single `<pre class=\"shiki\">` tree)\n * when `lang` maps to a registered grammar; `undefined` means the caller\n * renders its plain fallback. A lazy grammar not yet loaded returns `undefined`\n * for this call and loads in the background; subscribe with\n * {@link onGrammarLoaded} to re-highlight once it registers.\n * @param code - the source text.\n * @param lang - the language hint (a markdown fence info string or a fixed caller id).\n * @returns the highlighted HTML, or `undefined` for unknown or not-yet-loaded languages.\n */\nexport function highlightToHtml(code: string, lang: string | undefined): string | undefined {\n const resolved = lang === undefined ? undefined : LANG_ALIASES.get(lang.toLowerCase())\n if (resolved === undefined) return undefined\n if (!ensureGrammar(resolved)) return undefined\n return highlighter().codeToHtml(code, { lang: resolved, theme: 'css-variables' })\n}\n\n/**\n * One highlighted run of a line: the text and the inline style shiki assigned\n * it. The css-variables theme colors every run through a `--shiki-*` custom\n * property, so `style.color` is always present; it is held as a style object\n * rather than a bare color so a run spreads onto a `<span style>` uniformly.\n */\nexport interface HighlightSpan {\n text: string\n style: CSSProperties\n}\n\n/**\n * Tokenize `code` into per-line highlighted runs when `lang` maps to a\n * registered grammar; `undefined` means the caller renders its plain fallback.\n * A line-numbered view needs the token runs split per line (one gutter number\n * per line), which the single-`<pre>` {@link highlightToHtml} does not expose,\n * so this returns shiki's own 2D line/token structure narrowed to what a run\n * renders. Each run's color is a `--shiki-*` custom property, keeping token\n * colors on the theme package's sheets exactly as the HTML path does; the\n * css-variables theme carries no font-style bits, matching that path's\n * color-only output. The trailing newline shiki appends as a final empty line\n * is dropped so the run count matches the caller's own line array.\n * @param code - the source text.\n * @param lang - the language hint (a file-extension-derived language id).\n * @returns one entry per source line (each an array of runs), or `undefined` for unknown or not-yet-loaded languages.\n */\nexport function highlightLines(code: string, lang: string | undefined): HighlightSpan[][] | undefined {\n const resolved = lang === undefined ? undefined : LANG_ALIASES.get(lang.toLowerCase())\n if (resolved === undefined) return undefined\n if (!ensureGrammar(resolved)) return undefined\n const { tokens } = highlighter().codeToTokens(code, { lang: resolved, theme: 'css-variables' })\n // shiki tokenizes `a\\nb` into two lines; a trailing newline (`a\\n`) adds a\n // third, empty line the caller's own line array does not carry. Drop that\n // one terminator line so the two structures stay in step. The explicit\n // `last !== undefined` (over `tokens[...]?.length`) keeps a single branch for\n // per-file coverage, matching TerminalBlock's terminator check.\n const last = tokens[tokens.length - 1]\n const lines = tokens.length > 1 && last !== undefined && last.length === 0\n ? tokens.slice(0, -1)\n : tokens\n return lines.map(line => line.map(token => ({ text: token.content, style: { color: token.color } })))\n}\n","// ReadBlock: the file surface for a read tool result — a banner (label +\n// language + a \"showing N of M\" note when the read is a window + a copy\n// control) over line-numbered, syntax-highlighted source. Each row carries the\n// file's OWN line number in a gutter, so a windowed read past an offset keeps\n// its file numbering rather than re-counting from 1. Highlighting reuses the\n// CodeBlock shiki path (highlight.ts) at the per-line granularity a gutter\n// needs; an unknown or absent language renders plain monospace. Long content is\n// height-capped with the same head/tail arithmetic TerminalBlock uses, so the\n// two cards collapse a long body at the same place. Colors resolve through\n// --shiki-*/--dsw-* tokens.\n\nimport { useCallback, useMemo, useState, useSyncExternalStore } from 'react'\nimport clsx from 'clsx'\nimport { writeClipboard } from './clipboard.ts'\nimport {\n grammarLoadCount,\n highlightLines,\n subscribeGrammarLoaded,\n type HighlightSpan,\n} from './markdown/highlight.ts'\nimport css from './ReadBlock.module.css'\n\n/**\n * Content lines shown before the height cap collapses the middle. Matches\n * TerminalBlock's default so a long read and a long command output cut at the\n * same place in the same flow.\n */\nexport const DEFAULT_READ_MAX_LINES = 16\n\n/** One line of the read window: its file line number and its text (no trailing newline). */\nexport interface ReadBlockLine {\n /** 1-based line number in the file (a window past an offset keeps the file's own numbering). */\n number: number\n /** The line's text, already truncated to the read tool's per-line cap. */\n text: string\n}\n\nexport interface ReadBlockProps {\n /** Banner label (the file path, or a tool-supplied replacement title); omitted draws no label. */\n label?: string | undefined\n /** The returned window's lines, in file order, each keeping its file line number. */\n lines: readonly ReadBlockLine[]\n /** Exact total line count in the file, for the \"showing N of M\" note when the read is a window. */\n totalLines: number\n /** Grammar hint (a file-extension-derived language id); unknown or absent = plain monospace. */\n lang?: string | undefined\n /** Height cap in content lines before the middle collapses (default {@link DEFAULT_READ_MAX_LINES}). */\n maxLines?: number | undefined\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n}\n\n/**\n * Render one line's highlighted runs. The css-variables theme colors every run,\n * so each run is a styled span; a line with no highlighting at all takes the\n * bare-text path in the caller instead (an unknown or absent language).\n * @param spans - the line's styled runs.\n * @returns the line's children.\n */\nfunction renderSpans(spans: readonly HighlightSpan[]) {\n return spans.map((span, index) => <span key={index} style={span.style}>{span.text}</span>)\n}\n\n/**\n * Render a read tool result as a line-numbered, optionally syntax-highlighted\n * file view.\n * @param props - see {@link ReadBlockProps}.\n * @returns the read block element.\n */\nexport function ReadBlock({\n label,\n lines,\n totalLines,\n lang,\n maxLines = DEFAULT_READ_MAX_LINES,\n className,\n}: ReadBlockProps) {\n // The raw text the copy control writes and the highlighter tokenizes: the\n // window's lines joined by newlines, without the file numbers or any chrome.\n // Highlighting the whole window in one call (not line by line) keeps grammar\n // context across lines — a multi-line string or comment stays one construct.\n const raw = useMemo(() => lines.map(line => line.text).join('\\n'), [lines])\n // Re-render when a lazy grammar finishes loading, so a read card that showed\n // plain text while its language's grammar imported picks up highlighting. The\n // snapshot value is opaque; only its change across renders drives the memo.\n const loaded = useSyncExternalStore(subscribeGrammarLoaded, grammarLoadCount, grammarLoadCount)\n // Per-line highlighted runs aligned 1:1 with `lines`; undefined for an\n // unknown/absent (or not-yet-loaded) language, when every line renders as\n // bare text.\n const highlighted = useMemo(() => highlightLines(raw, lang), [raw, lang, loaded])\n const [expanded, setExpanded] = useState(false)\n const [copied, setCopied] = useState(false)\n\n const onCopy = useCallback(() => {\n if (copied) return\n // The window's raw text, never the rendered tree: the gutter numbers and the\n // banner are chrome the file does not contain.\n void writeClipboard(raw).then((ok) => {\n if (!ok) return\n setCopied(true)\n window.setTimeout(() => { setCopied(false) }, 1000)\n })\n }, [copied, raw])\n\n const onToggle = useCallback(() => { setExpanded(value => !value) }, [])\n\n const hidden = lines.length - maxLines\n const capped = hidden > 0 && !expanded\n // Same split arithmetic as TerminalBlock's height cap, so a long read and a\n // long command output slice their head and tail at the same place.\n const headLines = Math.ceil(maxLines / 2)\n const tailLines = maxLines - headLines\n // A read is a window when its returned lines are fewer than the file's total;\n // the note states that so a reader is not misled that the file ends here.\n const windowed = lines.length < totalLines\n\n /**\n * Render a slice of the line array as gutter-numbered rows.\n * @param slice - the lines to draw, each with its aligned run array.\n * @returns the row elements.\n */\n const rows = (slice: readonly (readonly [ReadBlockLine, readonly HighlightSpan[] | undefined])[]) =>\n slice.map(([line, spans]) => (\n <div key={line.number} className={css.line}>\n <span className={css.gutter} aria-hidden>{line.number}</span>\n <span className={css.content}>{spans === undefined ? line.text : renderSpans(spans)}</span>\n </div>\n ))\n\n // Pair each line with its aligned run array up front, so head/tail slicing\n // keeps the two in step without re-indexing.\n const paired = lines.map((line, index): readonly [ReadBlockLine, readonly HighlightSpan[] | undefined] =>\n [line, highlighted?.[index]])\n\n return (\n <div className={clsx(css.block, className)} data-read=\"\">\n <div className={css.banner}>\n <div className={css.label}>{label ?? ''}</div>\n <div className={css.action}>\n {windowed && (\n <span className={css.count}>{`显示 ${lines.length} / ${totalLines} 行`}</span>\n )}\n <span className={css.lang}>{lang ?? ''}</span>\n {/* Hide copy on an empty window, matching TerminalBlock's empty-output\n guard: a successful read of an empty file returns lines: [] with\n card:'read', so this branch is reachable, and copying then would\n wipe the clipboard with an empty string. */}\n {lines.length > 0 && (\n <button type=\"button\" className={css.copyButton} onClick={onCopy}>\n {copied ? '复制成功' : '复制'}\n </button>\n )}\n </div>\n </div>\n <div className={css.body}>\n {rows(capped ? paired.slice(0, headLines) : paired)}\n {hidden > 0 && (\n <button\n type=\"button\"\n className={css.expand}\n aria-expanded={expanded}\n aria-label={expanded ? '收起内容' : `展开其余 ${hidden} 行`}\n onClick={onToggle}\n >\n {expanded ? '收起' : `… 其余 ${hidden} 行`}\n </button>\n )}\n {capped && rows(paired.slice(paired.length - tailLines))}\n </div>\n </div>\n )\n}\n","// DiffBlock: the inline-diff surface for a file mutation (write/edit) — a copy\n// control over one or more per-file hunks, each a bold path header followed by\n// the removed block (`-`, error color) and the added block (`+`, success\n// color), with a dim `└ +A -R · N file(s)` footer. Unlike the TUI's exact\n// changed-row comparison, this block renders the old and new sides in full.\n// Both front ends share the line-terminator rule and distinct-path file count.\n// Output never soft-wraps — an aligned source line keeps its indentation and\n// scrolls horizontally instead of folding. Colors resolve through --dsw-*\n// tokens; geometry mirrors CodeBlock.\n\nimport { useCallback, useMemo, useState } from 'react'\nimport clsx from 'clsx'\nimport { writeClipboard } from './clipboard.ts'\nimport css from './DiffBlock.module.css'\n\n/**\n * Output lines shown before the height cap collapses the middle. Matches\n * {@link DEFAULT_TERMINAL_MAX_LINES} so a diff card and a terminal card cut a\n * long body at the same place.\n */\nexport const DEFAULT_DIFF_MAX_LINES = 16\n\n/**\n * One file's change, in the shape {@link DiffBlock} draws. Structurally the\n * render-intent contract's `FileDiff`, redeclared here so this primitive stays\n * free of the tool contract (the terminal card's decoupling, applied to diffs).\n */\nexport interface DiffHunk {\n /** The changed file's path, drawn verbatim as the hunk's header (the tool's model-facing path). */\n path: string\n /** Prior content, or `null` for a new file / an overwrite (nothing on the removed side). */\n oldText: string | null\n /** Content after the change (the added side). */\n newText: string\n}\n\nexport interface DiffBlockProps {\n /** One entry per applied hunk, in file order; empty renders nothing. */\n diffs: DiffHunk[]\n /** Height cap in body lines before the middle collapses (default {@link DEFAULT_DIFF_MAX_LINES}). */\n maxLines?: number | undefined\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n}\n\n/** A single rendered body line and its role, so the height cap slices a flat list. */\ninterface DiffRow {\n kind: 'path' | 'del' | 'add' | 'gap'\n text: string\n}\n\n/** Local exhaustiveness helper — this package does not depend on `dsh-llm`. */\n/* v8 ignore next 3 -- closed-union backstop; only reached if a row kind is forged */\nfunction assertNever(value: never): never {\n throw new Error(`unreachable diff row kind: ${String(value)}`)\n}\n\n/** The dim class per row kind (path/gap chrome vs the diff's own +/- colors). */\nconst ROW_CLASS: Record<DiffRow['kind'], string | undefined> = {\n path: css.path,\n del: css.del,\n add: css.add,\n gap: css.gap,\n}\n\n/**\n * Flatten the hunks into the body's rows plus the footer counts. A path header\n * opens each new file; a same-file second hunk (a scattered edit) opens with a\n * `⋯` gap instead of repeating the path. Every old-side line counts toward\n * `removed` and every new-side line toward `added`. The file count is of\n * DISTINCT paths, matching the TUI diff card's footer, so two hunks in one file\n * read as `1 file` on both front ends.\n * @param diffs - the hunks to render.\n * @returns the body rows, the +/- totals, and the distinct-file count.\n */\nfunction buildRows(diffs: DiffHunk[]): { rows: DiffRow[]; added: number; removed: number; files: number } {\n const rows: DiffRow[] = []\n const paths = new Set<string>()\n let added = 0\n let removed = 0\n let prevPath: string | undefined\n for (const diff of diffs) {\n paths.add(diff.path)\n if (diff.path !== prevPath) rows.push({ kind: 'path', text: diff.path })\n else rows.push({ kind: 'gap', text: '⋯' })\n prevPath = diff.path\n if (diff.oldText !== null) {\n for (const line of contentLines(diff.oldText)) {\n rows.push({ kind: 'del', text: line })\n removed++\n }\n }\n for (const line of contentLines(diff.newText)) {\n rows.push({ kind: 'add', text: line })\n added++\n }\n }\n return { rows, added, removed, files: paths.size }\n}\n\n/**\n * Split a side's text into its content lines. Empty text is zero lines (a full\n * deletion's `newText` or a create's absent `oldText` side draws nothing), and a\n * single trailing newline is a line terminator rather than an extra empty line —\n * the same terminator rule TerminalBlock applies to command output. An interior\n * blank line (a genuine `\\n\\n`) survives.\n * @param text - the removed or added side's text.\n * @returns the content lines, without the terminating newline.\n */\nfunction contentLines(text: string): string[] {\n if (text === '') return []\n const body = text.endsWith('\\n') ? text.slice(0, -1) : text\n return body.split('\\n')\n}\n\n/**\n * The diff text a reader copies: each row's `-`/`+`/path/gap prefix and its\n * content, exactly what the card shows. The removed and added blocks are the\n * change; the path headers keep a multi-file copy attributable.\n * @param rows - the flattened body rows.\n * @returns the diff as plain text.\n */\nfunction copyText(rows: DiffRow[]): string {\n return rows.map((row) => {\n switch (row.kind) {\n case 'del': return `- ${row.text}`\n case 'add': return `+ ${row.text}`\n case 'path': return row.text\n case 'gap': return row.text\n /* v8 ignore next -- closed-union backstop; only reached if a row kind is forged */\n default: return assertNever(row.kind)\n }\n }).join('\\n')\n}\n\n/**\n * Render a file mutation as an inline diff surface.\n * @param props - see {@link DiffBlockProps}.\n * @returns the diff block element.\n */\nexport function DiffBlock({ diffs, maxLines = DEFAULT_DIFF_MAX_LINES, className }: DiffBlockProps) {\n const { rows, added, removed, files } = useMemo(() => buildRows(diffs), [diffs])\n const [expanded, setExpanded] = useState(false)\n const [copied, setCopied] = useState(false)\n\n const onCopy = useCallback(() => {\n if (copied) return\n void writeClipboard(copyText(rows)).then((ok) => {\n if (!ok) return\n setCopied(true)\n window.setTimeout(() => { setCopied(false) }, 1000)\n })\n }, [copied, rows])\n\n const onToggle = useCallback(() => { setExpanded(value => !value) }, [])\n\n if (rows.length === 0) return null\n\n const hidden = rows.length - maxLines\n const capped = hidden > 0 && !expanded\n // Same split arithmetic as TerminalBlock and the TUI transcript's collapsed\n // card, so a body's head and tail slices agree across the front ends.\n const headLines = Math.ceil(maxLines / 2)\n const tailLines = maxLines - headLines\n const head = capped ? rows.slice(0, headLines) : rows\n const tail = capped ? rows.slice(rows.length - tailLines) : []\n\n return (\n <div className={clsx(css.block, className)} data-diff=\"\">\n <button type=\"button\" className={css.copyButton} onClick={onCopy}>\n {copied ? '复制成功' : '复制'}\n </button>\n <div className={css.body}>\n {head.map((row, index) => (\n <div key={index} className={clsx(css.line, ROW_CLASS[row.kind])}>{row.text}</div>\n ))}\n {hidden > 0 && (\n <button\n type=\"button\"\n className={css.expand}\n aria-expanded={expanded}\n aria-label={expanded ? '收起差异' : `展开其余 ${hidden} 行差异`}\n onClick={onToggle}\n >\n {expanded ? '收起' : `… 其余 ${hidden} 行`}\n </button>\n )}\n {tail.map((row, index) => (\n <div key={index} className={clsx(css.line, ROW_CLASS[row.kind])}>{row.text}</div>\n ))}\n </div>\n <div className={css.footer}>└ +{added} -{removed} · {files} file{files === 1 ? '' : 's'}</div>\n </div>\n )\n}\n","// SearchBlock: the search surface for a completed content or path search — a\n// banner (result summary that folds the pre-cap total in when the tool capped\n// the result, plus a copy control), then either grep matches grouped by file\n// (each file a bold\n// path header with its `lineNumber: line` rows, the group collapsible) or a\n// flat glob path list. Both shapes flatten to one list of rows the height cap\n// slices head/tail over, and neither soft-wraps: a long match line or path\n// scrolls horizontally instead of folding. Geometry mirrors CodeBlock and\n// TerminalBlock so a search card reads as one family with them.\n\nimport { useCallback, useState, type ReactNode } from 'react'\nimport clsx from 'clsx'\nimport { headTailCap } from './head-tail-cap.ts'\nimport { useCopyFeedback } from './use-copy-feedback.ts'\nimport css from './SearchBlock.module.css'\n\n/**\n * Result rows shown before the height cap collapses the middle. Matches\n * {@link DEFAULT_TERMINAL_MAX_LINES} so a search card and a terminal card cut a\n * long result at the same place.\n */\nexport const DEFAULT_SEARCH_MAX_LINES = 16\n\n/** One matched line inside a {@link SearchFileGroup}: its 1-based line number and text. */\nexport interface SearchBlockLineMatch {\n /** 1-based line number of the match within its file. */\n lineNumber: number\n /** The matched line text, as the tool surfaced it. */\n line: string\n}\n\n/** One file's grouped matches, in first-seen file order. */\nexport interface SearchFileGroup {\n /** The file the matches belong to (the display path). */\n path: string\n /** The file's matched lines, in output order. */\n matches: SearchBlockLineMatch[]\n}\n\n/** Fields both search shapes carry (the render site positions; this component draws). */\ninterface SearchBlockCommon {\n /**\n * Whether the tool capped the inline result: the shape carries only the\n * retained results, not every result the search found. The banner summary\n * folds the pre-cap `total` in (`显示 X / 共 N …`) so the card never presents a\n * capped result as complete.\n */\n truncated: boolean\n /** Total results the search found before capping (equals the retained count when not `truncated`). */\n total: number\n /** Height cap in rows before the middle collapses (default {@link DEFAULT_SEARCH_MAX_LINES}). */\n maxLines?: number | undefined\n /** Extra class merged onto the wrapper. */\n className?: string | undefined\n}\n\n/** Props for the grouped-matches (`grep`) shape. */\nexport interface SearchMatchesBlockProps extends SearchBlockCommon {\n kind: 'matches'\n /** Matched lines grouped by file, in first-seen file order. */\n files: SearchFileGroup[]\n}\n\n/** Props for the flat-path (`glob`) shape. */\nexport interface SearchPathsBlockProps extends SearchBlockCommon {\n kind: 'paths'\n /** The discovered paths, in the tool's result order (the retained page when `truncated`). */\n paths: string[]\n}\n\n/** {@link SearchBlock} props: one card, two `kind`-discriminated shapes. */\nexport type SearchBlockProps = SearchMatchesBlockProps | SearchPathsBlockProps\n\n/**\n * One flattened render row. A matches card produces a `file` header row per\n * group followed by a `match` row per retained line while the group is\n * expanded; a paths card produces one `path` row per path. The height cap\n * counts these rows uniformly, so a file header costs one row exactly as a\n * match line or a path does.\n */\ntype SearchRow =\n | { type: 'file'; path: string; count: number; index: number; collapsed: boolean }\n | { type: 'match'; lineNumber: number; line: string; key: string; fileIndex: number }\n | { type: 'path'; path: string }\n\n/**\n * The plain-text form the copy control writes: the whole structured result\n * regardless of the height cap or which groups are collapsed, so the clipboard\n * carries the result rather than what the card happens to be showing.\n * @param props - the card's props.\n * @returns the copyable text, or the empty string for an empty result.\n */\nfunction copyText(props: SearchBlockProps): string {\n if (props.kind === 'paths') return props.paths.join('\\n')\n return props.files\n .map(file => [file.path, ...file.matches.map(m => `${m.lineNumber}: ${m.line}`)].join('\\n'))\n .join('\\n\\n')\n}\n\n/**\n * Number of retained results the card holds: the matched-line count across all\n * files for a matches card, the path count for a paths card. This is the count\n * the banner summary reports against `total` when the result was capped.\n * @param props - the card's props.\n * @returns the retained result count.\n */\nfunction shownCount(props: SearchBlockProps): number {\n return props.kind === 'paths'\n ? props.paths.length\n : props.files.reduce((sum, file) => sum + file.matches.length, 0)\n}\n\n/**\n * The banner summary. When the search was capped it reads `显示 X / 共 N …` so\n * the retained count and the pre-cap total sit in one clause (mirroring the read\n * card's `显示 X / Y 行`); when it was not capped it is a plain count of what the\n * card holds. The unit — `处匹配 · K 个文件` for grep, `个路径` for glob — trails\n * the count either way.\n * @param props - the card's props.\n * @param shown - the retained result count from {@link shownCount}.\n * @param truncated - whether the search was capped.\n * @param total - the pre-cap total the truncation clause reports.\n * @returns the summary text.\n */\nfunction summaryText(props: SearchBlockProps, shown: number, truncated: boolean, total: number): string {\n const count = truncated ? `显示 ${shown} / 共 ${total}` : `${shown}`\n return props.kind === 'paths'\n ? `${count} 个路径`\n : `${count} 处匹配 · ${props.files.length} 个文件`\n}\n\n/**\n * Flatten a card's shape into its render rows, dropping a collapsed file\n * group's match rows.\n * @param props - the card's props.\n * @param collapsed - the set of collapsed file-group indices (matches only).\n * @returns the flattened rows in output order.\n */\nfunction toRows(props: SearchBlockProps, collapsed: ReadonlySet<number>): SearchRow[] {\n if (props.kind === 'paths') return props.paths.map((path): SearchRow => ({ type: 'path', path }))\n const rows: SearchRow[] = []\n props.files.forEach((file, index) => {\n const isCollapsed = collapsed.has(index)\n rows.push({ type: 'file', path: file.path, count: file.matches.length, index, collapsed: isCollapsed })\n if (isCollapsed) return\n for (const match of file.matches) {\n rows.push({ type: 'match', lineNumber: match.lineNumber, line: match.line, key: `${index}:${match.lineNumber}`, fileIndex: index })\n }\n })\n return rows\n}\n\n/**\n * A stable React key for a flattened render row: the group-scoped match key, a\n * file-index-scoped header key, or the path itself. Rows of different types\n * never collide, since each key carries its type prefix or the group index.\n * @param row - the flattened row.\n * @returns the key.\n */\nfunction rowKey(row: SearchRow): string {\n switch (row.type) {\n case 'match': return `match:${row.key}`\n case 'file': return `file:${row.index}`\n case 'path': return `path:${row.path}`\n }\n}\n\n/**\n * Render a completed search as a grouped-matches or flat-path card.\n * @param props - see {@link SearchBlockProps}.\n * @returns the search block element.\n */\nexport function SearchBlock(props: SearchBlockProps) {\n const { truncated, total, maxLines = DEFAULT_SEARCH_MAX_LINES, className } = props\n const [expanded, setExpanded] = useState(false)\n const [collapsed, setCollapsed] = useState<ReadonlySet<number>>(() => new Set())\n\n // `props` is a fresh object each render, so memoizing on it never hits; the\n // flatten is cheap, so it runs inline keyed on the collapse set instead.\n const rows = toRows(props, collapsed)\n const shown = shownCount(props)\n const empty = rows.length === 0\n const { copied, onCopy } = useCopyFeedback(copyText(props))\n\n const onToggle = useCallback(() => { setExpanded(value => !value) }, [])\n\n const toggleFile = useCallback((index: number) => {\n setCollapsed((prev) => {\n const next = new Set(prev)\n if (next.has(index)) next.delete(index)\n else next.add(index)\n return next\n })\n }, [])\n\n const { hidden, capped, headLines, tailLines } = headTailCap(rows.length, maxLines, expanded)\n const head = capped ? rows.slice(0, headLines) : rows\n const naturalTail = capped ? rows.slice(rows.length - tailLines) : []\n // When the tail slice begins inside a file's matches, its own header sits\n // above the cut and is not shown, so those rows could not be attributed to a\n // file. Restore the owning header at the top of the tail — unless the head\n // slice already carries it (a single large file), where it would duplicate.\n const tailLead = naturalTail[0]\n const tailHeader = tailLead?.type === 'match'\n && !head.some(row => row.type === 'file' && row.index === tailLead.fileIndex)\n ? rows.find((row): row is Extract<SearchRow, { type: 'file' }> =>\n row.type === 'file' && row.index === tailLead.fileIndex)\n : undefined\n // The restored header is itself a row. Left extra it would push the card to\n // maxLines + 1 and overstate `hidden` by one, so it consumes a tail slot: drop\n // the tail's first row (the match whose header this is) for it. Visible rows\n // hold at maxLines and `hidden` stays exact; the dropped match joins the\n // hidden middle.\n const tail = tailHeader === undefined ? naturalTail : naturalTail.slice(1)\n\n const renderRow = (row: SearchRow): ReactNode => {\n if (row.type === 'path') return <div className={css.line}>{row.path}</div>\n if (row.type === 'match') {\n return (\n <div className={css.line}>\n <span className={css.lineNumber}>{row.lineNumber}: </span>\n {row.line}\n </div>\n )\n }\n return (\n <button\n type=\"button\"\n className={css.fileHeader}\n aria-expanded={!row.collapsed}\n onClick={() => { toggleFile(row.index) }}\n >\n <span className={css.filePath}>{row.path}</span>\n <span className={css.fileCount}>{row.count}</span>\n </button>\n )\n }\n\n return (\n <div className={clsx(css.block, className)} data-search={props.kind}>\n <div className={css.header}>\n <span className={css.summary}>{summaryText(props, shown, truncated, total)}</span>\n {!empty && (\n <button type=\"button\" className={css.copyButton} onClick={onCopy}>\n {copied ? '复制成功' : '复制'}\n </button>\n )}\n </div>\n {empty\n ? <div className={css.empty}>无结果</div>\n : (\n <div className={css.body}>\n {head.map(row => (\n <div key={rowKey(row)}>{renderRow(row)}</div>\n ))}\n {hidden > 0 && (\n <button\n type=\"button\"\n className={css.expand}\n aria-expanded={expanded}\n aria-label={expanded ? '收起结果' : `展开其余 ${hidden} 行结果`}\n onClick={onToggle}\n >\n {expanded ? '收起' : `… 其余 ${hidden} 行`}\n </button>\n )}\n {tailHeader !== undefined && (\n <div key={`tailHeader:${rowKey(tailHeader)}`}>{renderRow(tailHeader)}</div>\n )}\n {tail.map(row => (\n <div key={rowKey(row)}>{renderRow(row)}</div>\n ))}\n </div>\n )}\n </div>\n )\n}\n","/**\n * Incremental block-level markdown parsing for an append-only text stream.\n *\n * Re-parsing the whole accumulated document on every streaming chunk is\n * quadratic in the final reply length. CommonMark block parsing is line-based\n * and appended text can only reshape the parse frontier — the last top-level\n * block (a paragraph becoming a setext heading or a table, a list continuing\n * after a blank line, an unclosed fence swallowing lines) — so earlier blocks\n * are final. This parser therefore freezes all but the trailing\n * {@link UNSTABLE_TAIL_BLOCKS} blocks and re-parses only the source tail\n * behind them: each source region is parsed O(1) times over the stream\n * instead of once per chunk.\n *\n * The freeze boundary comes from the parser's own `position` offsets, never\n * from custom source scanning. The cut sits at the *end offset* of the last\n * frozen block (not the next block's start): a following block's start offset\n * excludes up to three spaces of insignificant leading indentation, which is\n * harmless to drop, but cutting at the previous end also keeps the\n * inter-block blank lines in the tail so the sliced source stays verbatim.\n *\n * Known deviation, shared with any prefix-freeze scheme: micromark resolves\n * reference-style links and footnotes document-wide at parse time, so a\n * reference whose definition lands on the other side of the freeze boundary\n * renders literally until the settled full parse self-heals it.\n */\n\nimport type { Root, RootContent } from 'mdast'\n\n/**\n * Trailing blocks kept unstable. Appended text reshapes at most the last\n * block; the second-to-last is retained as safety margin so a freeze decision\n * never has to reason about the parse frontier.\n */\nconst UNSTABLE_TAIL_BLOCKS = 2\n\n/** A top-level mdast block plus a render key that is stable across chunks. */\nexport interface PositionedBlock {\n /** The parsed block. Positions inside it are relative to its parse slice. */\n readonly node: RootContent\n /**\n * The block's start offset in the full source text. Stable from the frame\n * a block first appears through freezing, so React reconciles rather than\n * remounts when a block crosses the freeze boundary.\n */\n readonly key: number\n}\n\n/** One {@link IncrementalMarkdownParser.update} result. */\nexport interface IncrementalBlocks {\n /** Blocks that can no longer change; grows monotonically per generation. */\n readonly frozen: readonly PositionedBlock[]\n /** The re-parsed unstable tail (at most {@link UNSTABLE_TAIL_BLOCKS} blocks plus growth). */\n readonly tail: readonly PositionedBlock[]\n /** Bumped whenever non-append input discards the frozen prefix; callers drop caches keyed on it. */\n readonly generation: number\n}\n\n/**\n * A block's render key: its absolute source start offset. A position-less\n * node (a grammar is free to omit positions) falls back to a negative\n * list-index key — unique within one update's tail, which is the only place\n * the fallback can occur: freezing requires the cut block's position, so a\n * position-less parse keeps every block in the tail (real grammars always\n * stamp positions and never take this path).\n */\nfunction blockKey(node: RootContent, base: number, index: number): number {\n const offset = node.position?.start.offset\n return offset === undefined ? -(index + 1) : base + offset\n}\n\n/**\n * Append-only incremental parser over a caller-supplied grammar. One instance\n * accumulates one streaming document; non-append input resets it.\n */\nexport class IncrementalMarkdownParser {\n private prevText = ''\n private tailStart = 0\n private frozen: PositionedBlock[] = []\n private generation = 0\n private cached: IncrementalBlocks | null = null\n\n /** @param parse - Grammar shared with whatever renders the blocks, so boundaries agree. */\n constructor(private readonly parse: (text: string) => Root) {}\n\n /**\n * Fold the current accumulated text and return the frozen/tail split.\n * Idempotent for identical input (the previous result is returned as-is),\n * so callers may invoke it from render paths that re-execute.\n * @param text - The full accumulated markdown source.\n * @returns Frozen and tail blocks with stream-stable render keys.\n */\n update(text: string): IncrementalBlocks {\n if (this.cached !== null && text === this.prevText) return this.cached\n // Deliberate O(prefix) memcmp per update: sound divergence detection has\n // to verify the whole retained prefix, and startsWith compares bytes two\n // orders of magnitude faster than parsing them — the cost this class\n // exists to remove. Passing append/reset deltas instead would push\n // append bookkeeping across the session-projection update boundary for a check\n // that stays sub-millisecond at realistic reply sizes.\n if (!text.startsWith(this.prevText)) {\n this.prevText = ''\n this.tailStart = 0\n this.frozen = []\n this.generation += 1\n }\n this.prevText = text\n const base = this.tailStart\n const blocks = this.parse(text.slice(base)).children\n let firstUnstable = Math.max(0, blocks.length - UNSTABLE_TAIL_BLOCKS)\n if (firstUnstable > 0) {\n const cutEnd = blocks[firstUnstable - 1]?.position?.end.offset\n if (cutEnd === undefined) {\n // A grammar that omits positions leaves nothing to cut at; keep the\n // whole parse in the tail rather than guessing a boundary.\n firstUnstable = 0\n } else {\n for (const node of blocks.slice(0, firstUnstable)) {\n this.frozen.push({ node, key: blockKey(node, base, this.frozen.length) })\n }\n this.tailStart = base + cutEnd\n }\n }\n const tail = blocks.slice(firstUnstable).map((node, index) => ({\n node,\n key: blockKey(node, base, index),\n }))\n this.cached = { frozen: [...this.frozen], tail, generation: this.generation }\n return this.cached\n }\n}\n","/** Let asterisk strong emphasis close after punctuation when CJK prose continues without whitespace. */\n\nimport { attention } from 'micromark-core-commonmark'\nimport { unicodePunctuation } from 'micromark-util-character'\nimport { classifyCharacter } from 'micromark-util-classify-character'\nimport { codes, constants } from 'micromark-util-symbol'\nimport type { Construct, Extension, State, Tokenizer } from 'micromark-util-types'\n\nconst cjkCharacter = new RegExp([\n '\\\\p{Script_Extensions=Han}',\n '\\\\p{Script_Extensions=Hiragana}',\n '\\\\p{Script_Extensions=Katakana}',\n '\\\\p{Script_Extensions=Hangul}',\n '\\\\p{Script_Extensions=Bopomofo}',\n].join('|'), 'u')\n\nfunction isCjkCharacter(code: number | null): boolean {\n return code !== null && code >= 0 && cjkCharacter.test(String.fromCodePoint(code))\n}\n\nconst tokenizeCjkFriendlyAttention: Tokenizer = function (effects, ok, nok) {\n const configuredAttentionMarkers = this.parser.constructs.attentionMarkers.null\n if (configuredAttentionMarkers === undefined) {\n throw new Error('micromark CommonMark attention markers are unavailable')\n }\n const attentionMarkers = configuredAttentionMarkers\n const previous = this.previous\n const before = classifyCharacter(previous)\n let marker: number | null = codes.eof\n\n return start\n\n function start(code: number | null): State | undefined {\n /* v8 ignore next -- this text construct is dispatched only for an asterisk. */\n if (code !== codes.asterisk) return nok(code)\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n function inside(code: number | null): State | undefined {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open = !after || (after === constants.characterGroupPunctuation && Boolean(before))\n || attentionMarkers.includes(code)\n const commonMarkClose = !before\n || (before === constants.characterGroupPunctuation && Boolean(after))\n || attentionMarkers.includes(previous)\n const markerCount = token.end.offset - token.start.offset\n const cjkStrongClose = markerCount >= 2\n && unicodePunctuation(previous)\n && isCjkCharacter(code)\n const close = commonMarkClose || cjkStrongClose\n\n token._open = open\n token._close = close\n return ok(code)\n }\n}\n\nconst cjkFriendlyAttention: Construct = {\n name: 'cjkFriendlyAttention',\n resolveAll: attention.resolveAll,\n tokenize: tokenizeCjkFriendlyAttention,\n}\n\nconst cjkFriendlyStrongExtension: Extension = {\n text: { [codes.asterisk]: cjkFriendlyAttention },\n}\n\n/**\n * Extend CommonMark asterisk strong emphasis for punctuation-delimited CJK\n * prose, as a micromark syntax extension for `fromMarkdown`.\n * @returns The micromark syntax extension.\n */\nexport function cjkFriendlyStrong(): Extension {\n return cjkFriendlyStrongExtension\n}\n","/** Extend upstream dollar-only math syntax with TeX delimiters while reusing its token vocabulary. */\n\nimport { factorySpace } from 'micromark-factory-space'\nimport type {} from 'micromark-extension-math'\nimport { markdownLineEnding } from 'micromark-util-character'\nimport { codes, constants, types } from 'micromark-util-symbol'\nimport type { Construct, Extension, Previous, State, Tokenizer } from 'micromark-util-types'\n\n// oxlint-disable typescript/no-this-alias -- micromark binds tokenizer context only on the outer callback.\n\nconst previousBackslash: Previous = function (code) {\n if (code !== codes.backslash) return true\n const tail = this.events.at(-1)\n /* v8 ignore next -- a previous code necessarily has a preceding event. */\n if (tail === undefined) return false\n return tail[1].type === types.characterEscape\n}\n\nconst tokenizeBackslashMathText: Tokenizer = function (effects, ok, nok) {\n return start\n\n function start(code: number | null): State | undefined {\n /* v8 ignore next -- the text construct is dispatched only for a backslash. */\n if (code !== codes.backslash) return nok(code)\n effects.enter('mathText')\n effects.enter('mathTextSequence')\n effects.consume(code)\n return open\n }\n\n function open(code: number | null): State | undefined {\n if (code !== codes.leftParenthesis) return nok(code)\n effects.consume(code)\n effects.exit('mathTextSequence')\n return between\n }\n\n function between(code: number | null): State | undefined {\n if (code === codes.eof) return nok(code)\n if (code === codes.backslash) {\n return effects.attempt({ partial: true, tokenize: tokenizeClose }, close, afterCloseAttempt)(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return between\n }\n return dataStart(code)\n }\n\n function afterCloseAttempt(code: number | null): State | undefined {\n return effects.check({ partial: true, tokenize: tokenizeOpen }, nok, dataStart)(code)\n }\n\n function dataStart(code: number | null): State | undefined {\n effects.enter('mathTextData')\n effects.consume(code)\n return code === codes.backslash ? afterDataBackslash : data\n }\n\n function afterDataBackslash(code: number | null): State | undefined {\n if (code === codes.backslash) {\n effects.consume(code)\n return data\n }\n return data(code)\n }\n\n function data(code: number | null): State | undefined {\n if (code === codes.eof || code === codes.backslash || markdownLineEnding(code)) {\n effects.exit('mathTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n function close(code: number | null): State | undefined {\n effects.exit('mathText')\n return ok(code)\n }\n\n function tokenizeClose(closeEffects: Parameters<Tokenizer>[0], closeOk: State, closeNok: State): State {\n return slash\n\n function slash(code: number | null): State | undefined {\n /* v8 ignore next -- this partial construct is attempted only at a backslash. */\n if (code !== codes.backslash) return closeNok(code)\n closeEffects.enter('mathTextSequence')\n closeEffects.consume(code)\n return parenthesis\n }\n\n function parenthesis(code: number | null): State | undefined {\n if (code !== codes.rightParenthesis) return closeNok(code)\n closeEffects.consume(code)\n closeEffects.exit('mathTextSequence')\n return closeOk\n }\n }\n\n function tokenizeOpen(openEffects: Parameters<Tokenizer>[0], openOk: State, openNok: State): State {\n return slash\n\n function slash(code: number | null): State | undefined {\n /* v8 ignore next -- the opening check follows a failed close attempt at a backslash. */\n if (code !== codes.backslash) return openNok(code)\n openEffects.enter(types.chunkString)\n openEffects.consume(code)\n return parenthesis\n }\n\n function parenthesis(code: number | null): State | undefined {\n if (code !== codes.leftParenthesis) return openNok(code)\n openEffects.consume(code)\n openEffects.exit(types.chunkString)\n return openOk\n }\n }\n}\n\nfunction createMathFlow(marker: number, openMarker: number, closeMarker: number, multiline: boolean): Construct {\n const tokenize: Tokenizer = function (effects, ok, nok) {\n const self = this\n let oddBackslashRun = false\n const tail = self.events.at(-1)\n const initialSize = tail?.[1].type === types.linePrefix\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n\n return start\n\n function start(code: number | null): State | undefined {\n /* v8 ignore next -- the flow construct is dispatched only for its marker. */\n if (code !== marker) return nok(code)\n effects.enter('mathFlow')\n effects.enter('mathFlowFence')\n effects.enter('mathFlowFenceSequence')\n effects.consume(code)\n return open\n }\n\n function open(code: number | null): State | undefined {\n if (code !== openMarker) return nok(code)\n effects.consume(code)\n effects.exit('mathFlowFenceSequence')\n effects.exit('mathFlowFence')\n return marker === codes.dollarSign ? afterDollarOpen : content\n }\n\n function afterDollarOpen(code: number | null): State | undefined {\n return code === codes.dollarSign ? nok(code) : content(code)\n }\n\n function content(code: number | null): State | undefined {\n if (code === codes.eof) return nok(code)\n if (code === marker && (marker !== codes.dollarSign || !oddBackslashRun)) {\n return effects.attempt(\n { partial: true, tokenize: tokenizeClosingFence },\n closed,\n afterClosingFenceAttempt,\n )(code)\n }\n if (markdownLineEnding(code)) {\n return multiline\n ? effects.attempt(nonLazyContinuation, afterContinuation, nok)(code)\n : nok(code)\n }\n return valueStart(code)\n }\n\n function afterClosingFenceAttempt(code: number | null): State | undefined {\n return marker === codes.backslash\n ? effects.check({ partial: true, tokenize: tokenizeOpeningFence }, nok, markerValueStart)(code)\n : markerValueStart(code)\n }\n\n function afterContinuation(code: number | null): State | undefined {\n return effects.attempt(\n { partial: true, tokenize: tokenizeClosingFence },\n closed,\n initialSize\n ? factorySpace(effects, content, types.linePrefix, initialSize + 1)\n : content,\n )(code)\n }\n\n function valueStart(code: number | null): State | undefined {\n effects.enter('mathFlowValue')\n oddBackslashRun = code === codes.backslash\n effects.consume(code)\n return value\n }\n\n function markerValueStart(code: number | null): State | undefined {\n effects.enter('mathFlowValue')\n oddBackslashRun = false\n effects.consume(code)\n return valueAfterMarker\n }\n\n function valueAfterMarker(code: number | null): State | undefined {\n if (code === marker) {\n effects.consume(code)\n return value\n }\n return value(code)\n }\n\n function value(code: number | null): State | undefined {\n if (code === codes.eof || code === marker || markdownLineEnding(code)) {\n effects.exit('mathFlowValue')\n return content(code)\n }\n oddBackslashRun = code === codes.backslash ? !oddBackslashRun : false\n effects.consume(code)\n return value\n }\n\n function closed(code: number | null): State | undefined {\n effects.exit('mathFlow')\n return ok(code)\n }\n\n function tokenizeClosingFence(\n closeEffects: Parameters<Tokenizer>[0],\n closeOk: State,\n closeNok: State,\n ): State {\n return factorySpace(closeEffects, sequenceStart, types.linePrefix, constants.tabSize)\n\n function sequenceStart(code: number | null): State | undefined {\n if (code !== marker) return closeNok(code)\n closeEffects.enter('mathFlowFence')\n closeEffects.enter('mathFlowFenceSequence')\n closeEffects.consume(code)\n return sequenceEnd\n }\n\n function sequenceEnd(code: number | null): State | undefined {\n if (code !== closeMarker) return closeNok(code)\n closeEffects.consume(code)\n closeEffects.exit('mathFlowFenceSequence')\n return factorySpace(closeEffects, after, types.whitespace)\n }\n\n function after(code: number | null): State | undefined {\n if (code !== codes.eof && !markdownLineEnding(code)) return closeNok(code)\n closeEffects.exit('mathFlowFence')\n return closeOk(code)\n }\n }\n\n function tokenizeOpeningFence(\n openEffects: Parameters<Tokenizer>[0],\n openOk: State,\n openNok: State,\n ): State {\n return sequenceStart\n\n function sequenceStart(code: number | null): State | undefined {\n /* v8 ignore next -- the opening check follows a failed close attempt at the marker. */\n if (code !== marker) return openNok(code)\n openEffects.enter(types.chunkString)\n openEffects.consume(code)\n return sequenceEnd\n }\n\n function sequenceEnd(code: number | null): State | undefined {\n if (code !== openMarker) return openNok(code)\n openEffects.consume(code)\n openEffects.exit(types.chunkString)\n return openOk\n }\n }\n }\n\n return {\n concrete: true,\n name: marker === codes.dollarSign ? 'sameLineDollarMathFlow' : 'backslashMathFlow',\n tokenize,\n }\n}\n\nconst tokenizeNonLazyContinuation: Tokenizer = function (effects, ok, nok) {\n const self = this\n\n return start\n\n function start(code: number | null): State | undefined {\n /* v8 ignore next -- continuation constructs are attempted only after a line ending. */\n if (code === codes.eof) return ok(code)\n /* v8 ignore next -- continuation constructs are attempted only after a line ending. */\n if (!markdownLineEnding(code)) return nok(code)\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return lineStart\n }\n\n function lineStart(code: number | null): State | undefined {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\nconst nonLazyContinuation: Construct = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation,\n}\n\nconst backslashMathText: Construct = {\n name: 'backslashMathText',\n previous: previousBackslash,\n tokenize: tokenizeBackslashMathText,\n}\n\nconst backslashMathFlow = createMathFlow(\n codes.backslash,\n codes.leftSquareBracket,\n codes.rightSquareBracket,\n true,\n)\n\nconst sameLineDollarMathFlow = createMathFlow(\n codes.dollarSign,\n codes.dollarSign,\n codes.dollarSign,\n false,\n)\n\nconst backslashMath: Extension = {\n flow: {\n [codes.backslash]: backslashMathFlow,\n [codes.dollarSign]: sameLineDollarMathFlow,\n },\n text: { [codes.backslash]: backslashMathText },\n}\n\n/**\n * TeX backslash delimiters and same-line display-dollar blocks as a micromark\n * syntax extension reusing `micromark-extension-math`'s token vocabulary; the\n * caller must also register `math()` on the same parse so the emitted tokens\n * compile to standard math nodes.\n * @returns The micromark syntax extension.\n */\nexport function mathCompatibility(): Extension {\n return backslashMath\n}\n","/**\n * The markdown renderer's two mdast grammars, one per rendering arm. Each\n * arm is internally consistent — the incremental tail parses, the one-shot\n * parses, and the plain-text projection of a given grammar always agree on\n * where blocks start and end — and the settled grammar is the streaming one\n * plus the math extensions, so the arms differ only where TeX delimiters\n * begin a math construct (a `$$` block is a paragraph while streaming and a\n * math block once settled, by design).\n */\n\nimport type { Root } from 'mdast'\nimport { fromMarkdown } from 'mdast-util-from-markdown'\nimport { gfmFromMarkdown } from 'mdast-util-gfm'\nimport { mathFromMarkdown } from 'mdast-util-math'\nimport { gfm } from 'micromark-extension-gfm'\nimport { math } from 'micromark-extension-math'\nimport { cjkFriendlyStrong } from './cjkFriendlyStrong.ts'\nimport { mathCompatibility } from './mathCompatibility.ts'\n\n/**\n * Parse GFM markdown (the streaming arm's grammar: no math, so incomplete\n * TeX never flashes KaTeX errors mid-stream).\n * @param text - Markdown source.\n * @returns The mdast root.\n */\nexport function parseGfm(text: string): Root {\n return fromMarkdown(text, {\n extensions: [gfm(), cjkFriendlyStrong()],\n mdastExtensions: [gfmFromMarkdown()],\n })\n}\n\n/**\n * Parse GFM markdown plus TeX math with the compatibility delimiters\n * (the settled arm's grammar).\n * @param text - Markdown source.\n * @returns The mdast root.\n */\nexport function parseGfmWithMath(text: string): Root {\n return fromMarkdown(text, {\n extensions: [gfm(), cjkFriendlyStrong(), mathCompatibility(), math()],\n mdastExtensions: [gfmFromMarkdown(), mathFromMarkdown()],\n })\n}\n","// CodeBlock: one code surface for every consumer — markdown fences, the\n// run_code program body, and the details panel's raw args/output — with\n// shiki highlighting for the registered grammars and an identical-geometry\n// plain fallback for everything else. Chrome (language banner + copy) matches\n// deepsuite `@deepseek/md` code blocks; token colors stay on `--shiki-*`.\n\nimport { useCallback, useMemo, useRef, useState, useSyncExternalStore } from 'react'\nimport clsx from 'clsx'\nimport { writeClipboard } from '../clipboard.ts'\nimport { grammarLoadCount, highlightToHtml, subscribeGrammarLoaded } from './highlight.ts'\nimport css from './CodeBlock.module.css'\n\nexport interface CodeBlockProps {\n /** The source text, rendered verbatim (trailing newline trimmed for display). */\n code: string\n /** Grammar hint (markdown fence info string or a fixed caller id); unknown = plain. */\n lang?: string | undefined\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n /** Copy-button idle label; the owner passes localized copy (this package is cordis-free, so copy arrives via props). */\n copyLabel?: string | undefined\n /** Copy-button label during the post-copy confirmation window. */\n copiedLabel?: string | undefined\n}\n\nexport function CodeBlock({ code, lang, className, copyLabel = '复制', copiedLabel = '复制成功' }: CodeBlockProps) {\n const trimmed = code.endsWith('\\n') ? code.slice(0, -1) : code\n // Re-render when a lazy grammar finishes loading, so a fence that showed plain\n // text while its language's grammar imported picks up highlighting. The\n // snapshot value is opaque; only its change across renders drives the memo.\n const loaded = useSyncExternalStore(subscribeGrammarLoaded, grammarLoadCount, grammarLoadCount)\n const html = useMemo(() => highlightToHtml(trimmed, lang), [trimmed, lang, loaded])\n const rootRef = useRef<HTMLDivElement>(null)\n const [copied, setCopied] = useState(false)\n\n const onCopy = useCallback(() => {\n if (copied) return\n /* v8 ignore next -- both arms always mount a <pre>; trimmed is the\n typed fallback if the DOM shape ever diverges. */\n const text = rootRef.current?.querySelector('pre')?.textContent ?? trimmed\n void writeClipboard(text).then((ok) => {\n if (!ok) return\n setCopied(true)\n window.setTimeout(() => { setCopied(false) }, 1000)\n })\n }, [copied, trimmed])\n\n const body = html === undefined\n ? (\n <pre className={css.plain}><code>{trimmed}</code></pre>\n )\n : (\n // shiki's output is a static span tree it generated from `code` (no user\n // HTML passes through), the sanctioned innerHTML consumption path per\n // shiki's own docs.\n <div dangerouslySetInnerHTML={{ __html: html }} />\n )\n\n return (\n <div ref={rootRef} className={clsx(css.block, 'md-code-block', className)}>\n <div className={css.bannerWrap}>\n <div className={css.banner}>\n <div className={css.infostring}>{lang ?? ''}</div>\n <div className={css.action}>\n <button type=\"button\" className={css.copyButton} onClick={onCopy}>\n {copied ? copiedLabel : copyLabel}\n </button>\n </div>\n </div>\n </div>\n {body}\n </div>\n )\n}\n","/**\n * TeX-to-React via KaTeX, replicating the rehype-katex pipeline this renderer\n * replaced: the same three-arm error chain (strict render, `strict: 'ignore'`\n * retry, error span) and a DOM-identical element tree, so settled math keeps\n * its exact markup. KaTeX emits an HTML string; the browser's own HTML parser\n * (`DOMParser`, applying the spec's SVG/MathML foreign-content attribute\n * adjustments KaTeX output relies on) turns it into a tree this module maps\n * onto React elements — KaTeX output is a static span/MathML/SVG vocabulary\n * with no raw user HTML, the same trust shiki's tree gets in CodeBlock.\n *\n * React 18 has no MathML support, so the `.katex-mathml` subtree's elements\n * land in the HTML namespace — exactly as they did under the replaced\n * hast-util-to-jsx-runtime pipeline. The visual arm is the `.katex-html`\n * span tree; the MathML arm serves assistive technology, which reads it by\n * tag name regardless of namespace.\n */\n\nimport { createElement } from 'react'\nimport type { CSSProperties, ReactNode } from 'react'\nimport katex from 'katex'\n\n/**\n * Convert one inline `style` attribute string into React's style object.\n * KaTeX emits only plain kebab-case declarations (no custom properties and no\n * nameless declarations), so camel-casing the property is the whole mapping.\n */\nfunction styleObject(css: string): CSSProperties {\n const style: Record<string, string> = {}\n for (const declaration of css.split(';')) {\n const colon = declaration.indexOf(':')\n if (colon === -1) continue\n const name = declaration.slice(0, colon).trim()\n const key = name.replace(/-([a-z])/g, (_, letter: string) => letter.toUpperCase())\n style[key] = declaration.slice(colon + 1).trim()\n }\n return style\n}\n\n/** Map one parsed DOM node onto a React element (text nodes pass through). */\nfunction domToReact(node: ChildNode, key: number): ReactNode {\n if (node.nodeType === Node.TEXT_NODE) return node.textContent\n /* v8 ignore next 2 -- KaTeX output holds only elements and text; other\n node kinds cannot appear in its serialized vocabulary. */\n if (node.nodeType !== Node.ELEMENT_NODE) return null\n const element = node as Element\n const props: Record<string, unknown> = { key }\n for (const attribute of element.attributes) {\n if (attribute.name === 'class') props['className'] = attribute.value\n else if (attribute.name === 'style') props['style'] = styleObject(attribute.value)\n else props[attribute.name] = attribute.value\n }\n const children = [...element.childNodes].map(domToReact)\n return children.length === 0\n ? createElement(element.localName, props)\n : createElement(element.localName, props, ...children)\n}\n\n/**\n * Render TeX source to React elements through KaTeX.\n * @param value - The TeX source (math node value; fenced `math` blocks append\n * their trailing newline to match the replaced pipeline's text extraction).\n * @param displayMode - Display (block) versus inline rendering.\n * @returns KaTeX's element tree, or the error span when the source does not\n * parse (colored with KaTeX's stock `errorColor`, matching rehype-katex).\n */\nexport function renderTexToReact(value: string, displayMode: boolean): ReactNode {\n let html: string\n try {\n html = katex.renderToString(value, { displayMode, throwOnError: true })\n } catch (error) {\n try {\n html = katex.renderToString(value, { displayMode, strict: 'ignore', throwOnError: false })\n } catch {\n // KaTeX renders ParseErrors itself under throwOnError: false; only its\n // internal errors reach here, so mirror rehype-katex's manual span.\n /* v8 ignore next 8 */\n return (\n <span\n className=\"katex-error\"\n style={{ color: '#cc0000' }}\n title={String(error)}\n >\n {value}\n </span>\n )\n }\n }\n const parsed = new DOMParser().parseFromString(html, 'text/html')\n return [...parsed.body.childNodes].map(domToReact)\n}\n","/**\n * Direct mdast→React markdown renderer. Replaces the react-markdown /\n * remark-rehype pipeline with one switch over parsed nodes so streaming can\n * cache frozen blocks as React elements; the rendered DOM is pinned\n * byte-for-byte by `tests/fixtures/markdown-dom` and must not drift.\n *\n * Untrusted-output policy (unchanged from the replaced pipeline): link and\n * image destinations pass a protocol allowlist, images additionally require\n * absolute HTTP(S), raw HTML renders as literal text (no HTML enters the\n * DOM), and KaTeX runs without trusted commands. Fragment-anchor URLs fail\n * the allowlist, so footnote references and back-references render as plain\n * text rather than in-page links.\n *\n * Merge-extensible node unions fall through the documented default (render\n * nothing) rather than ending in assertNever: grammars registered elsewhere\n * may add node types this renderer has no mapping for.\n */\n\nimport { Fragment, createElement } from 'react'\nimport type { Key, ReactNode } from 'react'\nimport type * as Md from 'mdast'\nimport type {} from 'mdast-util-math'\nimport { normalizeUri } from 'micromark-util-sanitize-uri'\nimport { CodeBlock } from './CodeBlock.tsx'\nimport { renderTexToReact } from './katex.tsx'\nimport type { PositionedBlock } from './incremental.ts'\nimport css from './MarkdownText.module.css'\n\n/** Copy-button labels forwarded to fence CodeBlocks (this package is cordis-free, so copy arrives via props). */\nexport interface MarkdownCodeLabels {\n /** Copy-button idle label. */\n copyLabel?: string | undefined\n /** Copy-button label during the post-copy confirmation window. */\n copiedLabel?: string | undefined\n}\n\nfunction sanitizeUrl(url: string): string {\n try {\n switch (new URL(url).protocol) {\n case 'http:':\n case 'https:':\n case 'mailto:':\n return url\n default:\n return ''\n }\n } catch {\n // Relative and otherwise unparsable destinations are disallowed alongside\n // disallowed protocols; new URL() has no other failure mode for strings.\n return ''\n }\n}\n\nfunction remoteImageUrl(url: string): string | undefined {\n try {\n const protocol = new URL(url).protocol\n return protocol === 'http:' || protocol === 'https:' ? url : undefined\n } catch {\n // Same single failure mode as above: not an absolute URL.\n return undefined\n }\n}\n\n/** Link/image reference targets collected from a document (first definition per identifier wins, as in CommonMark). */\nexport interface ReferenceTargets {\n /** Link/image definitions keyed by upper-cased identifier. */\n definitions: Map<string, Md.Definition>\n /** Footnote definitions keyed by upper-cased identifier. */\n footnotes: Map<string, Md.FootnoteDefinition>\n}\n\n/**\n * Create an empty {@link ReferenceTargets}.\n * @returns Fresh empty maps.\n */\nexport function createReferenceTargets(): ReferenceTargets {\n return { definitions: new Map(), footnotes: new Map() }\n}\n\n/**\n * Record every definition and footnote definition under `nodes` into\n * `targets`, depth-first, keeping the first definition per identifier.\n * @param nodes - Subtrees to walk (top-level blocks or any nested children).\n * @param targets - Accumulator, typically shared across incremental segments.\n */\nexport function collectReferenceTargets(\n nodes: readonly Md.RootContent[],\n targets: ReferenceTargets,\n): void {\n for (const node of nodes) {\n if (node.type === 'definition') {\n const id = node.identifier.toUpperCase()\n if (!targets.definitions.has(id)) targets.definitions.set(id, node)\n } else if (node.type === 'footnoteDefinition') {\n const id = node.identifier.toUpperCase()\n if (!targets.footnotes.has(id)) targets.footnotes.set(id, node)\n }\n if ('children' in node) collectReferenceTargets(node.children, targets)\n }\n}\n\n/**\n * File-mention affordance for inline code: the owner resolves an authored\n * token to the file it names, using its own vocabulary of real files — the\n * renderer never guesses at what looks like a path.\n */\nexport interface MarkdownFileMentions {\n /**\n * Resolve one inline-code token.\n * @param value - The authored token, exactly as written.\n * @returns The opener with its accessible label and full-path title, or\n * undefined when the token names no known file — it then stays inert code.\n */\n resolve(value: string): { open: () => void; label: string; title: string } | undefined\n}\n\n/**\n * One render pass's state: immutable options and targets plus the footnote\n * numbering accumulated in document order while references render.\n */\nexport interface MarkdownRenderContext {\n /** Streaming arm: fences render plain and TeX stays literal. */\n readonly streaming: boolean\n /** Localized fence copy-button labels. */\n readonly codeLabels: MarkdownCodeLabels | undefined\n /** Inline-code file mentions; absent wherever no opener vocabulary exists. */\n readonly fileMentions: MarkdownFileMentions | undefined\n /** Inside an anchor's children: interactive mentions must not nest there. */\n readonly inLink?: boolean\n /** Reference targets visible to this pass. */\n readonly targets: ReferenceTargets\n /** Footnote identifiers in first-reference order; a footnote's number is its 1-based index here. */\n readonly footnoteOrder: string[]\n /** References rendered per identifier; drives the section's back-reference count. */\n readonly footnoteCounts: Map<string, number>\n}\n\n/**\n * Render top-level blocks. Nodes that render nothing (definitions, unmapped\n * types) are dropped rather than kept as null placeholders, matching the\n * replaced pipeline's child lists so separator newlines land identically.\n * @param blocks - Blocks with their stream-stable render keys.\n * @param context - The pass state; footnote numbering mutates in document order.\n * @returns One React node per rendered block.\n */\nexport function renderBlocks(\n blocks: readonly PositionedBlock[],\n context: MarkdownRenderContext,\n): ReactNode[] {\n return blocks\n .map(block => renderNode(block.node, block.key, context))\n .filter(element => element !== null)\n}\n\n/**\n * Interleave the newline text nodes the replaced pipeline emitted between\n * block-level children. They are invisible between elements but coalesce\n * into adjacent literal raw-HTML text, where the DOM parity fixtures pin\n * them.\n * @param elements - Rendered block children with empty renders already dropped.\n * @param edges - Also emit the leading and trailing newline (hast's loose wrap).\n * @returns The interleaved children.\n */\nexport function wrapBlockChildren(elements: readonly ReactNode[], edges: boolean): ReactNode[] {\n const wrapped: ReactNode[] = []\n for (const element of elements) {\n if (edges || wrapped.length > 0) wrapped.push('\\n')\n wrapped.push(element)\n }\n if (edges && elements.length > 0) wrapped.push('\\n')\n return wrapped\n}\n\n/**\n * A block child rendered for a parent that must tell paragraphs apart from\n * other blocks (list items unwrap them when tight; footnote bodies receive\n * their back-references inside the trailing paragraph).\n */\ntype BlockEntry = { paragraph: ReactNode[] } | { element: ReactNode }\n\n/** Render container children into {@link BlockEntry} values, dropping empty renders. */\nfunction renderBlockEntries(\n blocks: readonly Md.RootContent[],\n context: MarkdownRenderContext,\n): BlockEntry[] {\n const entries: BlockEntry[] = []\n for (const [index, block] of blocks.entries()) {\n if (block.type === 'paragraph') {\n entries.push({ paragraph: renderChildren(block.children, context) })\n } else {\n const element = renderNode(block, index, context)\n if (element !== null) entries.push({ element })\n }\n }\n return entries\n}\n\nfunction renderChildren(\n nodes: readonly Md.RootContent[],\n context: MarkdownRenderContext,\n): ReactNode[] {\n return nodes.map((node, index) => renderNode(node, index, context))\n}\n\nfunction renderNode(node: Md.RootContent, key: Key, context: MarkdownRenderContext): ReactNode {\n switch (node.type) {\n case 'text':\n return node.value\n case 'paragraph':\n return <p key={key}>{renderChildren(node.children, context)}</p>\n case 'heading':\n return createElement(`h${node.depth}`, { key }, ...renderChildren(node.children, context))\n case 'blockquote':\n return (\n <blockquote key={key}>\n {wrapBlockChildren(renderChildren(node.children, context).filter(child => child !== null), true)}\n </blockquote>\n )\n case 'thematicBreak':\n return <hr key={key} />\n case 'break':\n // The replaced pipeline emitted a newline text node after each <br>.\n return <Fragment key={key}><br />{'\\n'}</Fragment>\n case 'strong':\n return <strong key={key}>{renderChildren(node.children, context)}</strong>\n case 'emphasis':\n return <em key={key}>{renderChildren(node.children, context)}</em>\n case 'delete':\n return <del key={key}>{renderChildren(node.children, context)}</del>\n case 'inlineCode': {\n // Parity with mdast-util-to-hast: inline code renders line endings as spaces.\n const value = node.value.replace(/\\r?\\n|\\r/g, ' ')\n // An inline-code token that is entirely an absolute HTTP(S) URL keeps\n // its code chrome and gains the same safe external anchor as a link;\n // commands, partial URLs, and other schemes stay inert. The value is\n // authored text, not a parsed destination, so no normalizeUri: port,\n // path, and query render unchanged.\n const href = inlineCodeHttpUrl(value)\n if (href !== undefined) return <code key={key}>{renderSafeLink(href, [value], 'link')}</code>\n // A token the owner's file-mention vocabulary recognizes opens that\n // file; the resolver, not this renderer, decides what names a file.\n // Inside an anchor the token stays inert — a button cannot nest there.\n const mention = context.inLink === true ? undefined : context.fileMentions?.resolve(value)\n if (mention !== undefined) {\n return (\n <code key={key}>\n <button\n type=\"button\"\n className={css.fileMention}\n title={mention.title}\n aria-label={mention.label}\n onClick={mention.open}\n >\n {value}\n </button>\n </code>\n )\n }\n return <code key={key}>{value}</code>\n }\n case 'html':\n // No HTML parser enters the pipeline: raw HTML stays literal text.\n return node.value\n case 'code':\n return renderCode(node, key, context)\n case 'math':\n return <Fragment key={key}>{renderTexToReact(node.value, true)}</Fragment>\n case 'inlineMath':\n return <Fragment key={key}>{renderTexToReact(node.value, false)}</Fragment>\n case 'list':\n return renderList(node, key, context)\n case 'listItem':\n // Reachable only in hand-built trees: the grammar emits items inside lists.\n return renderListItem(node, listItemLoose(node), key, context)\n case 'table':\n return renderTable(node, key, context)\n case 'link':\n return renderAnchor(node.url, renderChildren(node.children, { ...context, inLink: true }), key)\n case 'linkReference':\n return renderLinkReference(node, key, context)\n case 'image':\n return renderImage(node.url, node.alt ?? '', key)\n case 'imageReference':\n return renderImageReference(node, key, context)\n case 'footnoteReference':\n return renderFootnoteReference(node, key, context)\n case 'definition':\n case 'footnoteDefinition':\n // Targets render elsewhere: definitions resolve references in place;\n // footnote bodies render in the trailing section.\n return null\n default:\n // Documented default for the merge-extensible union: node types without\n // a mapping (tableRow/tableCell outside a table, frontmatter, future\n // grammar contributions) render nothing.\n return null\n }\n}\n\nfunction renderCode(node: Md.Code, key: Key, context: MarkdownRenderContext): ReactNode {\n const language = node.lang ?? undefined\n if (node.value === '') {\n // Parity: the replaced pipeline kept the stock <pre> for an empty fence.\n return (\n <pre key={key}>\n <code className={language === undefined ? undefined : `language-${language}`} />\n </pre>\n )\n }\n // The replaced pipeline recovered the grammar id from the hast class with\n // /language-([\\w-]+)/, which truncates at the first non-word character.\n const lang = language === undefined ? undefined : /^[\\w-]+/.exec(language)?.[0]\n if (!context.streaming && lang === 'math') {\n // ```math fences render as display TeX once settled (rehype-katex parity);\n // its text extraction saw the code block's trailing newline.\n return <Fragment key={key}>{renderTexToReact(`${node.value}\\n`, true)}</Fragment>\n }\n return (\n <CodeBlock\n key={key}\n // The replaced hast pipeline appended one synthetic newline that\n // CodeBlock's display trim removes; feeding the bare value would make\n // that trim eat a REAL trailing blank line inside the fence instead.\n code={`${node.value}\\n`}\n lang={context.streaming ? undefined : lang}\n copyLabel={context.codeLabels?.copyLabel}\n copiedLabel={context.codeLabels?.copiedLabel}\n />\n )\n}\n\n/** A list is loose when it or any of its items is spread; every item then keeps its paragraphs. */\nfunction listLoose(list: Md.List): boolean {\n return (list.spread ?? false) || list.children.some(listItemLoose)\n}\n\nfunction listItemLoose(item: Md.ListItem): boolean {\n return item.spread ?? item.children.length > 1\n}\n\nfunction renderList(node: Md.List, key: Key, context: MarkdownRenderContext): ReactNode {\n const loose = listLoose(node)\n const properties: { start?: number; className?: string } = {}\n if (typeof node.start === 'number' && node.start !== 1) properties.start = node.start\n if (node.children.some(item => typeof item.checked === 'boolean')) {\n properties.className = 'contains-task-list'\n }\n return createElement(\n node.ordered === true ? 'ol' : 'ul',\n { key, ...properties },\n ...node.children.map((item, index) => renderListItem(item, loose, index, context)),\n )\n}\n\nfunction renderListItem(\n item: Md.ListItem,\n loose: boolean,\n key: Key,\n context: MarkdownRenderContext,\n): ReactNode {\n const entries = renderBlockEntries(item.children, context)\n const task = typeof item.checked === 'boolean'\n if (task) {\n const checkbox = <input key=\"task-checkbox\" type=\"checkbox\" checked={item.checked === true} disabled />\n const head = entries[0]\n if (head !== undefined && 'paragraph' in head) {\n head.paragraph = head.paragraph.length > 0 ? [checkbox, ' ', ...head.paragraph] : [checkbox]\n } else {\n entries.unshift({ paragraph: [checkbox] })\n }\n }\n // Newline placement and tight-paragraph unwrapping mirror\n // mdast-util-to-hast's list-item handler: a newline before every child\n // except a tight leading paragraph, and after a trailing non-paragraph\n // (or any trailing child when loose).\n const parts: ReactNode[] = []\n for (const [index, entry] of entries.entries()) {\n const isParagraph = 'paragraph' in entry\n if (loose || index !== 0 || !isParagraph) parts.push('\\n')\n if (!isParagraph) parts.push(entry.element)\n else if (loose) parts.push(<p key={`p-${index}`}>{entry.paragraph}</p>)\n else parts.push(<Fragment key={`p-${index}`}>{entry.paragraph}</Fragment>)\n }\n const tail = entries[entries.length - 1]\n if (tail !== undefined && (loose || !('paragraph' in tail))) parts.push('\\n')\n return (\n <li key={key} className={task ? 'task-list-item' : undefined}>\n {parts}\n </li>\n )\n}\n\nfunction renderTable(node: Md.Table, key: Key, context: MarkdownRenderContext): ReactNode {\n const align = node.align ?? null\n const [headRow, ...bodyRows] = node.children\n return (\n <div key={key} className={css.tableScroll}>\n <table>\n {headRow !== undefined && <thead>{renderTableRow(headRow, 'th', align, 0, context)}</thead>}\n {bodyRows.length > 0 && (\n <tbody>\n {bodyRows.map((row, index) => renderTableRow(row, 'td', align, index + 1, context))}\n </tbody>\n )}\n </table>\n </div>\n )\n}\n\nfunction renderTableRow(\n row: Md.TableRow,\n cellTag: 'th' | 'td',\n align: readonly Md.AlignType[] | null,\n key: Key,\n context: MarkdownRenderContext,\n): ReactNode {\n // With column alignment present, every row renders exactly one cell per\n // column, padding or truncating the row (mdast-util-to-hast parity).\n const length = align === null ? row.children.length : align.length\n const cells: ReactNode[] = []\n for (let index = 0; index < length; index++) {\n const cell = row.children[index]\n const alignValue = align?.[index]\n cells.push(createElement(\n cellTag,\n // hast-util-to-jsx-runtime's default tableCellAlignToStyle turned the\n // deprecated align attribute into an inline style; keep that DOM.\n { key: index, style: alignValue == null ? undefined : { textAlign: alignValue } },\n ...(cell === undefined ? [] : renderChildren(cell.children, context)),\n ))\n }\n return <tr key={key}>{cells}</tr>\n}\n\n/** Anchor over an already-authored href: allowlisted or unwrapped, external links get the safe attributes. */\nfunction renderSafeLink(href: string, children: ReactNode[], key: Key): ReactNode {\n const safeHref = sanitizeUrl(href)\n if (safeHref === '') return <Fragment key={key}>{children}</Fragment>\n const external = ['http:', 'https:'].includes(new URL(safeHref).protocol)\n return (\n <a\n key={key}\n href={safeHref}\n {...(external ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n >\n {children}\n </a>\n )\n}\n\n/** Anchor over a parsed markdown destination, which hast normalized before the allowlist saw it. */\nfunction renderAnchor(url: string, children: ReactNode[], key: Key): ReactNode {\n return renderSafeLink(normalizeUri(url), children, key)\n}\n\n/**\n * The complete inline-code value when it is exactly an absolute HTTP(S) URL\n * (no surrounding whitespace); anything else stays inert code.\n */\nfunction inlineCodeHttpUrl(value: string): string | undefined {\n if (value.trim() !== value) return undefined\n try {\n const protocol = new URL(value).protocol\n return protocol === 'http:' || protocol === 'https:' ? value : undefined\n } catch {\n // Not an absolute URL at all — the only way new URL() rejects a string.\n return undefined\n }\n}\n\nfunction renderImage(url: string, alt: string, key: Key): ReactNode {\n const imageSrc = remoteImageUrl(sanitizeUrl(normalizeUri(url)))\n if (imageSrc === undefined) {\n return <span key={key} className={css.imageAlt}>{alt}</span>\n }\n return (\n <img\n key={key}\n className={css.image}\n src={imageSrc}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n referrerPolicy=\"no-referrer\"\n />\n )\n}\n\n/** The bracketed source text a reference reverts to when its definition is missing. */\nfunction referenceSuffix(node: Md.LinkReference | Md.ImageReference): string {\n if (node.referenceType === 'collapsed') return '][]'\n if (node.referenceType === 'full') return `][${node.label ?? node.identifier}]`\n return ']'\n}\n\nfunction renderLinkReference(\n node: Md.LinkReference,\n key: Key,\n context: MarkdownRenderContext,\n): ReactNode {\n const definition = context.targets.definitions.get(node.identifier.toUpperCase())\n if (definition === undefined) {\n // The grammar only emits references whose definitions exist somewhere in\n // the same parse, but incremental segments and hand-built trees may still\n // present unresolved ones: revert to the bracketed source text — which is\n // not an anchor, so mentions inside it stay live.\n return <Fragment key={key}>{'['}{renderChildren(node.children, context)}{referenceSuffix(node)}</Fragment>\n }\n return renderAnchor(definition.url, renderChildren(node.children, { ...context, inLink: true }), key)\n}\n\nfunction renderImageReference(\n node: Md.ImageReference,\n key: Key,\n context: MarkdownRenderContext,\n): ReactNode {\n const definition = context.targets.definitions.get(node.identifier.toUpperCase())\n if (definition === undefined) return `![${node.alt ?? ''}${referenceSuffix(node)}`\n return renderImage(definition.url, node.alt ?? '', key)\n}\n\nfunction renderFootnoteReference(\n node: Md.FootnoteReference,\n key: Key,\n context: MarkdownRenderContext,\n): ReactNode {\n const id = node.identifier.toUpperCase()\n const seen = context.footnoteCounts.get(id)\n if (seen === undefined) context.footnoteOrder.push(id)\n context.footnoteCounts.set(id, (seen ?? 0) + 1)\n // The in-page anchor fails the protocol allowlist, so only the numbered\n // superscript renders (matching the replaced pipeline's unwrapped link).\n return <sup key={key}>{String(context.footnoteOrder.indexOf(id) + 1)}</sup>\n}\n\n/**\n * Render the trailing footnote section for every footnote referenced during\n * the pass, in first-reference order, with one plain-text back-reference\n * marker per rendered reference.\n * @param context - The pass state after all blocks rendered.\n * @returns The section, or null when no referenced footnote has a definition.\n */\nexport function renderFootnoteSection(context: MarkdownRenderContext): ReactNode | null {\n const items: ReactNode[] = []\n for (const id of context.footnoteOrder) {\n const definition = context.targets.footnotes.get(id)\n if (definition === undefined) continue\n const count = context.footnoteCounts.get(id) ?? 0\n const backrefs: ReactNode[] = []\n for (let reference = 1; reference <= count; reference++) {\n if (backrefs.length > 0) backrefs.push(' ')\n backrefs.push('↩')\n if (reference > 1) backrefs.push(<sup key={`re-${reference}`}>{String(reference)}</sup>)\n }\n const entries = renderBlockEntries(definition.children, context)\n const tail = entries[entries.length - 1]\n const body: ReactNode[] = entries.map((entry, index) => (\n 'paragraph' in entry\n ? (\n <p key={`p-${index}`}>\n {entry.paragraph}\n {entry === tail && <>{' '}{backrefs}</>}\n </p>\n )\n : entry.element\n ))\n // Without a trailing paragraph the back-references join the block list\n // itself (and pick up the wrap newlines), as in the replaced pipeline.\n if (tail === undefined || !('paragraph' in tail)) body.push(...backrefs)\n items.push(\n <li key={id} id={`user-content-fn-${normalizeUri(id.toLowerCase())}`}>\n {wrapBlockChildren(body, true)}\n </li>,\n )\n }\n if (items.length === 0) return null\n return (\n <section key=\"footnotes\" data-footnotes className=\"footnotes\">\n <h2 id=\"footnote-label\" className=\"sr-only\">Footnotes</h2>\n <ol>{items}</ol>\n </section>\n )\n}\n","/**\n * Untrusted assistant-Markdown renderer over the direct mdast pipeline:\n * `parse.ts` grammars, the incremental streaming parser, and `render.tsx`.\n * While a message streams, all but the trailing two blocks freeze as cached\n * React elements and only the source tail behind them re-parses per chunk,\n * so per-chunk work tracks the tail size instead of the whole reply. Frozen\n * blocks keep their source-offset keys when they cross the freeze boundary,\n * so React reconciles instead of remounting. Known deviation while\n * streaming: a reference-style link or footnote whose definition sits on the\n * other side of the freeze boundary renders literally until the settled\n * full parse self-heals it.\n */\n\nimport { memo, useMemo, useRef } from 'react'\nimport type { ReactNode } from 'react'\nimport { IncrementalMarkdownParser } from './incremental.ts'\nimport { parseGfm, parseGfmWithMath } from './parse.ts'\nimport {\n collectReferenceTargets, createReferenceTargets, renderBlocks, renderFootnoteSection,\n wrapBlockChildren,\n} from './render.tsx'\nimport type { MarkdownCodeLabels, MarkdownFileMentions, MarkdownRenderContext, ReferenceTargets } from './render.tsx'\nimport 'katex/dist/katex.min.css'\nimport css from './MarkdownText.module.css'\n\nexport type { MarkdownCodeLabels, MarkdownFileMentions } from './render.tsx'\n\n/** One settled full render: parse with math, resolve references, append the footnote section. */\nfunction renderSettled(\n text: string,\n codeLabels: MarkdownCodeLabels | undefined,\n fileMentions: MarkdownFileMentions | undefined,\n): ReactNode[] {\n const root = parseGfmWithMath(text)\n const targets = createReferenceTargets()\n collectReferenceTargets(root.children, targets)\n const context: MarkdownRenderContext = {\n streaming: false,\n codeLabels,\n fileMentions,\n targets,\n footnoteOrder: [],\n footnoteCounts: new Map(),\n }\n const blocks = wrapBlockChildren(\n renderBlocks(root.children.map((node, index) => ({ node, key: index })), context),\n false,\n )\n const section = renderFootnoteSection(context)\n return section === null ? blocks : [...blocks, '\\n', section]\n}\n\n/**\n * Streaming render state for one growing message: the incremental parser,\n * the frozen blocks' cached elements, and the reference/footnote state their\n * rendering consumed (footnote numbering assigned to frozen references is\n * final, so the tail continues from a copy of it each frame).\n */\nclass StreamingRenderer {\n private readonly parser = new IncrementalMarkdownParser(parseGfm)\n private generation = -1\n private frozenCount = 0\n private frozenElements: ReactNode[] = []\n private frozenTargets: ReferenceTargets = createReferenceTargets()\n private frozenFootnoteOrder: string[] = []\n private frozenFootnoteCounts = new Map<string, number>()\n private lastText: string | null = null\n private lastRendered: ReactNode[] = []\n\n /** @param codeLabels - Fence copy labels baked into cached elements; the owner replaces the renderer when they change. */\n constructor(private readonly codeLabels: MarkdownCodeLabels | undefined) {}\n\n /**\n * Render the current accumulated text. Idempotent per text value, so React\n * may re-execute the calling render freely.\n * @param text - The full accumulated markdown source.\n * @returns Frozen elements, re-rendered tail, and the footnote section.\n */\n render(text: string): ReactNode[] {\n if (text === this.lastText) return this.lastRendered\n const { frozen, tail, generation } = this.parser.update(text)\n if (generation !== this.generation) {\n this.generation = generation\n this.frozenCount = 0\n this.frozenElements = []\n this.frozenTargets = createReferenceTargets()\n this.frozenFootnoteOrder = []\n this.frozenFootnoteCounts = new Map()\n }\n const newlyFrozen = frozen.slice(this.frozenCount)\n collectReferenceTargets(newlyFrozen.map(block => block.node), this.frozenTargets)\n // Targets visible this frame: everything frozen so far plus the current\n // tail parse — a newly frozen block's references resolved against the\n // same parse tree its definitions came from.\n const frameTargets: ReferenceTargets = {\n definitions: new Map(this.frozenTargets.definitions),\n footnotes: new Map(this.frozenTargets.footnotes),\n }\n collectReferenceTargets(tail.map(block => block.node), frameTargets)\n if (newlyFrozen.length > 0) {\n const frozenContext: MarkdownRenderContext = {\n streaming: true,\n codeLabels: this.codeLabels,\n fileMentions: undefined,\n targets: frameTargets,\n footnoteOrder: this.frozenFootnoteOrder,\n footnoteCounts: this.frozenFootnoteCounts,\n }\n // Separator newlines are cached alongside the elements so the\n // assembled children match the settled pipeline's block wrapping.\n const batch = [...this.frozenElements]\n for (const element of renderBlocks(newlyFrozen, frozenContext)) {\n if (batch.length > 0) batch.push('\\n')\n batch.push(element)\n }\n this.frozenElements = batch\n this.frozenCount = frozen.length\n }\n const tailContext: MarkdownRenderContext = {\n streaming: true,\n codeLabels: this.codeLabels,\n fileMentions: undefined,\n targets: frameTargets,\n footnoteOrder: [...this.frozenFootnoteOrder],\n footnoteCounts: new Map(this.frozenFootnoteCounts),\n }\n const children = [...this.frozenElements]\n for (const element of renderBlocks(tail, tailContext)) {\n if (children.length > 0) children.push('\\n')\n children.push(element)\n }\n const section = renderFootnoteSection(tailContext)\n if (section !== null) children.push('\\n', section)\n this.lastText = text\n this.lastRendered = children\n return this.lastRendered\n }\n}\n\n/**\n * Render untrusted assistant-authored Markdown as semantic React elements.\n * @param props - Markdown source text preserved by the session projection;\n * `streaming` renders fences and TeX plain (highlighting and KaTeX land on\n * the finalize swap) and parses incrementally across chunks; `codeLabels`\n * forwards localized copy-button labels to fence CodeBlocks — pass a\n * reference-stable object (memoized per locale revision), because a new\n * identity discards the streaming render cache mid-message. `fileMentions`\n * links inline-code tokens its resolver recognizes as real files; this is\n * the single streaming gate — it applies to settled renders only, because a\n * streaming message's vocabulary is not final and frozen cached elements\n * must not bake in handlers that could go stale.\n * @returns A GFM document with TeX math rendered through KaTeX; raw HTML,\n * relative links, and unsafe protocols are disabled, while absolute HTTP(S)\n * images render directly.\n */\nexport const MarkdownText = memo(function MarkdownText({ text, streaming = false, codeLabels, fileMentions }: {\n text: string\n streaming?: boolean\n codeLabels?: MarkdownCodeLabels | undefined\n fileMentions?: MarkdownFileMentions | undefined\n}) {\n const streamRef = useRef<StreamingRenderer | null>(null)\n const streamLabelsRef = useRef<MarkdownCodeLabels | undefined>(codeLabels)\n const children = useMemo(() => {\n if (!streaming) {\n streamRef.current = null\n return renderSettled(text, codeLabels, fileMentions)\n }\n if (streamRef.current === null || streamLabelsRef.current !== codeLabels) {\n streamRef.current = new StreamingRenderer(codeLabels)\n streamLabelsRef.current = codeLabels\n }\n return streamRef.current.render(text)\n }, [text, streaming, codeLabels, fileMentions])\n return <div className={css.markdown}>{children}</div>\n})\n","// WebBlock: the surface for a completed web retrieval. One component draws both\n// kinds of the `web` render intent, discriminated by `kind`: a `search` shows an\n// optional provider answer above a citation list of sources (each a safe\n// external link labelled by its title, or its hostname when the provider gave\n// none, with the snippet and publication date below it), and a `fetch` shows a\n// compact retrieval summary (the linked final URL and its HTTP status). Both\n// mark a capped retrieval. Every link is a same-origin-safe external anchor:\n// only http(s) URLs become anchors (target/rel set) — the http(s) subset of the\n// allowlist MarkdownText applies to untrusted assistant-authored links (it also\n// permits mailto, excluded here); an unparseable or non-http URL renders as\n// plain text. Geometry, radius, and fonts mirror CodeBlock/TerminalBlock so a\n// web card reads as one family with them; the whole source list renders inside a\n// fixed-height scroll container (its `.sources` max-height), so a long list\n// scrolls in place rather than growing the card — and that container's\n// `padding-left` must stay wide enough for the widest `<li>` marker, since a\n// scroll container clips inline-start overflow irrecoverably. The card draws every source the\n// view carries: the tool already cut the list to its source cap, and `truncated`\n// reports that cut. A content-only transform downstream of the tool — spill-policy\n// replacing an oversized result's text while leaving its presentationMeta whole —\n// can still narrow what the model reads below this list.\n\nimport clsx from 'clsx'\nimport { MarkdownText } from './markdown/MarkdownText.tsx'\nimport css from './WebBlock.module.css'\n\n/**\n * One citeable source drawn in a search card: the projection of the contract's\n * `WebSource`, with the optional fields kept optional so a provider that\n * returned only a URL still renders (its hostname becomes the label).\n */\nexport interface WebSourceView {\n /** The source URL; becomes a safe external link when it is http(s). */\n url: string\n /** The source title; when absent the URL's hostname labels the link. */\n title?: string | undefined\n /** A short excerpt or summary shown under the link. */\n snippet?: string | undefined\n /** Publication/crawl timestamp, a provider-supplied string shown under the link. */\n publishedAt?: string | undefined\n}\n\n/** A `web_search` card: an optional answer over a capped citation list. */\nexport interface WebSearchBlockProps {\n kind: 'search'\n /** The provider-generated answer, rendered as markdown above the sources. */\n answer?: string | undefined\n /** The cited sources, in provider order. */\n sources: WebSourceView[]\n /** True when the tool cut the source list to its result cap. */\n truncated: boolean\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n}\n\n/** A `web_fetch` card: the retrieval summary for one fetched URL. */\nexport interface WebFetchBlockProps {\n kind: 'fetch'\n /** The final URL after allowed redirects; becomes a safe external link when http(s). */\n url: string\n /** HTTP status code of the fetched response. */\n statusCode: number\n /** True when the provider or the output cap cut the fetched content. */\n truncated: boolean\n /** Extra class merged onto the wrapper (callers position; this component draws). */\n className?: string | undefined\n}\n\n/** A completed web retrieval card, discriminated by `kind`. */\nexport type WebBlockProps = WebSearchBlockProps | WebFetchBlockProps\n\n/**\n * The URL to link to, or undefined when the URL must render as plain text. Only\n * http(s) becomes a navigable external anchor, so a `javascript:`/`data:`/`file:`\n * URL or an unparseable string never reaches the DOM as an href. This is the\n * http(s) subset of the allowlist MarkdownText applies to untrusted links —\n * MarkdownText also permits `mailto:`, deliberately excluded here since a\n * retrieval URL is never a mail address.\n * @param url - the source or fetch URL, from tool result content.\n * @returns the href to use, or undefined for plain text.\n */\nfunction safeHref(url: string): string | undefined {\n try {\n const { protocol } = new URL(url)\n return protocol === 'http:' || protocol === 'https:' ? url : undefined\n } catch {\n return undefined\n }\n}\n\n/**\n * The link's visible label: the title when the provider gave one, otherwise the\n * URL's hostname, falling back to the raw URL when it does not parse OR parses\n * to an empty hostname (a `file:`/`data:`/`javascript:` URL), so a label is\n * never blank.\n * @param url - the source URL.\n * @param title - the provider title, if any.\n * @returns the label text.\n */\nfunction linkLabel(url: string, title: string | undefined): string {\n if (title !== undefined && title !== '') return title\n try {\n const { hostname } = new URL(url)\n return hostname === '' ? url : hostname\n } catch {\n return url\n }\n}\n\n/**\n * A single URL rendered as a safe external anchor, or as plain text when the\n * URL is not an http(s) link.\n * @param props.url - the URL to render.\n * @param props.label - the visible label.\n * @param props.className - class for the anchor or the plain span.\n * @returns the anchor or span element.\n */\nfunction SafeLink({ url, label, className }: { url: string; label: string; className?: string | undefined }) {\n const href = safeHref(url)\n if (href === undefined) return <span className={className}>{label}</span>\n return (\n <a className={className} href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {label}\n </a>\n )\n}\n\n/**\n * One source row in a search card: the safe link plus its snippet and date. The\n * `<li value>` pins the source's 1-based citation index explicitly rather than\n * relying on the `<ol>`'s implicit numbering, so a row reads by its real index\n * even inside the scroll container.\n * @param props.source - the source to render.\n * @param props.ordinal - the source's 1-based position in the full list.\n * @returns the source list item.\n */\nfunction SourceItem({ source, ordinal }: { source: WebSourceView; ordinal: number }) {\n return (\n <li className={css.source} value={ordinal}>\n <SafeLink url={source.url} label={linkLabel(source.url, source.title)} className={css.sourceLink} />\n {source.snippet !== undefined && source.snippet !== '' && (\n <div className={css.snippet}>{source.snippet}</div>\n )}\n {source.publishedAt !== undefined && source.publishedAt !== '' && (\n <div className={css.published}>{source.publishedAt}</div>\n )}\n </li>\n )\n}\n\n/**\n * The search card body: the answer over the full source list, which scrolls in\n * place once it exceeds the `.sources` container height.\n * @param props - see {@link WebSearchBlockProps}.\n * @returns the search card element.\n */\nfunction WebSearchBlock({ answer, sources, truncated, className }: WebSearchBlockProps) {\n // A provider may legitimately return no answer and no sources; the chat WebRow\n // does not show the raw result content, so without this the user would see an\n // empty card. Mirror the backend's `No results found.` render text.\n const empty = (answer === undefined || answer === '') && sources.length === 0\n return (\n <div className={clsx(css.block, className)} data-web=\"search\">\n {answer !== undefined && answer !== '' && (\n <div className={css.answer}><MarkdownText text={answer} /></div>\n )}\n {empty ? (\n <div className={css.empty}>未找到结果</div>\n ) : (\n <ol className={css.sources}>\n {sources.map((source, index) => <SourceItem key={index} source={source} ordinal={index + 1} />)}\n </ol>\n )}\n {truncated && <div className={css.truncated}>来源列表已截断</div>}\n </div>\n )\n}\n\n/**\n * The fetch card body: the linked URL and its HTTP status.\n * @param props - see {@link WebFetchBlockProps}.\n * @returns the fetch card element.\n */\nfunction WebFetchBlock({ url, statusCode, truncated, className }: WebFetchBlockProps) {\n return (\n <div className={clsx(css.block, css.fetch, className)} data-web=\"fetch\">\n <SafeLink url={url} label={url} className={css.fetchUrl} />\n <div className={css.fetchMeta}>\n <span className={css.status}>HTTP {statusCode}</span>\n {truncated && <span className={css.truncated}>内容已截断</span>}\n </div>\n </div>\n )\n}\n\n/**\n * Render a completed web retrieval as a structured card.\n * @param props - see {@link WebBlockProps}; `kind` selects the search or fetch body.\n * @returns the web card element.\n */\nexport function WebBlock(props: WebBlockProps) {\n return props.kind === 'search' ? <WebSearchBlock {...props} /> : <WebFetchBlock {...props} />\n}\n","// JsonBlock: collapsible JSON block (conversation side; independent from the RPC panel's PayloadJson to avoid cross-panel coupling).\n\nimport { useMemo, useState } from 'react'\nimport css from './JsonBlock.module.css'\n\nconst MAX_CHARS = 20_000\n\n/** Default truncation footer; the owner passes a localized formatter. */\nfunction defaultTruncatedLabel(total: number): string {\n return `… 已截断,共 ${total} 字符`\n}\n\nexport function JsonBlock({ label, payload, defaultOpen = false, truncatedLabel = defaultTruncatedLabel }: {\n label: string\n payload: unknown\n defaultOpen?: boolean\n /** Footer appended when the body exceeds the char cap, given the full length (this package is cordis-free, so copy arrives via props). */\n truncatedLabel?: ((total: number) => string) | undefined\n}) {\n const [open, setOpen] = useState(defaultOpen)\n const body = useMemo(() => {\n if (!open) return ''\n let s: string\n try {\n // lib typing hides stringify's undefined arm (undefined/function/symbol payloads).\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n s = JSON.stringify(payload, null, 2) ?? String(payload)\n } catch {\n s = String(payload)\n }\n return s.length > MAX_CHARS ? `${s.slice(0, MAX_CHARS)}\\n${truncatedLabel(s.length)}` : s\n }, [open, payload, truncatedLabel])\n return (\n <div className={css.root}>\n <button type=\"button\" className={css.toggle} onClick={() => { setOpen(v => !v) }}>\n {open ? '▾' : '▸'} {label}\n </button>\n {open && <pre className={css.body}>{body}</pre>}\n </div>\n )\n}\n","// MessageText is the literal-text primitive for user and steering content; assistant output uses MarkdownText.\n\nimport css from './MessageText.module.css'\n\nexport function MessageText({ text }: { text: string }) {\n return <div className={css.text}>{text}</div>\n}\n","/**\n * Markdown-to-plain-text projection for compact summaries and labels.\n * Parsing shares the renderer's streaming GFM grammar ({@link parseGfm}), so\n * the projection strips exactly the markup the renderer would draw; raw HTML\n * stays literal, links keep their labels, images keep alt text, and code\n * keeps its source text.\n */\n\nimport { parseGfm } from './parse.ts'\n\n/** Amount of parsed Markdown content returned by the extractor. */\nexport type MarkdownPlainTextMode = 'all' | 'first-line' | 'first-paragraph'\n\n/** Options for {@link extractMarkdownPlainText}. */\nexport interface MarkdownPlainTextOptions {\n /** Projection boundary; defaults to the complete document. */\n mode?: MarkdownPlainTextMode\n}\n\ninterface MarkdownNode {\n type: string\n value?: string\n alt?: string\n children?: MarkdownNode[]\n}\n\nfunction inlineText(node: MarkdownNode): string {\n switch (node.type) {\n case 'text':\n case 'inlineCode':\n case 'code':\n return node.value ?? ''\n case 'image':\n case 'imageReference':\n return node.alt ?? ''\n case 'break':\n return '\\n'\n case 'html':\n return node.value ?? ''\n default:\n return node.children?.map(inlineText).join('') ?? ''\n }\n}\n\nfunction compactInline(text: string): string {\n return text.replace(/\\s+/g, ' ').trim()\n}\n\nfunction blockText(node: MarkdownNode): string {\n switch (node.type) {\n case 'root':\n case 'blockquote':\n return node.children?.map(blockText).filter(Boolean).join('\\n\\n') ?? ''\n case 'paragraph':\n case 'heading':\n return compactInline(inlineText(node))\n case 'code':\n return node.value?.trim() ?? ''\n case 'list':\n return node.children?.map(blockText).filter(Boolean).join('\\n') ?? ''\n case 'listItem':\n return node.children?.map(blockText).filter(Boolean).join(' ') ?? ''\n case 'table':\n return node.children?.map(blockText).filter(Boolean).join('\\n') ?? ''\n case 'tableRow':\n return node.children?.map(blockText).join('\\t') ?? ''\n case 'tableCell':\n return compactInline(inlineText(node))\n case 'html':\n return node.value ?? ''\n case 'thematicBreak':\n case 'definition':\n return ''\n default:\n return compactInline(inlineText(node))\n }\n}\n\nfunction findFirstParagraph(node: MarkdownNode): string | undefined {\n if (node.type === 'paragraph') {\n const text = compactInline(inlineText(node))\n if (text !== '') return text\n }\n for (const child of node.children ?? []) {\n const text = findFirstParagraph(child)\n if (text !== undefined) return text\n }\n return undefined\n}\n\nfunction fullText(root: MarkdownNode): string {\n return blockText(root)\n .split('\\n')\n .map(line => line.trim())\n .join('\\n')\n .replace(/\\n{3,}/g, '\\n\\n')\n .trim()\n}\n\n/**\n * Parse GFM Markdown, remove its presentation markup, and preserve raw HTML literally.\n * @param markdown - Markdown source.\n * @param options - Optional extraction boundary.\n * @returns Plain text for the whole document, first visible line, or first semantic paragraph.\n */\nexport function extractMarkdownPlainText(\n markdown: string,\n options: MarkdownPlainTextOptions = {},\n): string {\n const { mode = 'all' } = options\n const root = parseGfm(markdown) as MarkdownNode\n const all = fullText(root)\n switch (mode) {\n case 'all':\n return all\n case 'first-line':\n return all.split('\\n').find(line => line !== '') ?? ''\n case 'first-paragraph':\n return findFirstParagraph(root) ?? all.split('\\n').find(line => line !== '') ?? ''\n }\n}\n","/** Draft-attachment thumbnail rail: scrollbar-less horizontal overflow paged\n * by edge arrows, hover-revealed per-item remove, single-click open. */\n\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport {\n IconChevronLeftOutline14, IconChevronRightOutline14, IconCloseFill14,\n} from '@xrkseek/client-ui-primitives'\nimport css from './AttachmentRail.module.css'\n\n/** One rail thumbnail; strings arrive resolved (zero-cordis atom). */\nexport interface AttachmentRailItem {\n /** Stable identity for the React key. */\n id: string\n /** Object or data URL rendered as the thumbnail. */\n previewUrl: string\n /** Image alt text (display name with the owner's fallback applied). */\n alt: string\n /** Accessible label of the item's remove control. */\n removeLabel: string\n}\n\n/** Rail-level strings the owner resolves from its own locale namespace. */\nexport interface AttachmentRailLabels {\n /** Accessible name of the rail group. */\n group: string\n /** Thumbnail tooltip inviting the original-image preview. */\n open: string\n /** Accessible label of the left paging arrow. */\n scrollLeft: string\n /** Accessible label of the right paging arrow. */\n scrollRight: string\n}\n\n/** Approximate pixels per wheel step for `deltaMode` LINE deltas (Firefox\n * notch wheels report lines, not pixels). */\nconst WHEEL_LINE_PX = 16\n\n/** Smooth paging unless the user asked for reduced motion. */\nfunction pageBehavior(): ScrollBehavior {\n // jsdom (the unit lane) implements no matchMedia despite lib.dom's\n // non-optional typing; the optional call keeps that lane on the default.\n // oxlint-disable-next-line typescript/no-unnecessary-condition\n return window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth'\n}\n\n/**\n * Horizontal thumbnail rail over the caller's draft attachments.\n *\n * The rail scrolls with its scrollbar hidden; overflow is announced by edge\n * arrows recomputed from scroll geometry on scroll, item-count changes, and\n * rail size changes (a ResizeObserver on the rail element, so sidebar or\n * panel resizes count, not only window resizes). A vertical wheel pans the\n * rail horizontally and is consumed exclusively (non-passive listener), a\n * newly added item is revealed at the rail's end while a rail that mounts\n * over an existing draft keeps its start position, and each thumbnail opens\n * on a single click while its remove control sits inside the card and\n * reveals on hover or focus. The owner decides mounting; it renders the rail\n * only while items exist.\n *\n * @param props.items - resolved thumbnails in draft order.\n * @param props.labels - rail-level strings (group name, open tooltip, arrows).\n * @param props.onOpen - single-click open of one item's original image.\n * @param props.onRemove - remove one item from the draft.\n * @returns the rail group with its paging arrows.\n */\nexport function AttachmentRail<T extends AttachmentRailItem>({ items, labels, onOpen, onRemove }: {\n items: readonly T[]\n labels: AttachmentRailLabels\n onOpen: (item: T) => void\n onRemove: (item: T) => void\n}) {\n const railRef = useRef<HTMLDivElement | null>(null)\n // null marks the first layout pass: a rail that MOUNTS over an existing\n // draft (session switch back to held images) is initial display, not\n // growth, and must not jump to the end.\n const countRef = useRef<number | null>(null)\n const [edges, setEdges] = useState({ left: false, right: false })\n const updateEdges = useCallback(() => {\n const el = railRef.current\n /* v8 ignore next -- defensive: every caller runs while the rail element is mounted. */\n if (el === null) return\n // 1px slack: engines report fractional scroll positions at the edges.\n const left = el.scrollLeft > 1\n const right = el.scrollLeft < el.scrollWidth - el.clientWidth - 1\n setEdges(prev => prev.left === left && prev.right === right ? prev : { left, right })\n }, [])\n useLayoutEffect(() => {\n const grew = countRef.current !== null && items.length > countRef.current\n countRef.current = items.length\n const el = railRef.current\n /* v8 ignore next -- defensive: the rail div renders unconditionally, so the layout effect always finds it. */\n if (el === null) return\n // A newly added attachment lands at the rail's end: reveal it.\n if (grew) el.scrollLeft = el.scrollWidth - el.clientWidth\n updateEdges()\n }, [items.length, updateEdges])\n useEffect(() => {\n const el = railRef.current\n /* v8 ignore next -- defensive: the rail div renders unconditionally, so the mount effect always finds it. */\n if (el === null) return\n // The rail's width follows the composer, which resizes with sidebars and\n // panels, not only the window — observe the element itself. jsdom (the\n // unit lane) implements no ResizeObserver; every browser gets the\n // subscription.\n let disconnect = (): void => {}\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(updateEdges)\n observer.observe(el)\n disconnect = () => { observer.disconnect() }\n }\n // The rail scrolls horizontally ONLY: any wheel tick with a vertical\n // component is consumed — without preventDefault it would also scroll the\n // conversation behind the composer, and React's root wheel listener is\n // passive, so the exclusion needs this manually attached non-passive\n // listener. A diagonal trackpad pan keeps its horizontal intent; a pure\n // vertical wheel converts to a horizontal step, with LINE and PAGE deltas\n // (Firefox notch wheels) normalized to pixels before the per-tick clamp\n // that keeps a fast wheel followable. A purely horizontal pan stays\n // native.\n const onWheel = (event: globalThis.WheelEvent): void => {\n if (event.deltaY === 0) return\n const scale = event.deltaMode === WheelEvent.DOM_DELTA_LINE\n ? WHEEL_LINE_PX\n : event.deltaMode === WheelEvent.DOM_DELTA_PAGE ? el.clientWidth : 1\n event.preventDefault()\n el.scrollBy({\n left: event.deltaX !== 0\n ? event.deltaX * scale\n : Math.sign(event.deltaY) * Math.min(Math.abs(event.deltaY) * scale, 60),\n behavior: 'auto',\n })\n }\n el.addEventListener('wheel', onWheel, { passive: false })\n return () => {\n disconnect()\n el.removeEventListener('wheel', onWheel)\n }\n }, [updateEdges])\n const page = (direction: -1 | 1): void => {\n const el = railRef.current\n /* v8 ignore next -- defensive: the arrows render only while the rail is mounted, so a click cannot find a null ref. */\n if (el === null) return\n // One viewport minus a card keeps the last visible thumbnail as context;\n // the floor keeps narrow rails paging a useful distance.\n el.scrollBy({ left: direction * Math.max(el.clientWidth - 64, 200), behavior: pageBehavior() })\n }\n return (\n <div className={css.root}>\n {edges.left && (\n <button\n type=\"button\"\n className={clsx(css.arrow, css.arrowLeft)}\n aria-label={labels.scrollLeft}\n onClick={() => { page(-1) }}\n >\n <IconChevronLeftOutline14 />\n </button>\n )}\n <div\n ref={railRef}\n className={css.rail}\n role=\"group\"\n aria-label={labels.group}\n onScroll={updateEdges}\n >\n {items.map(item => (\n <div key={item.id} className={css.item}>\n <button\n type=\"button\"\n className={css.thumbnail}\n title={labels.open}\n onClick={() => { onOpen(item) }}\n >\n <img src={item.previewUrl} alt={item.alt} />\n </button>\n <button\n type=\"button\"\n className={css.remove}\n aria-label={item.removeLabel}\n onClick={() => { onRemove(item) }}\n >\n <IconCloseFill14 size={12} />\n </button>\n </div>\n ))}\n </div>\n {edges.right && (\n <button\n type=\"button\"\n className={clsx(css.arrow, css.arrowRight)}\n aria-label={labels.scrollRight}\n onClick={() => { page(1) }}\n >\n <IconChevronRightOutline14 />\n </button>\n )}\n </div>\n )\n}\n","import { createPortal } from 'react-dom'\nimport css from './DropOverlay.module.css'\n\n/** Drop-overlay strings the owner resolves from its own locale namespace. */\nexport interface DropOverlayLabels {\n /** Headline inviting the drop, or naming why it is unavailable. */\n title: string\n /** Limits line under the title; shown only while drops are accepted. */\n desc?: string | undefined\n}\n\n/**\n * Full-viewport invitation shown while a file drag is over the page\n * (DeepSeek Chat's DragMask). Decoration only: `pointer-events: none` keeps\n * drag targeting on the page below, so the owner's document-level listeners\n * keep an accurate enter/leave count and own accept/reject. Rendered through\n * a body portal for the same transformed-ancestor reason as the lightbox.\n *\n * @param props.disabled - drops are currently refused; renders the blocked\n * illustration and drops the desc line.\n * @param props.labels - resolved title and limits strings.\n * @returns the overlay layer.\n */\nexport function DropOverlay({ disabled, labels }: {\n disabled: boolean\n labels: DropOverlayLabels\n}) {\n return createPortal(\n <div className={css.mask} role=\"status\">\n <div className={css.wrap}>\n <div className={css.illustration} aria-hidden=\"true\">\n {disabled ? <UploadDisabledIllustration /> : <UploadIllustration />}\n </div>\n <div className={css.title}>{labels.title}</div>\n {!disabled && labels.desc !== undefined && <div className={css.desc}>{labels.desc}</div>}\n </div>\n </div>,\n document.body,\n )\n}\n\n/** Tilted photo-and-note cards (DeepSeek Chat upload illustration). */\nconst UploadIllustration = () => (\n <svg width=\"115\" height=\"84\" viewBox=\"0 0 115 84\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#dshDropOverlayClip)\">\n <rect y=\"17.0742\" width=\"44.1832\" height=\"43.6431\" rx=\"12\" transform=\"rotate(-22.7338 0 17.0742)\" fill=\"#9CE5ED\" />\n <rect x=\"73.4043\" y=\"8.54297\" width=\"43.7267\" height=\"50.5284\" rx=\"8\" transform=\"rotate(17.403 73.4043 8.54297)\" fill=\"#679EFE\" />\n <path d=\"M30.4917 28.1369L40.8865 33.4564L37.2232 34.9524L29.5302 31.0159L26.7919 39.2122L23.1285 40.7082L26.8287 29.6338L16.8967 24.5516L20.5601 23.0556L27.7902 26.7549L30.3639 19.052L34.0273 17.556L30.4917 28.1369Z\" fill=\"white\" />\n <path d=\"M77.5088 26.3047L101.057 33.7966\" stroke=\"white\" strokeWidth=\"3\" />\n <path d=\"M72.2646 42.7871L86.3938 47.2823\" stroke=\"white\" strokeWidth=\"3\" />\n <path d=\"M74.8867 34.5469L98.4353 42.0388\" stroke=\"white\" strokeWidth=\"3\" />\n <rect x=\"31.583\" y=\"38.6641\" width=\"44.9157\" height=\"44.3666\" rx=\"12\" transform=\"rotate(-0.134233 31.583 38.6641)\" fill=\"#3964FE\" />\n <path d=\"M38.9521 73.0337C39.6129 71.7086 41.7113 66.0937 43.5113 61.1663C44.1607 59.3885 46.7484 59.3923 47.4591 61.1465C48.9728 64.8828 50.7969 68.6922 51.9988 69.1925C54.2946 70.1482 57.9854 59.3573 68.0064 70.1801\" stroke=\"white\" strokeWidth=\"3\" />\n <circle cx=\"60.6157\" cy=\"52.247\" r=\"4.38794\" transform=\"rotate(22.5996 60.6157 52.247)\" fill=\"white\" />\n </g>\n <defs>\n <clipPath id=\"dshDropOverlayClip\">\n <rect width=\"115\" height=\"84\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n)\n\n/** Greyed cards with a blocked badge (DeepSeek Chat disabled illustration). */\nconst UploadDisabledIllustration = () => (\n <svg width=\"115\" height=\"84\" viewBox=\"0 0 115 84\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M29.6829 4.63701L11.0677 12.4368C4.95519 14.998 2.07624 22.0294 4.6374 28.1419L12.2285 46.259C14.7896 52.3715 21.8211 55.2505 27.9336 52.6893L46.5488 44.8895C52.6613 42.3283 55.5403 35.2969 52.9791 29.1844L45.388 11.0673C42.8269 4.9548 35.7954 2.07585 29.6829 4.63701Z\" fill=\"#979DA6\" />\n <path d=\"M30.4915 28.1375L40.8863 33.4569L37.223 34.9529L29.53 31.0165L26.7917 39.2128L23.1283 40.7088L26.8285 29.6344L16.8965 24.5522L20.5599 23.0562L27.79 26.7555L30.3637 19.0526L34.0271 17.5566L30.4915 28.1375Z\" fill=\"white\" />\n <path d=\"M107.496 19.2285L81.0381 10.9357C76.8221 9.61423 72.333 11.9607 71.0116 16.1768L60.6844 49.1246C59.363 53.3406 61.7095 57.8297 65.9255 59.1511L92.383 67.4439C96.599 68.7654 101.088 66.4189 102.41 62.2029L112.737 29.255C114.058 25.039 111.712 20.55 107.496 19.2285Z\" fill=\"#979DA6\" />\n <path d=\"M77.5088 26.3047L101.057 33.7967\" stroke=\"white\" strokeWidth=\"3\" />\n <path d=\"M72.2646 42.7871L86.3938 47.2823\" stroke=\"white\" strokeWidth=\"3\" />\n <path d=\"M74.8867 34.5469L98.4353 42.0388\" stroke=\"white\" strokeWidth=\"3\" />\n <path d=\"M66.5798 30.1418L41.481 30.2006C33.5281 30.2193 27.0962 36.6815 27.1148 44.6343L27.172 69.0742C27.1907 77.0271 33.6529 83.459 41.6057 83.4404L66.7045 83.3816C74.6574 83.363 81.0894 76.9008 81.0707 68.9479L81.0135 44.5081C80.9949 36.5552 74.5327 30.1232 66.5798 30.1418Z\" fill=\"#F59E0B\" />\n <path d=\"M54 70.7969C61.732 70.7969 68 64.5289 68 56.7969C68 49.0649 61.732 42.7969 54 42.7969C46.268 42.7969 40 49.0649 40 56.7969C40 64.5289 46.268 70.7969 54 70.7969Z\" stroke=\"white\" strokeWidth=\"3.5\" />\n <path d=\"M44 46.7969L64 66.7969\" stroke=\"white\" strokeWidth=\"3.5\" strokeLinecap=\"round\" />\n </svg>\n)\n","import { useEffect, useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { IconCloseOutline16 } from '@xrkseek/client-ui-primitives'\nimport css from './ImageLightbox.module.css'\n\n/** Lightbox strings the owner resolves from its own locale namespace. */\nexport interface ImageLightboxLabels {\n /** Accessible name of the preview dialog. */\n dialog: string\n /** Accessible label of the close control. */\n close: string\n}\n\n/**\n * Document-level original-image preview opened by clicking a thumbnail.\n * Closes on Escape, backdrop press, or the close control, and restores focus\n * to the opener on unmount. Rendered through a body portal: an opener inside\n * a transformed or filtered ancestor would otherwise trap the fixed backdrop\n * in that ancestor's box instead of covering the viewport.\n *\n * @param props.src - the original image URL.\n * @param props.alt - the image's alt text.\n * @param props.labels - dialog and close-control strings.\n * @param props.onClose - dismiss callback owned by the opener.\n * @returns the modal preview dialog.\n */\nexport function ImageLightbox({ src, alt, labels, onClose }: {\n src: string\n alt: string\n labels: ImageLightboxLabels\n onClose: () => void\n}) {\n const closeRef = useRef<HTMLButtonElement | null>(null)\n const restoreRef = useRef<HTMLElement | null>(null)\n\n useEffect(() => {\n restoreRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null\n closeRef.current?.focus()\n const onKeyDown = (event: globalThis.KeyboardEvent): void => {\n if (event.key === 'Escape') onClose()\n }\n window.addEventListener('keydown', onKeyDown)\n return () => {\n window.removeEventListener('keydown', onKeyDown)\n restoreRef.current?.focus()\n }\n }, [onClose])\n\n return createPortal(\n <div\n className={css.backdrop}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={labels.dialog}\n >\n <div className={css.mask} aria-hidden=\"true\" onMouseDown={onClose} />\n <img className={css.image} src={src} alt={alt} />\n <button ref={closeRef} type=\"button\" className={css.close} aria-label={labels.close} onClick={onClose}>\n <IconCloseOutline16 size={16} />\n </button>\n </div>,\n document.body,\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport type { ImageAttachmentRef } from '@xrkseek/xrk-attachment'\nimport { ImageLightbox } from './ImageLightbox.tsx'\nimport type { ImageLightboxLabels } from './ImageLightbox.tsx'\nimport css from './MessageImage.module.css'\n\n/** Loads a session-authorized durable image URL. */\nexport type ImageLoader = (attachment: ImageAttachmentRef) => Promise<string>\n\n/** Message-image strings the owner resolves from its own locale namespace. */\nexport interface MessageImageLabels {\n /** Fallback display name for an unnamed image. */\n image: string\n /** Thumbnail tooltip inviting the original-image preview. */\n open: string\n /** Accessible thumbnail label; receives the image's display name. */\n openNamed: (label: string) => string\n /** Loading placeholder shown until bytes resolve. */\n loading: string\n /** Retry-control label shown when the load fails. */\n loadFailed: string\n /** Lightbox strings forwarded to the opened preview. */\n lightbox: ImageLightboxLabels\n}\n\n/** Display box for a lone image (DeepSeek Chat rule): long edge 240px with\n * the rendered aspect ratio clamped to [0.25, 4] — the overflow is cropped by\n * `object-fit: cover` — and never upscaled past the image's natural size. The\n * crop anchor keeps the top of very tall images and the left of very wide\n * ones, where the informative content usually starts. */\nfunction singleFit(attachment: ImageAttachmentRef): { width: number; height: number; objectPosition: string } {\n const natural = attachment.width / attachment.height\n const ratio = Math.min(4, Math.max(0.25, natural))\n const box = ratio >= 1 ? { width: 240, height: 240 / ratio } : { width: 240 * ratio, height: 240 }\n const scale = Math.min(1, attachment.width / box.width, attachment.height / box.height)\n return {\n width: Math.max(1, Math.round(box.width * scale)),\n height: Math.max(1, Math.round(box.height * scale)),\n objectPosition: natural < 0.25 ? 'center top' : natural > 4 ? 'left center' : 'center',\n }\n}\n\n/**\n * Compact history renderer with retryable loading and click-to-open original\n * preview. A lone image renders at its `singleFit` size; an image among\n * several renders as a fixed 64px square tile.\n *\n * @param props.attachment - the durable image reference to load and bound.\n * @param props.load - session-authorized URL loader.\n * @param props.variant - `single` for a message's lone image, `tile` otherwise.\n * @param props.labels - resolved strings (tooltip, loading, retry, lightbox).\n * @returns the bounded thumbnail button, or the retry control on failure.\n */\nexport function MessageImage({ attachment, load, variant, labels }: {\n attachment: ImageAttachmentRef\n load: ImageLoader\n variant: 'single' | 'tile'\n labels: MessageImageLabels\n}) {\n const [src, setSrc] = useState<string | null>(null)\n const [error, setError] = useState(false)\n const [open, setOpen] = useState(false)\n // Retry re-arms the one load effect below, so every attempt — first load or\n // retry — runs under the same liveness guard and the same reset.\n const [attempt, setAttempt] = useState(0)\n const request = useCallback(() => { setAttempt(a => a + 1) }, [])\n const close = useCallback(() => { setOpen(false) }, [])\n const fit = useMemo(\n () => (variant === 'single' ? singleFit(attachment) : undefined),\n [attachment, variant],\n )\n\n useEffect(() => {\n let live = true\n setError(false)\n setSrc(null)\n void load(attachment).then((url) => { if (live) setSrc(url) }).catch(() => { if (live) setError(true) })\n return () => { live = false }\n }, [attachment, load, attempt])\n\n const label = attachment.name ?? labels.image\n if (error) return <button type=\"button\" className={css.error} data-variant={variant} onClick={request}>{labels.loadFailed}</button>\n return (\n <>\n <button\n type=\"button\"\n className={css.frame}\n data-variant={variant}\n style={fit === undefined ? undefined : { width: fit.width, height: fit.height }}\n title={labels.open}\n aria-label={labels.openNamed(label)}\n onClick={() => { if (src !== null) setOpen(true) }}\n >\n {src === null\n ? <span className={css.loading}>{labels.loading}</span>\n : <img src={src} alt={label} style={fit === undefined ? undefined : { objectPosition: fit.objectPosition }} />}\n </button>\n {open && src !== null && <ImageLightbox src={src} alt={label} labels={labels.lightbox} onClose={close} />}\n </>\n )\n}\n\n/** Wrapping image group shared by user and assistant history: a lone image\n * renders large, several render as 64px square tiles (DeepSeek Chat rule). */\nexport function ImageGallery({ images, load, align, labels }: {\n images: readonly { attachment: ImageAttachmentRef }[]\n load: ImageLoader\n align: 'start' | 'end'\n labels: MessageImageLabels\n}) {\n if (images.length === 0) return null\n const variant = images.length === 1 ? 'single' : 'tile'\n return (\n <div className={css.gallery} data-align={align}>\n {images.map((image, index) => (\n <MessageImage key={`${image.attachment.attachmentId}:${index}`} {...image} load={load} variant={variant} labels={labels} />\n ))}\n </div>\n )\n}\n","import { Binary, clone, deepEqual, filterKeys, isNullable, isPlainObject, pick, valueMap } from \"@xrkseek/cosmokit\";\n//#region lib/types/index.js\nconst kSchema = Symbol.for(\"schemastery\");\nconst kValidationError = Symbol.for(\"ValidationError\");\nglobalThis.__schemastery_index__ ??= 0;\nglobalThis.__schemastery_refs__ = void 0;\nvar ValidationError = class extends TypeError {\n\toptions;\n\tname = \"ValidationError\";\n\tconstructor(message, options) {\n\t\tlet prefix = \"$\";\n\t\tfor (const segment of options.path || []) if (typeof segment === \"string\") prefix += \".\" + segment;\n\t\telse if (typeof segment === \"number\") prefix += \"[\" + segment + \"]\";\n\t\telse if (typeof segment === \"symbol\") prefix += `[Symbol(${segment.toString()})]`;\n\t\tif (prefix.startsWith(\".\")) prefix = prefix.slice(1);\n\t\tsuper((prefix === \"$\" ? \"\" : `${prefix} `) + message);\n\t\tthis.options = options;\n\t}\n\tstatic is(error) {\n\t\treturn !!error?.[kValidationError];\n\t}\n};\nObject.defineProperty(ValidationError.prototype, kValidationError, { value: true });\nconst Schema = function(options) {\n\tconst schema = function(data, options = {}) {\n\t\treturn Schema.resolve(data, schema, options)[0];\n\t};\n\tif (options.refs) {\n\t\tconst refs = valueMap(options.refs, (options) => new Schema(options));\n\t\tconst getRef = (uid) => refs[uid];\n\t\tfor (const key in refs) {\n\t\t\tconst options = refs[key];\n\t\t\toptions.sKey = getRef(options.sKey);\n\t\t\toptions.inner = getRef(options.inner);\n\t\t\toptions.list = options.list && options.list.map(getRef);\n\t\t\toptions.dict = options.dict && valueMap(options.dict, getRef);\n\t\t}\n\t\treturn refs[options.uid];\n\t}\n\tObject.assign(schema, options);\n\tif (typeof schema.callback === \"string\") try {\n\t\tschema.callback = new Function(\"return \" + schema.callback)();\n\t} catch {}\n\tObject.defineProperty(schema, \"uid\", { value: globalThis.__schemastery_index__++ });\n\tObject.setPrototypeOf(schema, Schema.prototype);\n\tschema.meta ||= {};\n\tschema.toString = schema.toString.bind(schema);\n\treturn schema;\n};\nSchema.prototype = Object.create(Function.prototype);\nSchema.prototype[kSchema] = true;\nObject.defineProperty(Schema.prototype, \"~standard\", { get() {\n\treturn {\n\t\tversion: 1,\n\t\tvendor: \"schemastery\",\n\t\tvalidate: (value) => {\n\t\t\ttry {\n\t\t\t\treturn { value: Schema.resolve(value, this, {})[0] };\n\t\t\t} catch (error) {\n\t\t\t\tif (ValidationError.is(error)) return { issues: [{\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\tpath: error.options.path\n\t\t\t\t}] };\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t};\n} });\nSchema.ValidationError = ValidationError;\nSchema.prototype.toJSON = function toJSON() {\n\tif (globalThis.__schemastery_refs__) {\n\t\tglobalThis.__schemastery_refs__[this.uid] ??= JSON.parse(JSON.stringify({ ...this }));\n\t\treturn this.uid;\n\t}\n\tglobalThis.__schemastery_refs__ = { [this.uid]: { ...this } };\n\tglobalThis.__schemastery_refs__[this.uid] = JSON.parse(JSON.stringify({ ...this }));\n\tconst result = {\n\t\tuid: this.uid,\n\t\trefs: globalThis.__schemastery_refs__\n\t};\n\tglobalThis.__schemastery_refs__ = void 0;\n\treturn result;\n};\nSchema.prototype.set = function set(key, value) {\n\tthis.dict[key] = value;\n\treturn this;\n};\nSchema.prototype.push = function push(value) {\n\tthis.list.push(value);\n\treturn this;\n};\nfunction mergeDesc(original, messages) {\n\tconst result = typeof original === \"string\" ? { \"\": original } : { ...original };\n\tfor (const locale in messages) {\n\t\tconst value = messages[locale];\n\t\tif (value?.$description || value?.$desc) result[locale] = value.$description || value.$desc;\n\t\telse if (typeof value === \"string\") result[locale] = value;\n\t}\n\treturn result;\n}\nfunction getInner(value) {\n\treturn value?.$value ?? value?.$inner;\n}\nfunction extractKeys(data) {\n\treturn filterKeys(data ?? {}, (key) => !key.startsWith(\"$\"));\n}\nSchema.prototype.i18n = function i18n(messages) {\n\tconst schema = Schema(this);\n\tconst desc = mergeDesc(schema.meta.description, messages);\n\tif (Object.keys(desc).length) schema.meta.description = desc;\n\tif (schema.dict) schema.dict = valueMap(schema.dict, (inner, key) => {\n\t\treturn inner.i18n(valueMap(messages, (data) => getInner(data)?.[key] ?? data?.[key]));\n\t});\n\tif (schema.list) schema.list = schema.list.map((inner, index) => {\n\t\treturn inner.i18n(valueMap(messages, (data = {}) => {\n\t\t\tif (Array.isArray(getInner(data))) return getInner(data)[index];\n\t\t\tif (Array.isArray(data)) return data[index];\n\t\t\treturn extractKeys(data);\n\t\t}));\n\t});\n\tif (schema.inner) schema.inner = schema.inner.i18n(valueMap(messages, (data) => {\n\t\tif (getInner(data)) return getInner(data);\n\t\treturn extractKeys(data);\n\t}));\n\tif (schema.sKey) schema.sKey = schema.sKey.i18n(valueMap(messages, (data) => data?.$key));\n\treturn schema;\n};\nSchema.prototype.extra = function extra(key, value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"required\",\n\t\"disabled\",\n\t\"collapse\",\n\t\"hidden\",\n\t\"loose\"\n]) Object.assign(Schema.prototype, { [key](value = true) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nSchema.prototype.deprecated = function deprecated() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"deprecated\",\n\t\ttype: \"danger\"\n\t});\n\treturn schema;\n};\nSchema.prototype.experimental = function experimental() {\n\tconst schema = Schema(this);\n\tschema.meta.badges ||= [];\n\tschema.meta.badges.push({\n\t\ttext: \"experimental\",\n\t\ttype: \"warning\"\n\t});\n\treturn schema;\n};\nSchema.prototype.pattern = function pattern(regexp) {\n\tconst schema = Schema(this);\n\tconst pattern = pick(regexp, [\"source\", \"flags\"]);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\tpattern\n\t};\n\treturn schema;\n};\nSchema.prototype.simplify = function simplify(value) {\n\tif (deepEqual(value, this.meta.default, this.type === \"dict\")) return null;\n\tif (isNullable(value)) return value;\n\tif (this.type === \"object\" || this.type === \"dict\") {\n\t\tconst result = {};\n\t\tfor (const key in value) {\n\t\t\tconst item = (this.type === \"object\" ? this.dict[key] : this.inner)?.simplify(value[key]);\n\t\t\tif (this.type === \"dict\" || !isNullable(item)) result[key] = item;\n\t\t}\n\t\tif (deepEqual(result, this.meta.default, this.type === \"dict\")) return null;\n\t\treturn result;\n\t} else if (this.type === \"array\" || this.type === \"tuple\") {\n\t\tconst result = [];\n\t\tvalue.forEach((value, index) => {\n\t\t\tconst schema = this.type === \"array\" ? this.inner : this.list[index];\n\t\t\tconst item = schema ? schema.simplify(value) : value;\n\t\t\tresult.push(item);\n\t\t});\n\t\treturn result;\n\t} else if (this.type === \"intersect\") {\n\t\tconst result = {};\n\t\tfor (const item of this.list) Object.assign(result, item.simplify(value));\n\t\treturn result;\n\t} else if (this.type === \"union\") for (const schema of this.list) try {\n\t\tSchema.resolve(value, schema, {});\n\t\treturn schema.simplify(value);\n\t} catch {}\n\treturn value;\n};\nSchema.prototype.toString = function toString(inline) {\n\treturn formatters[this.type]?.(this, inline) ?? `Schema<${this.type}>`;\n};\nSchema.prototype.role = function role(role, extra) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\trole,\n\t\textra\n\t};\n\treturn schema;\n};\nfor (const key of [\n\t\"default\",\n\t\"link\",\n\t\"comment\",\n\t\"description\",\n\t\"max\",\n\t\"min\",\n\t\"step\"\n]) Object.assign(Schema.prototype, { [key](value) {\n\tconst schema = Schema(this);\n\tschema.meta = {\n\t\t...schema.meta,\n\t\t[key]: value\n\t};\n\treturn schema;\n} });\nconst resolvers = {};\nSchema.extend = function extend(type, resolve) {\n\tresolvers[type] = resolve;\n};\nSchema.resolve = function resolve(data, schema, options = {}, strict = false) {\n\tif (!schema) return [data];\n\tif (options.ignore?.(data, schema)) return [data];\n\tif (isNullable(data) && schema.type !== \"lazy\") {\n\t\tif (schema.meta.required) throw new ValidationError(`missing required value`, options);\n\t\tlet current = schema;\n\t\tlet fallback = schema.meta.default;\n\t\twhile (current?.type === \"intersect\" && isNullable(fallback)) {\n\t\t\tcurrent = current.list[0];\n\t\t\tfallback = current?.meta.default;\n\t\t}\n\t\tif (isNullable(fallback)) return [data];\n\t\tdata = clone(fallback);\n\t}\n\tconst callback = resolvers[schema.type];\n\tif (!callback) throw new ValidationError(`unsupported type \"${schema.type}\"`, options);\n\ttry {\n\t\treturn callback(data, schema, options, strict);\n\t} catch (error) {\n\t\tif (!schema.meta.loose) throw error;\n\t\treturn [schema.meta.default];\n\t}\n};\nSchema.from = function from(source) {\n\tif (isNullable(source)) return Schema.any();\n\telse if ([\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\"\n\t].includes(typeof source)) return Schema.const(source).required();\n\telse if (source[kSchema]) return source;\n\telse if (typeof source === \"function\") switch (source) {\n\t\tcase String: return Schema.string().required();\n\t\tcase Number: return Schema.number().required();\n\t\tcase Boolean: return Schema.boolean().required();\n\t\tcase Function: return Schema.function().required();\n\t\tdefault: return Schema.is(source).required();\n\t}\n\telse throw new TypeError(`cannot infer schema from ${source}`);\n};\nSchema.lazy = function lazy(builder) {\n\tconst toJSON = () => {\n\t\tif (!schema.inner[kSchema]) {\n\t\t\tschema.inner = schema.builder();\n\t\t\tschema.inner.meta = {\n\t\t\t\t...schema.meta,\n\t\t\t\t...schema.inner.meta\n\t\t\t};\n\t\t}\n\t\treturn schema.inner.toJSON();\n\t};\n\tconst schema = new Schema({\n\t\ttype: \"lazy\",\n\t\tbuilder,\n\t\tinner: { toJSON }\n\t});\n\treturn schema;\n};\nSchema.natural = function natural() {\n\treturn Schema.number().step(1).min(0);\n};\nSchema.percent = function percent() {\n\treturn Schema.number().step(.01).min(0).max(1).role(\"slider\");\n};\nSchema.date = function date() {\n\treturn Schema.union([Schema.is(Date), Schema.transform(Schema.string().role(\"datetime\"), (value, options) => {\n\t\tconst date = new Date(value);\n\t\tif (isNaN(+date)) throw new ValidationError(`invalid date \"${value}\"`, options);\n\t\treturn date;\n\t}, true)]);\n};\nSchema.regExp = function regExp(flag = \"\") {\n\treturn Schema.union([Schema.is(RegExp), Schema.transform(Schema.string().role(\"regexp\", { flag }), (value, options) => {\n\t\ttry {\n\t\t\treturn new RegExp(value, flag);\n\t\t} catch (e) {\n\t\t\tthrow new ValidationError(e.message, options);\n\t\t}\n\t}, true)]);\n};\nSchema.arrayBuffer = function arrayBuffer(encoding) {\n\treturn Schema.union([\n\t\tSchema.is(ArrayBuffer),\n\t\tSchema.is(SharedArrayBuffer),\n\t\tSchema.transform(Schema.any(), (value, options) => {\n\t\t\tif (Binary.isSource(value)) return Binary.fromSource(value);\n\t\t\tthrow new ValidationError(`expected ArrayBufferSource but got ${value}`, options);\n\t\t}, true),\n\t\t...encoding ? [Schema.transform(Schema.string(), (value, options) => {\n\t\t\ttry {\n\t\t\t\treturn encoding === \"base64\" ? Binary.fromBase64(value) : Binary.fromHex(value);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new ValidationError(e.message, options);\n\t\t\t}\n\t\t}, true)] : []\n\t]);\n};\nSchema.extend(\"lazy\", (data, schema, options, strict) => {\n\tif (!schema.inner[kSchema]) {\n\t\tschema.inner = schema.builder();\n\t\tschema.inner.meta = {\n\t\t\t...schema.meta,\n\t\t\t...schema.inner.meta\n\t\t};\n\t}\n\treturn Schema.resolve(data, schema.inner, options, strict);\n});\nSchema.extend(\"any\", (data) => {\n\treturn [data];\n});\nSchema.extend(\"never\", (data, _, options) => {\n\tthrow new ValidationError(`expected nullable but got ${data}`, options);\n});\nSchema.extend(\"const\", (data, { value }, options) => {\n\tif (deepEqual(data, value)) return [value];\n\tthrow new ValidationError(`expected ${value} but got ${data}`, options);\n});\nfunction checkWithinRange(data, meta, description, options, skipMin = false) {\n\tconst { max = Infinity, min = -Infinity } = meta;\n\tif (data > max) throw new ValidationError(`expected ${description} <= ${max} but got ${data}`, options);\n\tif (data < min && !skipMin) throw new ValidationError(`expected ${description} >= ${min} but got ${data}`, options);\n}\nSchema.extend(\"string\", (data, { meta }, options) => {\n\tif (typeof data !== \"string\") throw new ValidationError(`expected string but got ${data}`, options);\n\tif (meta.pattern) {\n\t\tconst regexp = new RegExp(meta.pattern.source, meta.pattern.flags);\n\t\tif (!regexp.test(data)) throw new ValidationError(`expect string to match regexp ${regexp}`, options);\n\t}\n\tcheckWithinRange(data.length, meta, \"string length\", options);\n\treturn [data];\n});\nfunction decimalShift(data, digits) {\n\tconst str = data.toString();\n\tif (str.includes(\"e\")) return data * Math.pow(10, digits);\n\tconst index = str.indexOf(\".\");\n\tif (index === -1) return data * Math.pow(10, digits);\n\tconst frac = str.slice(index + 1);\n\tconst integer = str.slice(0, index);\n\tif (frac.length <= digits) return +(integer + frac.padEnd(digits, \"0\"));\n\treturn +(integer + frac.slice(0, digits) + \".\" + frac.slice(digits));\n}\nfunction isMultipleOf(data, min, step) {\n\tstep = Math.abs(step);\n\tif (!/^\\d+\\.\\d+$/.test(step.toString())) return (data - min) % step === 0;\n\tconst index = step.toString().indexOf(\".\");\n\tconst digits = step.toString().slice(index + 1).length;\n\treturn Math.abs(decimalShift(data, digits) - decimalShift(min, digits)) % decimalShift(step, digits) === 0;\n}\nSchema.extend(\"number\", (data, { meta }, options) => {\n\tif (typeof data !== \"number\") throw new ValidationError(`expected number but got ${data}`, options);\n\tcheckWithinRange(data, meta, \"number\", options);\n\tconst { step } = meta;\n\tif (step && !isMultipleOf(data, meta.min ?? 0, step)) throw new ValidationError(`expected number multiple of ${step} but got ${data}`, options);\n\treturn [data];\n});\nSchema.extend(\"boolean\", (data, _, options) => {\n\tif (typeof data === \"boolean\") return [data];\n\tthrow new ValidationError(`expected boolean but got ${data}`, options);\n});\nSchema.extend(\"bitset\", (data, { bits, meta }, options) => {\n\tlet value = 0, keys = [];\n\tif (typeof data === \"number\") {\n\t\tvalue = data;\n\t\tfor (const key in bits) if (data & bits[key]) keys.push(key);\n\t} else if (Array.isArray(data)) {\n\t\tkeys = data;\n\t\tfor (const key of keys) {\n\t\t\tif (typeof key !== \"string\") throw new ValidationError(`expected string but got ${key}`, options);\n\t\t\tif (key in bits) value |= bits[key];\n\t\t}\n\t} else throw new ValidationError(`expected number or array but got ${data}`, options);\n\tif (value === meta.default) return [value];\n\treturn [value, keys];\n});\nSchema.extend(\"function\", (data, _, options) => {\n\tif (typeof data === \"function\") return [data];\n\tthrow new ValidationError(`expected function but got ${data}`, options);\n});\nSchema.extend(\"is\", (data, { constructor }, options) => {\n\tif (typeof constructor === \"function\") {\n\t\tif (data instanceof constructor) return [data];\n\t\tthrow new ValidationError(`expected ${constructor.name} but got ${data}`, options);\n\t} else {\n\t\tif (isNullable(data)) throw new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t\tlet prototype = Object.getPrototypeOf(data);\n\t\twhile (prototype) {\n\t\t\tif (prototype.constructor?.name === constructor) return [data];\n\t\t\tprototype = Object.getPrototypeOf(prototype);\n\t\t}\n\t\tthrow new ValidationError(`expected ${constructor} but got ${data}`, options);\n\t}\n});\nfunction property(data, key, schema, options) {\n\ttry {\n\t\tconst [value, adapted] = Schema.resolve(data[key], schema, {\n\t\t\t...options,\n\t\t\tpath: [...options.path || [], key]\n\t\t});\n\t\tif (adapted !== void 0) data[key] = adapted;\n\t\treturn value;\n\t} catch (e) {\n\t\tif (!options?.autofix) throw e;\n\t\tdelete data[key];\n\t\treturn schema.meta.default;\n\t}\n}\nSchema.extend(\"array\", (data, { inner, meta }, options) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tcheckWithinRange(data.length, meta, \"array length\", options, !isNullable(inner.meta.default));\n\treturn [data.map((_, index) => property(data, index, inner, options))];\n});\nSchema.extend(\"dict\", (data, { inner, sKey }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in data) {\n\t\tlet rKey;\n\t\ttry {\n\t\t\trKey = Schema.resolve(key, sKey, options)[0];\n\t\t} catch (error) {\n\t\t\tif (strict) continue;\n\t\t\tthrow error;\n\t\t}\n\t\tresult[rKey] = property(data, key, inner, options);\n\t\tdata[rKey] = data[key];\n\t\tif (key !== rKey) delete data[key];\n\t}\n\treturn [result];\n});\nSchema.extend(\"tuple\", (data, { list }, options, strict) => {\n\tif (!Array.isArray(data)) throw new ValidationError(`expected array but got ${data}`, options);\n\tconst result = list.map((inner, index) => property(data, index, inner, options));\n\tif (strict) return [result];\n\tresult.push(...data.slice(list.length));\n\treturn [result];\n});\nfunction merge(result, data) {\n\tfor (const key in data) {\n\t\tif (key in result) continue;\n\t\tresult[key] = data[key];\n\t}\n}\nSchema.extend(\"object\", (data, { dict }, options, strict) => {\n\tif (!isPlainObject(data)) throw new ValidationError(`expected object but got ${data}`, options);\n\tconst result = {};\n\tfor (const key in dict) {\n\t\tconst value = property(data, key, dict[key], options);\n\t\tif (!isNullable(value) || key in data) result[key] = value;\n\t}\n\tif (!strict) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"union\", (data, { list, toString }, options, strict) => {\n\tconst messages = [];\n\tfor (const inner of list) try {\n\t\treturn Schema.resolve(data, inner, options, strict);\n\t} catch (error) {\n\t\tmessages.push(error);\n\t}\n\tthrow new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n});\nSchema.extend(\"intersect\", (data, { list, toString }, options, strict) => {\n\tif (!list.length) return [data];\n\tlet result;\n\tfor (const inner of list) {\n\t\tconst value = Schema.resolve(data, inner, options, true)[0];\n\t\tif (isNullable(value)) continue;\n\t\tif (isNullable(result)) result = value;\n\t\telse if (typeof result !== typeof value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t\telse if (typeof value === \"object\") merge(result ??= {}, value);\n\t\telse if (result !== value) throw new ValidationError(`expected ${toString()} but got ${JSON.stringify(data)}`, options);\n\t}\n\tif (!strict && isPlainObject(data)) merge(result, data);\n\treturn [result];\n});\nSchema.extend(\"transform\", (data, { inner, callback, preserve }, options) => {\n\tconst [result, adapted = data] = Schema.resolve(data, inner, options, true);\n\tif (preserve) return [callback(result)];\n\telse return [callback(result), callback(adapted)];\n});\nconst formatters = {};\nfunction defineMethod(name, keys, format) {\n\tformatters[name] = format;\n\tObject.assign(Schema, { [name](...args) {\n\t\tconst schema = new Schema({ type: name });\n\t\tkeys.forEach((key, index) => {\n\t\t\tswitch (key) {\n\t\t\t\tcase \"sKey\":\n\t\t\t\t\tschema.sKey = args[index] ?? Schema.string();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inner\":\n\t\t\t\t\tschema.inner = Schema.from(args[index]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"list\":\n\t\t\t\t\tschema.list = args[index].map(Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dict\":\n\t\t\t\t\tschema.dict = valueMap(args[index], Schema.from);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"bits\":\n\t\t\t\t\tschema.bits = {};\n\t\t\t\t\tfor (const key in args[index]) {\n\t\t\t\t\t\tif (typeof args[index][key] !== \"number\") continue;\n\t\t\t\t\t\tschema.bits[key] = args[index][key];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"callback\": {\n\t\t\t\t\tconst callback = schema.callback = args[index];\n\t\t\t\t\tcallback[\"toJSON\"] ||= () => callback.toString();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"constructor\": {\n\t\t\t\t\tconst constructor = schema.constructor = args[index];\n\t\t\t\t\tif (typeof constructor === \"function\") constructor[\"toJSON\"] ||= () => constructor[\"name\"];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: schema[key] = args[index];\n\t\t\t}\n\t\t});\n\t\tif (name === \"object\" || name === \"dict\") schema.meta.default = {};\n\t\telse if (name === \"array\" || name === \"tuple\") schema.meta.default = [];\n\t\telse if (name === \"bitset\") schema.meta.default = 0;\n\t\treturn schema;\n\t} });\n}\ndefineMethod(\"is\", [\"constructor\"], ({ constructor }) => {\n\tif (typeof constructor === \"function\") return constructor.name;\n\telse return constructor;\n});\ndefineMethod(\"any\", [], () => \"any\");\ndefineMethod(\"never\", [], () => \"never\");\ndefineMethod(\"const\", [\"value\"], ({ value }) => typeof value === \"string\" ? JSON.stringify(value) : value);\ndefineMethod(\"string\", [], () => \"string\");\ndefineMethod(\"number\", [], () => \"number\");\ndefineMethod(\"boolean\", [], () => \"boolean\");\ndefineMethod(\"bitset\", [\"bits\"], () => \"bitset\");\ndefineMethod(\"function\", [], () => \"function\");\ndefineMethod(\"array\", [\"inner\"], ({ inner }) => `${inner.toString(true)}[]`);\ndefineMethod(\"dict\", [\"inner\", \"sKey\"], ({ inner, sKey }) => `{ [key: ${sKey.toString()}]: ${inner.toString()} }`);\ndefineMethod(\"tuple\", [\"list\"], ({ list }) => `[${list.map((inner) => inner.toString()).join(\", \")}]`);\ndefineMethod(\"object\", [\"dict\"], ({ dict }) => {\n\tif (Object.keys(dict).length === 0) return \"{}\";\n\treturn `{ ${Object.entries(dict).map(([key, inner]) => {\n\t\treturn `${key}${inner.meta.required ? \"\" : \"?\"}: ${inner.toString()}`;\n\t}).join(\", \")} }`;\n});\ndefineMethod(\"union\", [\"list\"], ({ list }, inline) => {\n\tconst result = list.map(({ toString: format }) => format()).join(\" | \");\n\treturn inline ? `(${result})` : result;\n});\ndefineMethod(\"intersect\", [\"list\"], ({ list }) => {\n\treturn `${list.map((inner) => inner.toString(true)).join(\" & \")}`;\n});\ndefineMethod(\"transform\", [\n\t\"inner\",\n\t\"callback\",\n\t\"preserve\"\n], ({ inner }, isInner) => inner.toString(isInner));\n//#endregion\nexport { Schema as default };\n","/**\n * Schema introspection and draft-editing helpers behind settings editors.\n * The serialized schemastery envelope (`schema.toJSON()`) rehydrates into a\n * live validator whose node relations (`dict`/`inner`) editors probe for\n * field presence and roles; drafts are edited immutably by path.\n * @module @xrkseek/client-schema-form/model\n */\n\nimport Schema from '@xrkseek/schemastery'\n\n/** Live schemastery node; the renderer reads only its structural relations. */\nexport type SchemaNode = Schema\n\n/**\n * Rehydrate a serialized schema envelope into a live validator/node tree.\n * @param serialized - `schema.toJSON()` output received over the wire.\n * @returns the root schema node.\n */\nexport function rehydrateSchema(serialized: unknown): SchemaNode {\n return new Schema(serialized as Schema)\n}\n\n/**\n * Validate a draft against a rehydrated schema.\n * @param schema - rehydrated root node.\n * @param draft - candidate value.\n * @returns the validation failure message, or `undefined` when the draft passes.\n */\nexport function validateDraft(schema: SchemaNode, draft: unknown): string | undefined {\n try {\n ;(schema as unknown as (value: unknown) => unknown)(draft)\n return undefined\n } catch (error) {\n return error instanceof Error ? error.message : String(error)\n }\n}\n\n/**\n * Resolve the schema node at a settings path (the configurable-provider\n * directory's `settingsPath` vocabulary): object properties by name, dict\n * entries through `inner`. An unresolvable segment returns `undefined` so\n * the caller falls back instead of rendering a wrong subtree.\n * @param root - rehydrated section root node.\n * @param path - key path from the section root.\n * @returns the node describing that position, or `undefined`.\n */\nexport function nodeAtPath(root: SchemaNode, path: readonly string[]): SchemaNode | undefined {\n let node: SchemaNode | undefined = root\n for (const key of path) {\n if (node === undefined) return undefined\n if (node.type === 'object') node = (node.dict as Record<string, SchemaNode> | undefined)?.[key]\n else if (node.type === 'dict' || node.type === 'array') node = node.inner as SchemaNode | undefined\n else return undefined\n }\n return node\n}\n\n/**\n * Read a nested value by path.\n * @param value - root value (draft or fallback layer).\n * @param path - key path from the root; array indexes as strings.\n * @returns the value at the path, or `undefined` along a missing branch.\n */\nexport function getPath(value: unknown, path: readonly string[]): unknown {\n let current: unknown = value\n for (const key of path) {\n if (Array.isArray(current)) {\n current = current[Number(key)]\n continue\n }\n if (typeof current !== 'object' || current === null) return undefined\n current = (current as Record<string, unknown>)[key]\n }\n return current\n}\n\n/**\n * Whether a draft explicitly carries the path (its presence marks a user\n * override, independent of the value stored there).\n * @param value - root value (draft or fallback layer).\n * @param path - key path from the root; array indexes as strings.\n * @returns whether the path's final key exists on its parent.\n */\nexport function hasPath(value: unknown, path: readonly string[]): boolean {\n if (path.length === 0) return value !== undefined\n const parent = getPath(value, path.slice(0, -1))\n const key = path[path.length - 1] as string\n if (Array.isArray(parent)) return Number(key) < parent.length\n if (typeof parent !== 'object' || parent === null) return false\n return key in parent\n}\n\nfunction cloneContainer(container: unknown, key: string): Record<string, unknown> | unknown[] {\n if (Array.isArray(container)) return [...container as unknown[]]\n if (typeof container === 'object' && container !== null) return { ...container as Record<string, unknown> }\n // A missing intermediate materializes as the container the next key needs.\n return /^\\d+$/.test(key) ? [] : {}\n}\n\n/** Clone the container spine down to the leaf's parent, materializing missing intermediates. */\nfunction cloneSpine(root: Record<string, unknown>, path: readonly string[]): {\n result: Record<string, unknown>\n parent: Record<string, unknown> | unknown[]\n leaf: string\n} {\n const result = { ...root }\n let target: Record<string, unknown> | unknown[] = result\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i] as string\n const child = cloneContainer(\n Array.isArray(target) ? target[Number(key)] : (target)[key],\n path[i + 1] as string,\n )\n if (Array.isArray(target)) target[Number(key)] = child\n else (target)[key] = child\n target = child\n }\n return { result, parent: target, leaf: path[path.length - 1] as string }\n}\n\n/**\n * Immutably set a nested value, materializing missing intermediate containers.\n * @param root - draft root (never mutated).\n * @param path - non-empty key path.\n * @param value - value to store at the path.\n * @returns the new draft root.\n */\nexport function setPath(root: Record<string, unknown>, path: readonly string[], value: unknown): Record<string, unknown> {\n if (path.length === 0) throw new Error('schema-form: setPath needs a non-empty path')\n const { result, parent, leaf } = cloneSpine(root, path)\n if (Array.isArray(parent)) parent[Number(leaf)] = value\n else parent[leaf] = value\n return result\n}\n\n/**\n * Immutably remove a nested key (the per-field reset: the resolved value\n * falls back to the composition base and schema defaults). Removing along a\n * missing branch returns the root unchanged.\n * @param root - draft root (never mutated).\n * @param path - non-empty key path.\n * @returns the new draft root.\n */\nexport function deletePath(root: Record<string, unknown>, path: readonly string[]): Record<string, unknown> {\n if (path.length === 0) throw new Error('schema-form: deletePath needs a non-empty path')\n if (!hasPath(root, path)) return root\n const { result, parent, leaf } = cloneSpine(root, path)\n if (Array.isArray(parent)) parent.splice(Number(leaf), 1)\n else Reflect.deleteProperty(parent, leaf)\n return result\n}\n","/**\n * Platform-singleton module-table. These are the ONLY entities the shell\n * shares into the frozen module table — fetch bundles resolve their externals\n * against exactly this set through the loader's require. Keys come from the\n * platform constant module ({@link ./platform.ts}, the single source\n * of truth with the tsdown client externals); values stay shell-static\n * imports so every bundle sees the same instance.\n */\nimport * as React from 'react'\nimport * as ReactJsxRuntime from 'react/jsx-runtime'\nimport * as ReactDom from 'react-dom'\nimport * as ReactDomClient from 'react-dom/client'\nimport * as Cordis from '@xrkseek/cordis'\nimport * as UiSlots from '@xrkseek/client-ui-slots'\nimport * as WebReact from '@xrkseek/client-web-react'\nimport * as UiPrimitives from '@xrkseek/client-ui-primitives'\nimport * as UiAttachment from '@xrkseek/client-ui-attachment'\nimport * as SchemaForm from '@xrkseek/client-schema-form'\nimport type { PlatformModule } from './platform.ts'\n\n/**\n * Build the static table handed to the module loader at boot.\n * @returns module specifier → exported entity (one entry per platform word).\n */\nexport function getStaticModules(): Record<string, unknown> {\n // The satisfies pin is the projection contract: a word added to\n // PLATFORM_MODULES without a static import here (or vice versa) fails to\n // compile instead of drifting into a runtime require miss.\n return {\n 'react': React,\n 'react/jsx-runtime': ReactJsxRuntime,\n 'react-dom': ReactDom,\n 'react-dom/client': ReactDomClient,\n '@xrkseek/cordis': Cordis,\n '@xrkseek/client-ui-slots': UiSlots,\n '@xrkseek/client-web-react': WebReact,\n '@xrkseek/client-ui-primitives': UiPrimitives,\n '@xrkseek/client-ui-attachment': UiAttachment,\n '@xrkseek/client-schema-form': SchemaForm,\n } satisfies Record<PlatformModule, unknown>\n}\n","/**\n * Fiber-state projection vocabulary and the kernel-owned status store for the\n * boot loading page. The status AppRoot renders is a projection of the real\n * cordis fiber states (display the truth, not a retelling) — the boot chain\n * subscribes `internal/status` and recomputes one row per loader entry.\n *\n * The store is hand-rolled here because of the shell self-sufficiency rule:\n * the snapshot-store machinery lives in the runtime PLUGIN\n * package, and the shell kernel must not value-import any plugin package —\n * the loading page has to work while (and especially when) plugins fail.\n * @module @xrkseek/client-web/src/loader-status\n */\nimport type { FiberState } from '@xrkseek/cordis'\n\n/**\n * Value mirror of cordis's `FiberState` const enum: a const enum has no\n * runtime object to import (and esbuild-based pipelines cannot inline it\n * across modules), so these values mirror the pinned vendored definition\n * while retaining its type (same rationale as dsh-tool-cordis's mirror).\n */\nexport const FIBER_STATE = {\n PENDING: 0 as FiberState.PENDING,\n LOADING: 1 as FiberState.LOADING,\n ACTIVE: 2 as FiberState.ACTIVE,\n FAILED: 3 as FiberState.FAILED,\n DISPOSED: 4 as FiberState.DISPOSED,\n UNLOADING: 5 as FiberState.UNLOADING,\n} as const\n\n/** One entry's projected state label (lower-case face of {@link FiberState}). */\nexport type LoaderEntryState = 'pending' | 'loading' | 'active' | 'failed' | 'disposed' | 'unloading'\n\n/** Label for each fiber state, keyed by member (inlining-safe — no reverse mapping). */\nexport const STATE_LABELS: Record<FiberState, LoaderEntryState> = {\n [FIBER_STATE.PENDING]: 'pending',\n [FIBER_STATE.LOADING]: 'loading',\n [FIBER_STATE.ACTIVE]: 'active',\n [FIBER_STATE.FAILED]: 'failed',\n [FIBER_STATE.DISPOSED]: 'disposed',\n [FIBER_STATE.UNLOADING]: 'unloading',\n}\n\n/** Per-entry state projection (AppRoot's status feed), keyed by entry name. */\nexport type LoaderStatus = Record<string, LoaderEntryState>\n\n/** Minimal observable snapshot the kernel components consume (useSyncExternalStore shape). */\nexport interface KernelSignal<T> {\n /** Current value (stable reference between changes). */\n getSnapshot: () => T\n /**\n * Subscribe to changes.\n * @param fn - change listener.\n * @returns the unsubscribe disposer.\n */\n subscribe: (fn: () => void) => () => void\n}\n\n/** Writable one-value signal (settled flag, boot failure report). */\nexport interface KernelValueSignal<T> extends KernelSignal<T> {\n /**\n * Publish a new value and notify subscribers.\n * @param next - the new value.\n */\n set: (next: T) => void\n}\n\n/**\n * Create a writable kernel signal.\n * @param init - initial value.\n * @returns the signal.\n */\nexport function createSignal<T>(init: T): KernelValueSignal<T> {\n let value = init\n const listeners = new Set<() => void>()\n return {\n getSnapshot: () => value,\n subscribe: (fn) => { listeners.add(fn); return () => { listeners.delete(fn) } },\n set: (next) => {\n value = next\n for (const fn of [...listeners]) fn()\n },\n }\n}\n\n/** The boot status store: per-entry rows over a {@link KernelSignal} face. */\nexport interface LoaderStatusStore extends KernelSignal<LoaderStatus> {\n /**\n * Project one entry's state (copy-on-write so getSnapshot references only\n * change on writes — useSyncExternalStore contract).\n * @param id - entry name.\n * @param state - projected fiber state.\n */\n set: (id: string, state: LoaderEntryState) => void\n}\n\n/**\n * Create the boot status store.\n * @returns the store (empty until the boot chain projects rows).\n */\nexport function createLoaderStatusStore(): LoaderStatusStore {\n let value: LoaderStatus = {}\n const listeners = new Set<() => void>()\n return {\n getSnapshot: () => value,\n subscribe: (fn) => { listeners.add(fn); return () => { listeners.delete(fn) } },\n set: (id, state) => {\n value = { ...value, [id]: state }\n for (const fn of [...listeners]) fn()\n },\n }\n}\n","/**\n * Web shell boot kernel — the face consumed by the apps/web entry. Everything\n * here is machinery that cannot itself be a loader entry, and none of it\n * value-imports a plugin package (shell self-sufficiency rule: the\n * loading page must work while — especially when — plugins fail). The one\n * sanctioned exception is the modules package (bootstrap\n * identity): the module system cannot arrive through itself, so its class\n * and its client-half wrapper are shell-bundled and the kernel adopts its\n * plugin entry once cordis is up.\n *\n * AppWebEntry.run(), module face first, then plugin face: parse\n * `window.__XRK_BOOT__` into the two-view BootManifest (wire boundary)\n * → build the module system over the module-view rows → render the loading\n * page → prefetch every `immediately` row in parallel with mounting the\n * vendored cordis Loader (`internal` contract injection BEFORE any entry exists —\n * the bare-import fallback in tree.import must never run in a browser) →\n * await the prefetch tier, THEN adopt the modules entry and create one\n * loader entry per plugin-view row plus the shell-own app-shell assembly\n * entry → loader.await() + a full fiber sweep (all ACTIVE, else fail\n * listing who/what/which service) → flip the settled signal so AppRoot\n * switches to the real UI in one pass.\n *\n * Entry creation waits for the whole immediately tier: materialization runs\n * synchronous cross-package require edges (e.g. locale → runtime/client) that\n * fiber inject waiting cannot protect — a bundle's factory must be\n * registered before any dependent entry materializes. Per-row prefetch\n * failures still resolve silently (the create-side import reloads and\n * owns the loud failure), so the barrier never turns one bad bundle into a\n * boot-wide fail-fast.\n *\n * Composition lives in the host graph; the shell makes zero composition\n * decisions (the app-shell assembly is itself a graph entry, the only\n * shell-own module registered with the module system).\n */\nimport { Context } from '@xrkseek/cordis'\nimport Loader from '@xrkseek/cordis-plugin-loader'\nimport { createRoot, type Root } from 'react-dom/client'\nimport * as ModulesClient from '@xrkseek/client-modules/client'\nimport {\n ClientModuleSystem, parseBootManifest,\n type BootManifest, type ClientModuleSystemOptions, type XrkWindow,\n} from '@xrkseek/client-modules/client'\nimport * as AppShell from './app-shell.ts'\nimport { APP_SHELL_ID } from './app-shell.ts'\nimport { AppRoot } from './AppRoot.tsx'\nimport { getStaticModules } from './seed.ts'\nimport { STATE_LABELS, createLoaderStatusStore, createSignal } from './loader-status.ts'\nimport './base.css'\n\n/** Module transport hook the shell passes through (jsdom tests replace the <script> path). */\nexport type BootSeams = Pick<ClientModuleSystemOptions, 'loadBundle'>\n\n/**\n * The modules package's own graph row id. The kernel adopts that entry\n * itself (its wrapper is statically registered — shell-bundled code, never\n * fetched), so the plugin-row loop must skip it: the vendored Group.create\n * does not deduplicate by name, and a second fiber would provide 'modules'\n * twice.\n */\nconst MODULES_ID = '@xrkseek/client-modules'\n\n/**\n * The web shell kernel: mounts the loading page into a DOM element and runs\n * the two-stage boot over the host graph. Fields hold only what must exist\n * before cordis does — the parsed manifest, the module system, and the\n * loading-page UI handles; everything else lives in plugins.\n */\nexport class AppWebEntry {\n private readonly el: HTMLElement\n private readonly seams: BootSeams | undefined\n private readonly status = createLoaderStatusStore()\n private readonly settled = createSignal(false)\n private readonly error = createSignal<string | undefined>(undefined)\n // Assigned by run() before any private method or settled-gated closure reads them.\n private ctx!: Context\n private modules!: ClientModuleSystem\n private manifest!: BootManifest\n private root: Root | undefined\n\n /**\n * Hold the mount point; all work happens in {@link run}.\n * @param el - mount point (the app's #root).\n * @param seams - Optional module transport overrides for test environments.\n */\n constructor(el: HTMLElement, seams?: BootSeams) {\n this.el = el\n this.seams = seams\n }\n\n /**\n * Run the boot chain to settlement. Boot-chain failures resolve (not\n * reject): the loading page stays up and renders the failure report (the\n * fail-loud surface the kernel owns). Rejects only when the boot manifest\n * is missing or malformed — there is nothing to boot against.\n * @returns resolves once the UI settled or the failure report rendered.\n */\n async run(): Promise<void> {\n this.manifest = parseBootManifest((globalThis as XrkWindow).__XRK_BOOT__)\n\n this.modules = new ClientModuleSystem({\n modules: this.manifest.modules, staticModules: getStaticModules(), ...this.seams,\n })\n // The app-shell assembly is the only shell-own module: every other graph\n // row is a plugin bundle arriving through fetch.\n this.modules.registerStatic(APP_SHELL_ID, AppShell)\n // Adoption handoff, supply side: register the modules\n // package's own client half under its bare package name (= graph row id\n // = entry name — a suffixed key would miss the statics branch and\n // trigger a real fetch), and put the instance on the kernel slot the\n // wrapper's apply reads to provide ctx.modules.\n this.modules.registerStatic(MODULES_ID, ModulesClient)\n ;(globalThis as XrkWindow).__XRK_MODULES__ = this.modules\n\n this.root = createRoot(this.el)\n this.root.render(\n <AppRoot\n settled={this.settled}\n status={this.status}\n error={this.error}\n renderApp={() => {\n const shell = this.ctx.get('appShell')\n // Unreachable after a clean settle (the app-shell entry is in every graph).\n if (shell === undefined) throw new Error('web boot: appShell service missing after settled')\n return shell.renderApp()\n }}\n />,\n )\n\n // The immediately tier prefetches in parallel with Loader mounting;\n // runPluginBoot awaits it before creating entries (see module comment:\n // cross-package synchronous require edges need every immediately-tier\n // factory registered before any materialization).\n const prefetching = this.prefetchImmediateTier()\n this.ctx = new Context()\n try {\n await this.runPluginBoot(prefetching)\n this.settled.set(true)\n } catch (reason) {\n // Stay on the loading page; surface the sweep report (fail loud).\n console.error(reason)\n this.error.set(reason instanceof Error ? reason.message : String(reason))\n }\n }\n\n /** Unmount the shell (loading page or settled UI). */\n dispose(): void {\n this.root?.unmount()\n }\n\n /** Prefetch the immediately tier (factory registration only; failures defer to the import path). */\n private async prefetchImmediateTier(): Promise<void> {\n await Promise.all(this.manifest.plugins\n .filter(row => row.immediately)\n .map(row => this.modules.prefetch(row.id).catch(() => {\n // Import reloads and reports this loudly per entry; swallowing\n // here keeps one failing prefetch from masking the others.\n })))\n }\n\n /** Plugin face: mount the Loader, inject the `internal` contract, adopt modules, create the graph entries, settle, sweep. */\n private async runPluginBoot(prefetching: Promise<void>): Promise<void> {\n const ctx = this.ctx\n await ctx.plugin(Loader)\n const loader = ctx.loader\n // Inject the module system BEFORE any entry exists: tree.import falls back\n // to a bare dynamic import when internal is undefined, which in a browser\n // is a guaranteed loud failure — correct as a tripwire, never as a path.\n loader.internal = this.modules as never\n\n // Status projection: AppRoot displays fiber truth. Every internal/status\n // transition under an entry re-projects that entry's row from its ROOT\n // fiber (child plugin fibers share the same entry).\n ctx.on('internal/status', (fiber) => {\n const entry = fiber.entry\n if (entry === undefined || entry.fiber === undefined) return\n this.status.set(entry.options.name, STATE_LABELS[entry.fiber.state])\n })\n\n // Barrier before any entry exists: entry creation materializes bundles,\n // and materialization runs synchronous cross-package require edges that\n // need every immediately-tier factory already registered (module\n // comment). Resolves even when individual prefetches failed.\n await prefetching\n\n // Adoption handoff, plugin side: the modules entry is created first —\n // its wrapper apply reads the kernel slot and provides ctx.modules (the\n // provide lives on the plugin face; see MODULES_ID for why the row loop\n // must then skip it).\n const rows = [MODULES_ID, ...this.manifest.plugins.map(row => row.id).filter(id => id !== MODULES_ID), APP_SHELL_ID]\n // Entry creation order carries no semantics (fiber inject waiting owns\n // activation order); creating concurrently lets non-prefetched bundle\n // loads parallelize. The app-shell assembly entry is appended by the\n // kernel: it is shell-own code (host graph rows are all plugin bundles),\n // and mounting the assembly is not a composition decision — it rides the\n // same entry lifecycle so the sweep and status cover it uniformly.\n await Promise.all(rows.map(async (name) => {\n this.status.set(name, 'loading')\n const id = await loader.create({ name })\n // A failed import leaves the entry fiberless (Entry._init logs and\n // returns); project it as failed — no fiber means no status event.\n if (loader.resolve(id).fiber === undefined) {\n this.status.set(name, 'failed')\n }\n }))\n\n await loader.await()\n this.assertEntriesActive()\n }\n\n /**\n * Sweep every loader entry after the tree quiesced: an entry without a\n * fiber failed its import; a fiber not ACTIVE is FAILED (apply threw) or\n * PENDING (a required service never arrived — cordis inject waiting has no\n * timeout, so this sweep is the fail-loud compensation).\n */\n private assertEntriesActive(): void {\n const ctx = this.ctx\n const failures: string[] = []\n for (const entry of ctx.loader.entries()) {\n const name = entry.options.name\n if (entry.fiber === undefined) {\n failures.push(`${name}: import failed (see console for the import error)`)\n continue\n }\n const state = STATE_LABELS[entry.fiber.state]\n if (state === 'active') continue\n if (state === 'pending') {\n const missing = Object.keys(entry.fiber.inject).filter(service => ctx.get(service) === undefined)\n failures.push(`${name}: pending (waiting for service${missing.length === 1 ? '' : 's'}: ${missing.join(', ') || 'unknown'})`)\n } else {\n failures.push(`${name}: ${state}`)\n }\n }\n if (failures.length > 0) {\n throw new Error(`web boot: ${String(failures.length)} entr${failures.length === 1 ? 'y' : 'ies'} did not activate\\n${failures.join('\\n')}`)\n }\n }\n}\n","/**\n * Web application entry: thin bootstrap over the shell library. Everything —\n * loader holding, module-table seeding, AppRoot gate, plugin assembly — lives\n * in @xrkseek/client-web; this file only finds the mount point.\n */\nimport { AppWebEntry } from '@xrkseek/client-web'\n\nconst el = document.getElementById('root')\nif (el === null) throw new Error('web app: missing #root')\nvoid new AppWebEntry(el).run()\n"],"file":"assets/index-BwSJq-Ch.js"}
|