@openchambery/web 1.18.6-beta.2 → 1.19.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AssistantView-UVaw1RAT.js → AssistantView-CeUftH6a.js} +1 -1
- package/dist/assets/{ChatContainer-zSccf13Q.js → ChatContainer-CE5B7ZoY.js} +40 -40
- package/dist/assets/{ContextPanel-DKANu5iy.js → ContextPanel-DjVgMdd_.js} +3 -3
- package/dist/assets/{DiagramView-9wwHx8Iy.js → DiagramView-88VdZTFC.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-BtYQSQxQ.js → MarkdownRendererImpl-CEt2m_LG.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-BEfJw56D.js → MobileDetailNavigation-CHQkDyla.js} +1 -1
- package/dist/assets/{MobileShareBridge-B4jF-rd4.js → MobileShareBridge-MNVYAQpx.js} +1 -1
- package/dist/assets/{MobileSurface-DvlE0NBG.js → MobileSurface-Cy5O2ftE.js} +1 -1
- package/dist/assets/{MultiRunWindow-BuDo3yTU.js → MultiRunWindow-CkLAQu2a.js} +1 -1
- package/dist/assets/{SettingsView-Ba0GjXSY.js → SettingsView-BJsctYMK.js} +1 -1
- package/dist/assets/{SettingsWindow-CgqWX8Js.js → SettingsWindow-Cnpe6LNU.js} +1 -1
- package/dist/assets/{TerminalView-GXaU8rlU.js → TerminalView--pkloV1B.js} +1 -1
- package/dist/assets/{ToolOutputDialog-BcuHMHnh.js → ToolOutputDialog-UAKu6b6Z.js} +1 -1
- package/dist/assets/{appThemeRegistry-CLjiViwW.js → appThemeRegistry-rYIBRFtf.js} +2 -2
- package/dist/assets/{gitApi-CxLNbBFt.js → gitApi-DFM6mFMX.js} +1 -1
- package/dist/assets/{insertionBoundaries-BTv63AVC.js → insertionBoundaries-TTdO3GIW.js} +1 -1
- package/dist/assets/{main-DR9bLcKf.js → main-8ssH8Y4M.js} +2 -2
- package/dist/assets/{main-BN39G1qA.js → main-C4oheRdM.js} +3 -3
- package/dist/assets/{miniChat-BYQ8kidO.js → miniChat-BqeOJlOz.js} +2 -2
- package/dist/assets/{mobile-CyX0VsuX.js → mobile-DUjVfFN8.js} +2 -2
- package/dist/assets/{multirun-DjlyWjFR.js → multirun-BXVQPFEG.js} +1 -1
- package/dist/assets/{projectMeta-CjpoBUxs.js → projectMeta-BhIldO_1.js} +1 -1
- package/dist/assets/{radio-DOxqquGo.js → radio-C9bw93S2.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-2GN_GTBr.js → renderElectronMiniChatApp-B2ocXqU0.js} +2 -2
- package/dist/assets/{renderMobileApp-DnkZHS_1.js → renderMobileApp-t_yjiog8.js} +4 -4
- package/dist/assets/{runtimeConfig-GN5AuQcD.js → runtimeConfig-DYtQIAm-.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-DLuAPe4Q.js → runtimeEndpointReset-ZrxbCvpe.js} +1 -1
- package/dist/assets/{shikiHighlight-DnAQteX_.js → shikiHighlight-p0HAuVf6.js} +1 -1
- package/dist/assets/{useAppFontEffects-BOvljizK.js → useAppFontEffects-apga0HM5.js} +2 -2
- package/dist/assets/{useDesktopWindowControlsLayout-CWyH7oau.js → useDesktopWindowControlsLayout-CB7n5UfN.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-Y7xU9buW.js → useEffectiveDirectory-Dc_c8Epe.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-z5G3RKad.js → useMobileNavigationStore-FXDlG_jH.js} +1 -1
- package/dist/assets/{useSessionAutoCleanup-Du1r-7lN.js → useSessionAutoCleanup-CJ7ugpXZ.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-Cr9nUf0o.js → useWorkerHighlightedLines-CVxu41TS.js} +1 -1
- package/dist/assets/vendor-legendapp-list-WE32lwNk.js +1 -0
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{j as t,t as n}from"./useUIStore-DzwCfRqr.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-6sclr7B6.js";import{h as s}from"./desktopHosts-Txp4xOVQ.js";import{i as c,n as l,r as u}from"./desktopRelayRestore-C_FSEHKM.js";import{nt as d,rt as f}from"./vendor-base-ui-CnHfUmDN.js";import{Nt as p}from"./platform-CbeLpKPk.js";import{n as m}from"./vendor-react-DLPElpoQ.js";import{n as h}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as g,r as _}from"./vendor-tanstack-react-query-D7pys_c9.js";import{n as v}from"./clipboard-DWuULPzo.js";import{i as y,t as b}from"./store-DQY8Fkb0.js";import{_r as x,br as ee,ca as S,cr as C,l as w,mr as te}from"./useMobileNavigationStore-z5G3RKad.js";import{t as ne}from"./utils-B1EK5zKa.js";import{i as re,n as ie,r as ae,t as oe}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as se,r as ce}from"./radio-DOxqquGo.js";var T=m(),E=[`desktopHostSwitch`],D=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},le=(e,t)=>b(y.getState().dictionary,e,t),ue=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new D({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:u(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new D(r,n);return r},O=null,de=()=>O||(O=new h(o,{mutationKey:E,mutationFn:ue,onError:(e,t)=>{e instanceof D&&e.result.reason!==`unsupported`&&ee.error(le(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),O.subscribe(()=>void 0),O),fe=async e=>{if(l(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:E})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await de().mutate(e)}catch(e){if(e instanceof D)return e.result;throw e}},pe=()=>{let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:E},e[0]=t):t=e[0],_(t)>0},me=()=>{let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:E,status:`pending`},select:he},e[0]=t):t=e[0],g(t)[0]?.host.id??null};function he(e){return e.state.variables}var k=e=>typeof e==`object`&&!!e,A=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},j=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},M=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},N=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],P=()=>r()?(e,t)=>a(e,t):null,F=e=>{if(!k(e))return;let t=M(e,`enabled`)??!1,n=A(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=A(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},ge=e=>e===`remote`||e===`dynamic`?e:`local`,_e=e=>{if(!k(e))return null;let t=A(e,`id`);if(!t)return null;let n=M(e,`enabled`)??!0,r=ge(A(e,`type`)),i=A(e,`localHost`)||A(e,`local_host`)||void 0,a=j(e,`localPort`)??j(e,`local_port`)??void 0,o=A(e,`remoteHost`)||A(e,`remote_host`)||void 0,s=j(e,`remotePort`)??j(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ve=e=>{if(!k(e))return null;let t=A(e,`id`),n=A(e,`sshCommand`)||A(e,`ssh_command`);if(!t||!n)return null;let r=A(e,`nickname`),i=e.sshParsed,a=k(i)?{destination:A(i,`destination`)||``,args:N(i.args)}:void 0,o=k(e.remoteOpenchamber)?e.remoteOpenchamber:k(e.remote_openchamber)?e.remote_openchamber:{},s=k(e.localForward)?e.localForward:k(e.local_forward)?e.local_forward:{},c=k(e.auth)?e.auth:{},l=A(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=A(o,`installMethod`)||A(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=A(s,`bindHost`)||A(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>_e(e)).filter(e=>!!e),h=j(o,`preferredPort`)??j(o,`preferred_port`),g=j(s,`preferredLocalPort`)??j(s,`preferred_local_port`),_=F(c.sshPassword||c.ssh_password),v=F(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:j(e,`connectionTimeoutSec`)??j(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:M(o,`keepRunning`)??M(o,`keep_running`)??!0,relayHost:M(o,`relayHost`)??M(o,`relay_host`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:M(o,`uploadBundleOverSsh`)??M(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},ye=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},I=e=>{if(!k(e))return null;let t=A(e,`id`);return t?{id:t,phase:ye(A(e,`phase`)),...A(e,`detail`)?{detail:A(e,`detail`)||void 0}:{},...A(e,`localUrl`)||A(e,`local_url`)?{localUrl:A(e,`localUrl`)||A(e,`local_url`)||void 0}:{},...typeof(j(e,`localPort`)??j(e,`local_port`))==`number`?{localPort:j(e,`localPort`)??j(e,`local_port`)??void 0}:{},...typeof(j(e,`remotePort`)??j(e,`remote_port`))==`number`?{remotePort:j(e,`remotePort`)??j(e,`remote_port`)??void 0}:{},startedByUs:M(e,`startedByUs`)??M(e,`started_by_us`)??!1,retryAttempt:j(e,`retryAttempt`)??j(e,`retry_attempt`)??0,requiresUserAction:M(e,`requiresUserAction`)??M(e,`requires_user_action`)??!1,...A(e,`errorCode`)||A(e,`error_code`)?{errorCode:A(e,`errorCode`)||A(e,`error_code`)||void 0}:{},updatedAtMs:j(e,`updatedAtMs`)??j(e,`updated_at_ms`)??Date.now()}:null},be=e=>{if(!k(e))return null;let t=A(e,`host`),n=A(e,`source`),r=A(e,`sshCommand`)||A(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:M(e,`pattern`)??!1}},xe=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,relayHost:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Se=async()=>{let e=P();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return k(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ve(e)).filter(e=>!!e)}:{instances:[]}},Ce=async e=>{let t=P();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},we=async()=>{let e=P();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>be(e)).filter(e=>!!e):[]},Te=async e=>{let t=P();t&&await t(`desktop_ssh_connect`,{id:e})},Ee=async e=>{let t=P();t&&await t(`desktop_ssh_disconnect`,{id:e})},De=async e=>{let t=P();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>I(e)).filter(e=>!!e):[]},Oe=async(e,t)=>{let n=P();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},ke=async e=>{let t=P();t&&await t(`desktop_ssh_logs_clear`,{id:e})},Ae=(e,t)=>{let n=Math.max(0,Math.trunc(Number(e.fileGroups)||0)),r=Math.max(0,Math.trunc(Number(e.singleFiles)||0)),i=Math.max(0,Math.trunc(Number(e.directories)||0));return{fileGroups:Array.from({length:n},()=>!0),singleFiles:Array.from({length:r},()=>!0),directories:Array.from({length:i},()=>!0),agentsRoot:!0,authFile:t?.includeAuthFile===!0}},je=e=>{if(!k(e))return null;let t=A(e,`path`),n=j(e,`bytes`);return!t||n===null?null:{path:t,bytes:n}},Me=e=>{if(!k(e))return null;let t=A(e,`path`),n=j(e,`fileCount`)??j(e,`file_count`),r=j(e,`bytes`);return!t||n===null||r===null?null:{path:t,fileCount:n,bytes:r}},Ne=e=>{if(e==null||!k(e))return null;let t=j(e,`fileCount`)??j(e,`file_count`),n=j(e,`bytes`);return t===null||n===null?null:{fileCount:t,bytes:n}},L=e=>{if(e==null||!k(e))return null;let t=j(e,`bytes`);return t===null?null:{bytes:t}},R=e=>{if(!k(e))return null;let t=Array.isArray(e.files)?e.files:null,n=Array.isArray(e.directories)?e.directories:null,r=N(e.deletes),i=j(e,`totalBytes`)??j(e,`total_bytes`);if(!t||!n||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=t.map(e=>je(e)).filter(e=>!!e),o=n.map(e=>Me(e)).filter(e=>!!e);if(a.length!==t.length||o.length!==n.length)return null;let s=e.agentsRoot??e.agents_root,c=s==null?null:Ne(s);if(s!=null&&c===null)return null;let l=e.authFile??e.auth_file,u=l==null?null:L(l),d=e.direction===`pull`||e.direction===`push`?e.direction:void 0,f=e.selections,p=k(f)?{fileGroups:Array.isArray(f.fileGroups)?f.fileGroups.map(e=>e!==!1):[],singleFiles:Array.isArray(f.singleFiles)?f.singleFiles.map(e=>e!==!1):[],directories:Array.isArray(f.directories)?f.directories.map(e=>e!==!1):[],agentsRoot:f.agentsRoot!==!1,authFile:f.authFile===!0}:void 0,m=z(e.selectionShape??e.selection_shape);return{files:a,directories:o,agentsRoot:c,authFile:u,deletes:r,totalBytes:i,...d?{direction:d}:{},...p?{selections:p}:{},...m?{selectionShape:m}:{}}},z=e=>{if(!k(e))return null;let t=j(e,`fileGroups`)??j(e,`file_groups`),n=j(e,`singleFiles`)??j(e,`single_files`),r=j(e,`directories`);return t===null||n===null||r===null||t<0||n<0||r<0?null:{fileGroups:t,singleFiles:n,directories:r}},Pe=e=>{if(!k(e))return null;let t=R(e.plan);if(!t)return null;let n=z(e.selectionShape??e.selection_shape)??t.selectionShape??null;return{plan:t,remoteExisting:N(e.remoteExisting??e.remote_existing),remoteAgentsRootExists:M(e,`remoteAgentsRootExists`)??M(e,`remote_agents_root_exists`)??!1,remoteAuthFileExists:M(e,`remoteAuthFileExists`)??M(e,`remote_auth_file_exists`)??!1,...typeof e.credentialAuthorized==`boolean`?{credentialAuthorized:e.credentialAuthorized}:{},...n?{selectionShape:n}:{}}},Fe=e=>{if(!k(e)||M(e,`ok`)!==!0)return null;let t=j(e,`files`),n=j(e,`directories`),r=j(e,`deletes`),i=j(e,`totalBytes`)??j(e,`total_bytes`);if(t===null||n===null||r===null||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=e.agentsRoot??e.agents_root,o=null;if(a!=null){if(!k(a))return null;let e=j(a,`fileCount`)??j(a,`file_count`);if(e===null)return null;o={fileCount:e}}let s=e.authFile??e.auth_file,c=s==null?null:L(s);return{ok:!0,files:t,directories:n,deletes:r,totalBytes:i,agentsRoot:o,authFile:c}},Ie=async(e={})=>{let t=P();if(!t)return console.error(`[desktopSsh] config sync local scan skipped: desktop IPC bridge is unavailable in this window`),null;let n=await t(`desktop_ssh_sync_opencode_config`,{stage:`local`,...e.direction?{direction:e.direction}:{},...e.selections?{selections:e.selections}:{}});if(!k(n))return console.error(`[desktopSsh] config sync local scan returned a non-object payload`,n),null;let r=R(n.plan);if(!r)return console.error(`[desktopSsh] config sync local scan plan payload was not recognized`,n),null;let i=z(n.selectionShape??n.selection_shape)??r.selectionShape??null;return i?{...r,selectionShape:i}:r},Le=async(e,t={})=>{let n=P();if(!n)return console.error(`[desktopSsh] config sync preview skipped: desktop IPC bridge is unavailable in this window`),null;let r=await n(`desktop_ssh_sync_opencode_config`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}}),i=Pe(r);return i||console.error(`[desktopSsh] config sync preview payload was not recognized`,r),i},Re=async(e,t={})=>{let n=P();if(!n)return console.error(`[desktopSsh] config sync apply skipped: desktop IPC bridge is unavailable in this window`),null;let r=await n(`desktop_ssh_sync_opencode_config`,{id:e,apply:!0,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}}),i=Fe(r);return i||console.error(`[desktopSsh] config sync apply payload was not recognized`,r),i},ze=async(e,t={})=>{let n=P();if(!n)return[];let r=await n(`desktop_ssh_sync_runs_list`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}});return Array.isArray(r)?r.filter(e=>k(e)&&typeof e.syncRunId==`string`&&typeof e.targetId==`string`):[]},B=e=>{if(!k(e))return null;let t=typeof e.targetId==`string`?e.targetId.trim():``;if(!t)return null;let n=e.authorized===!0,r=typeof e.grantedAt==`string`&&e.grantedAt.trim()?e.grantedAt.trim():void 0,i=typeof e.channel==`string`&&e.channel.trim()?e.channel.trim():void 0;return{targetId:t,authorized:n,...r?{grantedAt:r}:{},...i?{channel:i}:{}}},Be=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_get`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ve=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_grant`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},He=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_revoke`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ue=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=I(t?.payload);n&&e(n)});return async()=>{await n()}},We=new Set([`nodeRuntimeMissing`,`packageManagerMissing`,`nativeBinding`,`openchamberCliMissing`,`openchamberRegistry`,`openchamberInstall`,`openchamberCliIncompatible`,`opencodeInstall`,`serverStart`,`sshAuth`,`sshUnreachable`,`timeout`,`unknown`]),Ge=e=>typeof e==`string`&&We.has(e),Ke=e=>{let t=String(e||``);return/requires Node\.js \d+|no supported Node runtime/i.test(t)?`nodeRuntimeMissing`:/neither bun nor npm/i.test(t)?`packageManagerMissing`:/better-sqlite3|node_gyp_bins|gyp ERR|failed to prepare better-sqlite3/i.test(t)?`nativeBinding`:/OpenChamber installation completed but the executable is unavailable/i.test(t)?`openchamberCliMissing`:/could not reach the npm registry|ENOTFOUND|ECONNREFUSED|ETIMEDOUT|EAI_AGAIN|CERT_HAS_EXPIRED|UNABLE_TO_GET_ISSUER_CERT|self-signed certificate|registry\.npmjs|npm error code E404|npm ERR! code E404|getaddrinfo/i.test(t)?`openchamberRegistry`:/Failed to install OpenChamber/i.test(t)?`openchamberInstall`:/Unknown option:\s*--relay-host|does not advertise --relay-host|does not support --relay-host/i.test(t)||/Unknown option:/i.test(t)?`openchamberCliIncompatible`:/Failed to install OpenCode|OpenCode CLI/i.test(t)?`opencodeInstall`:/failed to become reachable|Managed OpenChamber server failed/i.test(t)?`serverStart`:/Permission denied|Authentication failed|publickey|keyboard-interactive/i.test(t)?`sshAuth`:/Could not resolve hostname|Connection refused|Connection timed out|ControlMaster connection timed out|SSH master process exited|Network is unreachable/i.test(t)?`sshUnreachable`:/Timed out waiting for SSH|Timed out waiting for forwarded/i.test(t)?`timeout`:`unknown`},V=(e,t)=>Ge(e)?e:Ke(t),qe=e=>{switch(e){case`nodeRuntimeMissing`:return`desktopHostSwitcher.sshError.nodeRuntimeMissing.title`;case`packageManagerMissing`:return`desktopHostSwitcher.sshError.packageManagerMissing.title`;case`nativeBinding`:return`desktopHostSwitcher.sshError.nativeBinding.title`;case`openchamberCliMissing`:return`desktopHostSwitcher.sshError.openchamberCliMissing.title`;case`openchamberRegistry`:return`desktopHostSwitcher.sshError.openchamberRegistry.title`;case`openchamberInstall`:return`desktopHostSwitcher.sshError.openchamberInstall.title`;case`openchamberCliIncompatible`:return`desktopHostSwitcher.sshError.openchamberCliIncompatible.title`;case`opencodeInstall`:return`desktopHostSwitcher.sshError.opencodeInstall.title`;case`serverStart`:return`desktopHostSwitcher.sshError.serverStart.title`;case`sshAuth`:return`desktopHostSwitcher.sshError.sshAuth.title`;case`sshUnreachable`:return`desktopHostSwitcher.sshError.sshUnreachable.title`;case`timeout`:return`desktopHostSwitcher.sshError.timeout.title`;default:return`desktopHostSwitcher.sshError.unknown.title`}},H=e=>{switch(e){case`nodeRuntimeMissing`:return`desktopHostSwitcher.sshError.nodeRuntimeMissing.guidance`;case`packageManagerMissing`:return`desktopHostSwitcher.sshError.packageManagerMissing.guidance`;case`nativeBinding`:return`desktopHostSwitcher.sshError.nativeBinding.guidance`;case`openchamberCliMissing`:return`desktopHostSwitcher.sshError.openchamberCliMissing.guidance`;case`openchamberRegistry`:return`desktopHostSwitcher.sshError.openchamberRegistry.guidance`;case`openchamberInstall`:return`desktopHostSwitcher.sshError.openchamberInstall.guidance`;case`openchamberCliIncompatible`:return`desktopHostSwitcher.sshError.openchamberCliIncompatible.guidance`;case`opencodeInstall`:return`desktopHostSwitcher.sshError.opencodeInstall.guidance`;case`serverStart`:return`desktopHostSwitcher.sshError.serverStart.guidance`;case`sshAuth`:return`desktopHostSwitcher.sshError.sshAuth.guidance`;case`sshUnreachable`:return`desktopHostSwitcher.sshError.sshUnreachable.guidance`;case`timeout`:return`desktopHostSwitcher.sshError.timeout.guidance`;default:return`desktopHostSwitcher.sshError.unknown.guidance`}},U=e=>e===`unknown`||e===`openchamberCliIncompatible`,Je=(e,t,n)=>{let r=typeof n==`string`?n.trim():``;return!U(t)||!r||r===e?e:`${e}\n${r}`},W=d();function Ye(e){let t=(0,T.c)(27),{errorCode:n,detail:r,className:i}=e,{t:a}=v(),o,s,c,l,u,d;if(t[0]!==i||t[1]!==r||t[2]!==n||t[3]!==a){let e=V(n,r);o=a(H(e));let f;t[10]===r?f=t[11]:(f=typeof r==`string`?r.trim():``,t[10]=r,t[11]=f),s=f,c=U(e)&&!!s&&s!==o,t[12]===i?d=t[13]:(d=ne(`space-y-1`,i),t[12]=i,t[13]=d),l=`typography-ui-label text-[var(--status-error)]`,u=a(qe(e)),t[0]=i,t[1]=r,t[2]=n,t[3]=a,t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d}else o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9];let f;t[14]!==l||t[15]!==u?(f=(0,W.jsx)(`p`,{className:l,children:u}),t[14]=l,t[15]=u,t[16]=f):f=t[16];let p;t[17]===o?p=t[18]:(p=(0,W.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:o}),t[17]=o,t[18]=p);let m;t[19]!==s||t[20]!==c?(m=c?(0,W.jsx)(`p`,{className:`typography-meta break-words text-muted-foreground`,children:s}):null,t[19]=s,t[20]=c,t[21]=m):m=t[21];let h;return t[22]!==d||t[23]!==f||t[24]!==p||t[25]!==m?(h=(0,W.jsxs)(`div`,{className:d,children:[f,p,m]}),t[22]=d,t[23]=f,t[24]=p,t[25]=m,t[26]=h):h=t[26],h}var Xe=`/auth/passkey/authenticate/options`,Ze=`/auth/passkey/authenticate/verify`,Qe=`/auth/passkey/register/options`,$e=`/auth/passkey/register/verify`,G=`/api/passkeys`,et=`/auth/passkey/status`,tt=`/api/auth/reset`,K={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},q=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),J=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},nt=e=>e instanceof re&&e.code===`ERROR_CEREMONY_ABORTED`,rt=()=>{ae.cancelCeremony()},Y=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},it=async()=>{let e=Y();if(!e.supported)throw Error(e.reason);let t=await q(Qe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await J(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await q($e,{requestId:n,response:await ie({optionsJSON:r})});if(!i.ok)throw Error(await J(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},at=async(e,t={})=>{let n=Y();if(!n.supported)throw Error(n.reason);let r=await q(Xe);if(!r.ok)throw Error(await J(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await q(Ze,{requestId:i,response:await oe({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await J(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},ot=async()=>{let e=await i(et,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return K;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},st=async()=>{let e=await i(G,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await J(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},ct=async e=>{let t=await i(`${G}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await J(t,`Could not remove passkey.`));return t.json().catch(()=>null)},lt=async()=>{let e=await q(tt);if(!e.ok)throw Error(await J(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},X=e=>b(y.getState().dictionary,e),ut=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),dt=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,ft=(e,t)=>e??dt(t),pt=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?ce(r,n,{fallback:t??``}):se(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},mt=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,ht=e=>e===`5h`?X(`quota.window.5h`):e===`7d`?X(`quota.window.7d`):e===`7d-sonnet`?X(`quota.window.7dSonnet`):e===`7d-opus`?X(`quota.window.7dOpus`):e===`weekly`?X(`quota.window.weekly`):e===`daily`?X(`quota.window.daily`):e===`monthly`?X(`quota.window.monthly`):e===`credits`?X(`quota.window.credits`):e===`credits_balance`?X(`quota.window.creditsBalance`):e===`billing_cycle`?X(`quota.window.billingCycle`):e===`auto`?X(`quota.window.auto`):e===`api`?X(`quota.window.api`):e===`plan_limit`?X(`quota.window.planLimit`):e===`on_demand`?X(`quota.window.onDemand`):e===`session`?X(`quota.window.session`):e===`premium`?X(`quota.window.premium`):e===`chat`?X(`quota.window.chat`):e===`completions`?X(`quota.window.completions`):e===`premium_interactions`?X(`quota.window.premiumInteractions`):e,gt=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},_t=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=gt(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},vt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},yt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},bt=e=>Math.min(100,Math.max(0,e*100)),xt=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],St=`openchamber.pwaRecentSessions`,Ct=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,wt=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:xt.find(e=>Ct(e))??`browser`,Z=e(f(),1),Tt=864e5,Q=5,Et=864e5,$=e=>e.time?.updated??e.time?.created??0,Dt=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Q,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*Tt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},Ot=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=w(e=>e.currentSessionId),o=w(e=>e.isLoading),s=x(e=>e.activeSessions),c=x(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),m=n(e=>e.setAutoDeleteLastRunAt),[h,g]=Z.useState(!1),_=Z.useRef(!1);Z.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{C(S())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=Z.useMemo(()=>u<=0?[]:Dt({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=Z.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<Et)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await C(S());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=Dt({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return m(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await p.updateSession(n,{time:{archived:Date.now()}},a):await p.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?x.getState().archiveSessions(t):x.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),m(Date.now())}},[u,l,f,a,o,d,m]);return Z.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<Et||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Q,action:d}};export{Te as A,De as B,Ye as C,qe as D,H as E,we as F,Ue as G,Ie as H,Se as I,me as J,fe as K,Ce as L,Ve as M,He as N,Ae as O,Ee as P,Oe as R,ct as S,V as T,Le as U,Re as V,ze as W,st as _,_t as a,it as b,ft as c,vt as d,mt as f,ot as g,K as h,bt as i,Be as j,xe as k,yt as l,rt as m,St as n,ut as o,at as p,pe as q,wt as r,pt as s,Ot as t,ht as u,Y as v,Je as w,lt as x,nt as y,ke as z};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{j as t,t as n}from"./useUIStore-DzwCfRqr.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-6sclr7B6.js";import{h as s}from"./desktopHosts-Txp4xOVQ.js";import{i as c,n as l,r as u}from"./desktopRelayRestore-C_FSEHKM.js";import{nt as d,rt as f}from"./vendor-base-ui-CnHfUmDN.js";import{Nt as p}from"./platform-CbeLpKPk.js";import{n as m}from"./vendor-react-DLPElpoQ.js";import{n as h}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as g,r as _}from"./vendor-tanstack-react-query-D7pys_c9.js";import{n as v}from"./clipboard-DWuULPzo.js";import{i as y,t as b}from"./store-DQY8Fkb0.js";import{_r as x,br as ee,ca as S,cr as C,l as w,mr as te}from"./useMobileNavigationStore-FXDlG_jH.js";import{t as ne}from"./utils-B1EK5zKa.js";import{i as re,n as ie,r as ae,t as oe}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as se,r as ce}from"./radio-C9bw93S2.js";var T=m(),E=[`desktopHostSwitch`],D=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},le=(e,t)=>b(y.getState().dictionary,e,t),ue=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new D({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:u(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new D(r,n);return r},O=null,de=()=>O||(O=new h(o,{mutationKey:E,mutationFn:ue,onError:(e,t)=>{e instanceof D&&e.result.reason!==`unsupported`&&ee.error(le(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),O.subscribe(()=>void 0),O),fe=async e=>{if(l(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:E})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await de().mutate(e)}catch(e){if(e instanceof D)return e.result;throw e}},pe=()=>{let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:E},e[0]=t):t=e[0],_(t)>0},me=()=>{let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:E,status:`pending`},select:he},e[0]=t):t=e[0],g(t)[0]?.host.id??null};function he(e){return e.state.variables}var k=e=>typeof e==`object`&&!!e,A=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},j=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},M=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},N=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],P=()=>r()?(e,t)=>a(e,t):null,F=e=>{if(!k(e))return;let t=M(e,`enabled`)??!1,n=A(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=A(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},ge=e=>e===`remote`||e===`dynamic`?e:`local`,_e=e=>{if(!k(e))return null;let t=A(e,`id`);if(!t)return null;let n=M(e,`enabled`)??!0,r=ge(A(e,`type`)),i=A(e,`localHost`)||A(e,`local_host`)||void 0,a=j(e,`localPort`)??j(e,`local_port`)??void 0,o=A(e,`remoteHost`)||A(e,`remote_host`)||void 0,s=j(e,`remotePort`)??j(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ve=e=>{if(!k(e))return null;let t=A(e,`id`),n=A(e,`sshCommand`)||A(e,`ssh_command`);if(!t||!n)return null;let r=A(e,`nickname`),i=e.sshParsed,a=k(i)?{destination:A(i,`destination`)||``,args:N(i.args)}:void 0,o=k(e.remoteOpenchamber)?e.remoteOpenchamber:k(e.remote_openchamber)?e.remote_openchamber:{},s=k(e.localForward)?e.localForward:k(e.local_forward)?e.local_forward:{},c=k(e.auth)?e.auth:{},l=A(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=A(o,`installMethod`)||A(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=A(s,`bindHost`)||A(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>_e(e)).filter(e=>!!e),h=j(o,`preferredPort`)??j(o,`preferred_port`),g=j(s,`preferredLocalPort`)??j(s,`preferred_local_port`),_=F(c.sshPassword||c.ssh_password),v=F(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:j(e,`connectionTimeoutSec`)??j(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:M(o,`keepRunning`)??M(o,`keep_running`)??!0,relayHost:M(o,`relayHost`)??M(o,`relay_host`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:M(o,`uploadBundleOverSsh`)??M(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},ye=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},I=e=>{if(!k(e))return null;let t=A(e,`id`);return t?{id:t,phase:ye(A(e,`phase`)),...A(e,`detail`)?{detail:A(e,`detail`)||void 0}:{},...A(e,`localUrl`)||A(e,`local_url`)?{localUrl:A(e,`localUrl`)||A(e,`local_url`)||void 0}:{},...typeof(j(e,`localPort`)??j(e,`local_port`))==`number`?{localPort:j(e,`localPort`)??j(e,`local_port`)??void 0}:{},...typeof(j(e,`remotePort`)??j(e,`remote_port`))==`number`?{remotePort:j(e,`remotePort`)??j(e,`remote_port`)??void 0}:{},startedByUs:M(e,`startedByUs`)??M(e,`started_by_us`)??!1,retryAttempt:j(e,`retryAttempt`)??j(e,`retry_attempt`)??0,requiresUserAction:M(e,`requiresUserAction`)??M(e,`requires_user_action`)??!1,...A(e,`errorCode`)||A(e,`error_code`)?{errorCode:A(e,`errorCode`)||A(e,`error_code`)||void 0}:{},updatedAtMs:j(e,`updatedAtMs`)??j(e,`updated_at_ms`)??Date.now()}:null},be=e=>{if(!k(e))return null;let t=A(e,`host`),n=A(e,`source`),r=A(e,`sshCommand`)||A(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:M(e,`pattern`)??!1}},xe=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,relayHost:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Se=async()=>{let e=P();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return k(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ve(e)).filter(e=>!!e)}:{instances:[]}},Ce=async e=>{let t=P();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},we=async()=>{let e=P();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>be(e)).filter(e=>!!e):[]},Te=async e=>{let t=P();t&&await t(`desktop_ssh_connect`,{id:e})},Ee=async e=>{let t=P();t&&await t(`desktop_ssh_disconnect`,{id:e})},De=async e=>{let t=P();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>I(e)).filter(e=>!!e):[]},Oe=async(e,t)=>{let n=P();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},ke=async e=>{let t=P();t&&await t(`desktop_ssh_logs_clear`,{id:e})},Ae=(e,t)=>{let n=Math.max(0,Math.trunc(Number(e.fileGroups)||0)),r=Math.max(0,Math.trunc(Number(e.singleFiles)||0)),i=Math.max(0,Math.trunc(Number(e.directories)||0));return{fileGroups:Array.from({length:n},()=>!0),singleFiles:Array.from({length:r},()=>!0),directories:Array.from({length:i},()=>!0),agentsRoot:!0,authFile:t?.includeAuthFile===!0}},je=e=>{if(!k(e))return null;let t=A(e,`path`),n=j(e,`bytes`);return!t||n===null?null:{path:t,bytes:n}},Me=e=>{if(!k(e))return null;let t=A(e,`path`),n=j(e,`fileCount`)??j(e,`file_count`),r=j(e,`bytes`);return!t||n===null||r===null?null:{path:t,fileCount:n,bytes:r}},Ne=e=>{if(e==null||!k(e))return null;let t=j(e,`fileCount`)??j(e,`file_count`),n=j(e,`bytes`);return t===null||n===null?null:{fileCount:t,bytes:n}},L=e=>{if(e==null||!k(e))return null;let t=j(e,`bytes`);return t===null?null:{bytes:t}},R=e=>{if(!k(e))return null;let t=Array.isArray(e.files)?e.files:null,n=Array.isArray(e.directories)?e.directories:null,r=N(e.deletes),i=j(e,`totalBytes`)??j(e,`total_bytes`);if(!t||!n||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=t.map(e=>je(e)).filter(e=>!!e),o=n.map(e=>Me(e)).filter(e=>!!e);if(a.length!==t.length||o.length!==n.length)return null;let s=e.agentsRoot??e.agents_root,c=s==null?null:Ne(s);if(s!=null&&c===null)return null;let l=e.authFile??e.auth_file,u=l==null?null:L(l),d=e.direction===`pull`||e.direction===`push`?e.direction:void 0,f=e.selections,p=k(f)?{fileGroups:Array.isArray(f.fileGroups)?f.fileGroups.map(e=>e!==!1):[],singleFiles:Array.isArray(f.singleFiles)?f.singleFiles.map(e=>e!==!1):[],directories:Array.isArray(f.directories)?f.directories.map(e=>e!==!1):[],agentsRoot:f.agentsRoot!==!1,authFile:f.authFile===!0}:void 0,m=z(e.selectionShape??e.selection_shape);return{files:a,directories:o,agentsRoot:c,authFile:u,deletes:r,totalBytes:i,...d?{direction:d}:{},...p?{selections:p}:{},...m?{selectionShape:m}:{}}},z=e=>{if(!k(e))return null;let t=j(e,`fileGroups`)??j(e,`file_groups`),n=j(e,`singleFiles`)??j(e,`single_files`),r=j(e,`directories`);return t===null||n===null||r===null||t<0||n<0||r<0?null:{fileGroups:t,singleFiles:n,directories:r}},Pe=e=>{if(!k(e))return null;let t=R(e.plan);if(!t)return null;let n=z(e.selectionShape??e.selection_shape)??t.selectionShape??null;return{plan:t,remoteExisting:N(e.remoteExisting??e.remote_existing),remoteAgentsRootExists:M(e,`remoteAgentsRootExists`)??M(e,`remote_agents_root_exists`)??!1,remoteAuthFileExists:M(e,`remoteAuthFileExists`)??M(e,`remote_auth_file_exists`)??!1,...typeof e.credentialAuthorized==`boolean`?{credentialAuthorized:e.credentialAuthorized}:{},...n?{selectionShape:n}:{}}},Fe=e=>{if(!k(e)||M(e,`ok`)!==!0)return null;let t=j(e,`files`),n=j(e,`directories`),r=j(e,`deletes`),i=j(e,`totalBytes`)??j(e,`total_bytes`);if(t===null||n===null||r===null||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=e.agentsRoot??e.agents_root,o=null;if(a!=null){if(!k(a))return null;let e=j(a,`fileCount`)??j(a,`file_count`);if(e===null)return null;o={fileCount:e}}let s=e.authFile??e.auth_file,c=s==null?null:L(s);return{ok:!0,files:t,directories:n,deletes:r,totalBytes:i,agentsRoot:o,authFile:c}},Ie=async(e={})=>{let t=P();if(!t)return console.error(`[desktopSsh] config sync local scan skipped: desktop IPC bridge is unavailable in this window`),null;let n=await t(`desktop_ssh_sync_opencode_config`,{stage:`local`,...e.direction?{direction:e.direction}:{},...e.selections?{selections:e.selections}:{}});if(!k(n))return console.error(`[desktopSsh] config sync local scan returned a non-object payload`,n),null;let r=R(n.plan);if(!r)return console.error(`[desktopSsh] config sync local scan plan payload was not recognized`,n),null;let i=z(n.selectionShape??n.selection_shape)??r.selectionShape??null;return i?{...r,selectionShape:i}:r},Le=async(e,t={})=>{let n=P();if(!n)return console.error(`[desktopSsh] config sync preview skipped: desktop IPC bridge is unavailable in this window`),null;let r=await n(`desktop_ssh_sync_opencode_config`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}}),i=Pe(r);return i||console.error(`[desktopSsh] config sync preview payload was not recognized`,r),i},Re=async(e,t={})=>{let n=P();if(!n)return console.error(`[desktopSsh] config sync apply skipped: desktop IPC bridge is unavailable in this window`),null;let r=await n(`desktop_ssh_sync_opencode_config`,{id:e,apply:!0,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}}),i=Fe(r);return i||console.error(`[desktopSsh] config sync apply payload was not recognized`,r),i},ze=async(e,t={})=>{let n=P();if(!n)return[];let r=await n(`desktop_ssh_sync_runs_list`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}});return Array.isArray(r)?r.filter(e=>k(e)&&typeof e.syncRunId==`string`&&typeof e.targetId==`string`):[]},B=e=>{if(!k(e))return null;let t=typeof e.targetId==`string`?e.targetId.trim():``;if(!t)return null;let n=e.authorized===!0,r=typeof e.grantedAt==`string`&&e.grantedAt.trim()?e.grantedAt.trim():void 0,i=typeof e.channel==`string`&&e.channel.trim()?e.channel.trim():void 0;return{targetId:t,authorized:n,...r?{grantedAt:r}:{},...i?{channel:i}:{}}},Be=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_get`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ve=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_grant`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},He=async(e,t={})=>{let n=P();return n?B(await n(`desktop_ssh_credential_sync_revoke`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ue=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=I(t?.payload);n&&e(n)});return async()=>{await n()}},We=new Set([`nodeRuntimeMissing`,`packageManagerMissing`,`nativeBinding`,`openchamberCliMissing`,`openchamberRegistry`,`openchamberInstall`,`openchamberCliIncompatible`,`opencodeInstall`,`serverStart`,`sshAuth`,`sshUnreachable`,`timeout`,`unknown`]),Ge=e=>typeof e==`string`&&We.has(e),Ke=e=>{let t=String(e||``);return/requires Node\.js \d+|no supported Node runtime/i.test(t)?`nodeRuntimeMissing`:/neither bun nor npm/i.test(t)?`packageManagerMissing`:/better-sqlite3|node_gyp_bins|gyp ERR|failed to prepare better-sqlite3/i.test(t)?`nativeBinding`:/OpenChamber installation completed but the executable is unavailable/i.test(t)?`openchamberCliMissing`:/could not reach the npm registry|ENOTFOUND|ECONNREFUSED|ETIMEDOUT|EAI_AGAIN|CERT_HAS_EXPIRED|UNABLE_TO_GET_ISSUER_CERT|self-signed certificate|registry\.npmjs|npm error code E404|npm ERR! code E404|getaddrinfo/i.test(t)?`openchamberRegistry`:/Failed to install OpenChamber/i.test(t)?`openchamberInstall`:/Unknown option:\s*--relay-host|does not advertise --relay-host|does not support --relay-host/i.test(t)||/Unknown option:/i.test(t)?`openchamberCliIncompatible`:/Failed to install OpenCode|OpenCode CLI/i.test(t)?`opencodeInstall`:/failed to become reachable|Managed OpenChamber server failed/i.test(t)?`serverStart`:/Permission denied|Authentication failed|publickey|keyboard-interactive/i.test(t)?`sshAuth`:/Could not resolve hostname|Connection refused|Connection timed out|ControlMaster connection timed out|SSH master process exited|Network is unreachable/i.test(t)?`sshUnreachable`:/Timed out waiting for SSH|Timed out waiting for forwarded/i.test(t)?`timeout`:`unknown`},V=(e,t)=>Ge(e)?e:Ke(t),qe=e=>{switch(e){case`nodeRuntimeMissing`:return`desktopHostSwitcher.sshError.nodeRuntimeMissing.title`;case`packageManagerMissing`:return`desktopHostSwitcher.sshError.packageManagerMissing.title`;case`nativeBinding`:return`desktopHostSwitcher.sshError.nativeBinding.title`;case`openchamberCliMissing`:return`desktopHostSwitcher.sshError.openchamberCliMissing.title`;case`openchamberRegistry`:return`desktopHostSwitcher.sshError.openchamberRegistry.title`;case`openchamberInstall`:return`desktopHostSwitcher.sshError.openchamberInstall.title`;case`openchamberCliIncompatible`:return`desktopHostSwitcher.sshError.openchamberCliIncompatible.title`;case`opencodeInstall`:return`desktopHostSwitcher.sshError.opencodeInstall.title`;case`serverStart`:return`desktopHostSwitcher.sshError.serverStart.title`;case`sshAuth`:return`desktopHostSwitcher.sshError.sshAuth.title`;case`sshUnreachable`:return`desktopHostSwitcher.sshError.sshUnreachable.title`;case`timeout`:return`desktopHostSwitcher.sshError.timeout.title`;default:return`desktopHostSwitcher.sshError.unknown.title`}},H=e=>{switch(e){case`nodeRuntimeMissing`:return`desktopHostSwitcher.sshError.nodeRuntimeMissing.guidance`;case`packageManagerMissing`:return`desktopHostSwitcher.sshError.packageManagerMissing.guidance`;case`nativeBinding`:return`desktopHostSwitcher.sshError.nativeBinding.guidance`;case`openchamberCliMissing`:return`desktopHostSwitcher.sshError.openchamberCliMissing.guidance`;case`openchamberRegistry`:return`desktopHostSwitcher.sshError.openchamberRegistry.guidance`;case`openchamberInstall`:return`desktopHostSwitcher.sshError.openchamberInstall.guidance`;case`openchamberCliIncompatible`:return`desktopHostSwitcher.sshError.openchamberCliIncompatible.guidance`;case`opencodeInstall`:return`desktopHostSwitcher.sshError.opencodeInstall.guidance`;case`serverStart`:return`desktopHostSwitcher.sshError.serverStart.guidance`;case`sshAuth`:return`desktopHostSwitcher.sshError.sshAuth.guidance`;case`sshUnreachable`:return`desktopHostSwitcher.sshError.sshUnreachable.guidance`;case`timeout`:return`desktopHostSwitcher.sshError.timeout.guidance`;default:return`desktopHostSwitcher.sshError.unknown.guidance`}},U=e=>e===`unknown`||e===`openchamberCliIncompatible`,Je=(e,t,n)=>{let r=typeof n==`string`?n.trim():``;return!U(t)||!r||r===e?e:`${e}\n${r}`},W=d();function Ye(e){let t=(0,T.c)(27),{errorCode:n,detail:r,className:i}=e,{t:a}=v(),o,s,c,l,u,d;if(t[0]!==i||t[1]!==r||t[2]!==n||t[3]!==a){let e=V(n,r);o=a(H(e));let f;t[10]===r?f=t[11]:(f=typeof r==`string`?r.trim():``,t[10]=r,t[11]=f),s=f,c=U(e)&&!!s&&s!==o,t[12]===i?d=t[13]:(d=ne(`space-y-1`,i),t[12]=i,t[13]=d),l=`typography-ui-label text-[var(--status-error)]`,u=a(qe(e)),t[0]=i,t[1]=r,t[2]=n,t[3]=a,t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=d}else o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9];let f;t[14]!==l||t[15]!==u?(f=(0,W.jsx)(`p`,{className:l,children:u}),t[14]=l,t[15]=u,t[16]=f):f=t[16];let p;t[17]===o?p=t[18]:(p=(0,W.jsx)(`p`,{className:`typography-meta text-muted-foreground`,children:o}),t[17]=o,t[18]=p);let m;t[19]!==s||t[20]!==c?(m=c?(0,W.jsx)(`p`,{className:`typography-meta break-words text-muted-foreground`,children:s}):null,t[19]=s,t[20]=c,t[21]=m):m=t[21];let h;return t[22]!==d||t[23]!==f||t[24]!==p||t[25]!==m?(h=(0,W.jsxs)(`div`,{className:d,children:[f,p,m]}),t[22]=d,t[23]=f,t[24]=p,t[25]=m,t[26]=h):h=t[26],h}var Xe=`/auth/passkey/authenticate/options`,Ze=`/auth/passkey/authenticate/verify`,Qe=`/auth/passkey/register/options`,$e=`/auth/passkey/register/verify`,G=`/api/passkeys`,et=`/auth/passkey/status`,tt=`/api/auth/reset`,K={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},q=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),J=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},nt=e=>e instanceof re&&e.code===`ERROR_CEREMONY_ABORTED`,rt=()=>{ae.cancelCeremony()},Y=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},it=async()=>{let e=Y();if(!e.supported)throw Error(e.reason);let t=await q(Qe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await J(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await q($e,{requestId:n,response:await ie({optionsJSON:r})});if(!i.ok)throw Error(await J(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},at=async(e,t={})=>{let n=Y();if(!n.supported)throw Error(n.reason);let r=await q(Xe);if(!r.ok)throw Error(await J(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await q(Ze,{requestId:i,response:await oe({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await J(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},ot=async()=>{let e=await i(et,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return K;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},st=async()=>{let e=await i(G,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await J(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},ct=async e=>{let t=await i(`${G}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await J(t,`Could not remove passkey.`));return t.json().catch(()=>null)},lt=async()=>{let e=await q(tt);if(!e.ok)throw Error(await J(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},X=e=>b(y.getState().dictionary,e),ut=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),dt=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,ft=(e,t)=>e??dt(t),pt=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?ce(r,n,{fallback:t??``}):se(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},mt=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,ht=e=>e===`5h`?X(`quota.window.5h`):e===`7d`?X(`quota.window.7d`):e===`7d-sonnet`?X(`quota.window.7dSonnet`):e===`7d-opus`?X(`quota.window.7dOpus`):e===`weekly`?X(`quota.window.weekly`):e===`daily`?X(`quota.window.daily`):e===`monthly`?X(`quota.window.monthly`):e===`credits`?X(`quota.window.credits`):e===`credits_balance`?X(`quota.window.creditsBalance`):e===`billing_cycle`?X(`quota.window.billingCycle`):e===`auto`?X(`quota.window.auto`):e===`api`?X(`quota.window.api`):e===`plan_limit`?X(`quota.window.planLimit`):e===`on_demand`?X(`quota.window.onDemand`):e===`session`?X(`quota.window.session`):e===`premium`?X(`quota.window.premium`):e===`chat`?X(`quota.window.chat`):e===`completions`?X(`quota.window.completions`):e===`premium_interactions`?X(`quota.window.premiumInteractions`):e,gt=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},_t=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=gt(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},vt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},yt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},bt=e=>Math.min(100,Math.max(0,e*100)),xt=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],St=`openchamber.pwaRecentSessions`,Ct=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,wt=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:xt.find(e=>Ct(e))??`browser`,Z=e(f(),1),Tt=864e5,Q=5,Et=864e5,$=e=>e.time?.updated??e.time?.created??0,Dt=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Q,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*Tt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},Ot=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=w(e=>e.currentSessionId),o=w(e=>e.isLoading),s=x(e=>e.activeSessions),c=x(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),m=n(e=>e.setAutoDeleteLastRunAt),[h,g]=Z.useState(!1),_=Z.useRef(!1);Z.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{C(S())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=Z.useMemo(()=>u<=0?[]:Dt({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=Z.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<Et)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await C(S());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=Dt({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return m(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await p.updateSession(n,{time:{archived:Date.now()}},a):await p.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?x.getState().archiveSessions(t):x.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),m(Date.now())}},[u,l,f,a,o,d,m]);return Z.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<Et||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Q,action:d}};export{Te as A,De as B,Ye as C,qe as D,H as E,we as F,Ue as G,Ie as H,Se as I,me as J,fe as K,Ce as L,Ve as M,He as N,Ae as O,Ee as P,Oe as R,ct as S,V as T,Le as U,Re as V,ze as W,st as _,_t as a,it as b,ft as c,vt as d,mt as f,ot as g,K as h,bt as i,Be as j,xe as k,yt as l,rt as m,St as n,ut as o,at as p,pe as q,wt as r,pt as s,Ot as t,ht as u,Y as v,Je as w,lt as x,nt as y,ke as z};
|
package/dist/assets/{useWorkerHighlightedLines-Cr9nUf0o.js → useWorkerHighlightedLines-CVxu41TS.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-DzwCfRqr.js";import{$t as n,kn as r,xn as i}from"./persistence-6sclr7B6.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{n as s}from"./platform-CbeLpKPk.js";import{a as c,n as l}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as u}from"./vendor-react-DLPElpoQ.js";import{n as d}from"./clipboard-DWuULPzo.js";import{t as f}from"./utils-B1EK5zKa.js";import{n as p}from"./Icon-DpjYnXxn.js";import{t as m}from"./button-C7OXr4ae.js";import{i as h,n as g,t as _}from"./tooltip-D_orJMYd.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-B89dbj3N.js";import{i as w}from"./appThemeRegistry-CLjiViwW.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-W06-MhF5.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=u(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let m=u,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=c(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!s()||l===void 0?!1:l.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-DzwCfRqr.js";import{$t as n,kn as r,xn as i}from"./persistence-6sclr7B6.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{n as s}from"./platform-CbeLpKPk.js";import{a as c,n as l}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as u}from"./vendor-react-DLPElpoQ.js";import{n as d}from"./clipboard-DWuULPzo.js";import{t as f}from"./utils-B1EK5zKa.js";import{n as p}from"./Icon-DpjYnXxn.js";import{t as m}from"./button-C7OXr4ae.js";import{i as h,n as g,t as _}from"./tooltip-D_orJMYd.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-B89dbj3N.js";import{i as w}from"./appThemeRegistry-rYIBRFtf.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-W06-MhF5.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=u(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=d(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===o?u=t[4]:(u=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=u);let m=u,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=c(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!s()||l===void 0?!1:l.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),r=e=>/\(\s*File has more lines\..*offset.*\)/i.test(e.trim());return{type:t,lines:n.map(e=>{let n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);if(t!==`directory`){let t=e.match(/^(\d+):\s?(.*)$/);if(t){let e=t[2],n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);return{lineNumber:i?null:Number(t[1]),text:e,isInfo:i}}}return{lineNumber:null,text:e,isInfo:i}}).filter((e,t,n)=>{if(e.text.trim().length>0)return!0;let r=n[t-1],i=n[t+1],a=!!(r?.isInfo||i?.isInfo),o=e.lineNumber!==null;return!(a&&o)})}},je=(e,n)=>{try{let r=e.trim().split(`
|
|
4
4
|
`).filter(Boolean);if(r.length===0)return null;let i=[];return r.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,r=Math.floor(e.length/2),a=!n.endsWith(`/`);i.push({name:n.replace(/\/$/,``),depth:r,isFile:a})}}),(0,A.jsx)(`div`,{className:f(`w-full min-w-0 font-mono space-y-0.5`,n?.unstyled?null:`p-3 bg-muted/20 rounded-xl border border-border/30`),style:t.tool.popup,children:i.map((e,t)=>(0,A.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,A.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,A.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},Me={backgroundColor:`var(--status-info)`,opacity:.6},Ne=(e,n,r)=>{try{let i=e.trim().split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{et as t,rt as n,tt as r}from"./vendor-base-ui-CnHfUmDN.js";var i=e(n(),1),a=t(),o=e(r(),1);(0,i.forwardRef)(function(e,t){return i.createElement(`div`,{ref:t,...e})});var s=(0,i.forwardRef)(function(e,t){return i.createElement(`div`,{ref:t,...e})}),c=s,l={OS:`web`};function u(e,t){return t===void 0?e:Math.max(0,Math.min(t,e))}function d(e,t){return t===void 0||!Number.isFinite(t)||!Number.isFinite(e.scrollLength)||t<=e.scrollLength?t!==void 0&&Number.isFinite(t)&&Number.isFinite(e.scrollLength)?0:void 0:Math.max(0,t-e.scrollLength)}function f(){return`normal`}function p(e){return e?.horizontalRTLScrollType??f()}function m(e){return e?.rtl??!1}function h(e){return g(e?.props)}function g(e){return!!e?.horizontal&&m(e)}function _(e){return e?.horizontal?(g(e)?e.stylePaddingLeft:e.stylePaddingRight)||0:e?.stylePaddingBottom||0}function v(e,t){return t&&(h(e)?t.left:t.right)||0}function y(e,t,n,r){return!h(e)||r===void 0||!Number.isFinite(r)?t:Math.max(0,r-t-n)}function b(e,t,n){if(!e||!h(e))return t;let r=d(e,n),i=u(t,r),a=p(e);return a===`negative`?i===0?0:-i:a===`inverted`?r===void 0?i:u(r-i,r):i}function x(e,t,n){if(!h(e))return e.horizontalRTLScrollType=void 0,t;let r=d(e,n);if(t<0)return e.horizontalRTLScrollType=`negative`,u(-t,r);if(r===void 0)return t;let i=t,a=r-t;if(!Number.isFinite(a))return e.horizontalRTLScrollType=`normal`,i;let o=e.horizontalRTLScrollType;if(o===`inverted`)return u(a,r);if(o===`normal`)return u(i,r);if(!e.hasScrolled)return e.horizontalRTLScrollType=f(),u(i,r);let s=e.scroll,c=Math.abs(i-s),l=Math.abs(a-s)+.5<c;return e.horizontalRTLScrollType=l?`inverted`:`normal`,u(l?a:i,r)}var S=e=>e,C=i.createContext(null),w=`\0`,T=0;function E({children:e}){let[t]=i.useState(()=>({animatedScrollY:S(0),columnWrapperStyle:void 0,containerLayoutTriggers:new Map,contextNum:T++,listeners:new Map,mapViewabilityAmountCallbacks:new Map,mapViewabilityAmountValues:new Map,mapViewabilityCallbacks:new Map,mapViewabilityConfigStates:new Map,mapViewabilityValues:new Map,pendingContainerIds:void 0,positionListeners:new Map,scrollAxisGap:0,state:void 0,values:new Map([[`alignItemsAtEndPadding`,0],[`containerLayoutEpoch`,0],[`stylePaddingTop`,0],[`headerSize`,0],[`numContainers`,0],[`activeStickyIndex`,-1],[`isAtEnd`,!1],[`isAtStart`,!1],[`isNearEnd`,!1],[`isNearStart`,!1],[`isWithinMaintainScrollAtEndThreshold`,!1],[`adaptiveRender`,`normal`],[`totalSize`,0],[`scrollAdjustPending`,0]]),viewRefs:new Map}));return i.createElement(C.Provider,{value:t},e)}function D(){return i.useContext(C)}function O(e,t){if(!e){let e=[];return{get:()=>e,subscribe:()=>()=>{}}}let n=[],r=[];return{get:()=>{let i=[],a=!1;for(let n=0;n<t.length;n++){let o=M(e,t[n]);i.push(o),o!==r[n]&&(a=!0)}return r=i,a&&(n=i),n},subscribe:n=>{let r=[];for(let i of t)r.push(j(e,i,n));return()=>{for(let e of r)e()}}}}function k(e){return e.length===1?e[0]:e.join(w)}function A(e){return e.split(w)}function j(e,t,n){let{listeners:r}=e,i=r.get(t);return i||(i=new Set,r.set(t,i)),i.add(n),()=>i.delete(n)}function M(e,t){let{values:n}=e;return n.get(t)}function N(e,t,n){let{listeners:r,values:i}=e;if(i.get(t)!==n){i.set(t,n);let e=r.get(t);if(e)for(let t of e)t(n)}}function P(e,t,n){let{positionListeners:r}=e,i=r.get(t);return i||(i=new Set,r.set(t,i)),i.add(n),()=>i.delete(n)}function ee(e,t,n){let{positionListeners:r}=e,i=r.get(t);if(i)for(let e of i)e(n)}function F(e){let t=i.useContext(C),n=k(e),{subscribe:r,get:o}=i.useMemo(()=>O(t,A(n)),[t,n]);return(0,a.useSyncExternalStore)(r,o,o)}function I(e,t){let n=i.useContext(C),{subscribe:r,get:o}=i.useMemo(()=>O(n,[e]),[n,e]),s=i.useCallback(()=>t(o()[0]),[o,t]);return(0,a.useSyncExternalStore)(r,s,s)}function te(e){return Math.max(0,e??0)}function L(e,t){let n=e.state,{props:r}=n,i=r.horizontal,a=r.contentInset??n.nativeContentInset,o=(i?v(n,a):a?.bottom)||0,s=te(t??r.contentInsetEndAdjustment),c=M(e,`anchoredEndSpaceSize`),l=r.anchoredEndSpace&&c?c:0,u=n.contentInsetOverride??void 0,d=o+s;if(u){let e={bottom:0,left:0,right:0,...a,...u};return Math.max(((i?v(n,e):e.bottom)||0)+s,l)}return Math.max(d,l)}function R(e){let{values:t,state:n}=e,r=n.props.horizontal?n.props.stylePaddingLeft||0:t.get(`stylePaddingTop`)||0,i=n.props.horizontal?n.props.stylePaddingRight||0:n.props.stylePaddingBottom||0,a=t.get(`alignItemsAtEndPadding`)||0,o=t.get(`headerSize`)||0,s=t.get(`footerSize`)||0,c=L(e),l=n.pendingTotalSize??n.totalSize??t.get(`totalSize`),u=Math.max(0,l-(n.props.data.length>0?e.scrollAxisGap:0));return o+s+u+r+a+i+(c||0)}var z=({children:e})=>i.createElement(s,{style:{alignItems:`center`,flexDirection:`row`,justifyContent:`space-between`}},e);i.memo(function(){let e=D(),[t=0,n=0,r=0,a=0,o=0,l=0,u=!1]=F([`totalSize`,`scrollAdjust`,`debugRawScroll`,`debugComputedScroll`,`numContainers`,`numContainersPooled`,`isAtEnd`]),d=R(e),[,f]=(0,i.useReducer)(e=>e+1,0);return ne(()=>{f()},100),i.createElement(s,{pointerEvents:`none`,style:{backgroundColor:`#FFFFFFCC`,borderRadius:4,padding:4,paddingBottom:4,paddingLeft:4,position:`absolute`,right:0,top:0}},i.createElement(z,null,i.createElement(c,null,`TotalSize:`),i.createElement(c,null,t.toFixed(2))),i.createElement(z,null,i.createElement(c,null,`ContentSize:`),i.createElement(c,null,d.toFixed(2))),i.createElement(z,null,i.createElement(c,null,`At end:`),i.createElement(c,null,String(u))),i.createElement(z,null,i.createElement(c,null,`ScrollAdjust:`),i.createElement(c,null,n.toFixed(2))),i.createElement(z,null,i.createElement(c,null,`RawScroll: `),i.createElement(c,null,r.toFixed(2))),i.createElement(z,null,i.createElement(c,null,`ComputedScroll: `),i.createElement(c,null,a.toFixed(2))))});function ne(e,t){(0,i.useEffect)(()=>{let n=setInterval(e,t);return()=>clearInterval(n)},[t])}var re=!0,ie=new WeakMap;function B(e){return ie.get(e)}function ae(e,t){ie.set(e,t)}var oe=typeof __DEV__<`u`?__DEV__:void 0,V=typeof process<`u`?`production`:void 0,H=(typeof V==`string`?V.toLowerCase()!==`production`:void 0)??oe??!1,se=-1e7,ce=1,le=H&&!1,ue=H&&!1;function de({scheduledWork:e}){e.cancel(`checkFinishedScrollFrame`),e.cancel(`checkFinishedScrollRetryFrame`),e.cancel(`checkFinishedScrollFallback`),e.cancel(`platformScrollCompletion`)}function fe(e){let t=e.pendingScrollResolve??e.pendingScrollToEnd?.resolve;e.pendingScrollResolve=void 0,e.pendingScrollToEnd=void 0,t?.()}function pe(e){de(e),e.scheduledWork.cancel(`imperativeScrollReady`),e.scrollingTo=void 0,e.scrollTargetPinnedRange=void 0,fe(e)}function me(e,t,n){return{...t,nativeEvent:{...t.nativeEvent,contentOffset:e.props.horizontal?{x:n,y:0}:{x:0,y:n}}}}function he(e,t){var n,r;let i=e.state,a=i.deferredPublicOnScrollEvent;i.deferredPublicOnScrollEvent=void 0,a&&((r=(n=i.props).onScroll)==null||r.call(n,me(i,a,t??i.scrollPending??i.scroll??0)))}var ge=1;function _e(e){return!!(e?.didDispatchNativeScroll||e?.didRetrySilentInitialScroll||e?.watchdog)}function ve(e){e.initialScrollSession=void 0}function ye(e){let{bootstrap:t,completion:n,kind:r,previousDataLength:i}=e;return r===`offset`?{completion:n,kind:r,previousDataLength:i}:{bootstrap:t,completion:n,kind:r,previousDataLength:i}}function be(e,t=(t=>(t=(t=>(t=e.initialScrollSession)?.kind)())??`bootstrap`)()){var n;return e.initialScrollSession?e.initialScrollSession.kind!==t&&(e.initialScrollSession=ye({bootstrap:e.initialScrollSession.kind===`bootstrap`?e.initialScrollSession.bootstrap:void 0,completion:e.initialScrollSession.completion,kind:t,previousDataLength:e.initialScrollSession.previousDataLength})):e.initialScrollSession=ye({completion:{},kind:t,previousDataLength:0}),(n=e.initialScrollSession).completion??(n.completion={}),e.initialScrollSession.completion}var xe={didDispatchNativeScroll(e){return!!e.initialScrollSession?.completion?.didDispatchNativeScroll},didRetrySilentInitialScroll(e){return!!e.initialScrollSession?.completion?.didRetrySilentInitialScroll},markInitialScrollNativeDispatch(e){be(e).didDispatchNativeScroll=!0},markSilentInitialScrollRetry(e){be(e).didRetrySilentInitialScroll=!0},resetFlags(e){if(!e.initialScrollSession)return;let t=be(e,e.initialScrollSession.kind);t.didDispatchNativeScroll=void 0,t.didRetrySilentInitialScroll=void 0}},U={clear(e){U.set(e,void 0)},didReachTarget(e,t){return Math.abs(e-t.targetOffset)<=ge},get(e){return e.initialScrollSession?.completion?.watchdog},hasNonZeroTargetOffset(e){return e!==void 0&&e>ge},isAtZeroTargetOffset(e){return e<=ge},set(e,t){if(!t&&!e.initialScrollSession?.completion?.watchdog)return;let n=be(e);n.watchdog=t?{startScroll:t.startScroll,targetOffset:t.targetOffset}:void 0}};function W(e,t={}){let n=e.initialScrollSession,r=t.kind??n?.kind,i=n?.completion,a=n?.kind===`bootstrap`?n.bootstrap:void 0,o=r===`bootstrap`?t.bootstrap===null?void 0:t.bootstrap??a:void 0;return!r||!e.initialScroll&&!o&&!_e(i)?ve(e):(e.initialScrollSession=ye({bootstrap:o,completion:i,kind:r,previousDataLength:t.previousDataLength??n?.previousDataLength??0}),e.initialScrollSession)}var Se=1.3;function Ce(e,t,n){let r=Math.abs(e);return!t&&n>0&&r>=n*Se||!t&&n<=0&&r>0}var we=(e,t,n,r,i,a,o,s)=>{let c=t||n>0&&Math.abs(e)<=n,l=()=>{s({atThreshold:t,contentSize:a.contentSize,dataLength:a.dataLength,scrollPosition:a.scrollPosition})};return r?Ce(e,t,n)?(s(void 0),!1):(c&&(!i||i.atThreshold!==t||i.contentSize!==a.contentSize||i.dataLength!==a.dataLength)&&l(),!0):c?(o(e),l(),!0):!1};function Te(e,t){let n=e.state;t===`start`?(n.isStartReached=!1,n.startReachedSnapshot=void 0):(n.isEndReached=!1,n.endReachedSnapshot=void 0)}function Ee(e){let t=e.state;if(!t.edgeReachedGate)return;let n=R(e),r=n-t.scroll-t.scrollLength-L(e),i=n<t.scrollLength,a=t.props.onStartReachedThreshold*t.scrollLength,o=t.props.onEndReachedThreshold*t.scrollLength,s=Ce(t.scroll,!1,a),c=Ce(r,i,o);s&&c&&(t.edgeReachedGate=void 0)}function De(e,t,n,r){return!e.state.edgeReachedGate||n===t||!!r}function Oe(e){e.state.edgeReachedGate=`closed`}function ke(e){e.state.edgeReachedGate&&(e.state.edgeReachedGate=`prepared`)}function G(e,t){let n=e.state;if(n.edgeReachedGate!==`prepared`)return;let r=t<0?`start`:`end`;return n.edgeReachedGate=`closed`,Te(e,r),r}function Ae(e){return!!e?.initialScroll&&!e.didFinishInitialScroll}function je(e,t,n){let r=e.state;if(!r)return;let{queuedInitialLayout:i,scrollLength:a,scroll:o,maintainingScrollAtEnd:s,props:{maintainScrollAtEndThreshold:c,onEndReachedThreshold:l}}=r,u=R(e);if(Ee(e),r.props.data.length===0&&a>0&&u<=a){N(e,`isAtEnd`,!0),N(e,`isNearEnd`,!0),N(e,`isWithinMaintainScrollAtEndThreshold`,!0);return}if(u>0&&i){let i=L(e),d=u-o-a-i,f=u<a;N(e,`isAtEnd`,f||d<=ce),N(e,`isNearEnd`,f||d<=l*a),N(e,`isWithinMaintainScrollAtEndThreshold`,f||d<=c*a||r.pendingMaintainScrollAtEnd||s===`animated`||s===`instant`),Ae(r)||s||(r.isEndReached=we(d,f,l*a,r.isEndReached,r.endReachedSnapshot,{contentSize:u,dataLength:r.props.data?.length,scrollPosition:o},i=>{var a,o;De(e,`end`,t,n)&&(Oe(e),(o=(a=r.props).onEndReached)==null||o.call(a,{distanceFromEnd:i}))},e=>{r.endReachedSnapshot=e}))}}function Me(e,t,n){let r=e?.state;if(!r)return;let{isStartReached:i,props:{data:a,onStartReachedThreshold:o},scroll:s,scrollLength:c,startReachedSnapshot:l,totalSize:u}=r,d=a.length,f=o*c;Ee(e),i&&f>0&&s>f&&l&&(l.contentSize!==u||l.dataLength!==d)&&(r.isStartReached=!1,r.startReachedSnapshot=void 0),N(e,`isAtStart`,s<=ce),N(e,`isNearStart`,s<=f),Ae(r)||r.scrollingTo||(r.isStartReached=we(s,!1,f,r.isStartReached,l,{contentSize:u,dataLength:d,scrollPosition:s},i=>{var a,o;De(e,`start`,t,n)&&(Oe(e),(o=(a=r.props).onStartReached)==null||o.call(a,{distanceFromStart:i}))},e=>{r.startReachedSnapshot=e}))}function Ne(e,t){let n=!e.state.edgeReachedGate;je(e,t,n),Me(e,t,n)}function Pe(e){var t;let n=e.state;n.props?.data&&((t=n.triggerCalculateItemsInView)==null||t.call(n,{forceFullItemPositions:!0})),Ne(e)}var Fe=6,Ie=3,Le=250;function Re(e){e.state.scheduledWork.cancel(`adaptiveRender`)}function ze(e,t){let n=e.state;Re(e),t<=0?Be(e,`normal`,`scroll`):n.scheduledWork.timeout(()=>Be(e,`normal`,`scroll`),t,`adaptiveRender`)}function Be(e,t,n){var r,i;M(e,`adaptiveRender`)!==t&&(N(e,`adaptiveRender`,t),(i=(r=e.state.props.adaptiveRender)?.onChange)==null||i.call(r,t,n))}function Ve(e){Re(e);let t=e.state.props.adaptiveRender?.initialMode??`normal`;M(e,`adaptiveRender`)!==t&&Be(e,t,`initial`)}function He(e,t,n){let r=e.state,i=r.props.adaptiveRender,a=M(e,`adaptiveRender`);if(M(e,`readyToRender`))if(i){let o=i.enterVelocity??Fe,s=i.exitVelocity??Ie,c=i.exitDelay??Le,l=a===`light`?s:o,u=n?.forceLight||Math.abs(t)>l?`light`:`normal`;u!==(r.scheduledWork.has(`adaptiveRender`)?`normal`:a)&&(u===`light`?(Be(e,`light`,`scroll`),ze(e,c)):a===`light`&&ze(e,c))}else Ve(e)}var Ue=50;function We(e,t){let n=e.state.props.drawDistance,r=e.state.initialScroll,i=r!==void 0&&(r.viewPosition??0)>0;return t===`visible-first`||t!==`full`&&!M(e,`readyToRender`)&&!i?Math.min(n,Ue):n}function Ge(e){let{state:t}=e;t.props.drawDistance<=Ue||t.scheduledWork.has(`fullDrawDistancePrewarm`)||t.scheduledWork.frame(()=>t.triggerCalculateItemsInView?.call(t),`fullDrawDistancePrewarm`)}function Ke(e,{resetLayout:t,resetInitialScroll:n}){let{state:r}=e;t&&(r.didContainersLayout=!1,r.queuedInitialLayout=!1),n&&(r.didFinishInitialScroll=!1),N(e,`readyToRender`,!1),Ve(e)}function qe(e,{didLayout:t,didInitialScroll:n}){let{state:r}=e,{loadStartTime:i,props:{onLoad:a}}=r;t&&(r.didContainersLayout=!0),n&&(r.didFinishInitialScroll=!0),r.didContainersLayout&&r.didFinishInitialScroll&&!M(e,`readyToRender`)&&(N(e,`readyToRender`,!0),Be(e,`normal`,`ready`),r.props.drawDistance>Ue&&Ge(e),r.didLoad||(r.didLoad=!0,a&&a({elapsedTimeInMs:Date.now()-i})))}var Je=2e3;function Ye(e,t){e.scroll=t,e.scrollPending=t,e.scrollPrev=t}function Xe(e){e.scheduledWork.cancel(`preservedInitialScroll`)}function Ze(e){Xe(e),e.clearPreservedInitialScrollOnNextFinish=void 0,e.initialScroll=void 0,W(e)}function Qe(e){let t=e.state,n=t.initialScrollSession?.kind===`bootstrap`?t.initialScrollSession.bootstrap:void 0;(t.initialScroll||n||t.scrollingTo?.isInitialScroll)&&(n?.frameHandle!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(n.frameHandle),t.scrollingTo?.isInitialScroll&&(de(t),t.scrollingTo=void 0,t.scrollTargetPinnedRange=void 0),xe.resetFlags(t),W(t,{bootstrap:null}),$e(e))}function $e(e,t){var n;let r=e.state;if(t?.resolvedOffset!==void 0)Ye(r,t.resolvedOffset);else if(t?.syncObservedOffset&&r.initialScrollSession?.kind===`offset`){let e=((n=r.refScroller.current)?.getCurrentScrollOffset)?.call(n);typeof e==`number`&&Number.isFinite(e)&&Ye(r,e)}let i=()=>{var n;let i=r.initialScrollSession?.kind===`bootstrap`,a=t?.resolvedOffset??r.scrollPending??r.scroll??0;U.clear(r),t?.preserveTarget&&r.initialScroll?(r.clearPreservedInitialScrollOnNextFinish=void 0,W(r),Xe(r),t?.schedulePreservedTargetClear&&r.scheduledWork.timeout(()=>{!r.didFinishInitialScroll||r.scrollingTo?.isInitialScroll||!r.initialScroll||Ze(r)},Je,`preservedInitialScroll`)):Ze(r),t?.recalculateItems&&Pe(e),qe(e,{didInitialScroll:!0}),i&&he(e,a),(n=t?.onFinished)==null||n.call(t)};if(t?.waitForCompletionFrame){requestAnimationFrame(i);return}i()}function et(e,t){let n=e.state;return t===void 0?0:n.positions[t]||0}function tt(e){let{state:t}=e;return(t.props.horizontal?(h(t)?t.props.stylePaddingRight:t.props.stylePaddingLeft)||0:M(e,`stylePaddingTop`)||0)+(M(e,`alignItemsAtEndPadding`)||0)+(M(e,`headerSize`)||0)}function K(e,t){let{data:n,keyExtractor:r}=e.props;if(!n)return``;let i=t<n.length?r?r(n[t],t):t:null;return e.idCache[t]=i,i}function nt(e){let{state:t,values:n}=e;return(n.get(`headerSize`)||0)+(n.get(`footerSize`)||0)+(t.pendingTotalSize??t.totalSize??n.get(`totalSize`)??0)+(t.props.stylePaddingTop||0)+(t.props.stylePaddingBottom||0)}function rt(e){let{state:t}=e;return t.props.alignItemsAtEndPaddingEnabled&&!t.props.horizontal&&t.props.data.length>0&&t.scrollLength>0?Math.max(0,t.scrollLength-nt(e)-L(e)):0}function it(e){let{state:t}=e,n=M(e,`alignItemsAtEndPadding`)||0,r=rt(e);if(n!==r){let i=t.maintainingScrollAtEnd===`pending-animated`||t.maintainingScrollAtEnd===`animated`,a=t.didContainersLayout&&t.props.maintainScrollAtEnd?.animated&&(i||n>r&&M(e,`isWithinMaintainScrollAtEndThreshold`));a&&!i&&!t.pendingMaintainScrollAtEnd?t.scheduledWork.microtask(()=>{!t.maintainingScrollAtEnd&&!t.pendingMaintainScrollAtEnd&&N(e,`alignItemsAtEndPadding`,rt(e))},`alignItemsAtEndPaddingFallback`):a||N(e,`alignItemsAtEndPadding`,r)}}function at(e,t,n,r=!0){let i=e.state,a=i.totalSize,o=i.totalSize;t===null?(o=n,i.timeoutSetPaddingTop&&=(clearTimeout(i.timeoutSetPaddingTop),void 0)):o+=n,a===o?r&&e.values.get(`totalSize`)!==o&&N(e,`totalSize`,o):(i.pendingTotalSize=void 0,i.totalSize=o,r&&N(e,`totalSize`,o),it(e))}function ot(e,t,n,r=!0){let{sizes:i}=e.state,a=i.get(t),o=a===void 0?n:n-a;o!==0&&at(e,t,o,r),i.set(t,n)}function st(e){return typeof e==`function`}function ct(e){return Array.isArray(e)}var q=new Set;function lt(e,t){H&&!q.has(e)&&(q.add(e),console.warn(`[legend-list] ${t}`))}function ut(e){return Math.floor(e*8)/8}function dt(e){return e==null}function ft(e,t){let n=t===`Left`||t===`Right`?e.paddingHorizontal:e.paddingVertical;return e[`padding${t}`]??n??e.padding??0}function pt(e,t,n){return ft(e,n)+ft(t,n)}function mt(e,t){let n=(e.state?.containerItemKeys)?.get(t);if(n!==void 0)return n;let r=M(e,`numContainers`);for(let n=0;n<r;n++)if(M(e,`containerItemKey${n}`)===t)return n;return-1}function ht(e,t,n,r,i){let a=e.state,{getFixedItemSize:o,getItemType:s}=a.props,c=t?a.sizesKnown.get(t):void 0;if(c===void 0&&t&&o){let l=i?.itemType??(s?s(r,n)??``:``),u=i?.didResolveFixedItemSize?i.fixedItemSize:o(r,n,l);u!==void 0&&(c=u+e.scrollAxisGap,a.sizesKnown.set(t,c))}return c}function J(e,t){return ht(e,K(e.state,t),t,e.state.props.data[t])}function gt(e,t,n){for(let r=t;r<=n;r++)if(J(e,r)===void 0)return!1;return!0}function Y(e,t,n,r,i,a,o,s){let c=e.state,{sizes:l,averageSizes:u,props:{estimatedItemSize:d,getItemType:f},scrollingTo:p}=c,m=c.sizesKnown.get(t);if(m!==void 0)return m;let h,g=l.get(t);if(a&&g!==void 0)return g;if(h=ht(e,t,n,r,s),h!==void 0)return ot(e,t,h,o),h;let _=s?.itemType??(f?f(r,n)??``:``);if(i&&!p){let e=u[_]?.avg;e!==void 0&&(h=ut(e))}if(h===void 0&&g!==void 0)return g;if(h===void 0&&i&&p){let e=p.averageSizeSnapshot?.[_];e!==void 0&&(h=ut(e))}return h===void 0&&(h=d+e.scrollAxisGap),ot(e,t,h,o),h}function _t(e,t){if(!(t===void 0||t<0))return Y(e,K(e.state,t),t,e.state.props.data[t])}function vt(e,t,n){let r=e.state,{index:i,viewOffset:a,viewPosition:o}=n,s=t;if(a&&(s-=a),i!==void 0){let t=tt(e);t&&(s+=t)}if(o!==void 0&&i!==void 0){let t=r.props.data.length;if(t===0)return s;let n=i<0||i>=t,a=r.props.estimatedItemSize??0,c=n?a:Y(e,K(r,i),i,r.props.data[i]),l=Math.max(0,c-(n?0:e.scrollAxisGap)),u=L(e);if(s-=o*(r.scrollLength-u-l),!n&&i===r.props.data.length-1){let t=M(e,`footerSize`)||0;s+=t}}return s}function X(e,t,n){let r=e.state,i=R(e),a=t;if(Number.isFinite(i)&&Number.isFinite(r.scrollLength)&&l.OS!==`android`){let e=Math.max(0,i-r.scrollLength),o=n?.viewOffset,s=e+(typeof o==`number`&&o<0?-o:0);a=Math.min(t,s)}return a=Math.max(0,a),a}function yt(e){let t=e.state;if(t?.scrollingTo){de(t);let n=t.pendingScrollResolve;t.pendingScrollResolve=void 0;let r=t.scrollingTo;if(t.scrollHistory.length=0,t.scrollingTo=void 0,t.scrollTargetPinnedRange=void 0,t.pendingTotalSize!==void 0&&at(e,null,t.pendingTotalSize),t.scrollAdjustHandler.commitPendingAdjust(r),r.isInitialScroll||t.initialScroll){let i=t.initialScrollSession?.kind===`offset`,a=!!r.isInitialScroll&&!t.clearPreservedInitialScrollOnNextFinish&&t.props.data.length>0&&t.initialScroll?.viewPosition===1;$e(e,{onFinished:()=>{n?.()},preserveTarget:i&&t.props.data.length===0||a,recalculateItems:!0,schedulePreservedTargetClear:a,syncObservedOffset:i,waitForCompletionFrame:!!r.waitForInitialScrollCompletionFrame});return}Pe(e),n?.()}}var bt=80,xt=1500,St=320,Ct=1;function wt(e,t){let n=e.state,{animated:r,horizontal:i,offset:a}=t;n.scheduledWork.cancel(`platformScrollCompletion`);let o=n.refScroller.current,s=o?.getScrollableNode();if(!o||!s)return;let c=!!r,l=!!i,u=l?R(e):void 0,d=l?b(n,a,u):0,f=l?0:a;if(o.scrollTo({animated:c,x:d,y:f}),c)Tt(e,{readOffset:()=>o.getCurrentScrollOffset(),target:o.getScrollEventTarget?.call(o)??null,targetOffset:a});else{n.scroll=a;let t=n.scrollingTo;n.scheduledWork.timeout(()=>{t===n.scrollingTo&&yt(e)},100,`platformScrollCompletion`)}}function Tt(e,t){let{readOffset:n,target:r,targetOffset:i}=t;if(!r){yt(e);return}let a=`onscrollend`in r,o,s=!1,{scheduledWork:c,scrollingTo:l}=e.state,u=setTimeout(()=>p(`max`),xt),d=()=>{r.removeEventListener(`scroll`,m),a&&r.removeEventListener(`scrollend`,h),o!==void 0&&clearTimeout(o),clearTimeout(u)},f=()=>{s||(s=!0,d())},p=t=>{if(s)return;if(l!==e.state.scrollingTo){c.cancel(`platformScrollCompletion`);return}let r=n(),a=Math.abs(r-i)<=Ct;t===`scrollend`&&!a||(c.cancel(`platformScrollCompletion`),yt(e))},m=()=>{o!==void 0&&clearTimeout(o),o=setTimeout(()=>p(`idle`),bt)},h=()=>p(`scrollend`);r.addEventListener(`scroll`,m),a?r.addEventListener(`scrollend`,h):o=setTimeout(()=>p(`idle`),St),c.register(`platformScrollCompletion`,f)}function Et(e){if(!e.scrollRequestTracker){let t=0,n=n=>{let r=e.state;r.scheduledWork.cancel(`imperativeScrollReady`);let i=++t;return fe(r),r.pendingScrollResolve=n,i},r=(n,r,i)=>{let a=e.state;n===t&&(!i()||!a.scrollingTo)&&(a.pendingScrollResolve===r&&(a.pendingScrollResolve=void 0),r())};e.scrollRequestTracker={isCurrent:e=>e===t,runNow:r,runNowIfIdle:t=>{let i=e.state;return i.pendingScrollResolve||i.scrollingTo?Promise.resolve():new Promise(e=>{let i=n(e);r(i,e,t)})},start:n}}return e.scrollRequestTracker}function Z(e,t,n){let r=e.state;if(Math.abs(t)>.1){let n=()=>{r.scrollAdjustHandler.requestAdjust(t),r.adjustingFromInitialMount&&r.adjustingFromInitialMount--};r.scroll+=t,r.scrollForNextCalculateItemsInView=void 0,M(e,`readyToRender`)?n():(r.adjustingFromInitialMount=(r.adjustingFromInitialMount||0)+1,requestAnimationFrame(n))}}function Dt(e){var t;let{state:n}=e,r=M(e,`alignItemsAtEndPadding`)||0,i=rt(e);n.maintainingScrollAtEnd=void 0,n.pendingMaintainScrollAtEnd=!1,r!==i&&(N(e,`alignItemsAtEndPadding`,i),n.scrollForNextCalculateItemsInView=void 0,(t=n.triggerCalculateItemsInView)==null||t.call(n,{forceFullItemPositions:!0}),Z(e,X(e,n.scroll+i-r)-n.scroll))}function Q(e){let t=e.state,{didContainersLayout:n,didFinishInitialScroll:r,pendingNativeMVCPAdjust:i,props:{maintainScrollAtEnd:a}}=t,o=M(e,`isWithinMaintainScrollAtEndThreshold`),s=!!t.pendingMaintainScrollAtEnd,c=!!((o||s)&&a&&r);if(c&&!n)return t.pendingMaintainScrollAtEnd=!0,!1;if(i)return t.pendingMaintainScrollAtEnd=c,!1;if(c&&n){if(t.pendingMaintainScrollAtEnd=!1,R(e)<t.scrollLength&&(t.scroll=0),t.maintainingScrollAtEnd)t.pendingMaintainScrollAtEnd=!0;else{let n=a.animated?`pending-animated`:`pending-instant`,r=a.animated?`animated`:`instant`,i=t.scroll;t.maintainingScrollAtEnd=n,requestAnimationFrame(()=>{if(t.maintainingScrollAtEnd!==n)return;let o=M(e,`isWithinMaintainScrollAtEndThreshold`),c=t.scroll!==i;s||o||!c?(t.maintainingScrollAtEnd=r,Et(e).runNowIfIdle(()=>e.scrollToEnd({animated:a.animated})).then(()=>{t.maintainingScrollAtEnd===r&&(t.pendingMaintainScrollAtEnd?(t.maintainingScrollAtEnd=void 0,Q(e)):Dt(e))})):t.maintainingScrollAtEnd===n&&Dt(e)})}return!0}return Dt(e),!1}var $=.1,Ot=300,kt=2,At=1;function jt(e,t,n,r){if(!t){e.mvcpAnchorLock=void 0;return}let i=e.mvcpAnchorLock;if(!i)return;let a=r>i.expiresAt,o=e.indexByKey.get(i.id)===void 0;if(a||o||!n){e.mvcpAnchorLock=void 0;return}return i}function Mt(e,t){{let{anchorId:n,anchorPosition:r,dataChanged:i,now:a,positionDiff:o}=t,s=!!i||!!e.mvcpAnchorLock,c=e.props.maintainVisibleContentPosition.data;if(!s||!c||e.scrollingTo||!n||r===void 0)return;let l=e.mvcpAnchorLock,u=!i&&Math.abs(o)<=$&&l?.id===n?l.quietPasses+1:0;if(!i&&u>=kt){e.mvcpAnchorLock=void 0;return}e.mvcpAnchorLock={expiresAt:a+Ot,id:n,position:r,quietPasses:u}}}function Nt(e,t,n,r,i,a){return!1}function Pt(e,t,n){if(Math.abs(t)<=$)return 0;let r=Math.max(0,n-e.scrollLength)-e.scroll;return t<0?Math.max(t,Math.min(0,r)):t>0?Math.min(t,Math.max(0,r)):0}function Ft(e,t){return e<0?-t:t}function It(e,t,n){let r=e.state;r.pendingNativeMVCPAdjust=void 0;let i=t-n;Math.abs(i)>$&&Z(e,i)}function Lt(e){let t=e.state,n=t.pendingNativeMVCPAdjust;if(!n||Math.abs(n.manualApplied)>$)return;let r=R(e),i=Pt(t,n.amount,r);if(Math.abs(i)<=$)return;let a=n.amount-i;Math.abs(a)<=$||(n.manualApplied=a,Z(e,a),n.furthestProgressTowardAmount=0)}function Rt(e,t){let n=e.state,r=n.pendingNativeMVCPAdjust;if(!r)return!1;let i=r.amount-r.manualApplied,a=t-(r.startScroll+r.manualApplied),o=i<0&&a>$||i>0&&a<-$,s=Ft(i,a);if(Math.abs(i)<=$)return n.pendingNativeMVCPAdjust=void 0,!0;if(o)return n.pendingNativeMVCPAdjust=void 0,!1;if(s+$>=Math.abs(i))return It(e,i,a),!0;let c=Math.max(0,R(e)-n.scrollLength);return Math.abs(t-c)<=At||n.pendingMaintainScrollAtEnd&&M(e,`isWithinMaintainScrollAtEndThreshold`)&&s>$?(It(e,i,a),!0):s>r.furthestProgressTowardAmount+$?(r.furthestProgressTowardAmount=s,!1):(r.furthestProgressTowardAmount>$&&s<r.furthestProgressTowardAmount-$&&(n.pendingNativeMVCPAdjust=void 0),!1)}function zt(e,t,n){let r=e.state,{idsInView:i,positions:a,props:o}=r,{maintainVisibleContentPosition:{data:s,size:c,shouldRestorePosition:l}}=o,u=Date.now(),d=!!t||!!r.mvcpAnchorLock,f=r.scrollingTo;if(t&&r.pendingScrollToEnd&&f===void 0){r.mvcpAnchorLock=void 0;return}let p=jt(r,d,s,u),m,h,g=[],_=f?.index,v=f?.viewPosition,y=_!==void 0&&r.props.data.length>0&&_>=r.props.data.length-1&&(v??0)>0,b=t?s:c,x=r.indexByKey,S=r.scroll;if(R(e),b){if(p&&_===void 0?(h=p.id,m=p.position):_===void 0?i.length>0&&r.didContainersLayout&&!t&&(h=i.find(e=>x.get(e)!==void 0)):h=K(r,_),t&&i.length>0&&r.didContainersLayout)for(let e=0;e<i.length;e++){let t=i[e],n=x.get(t);if(n!==void 0){let e=a[n];e!==void 0&&g.push({id:t,position:e})}}if(h!==void 0&&m===void 0){let e=x.get(h);e!==void 0&&(m=a[e])}return()=>{let n=0,i=p?.id,o,c=!1,d=r.props.data;if(t&&s&&_===void 0&&h!==void 0&&p?.id===h&&l!==void 0&&h!==void 0){let e=x.get(h);if(e!==void 0){let t=d[e];c=t===void 0||!l(t,e,d),c&&p?.id===h&&(r.mvcpAnchorLock=void 0)}}if(t&&s&&_===void 0&&(()=>{if(h===void 0||c)return!0;let e=x.get(h);return e===void 0||a[e]===void 0})())for(let e=0;e<g.length;e++){let{id:t,position:r}=g[e],s=x.get(t);if(s!==void 0&&l){let e=d[s];if(e===void 0||!l(e,s,d))continue}let c=s===void 0?void 0:a[s];if(c!==void 0){n=c-r,i=t,o=c;break}}if(!c&&h!==void 0&&m!==void 0){let t=x.get(h),s=t===void 0?void 0:a[t];if(s!==void 0){let t=R(e),a=s-m;if(a!==0&&y&&r.scroll+r.scrollLength>t)if(a>0)a=Math.max(0,t-r.scroll-r.scrollLength);else{let e=Math.max(0,t-r.scrollLength);r.scroll=e,r.scrollPending=e,a=0}n=a,i=h,o=s}}if(v&&v>0){let t=Y(e,h,_,r.props.data[_]),i=f?.itemSize;if(t!==void 0&&i!==void 0&&t!==i){let e=t-i;e!==0&&(n+=e*v,f.itemSize=t)}}if(Mt(r,{anchorId:i,anchorPosition:o,dataChanged:t,now:u,positionDiff:n}),Nt()){r.pendingNativeMVCPAdjust={amount:n,furthestProgressTowardAmount:0,manualApplied:0,startScroll:S},Lt(e);return}Math.abs(n)>$&&((r.maintainingScrollAtEnd===`pending-animated`||r.maintainingScrollAtEnd===`animated`)&&M(e,`isWithinMaintainScrollAtEndThreshold`)||Z(e,n))}}}var Bt=1e3,Vt=200,Ht=e=>{let{scrollHistory:t}=e,n=t.length-1;if(n<1)return 0;let r=t[n];if(Date.now()-r.time>Bt)return 0;let i=0,a=0,o=0;for(let e=n;e>0;e--){let n=t[e],s=t[e-1],c=n.scroll-s.scroll,l=n.time-s.time,u=Math.sign(c);if(u!==0){if(i===0)i=u;else if(u!==i)break}if(r.time-s.time>Bt)break;if(c===0||l<=0)continue;let d=r.time-n.time,f=Math.exp(-d/Vt);a+=c/l*f,o+=f}return o>0?a/o:0};function Ut(e){let t=e.mvcpAnchorLock;return t?Date.now()>t.expiresAt?(e.mvcpAnchorLock=void 0,!1):!0:!1}function Wt(e){return e.dataChangeNeedsScrollUpdate||Ut(e)}function Gt(e,t,n,r){let i=e.state,{ignoreScrollFromMVCP:a,lastScrollAdjustForHistory:s,scrollAdjustHandler:c,scrollHistory:l,scrollingTo:u}=i,d=i.scroll;r?.markHasScrolled!==!1&&(i.hasScrolled=!0);let f=Date.now();i.lastBatchingAction=f;let p=c.getAdjust(),m=s!==void 0&&Math.abs(p-s)>.1;if(m&&(l.length=0),i.lastScrollAdjustForHistory=p,u===void 0&&(l.length!==0||t!==i.scroll)&&(m||l.push({scroll:t,time:f})),l.length>5&&l.shift(),a&&!u){let{lt:e,gt:n}=a;if(e&&t<e||n&&t>n){i.ignoreScrollFromMVCPIgnored=!0;return}}i.scrollPrev=d,i.scrollPrevTime=i.scrollTime,i.scroll=t,i.scrollTime=f;let h=Math.abs(t-d),g=!!r?.fromNativeScrollEvent&&h>.1&&!m&&u===void 0&&!i.pendingNativeMVCPAdjust,_=g&&t<d&&!!(i.maintainingScrollAtEnd||i.pendingMaintainScrollAtEnd);_&&Dt(e);let v=g?G(e,t-d):void 0,y=Rt(e,t),b=i.scrollLength,x=b>0&&u===void 0&&h>b&&!i.pendingNativeMVCPAdjust,S=Ht(i);He(e,S,{forceLight:x});let C=i.scrollLastCalculate;if(Wt(i)||y||_||v!==void 0||n||C===void 0||Math.abs(i.scroll-C)>2){i.scrollLastCalculate=i.scroll,i.ignoreScrollFromMVCPIgnored=!1,i.lastScrollDelta=h;let t=()=>{var t;let n={doMVCP:u!==void 0,scrollVelocity:S};x&&(n.drawDistanceMode=`visible-first`),(t=i.triggerCalculateItemsInView)==null||t.call(i,n),Ne(e,v)};x?(i.mvcpAnchorLock=void 0,i.pendingNativeMVCPAdjust=void 0,i.userScrollAnchorReset={keys:new Set},i.scheduledWork.cancel(`mvcpRecalculate`),(0,o.flushSync)(t),Ge(e)):t();let n=!!i.pendingMaintainScrollAtEnd||!!i.props.maintainScrollAtEnd?.onDataChange;y&&n&&(i.pendingMaintainScrollAtEnd=!1,Q(e)),i.dataChangeNeedsScrollUpdate=!1,i.lastScrollDelta=0}}function Kt(e){if(Object.keys(e.averageSizes).length===0)return;let t={};for(let n in e.averageSizes)t[n]=e.averageSizes[n].avg;return t}function qt(e,t){let{isInitialScroll:n,requestedOffset:r,targetOffset:i}=t,a=U.get(e),o=!e.didFinishInitialScroll&&(n||!!a)&&U.hasNonZeroTargetOffset(i),s=!e.didFinishInitialScroll&&!!a&&U.isAtZeroTargetOffset(r);if(o){e.hasScrolled=!1,U.set(e,{startScroll:a?.startScroll??e.scroll,targetOffset:i});return}s&&U.clear(e)}function Jt(e,t){let n=e.state,r=n.props.data.length,i=0,a=r-1,o;for(;i<=a;){let e=Math.floor((i+a)/2),r=n.positions[e];r===void 0?a=e-1:r<=t?(o=e,i=e+1):a=e-1}return o}function Yt(e,t){let n=e.state.positions[t];if(n===void 0)return;let r=_t(e,t)??0;return n+(Number.isFinite(r)?r:0)}function Xt(e,t,n){let r=e.state,i=r.props.data.length;if(i===0)return;let a=Math.max(0,t),o=Math.max(a,t+r.scrollLength),s=n===void 0?Jt(e,a):Math.max(0,Math.min(i-1,n));if(s===void 0)return;if(n!==void 0&&r.positions[s]===void 0)return{end:s,start:s};if(n===void 0){let t=Yt(e,s);if(t===void 0||t<=a)return}for(;s>0;){let e=r.positions[s];if(e===void 0||e<=a||r.positions[s-1]===void 0)break;s--}for(;s>0;){let t=Yt(e,s-1);if(t===void 0||t<=a)break;s--}let c=s;for(;c+1<i;){let e=r.positions[c+1];if(e===void 0||e>o)break;c++}return{end:c,start:s}}function Zt(e,t,n){let r=Xt(e,t,n);r?(e.state.scrollTargetPinnedRange=r,e.state.scrollForNextCalculateItemsInView=void 0):e.state.scrollTargetPinnedRange=void 0}function Qt(e,t){var n;let r=e.state,{noScrollingTo:i,forceScroll:a,...o}=t,{animated:s,isInitialScroll:c,offset:u,precomputedWithViewOffset:d,waitForInitialScrollCompletionFrame:f}=o,{props:{horizontal:p}}=r;de(r);let m=d?u:vt(e,u,o),h=!!c&&r.initialScrollSession?.kind===`offset`,g=X(e,m,o),_=h?m:g;if(r.scrollHistory.length=0,!i){c&&xe.resetFlags(r);let t=Kt(r);r.scrollingTo={...o,...t?{averageSizeSnapshot:t}:{},targetOffset:g,waitForInitialScrollCompletionFrame:f},c||Zt(e,g,o.index)}r.scrollPending=g,qt(r,{isInitialScroll:c,requestedOffset:_,targetOffset:g}),!c&&!i&&Math.abs(r.scroll-g)>1&&(s?r.scrollTargetPinnedRange&&((n=r.triggerCalculateItemsInView)==null||n.call(r)):Gt(e,g,!0,{markHasScrolled:!1})),a||!c||l.OS===`android`?wt(e,{animated:s,horizontal:p,offset:_}):r.scroll=_}function $t(e,t){return t<=0?-1:e>=t?t-1:e<0?0:e}function en(e,{index:t,viewOffset:n=0,animated:r=!0,forceScroll:i,isInitialScroll:a,viewPosition:o}){let s=e.state,{data:c}=s.props;t=$t(t,c.length);let l=_t(e,t),u=et(e,t);t===c.length-1&&o===void 0&&(o=1),s.scrollForNextCalculateItemsInView=void 0,Qt(e,{animated:r,forceScroll:i,index:t,isInitialScroll:a,itemSize:l,offset:u,viewOffset:n,viewPosition:o??0})}function tn(e,t){let{forceScroll:n,resolvedOffset:r,target:i,waitForCompletionFrame:a}=t,o=i.index,s=o===void 0?void 0:$t(o,e.state.props.data.length),c=_t(e,s);Qt(e,{animated:!1,forceScroll:n,index:s!==void 0&&s>=0?s:void 0,isInitialScroll:!0,itemSize:c,offset:r,precomputedWithViewOffset:!0,viewOffset:i.viewOffset,viewPosition:i.viewPosition,waitForInitialScrollCompletionFrame:a})}function nn(e,t,n){let{state:r}=e;r.clearPreservedInitialScrollOnNextFinish=void 0,r.scheduledWork.cancel(`preservedInitialScroll`),r.initialScroll=t,n?.resetDidFinish&&Ke(e,{resetInitialScroll:!0}),W(r,{kind:r.initialScrollSession?.kind===`offset`?`offset`:`bootstrap`})}function rn(e,t){return e.state.initialScrollSession?.kind===`offset`?t.contentOffset??0:X(e,vt(e,t.index===void 0?0:et(e,t.index),t),t)}function an(e,t){let{didFinishInitialScroll:n,queuedInitialLayout:r,scrollingTo:i}=e,a=e.initialScroll,o=!!i?.isInitialScroll,s=!!t?.requiresMeasuredLayout&&!r&&!o;if(!(!a||s||n||i&&!o))return{initialScroll:a,isInitialScrollInProgress:o,queuedInitialLayout:r,scrollingTo:i}}function on(e,t){let n=e.state,r=an(n,{requiresMeasuredLayout:!0});if(!r)return!1;let{initialScroll:i,isInitialScrollInProgress:a,queuedInitialLayout:o}=r,s=a?r.scrollingTo:void 0,c=rn(e,i),l=s?s.targetOffset??s.offset:void 0,u=i.contentOffset===void 0||Math.abs(i.contentOffset-c)>1,d=l!==void 0&&Math.abs(l-c)>1,f=l!==void 0&&Math.abs(n.scroll-c)<=1&&Math.abs(n.scrollPending-c)<=1;return!t?.forceScroll&&!u&&a&&!d||t?.forceScroll&&f?!1:(u&&n.initialScrollSession?.kind!==`offset`&&nn(e,{...i,contentOffset:c}),tn(e,{forceScroll:t?.forceScroll??(!!o||a&&u),resolvedOffset:c,target:i}),!0)}function sn(e,t){let n=e.state,r=an(n);if(!r)return!1;let{initialScroll:i,queuedInitialLayout:a}=r,o=i.contentOffset??0,s=Math.abs(n.scroll-o)<=1&&Math.abs(n.scrollPending-o)<=1;if(t?.forceScroll&&s)return!1;let c=!!n.lastLayout&&n.scrollLength>0;return tn(e,{forceScroll:t?.forceScroll??(c||!!a),resolvedOffset:o,target:i}),!0}function cn(e,t){return e.state.initialScrollSession?.kind===`offset`?sn(e,{forceScroll:t?.forceScroll}):on(e,{forceScroll:t?.forceScroll})}function ln(e,t,n){if(t==null||n==null||t<0||n<t)return!1;let r=!1;for(let i of e.containerItemKeys.keys()){let a=e.indexByKey.get(i);if(a!==void 0&&a>=t&&a<=n){r=!0;let t=K(e,a);if(t===void 0||!e.sizesKnown.has(t))return!1}}return r}var un=1,dn=8,fn=24,pn=`LegendList bootstrap initial scroll aborted after exceeding convergence bounds.`;function mn(e){return e.initialScrollSession?.kind===`bootstrap`?e.initialScrollSession.bootstrap:void 0}function hn(e){return e.initialScrollSession?.kind===`offset`}function gn(e,t){if(!e||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function _n(e){let{dataLength:t,getSize:n,offset:r,positions:i,scrollLength:a,startIndex:o}=e,s=r+a,c=[],l=o===void 0?0:Math.max(0,Math.min(t-1,o));for(;l>0;){let e=l-1,t=i[e];if(t===void 0){l=e;continue}let a=n(e);if(a===void 0){l=e;continue}if(t+a<=r)break;l=e}for(;l<t;l++){let e=i[l];if(e===void 0)continue;let t=n(l);if(t!==void 0){if(e<s&&e+t>r)c.push(l);else if(c.length>0&&e>=s)break}}return c}function vn(e){let{mountFrameCount:t,maxFrames:n=dn,maxPasses:r=fn,passCount:i}=e;return t>=n||i>=r}function yn(e,t){return vn(t)?(H&&console.warn(pn),Kn(e),!0):!1}function bn(e){let t=mn(e),n=t?.frameHandle;n!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(n),t&&(t.frameHandle=void 0),W(e,{bootstrap:null,kind:e.initialScrollSession?.kind})}function xn(e,t){let n=mn(e);W(e,{bootstrap:{frameHandle:n?.frameHandle,mountFrameCount:n?.mountFrameCount??0,passCount:0,previousResolvedOffset:void 0,scroll:t.scroll,seedContentOffset:t.seedContentOffset??n?.seedContentOffset??t.scroll,targetIndexSeed:t.targetIndexSeed,visibleIndices:void 0},kind:`bootstrap`})}function Sn(e,t){let n=mn(e);n?(n.passCount=0,n.previousResolvedOffset=void 0,n.scroll=t?.scroll??n.scroll,n.seedContentOffset=t?.seedContentOffset??n.seedContentOffset,n.targetIndexSeed=t?.targetIndexSeed??n.targetIndexSeed,n.visibleIndices=void 0,W(e,{bootstrap:n,kind:`bootstrap`})):t?.scroll!==void 0&&xn(e,{scroll:t.scroll,seedContentOffset:t.seedContentOffset,targetIndexSeed:t.targetIndexSeed})}function Cn(e){requestAnimationFrame(()=>{var t;mn(e)&&((t=e.triggerCalculateItemsInView)==null||t.call(e,{forceFullItemPositions:!0}))})}function wn(e){let t=e.state,n=mn(t);!n||n.frameHandle!==void 0||(n.frameHandle=requestAnimationFrame(()=>{let n=mn(t);n&&(n.frameHandle=void 0,n.mountFrameCount+=1,!yn(e,{mountFrameCount:n.mountFrameCount,passCount:n.passCount})&&wn(e))}))}function Tn(e,t){Sn(e.state,t),wn(e),Cn(e.state)}function En(e){let{dataLength:t,footerSize:n,preserveForFooterLayout:r,stylePaddingEnd:i}=e;return{contentOffset:void 0,index:Math.max(0,t-1),preserveForBottomPadding:!0,preserveForFooterLayout:r,viewOffset:-i-n,viewPosition:1}}function Dn(e){return!!e?.preserveForBottomPadding}function On(e){return!!e?.preserveForFooterLayout}function kn(e){return!!(e&&e.viewPosition===1&&(Dn(e)||On(e)))}function An(e){let{dataLength:t,footerSize:n,initialScrollAtEnd:r,stylePaddingEnd:i,target:a}=e,o=On(a);return{...a,contentOffset:void 0,index:r?Math.max(0,t-1):a.index,preserveForBottomPadding:!0,preserveForFooterLayout:o,viewOffset:-i-(o?n:0),viewPosition:1}}function jn(e,t){return e.index===t.index&&e.preserveForBottomPadding===t.preserveForBottomPadding&&e.preserveForFooterLayout===t.preserveForFooterLayout&&e.viewOffset===t.viewOffset&&e.viewPosition===t.viewPosition}function Mn(e,t){let{dataLength:n,stylePaddingEnd:r,target:i}=t;On(i)&&nn(e,En({dataLength:n,footerSize:0,preserveForFooterLayout:void 0,stylePaddingEnd:r}))}function Nn(e){Ze(e)}function Pn(e,t,n=un){let r=e.state;if(!r.didFinishInitialScroll)return!1;let i=Fn(r);return Math.abs(i-rn(e,t))>n}function Fn(e){var t;let n=((t=e.refScroller.current)?.getCurrentScrollOffset)?.call(t);return typeof n==`number`&&Number.isFinite(n)?n:e.scrollPending??e.scroll??0}function In(e){let t=e.state,n=t.initialScroll;if(!t.didFinishInitialScroll||t.scrollingTo?.isInitialScroll||!n||n.viewPosition!==1||t.props.data.length===0||hn(t))return;let r=typeof t.lastNativeScroll==`number`&&Number.isFinite(t.lastNativeScroll)?t.lastNativeScroll:Fn(t);return rn(e,n)-r}function Ln(e){return In(e)!==void 0&&(Rn(e,{}),!0)}function Rn(e,t){let n=e.state;n.preservedEndAnchorCorrection=t,requestAnimationFrame(()=>{let r=n.preservedEndAnchorCorrection;if(r!==t)return;let i=In(e);if(i===void 0||Math.abs(i)<=un){n.preservedEndAnchorCorrection=void 0;return}(!r.lastRequestTime||(n.lastNativeScrollTime??0)>r.lastRequestTime)&&(r.lastRequestTime=Date.now(),Z(e,i)),Rn(e,t)})}function zn(e){let t=e.state,n=t.initialScroll;!t.didFinishInitialScroll||t.scrollingTo?.isInitialScroll||n?.viewPosition!==1||t.preservedEndAnchorCorrection||Pn(e,n)&&(kn(n)&&M(e,`isAtEnd`)||(On(n)?Mn(e,{dataLength:t.props.data.length,stylePaddingEnd:_(t.props),target:n}):Nn(t)))}function Bn(e,t){let{initialScrollAtEnd:n,target:r}=t,i=e.state,a=rn(e,r),o=a===0&&!n&&(hn(i)?Math.abs(r.contentOffset??0)<=1:r.index===0&&(r.viewPosition??0)===0&&Math.abs(r.viewOffset??0)<=1),s=i.props.data.length===0&&r.index!==void 0;o?(bn(i),$e(e,{resolvedOffset:a})):s?(bn(i),$e(e,{preserveTarget:!0,resolvedOffset:a})):(xn(i,{scroll:a,seedContentOffset:0,targetIndexSeed:r.index}),wn(e))}function Vn(e,t){let{dataLength:n,didDataChange:r,initialScrollAtEnd:i,previousDataLength:a,stylePaddingEnd:o}=t,s=e.state,c=s.initialScroll;if(hn(s)||!c)return;let l=!!(s.didFinishInitialScroll&&a===0&&n>0&&c.index!==void 0),u=mn(s);if(!i&&r&&n>0&&s.didFinishInitialScroll&&!u&&!l){Ze(s);return}let d=n>0&&(i||kn(c));if(!(!r&&!l&&!d)){if(d){let t=i?En({dataLength:n,footerSize:M(e,`footerSize`)||0,preserveForFooterLayout:On(c),stylePaddingEnd:o}):An({dataLength:n,footerSize:M(e,`footerSize`)||0,initialScrollAtEnd:i,stylePaddingEnd:o,target:c});if(!l&&Pn(e,c)){Mn(e,{dataLength:n,stylePaddingEnd:o,target:c});return}if(!jn(c,t)||u||l||r){nn(e,t,{resetDidFinish:l}),Tn(e,{scroll:rn(e,t),seedContentOffset:l&&!u?Fn(s):void 0,targetIndexSeed:t.index});return}}r&&(u||l)&&(nn(e,c,{resetDidFinish:l}),Tn(e,{scroll:rn(e,c),seedContentOffset:l&&!u?Fn(s):void 0,targetIndexSeed:c.index}))}}function Hn(e,t){let{dataLength:n,footerSize:r,initialScrollAtEnd:i,stylePaddingEnd:a}=t,o=e.state;if(!i)return;let s=o.initialScroll;if(!(hn(o)||n===0||!s)&&(mn(o)||On(s)))if(Pn(e,s))Mn(e,{dataLength:n,stylePaddingEnd:a,target:s});else{let t=En({dataLength:n,footerSize:r,preserveForFooterLayout:On(s),stylePaddingEnd:a});s.index===t.index&&s.viewPosition===t.viewPosition&&s.viewOffset===t.viewOffset?Mn(e,{dataLength:n,stylePaddingEnd:a,target:s}):(nn(e,t,{resetDidFinish:!!o.didFinishInitialScroll}),Tn(e,{scroll:rn(e,t),targetIndexSeed:t.index}))}}function Un(e){let t=e.state,n=t.initialScroll,r=mn(t);if(n&&t.props.data.length>0&&!hn(t)&&(r||n.viewPosition===1)){let i=rn(e,n),a=t.scrollingTo?.isInitialScroll?t.scrollingTo:void 0;if(!r&&(a||t.didFinishInitialScroll)){let r=i-(a?a.targetOffset??a.offset:Fn(t));Math.abs(r)>un&&(t.didFinishInitialScroll?Ln(e):a&&(t.initialScroll={...n,contentOffset:i},tn(e,{forceScroll:!0,resolvedOffset:i,target:t.initialScroll})))}else Tn(e,{scroll:i,targetIndexSeed:n.index})}}function Wn(e){let t=e.state,n=mn(t),r=t.initialScroll;if(!n||!r||hn(t)||t.scrollingTo?.isInitialScroll||(n.passCount+=1,yn(e,{mountFrameCount:n.mountFrameCount,passCount:n.passCount})))return;r.index!==void 0&&t.startBuffered>=0&&t.endBuffered>=0&&r.index>=t.startBuffered&&r.index<=t.endBuffered&&(n.targetIndexSeed=void 0);let i=rn(e,r),a=ln(t,t.startBuffered,t.endBuffered),o=Math.abs(n.scroll-i)>1,{data:s}=t.props,c=_n({dataLength:s.length,getSize:n=>{let r=t.idCache[n]??K(t,n);return t.sizes.get(r)??Y(e,r,n,s[n])},offset:i,positions:t.positions,scrollLength:t.scrollLength,startIndex:n.targetIndexSeed??(t.startBuffered>=0?t.startBuffered:void 0)}),u=c.length>0&&c.every(e=>{let n=t.idCache[e]??K(t,e);return t.sizesKnown.has(n)}),d=n.previousResolvedOffset,f=n.visibleIndices;if(n.previousResolvedOffset=i,n.visibleIndices=c,o){n.scroll=i,Cn(t);return}if(!(!a||!u)){if(!(d!==void 0&&Math.abs(d-i)<=un&&gn(f,c))){Cn(t);return}bn(t),tn(e,{forceScroll:!0,resolvedOffset:i,target:r,waitForCompletionFrame:l.OS===`web`})}}function Gn(e,t){let n=e.state;bn(n);let r=!n.clearPreservedInitialScrollOnNextFinish&&n.props.data.length>0&&n.initialScroll?.viewPosition===1;$e(e,{preserveTarget:r,recalculateItems:!0,resolvedOffset:t,schedulePreservedTargetClear:r})}function Kn(e){let t=e.state,n=mn(t),r=t.initialScroll;n&&r&&!hn(t)&&t.refScroller.current?(bn(t),tn(e,{forceScroll:!0,resolvedOffset:n.scroll,target:r,waitForCompletionFrame:l.OS===`web`})):Gn(e,mn(t)?.scroll??t.scrollPending??t.scroll??0)}function qn(e,t,n,r){return{data:e.props.data,dataChangeEpoch:e.dataChangeEpoch,getFixedItemSize:e.props.getFixedItemSize,getItemType:e.props.getItemType,itemData:n,itemIndex:t,itemType:r}}function Jn(e,t,n,r,i){let{getItemType:a}=e.props,o=e.containerItemMetadata.get(t);if(o?.dataChangeEpoch===e.dataChangeEpoch&&o.getItemType===a&&o.itemData===r&&o.itemIndex===n)return o;let s=qn(e,n,r,a?a(r,n)??``:void 0);return e.containerItemMetadata.set(t,s),s}function Yn(e,t,n,r){let{getFixedItemSize:i}=e.props,a=Jn(e,t,n,r);return a.getFixedItemSize!==i&&(a.didResolveFixedItemSize=!1,a.fixedItemSize=void 0,a.getFixedItemSize=i),i&&!a.didResolveFixedItemSize&&(a.fixedItemSize=i(r,n,a.itemType??``),a.didResolveFixedItemSize=!0),a}function Xn(e){for(let t of e.containerItemMetadata.values())t.didResolveFixedItemSize=!1,t.fixedItemSize=void 0}var Zn=20,Qn=1,$n=1,er=16;function tr(e,t){let n=e.state.scrollingTo;t?.onlyIfAligned&&(!n?.isInitialScroll||n.animated||!ur(e,n).isAtResolvedTarget)||e.state.scheduledWork.frame(()=>dr(e),`checkFinishedScrollFrame`)}function nr(e,t){let{clampedTargetOffset:n,scrollingTo:r}=t;return!r.isInitialScroll||e.hasScrolled||n<=Qn}function rr(e,t){return!!t?.isInitialScroll&&xe.didDispatchNativeScroll(e)&&!e.hasScrolled}function ir(e){return U.get(e)?.targetOffset}function ar(e){let t=ir(e);return!e.didFinishInitialScroll&&U.hasNonZeroTargetOffset(t)}function or(e,t){if(!t.isInitialScroll||t.animated||!e.didContainersLayout||e.initialScrollSession?.kind===`bootstrap`)return!1;let n=t.targetOffset??t.offset;return U.hasNonZeroTargetOffset(n)&&xe.didDispatchNativeScroll(e)&&!e.hasScrolled||U.isAtZeroTargetOffset(n)||Math.abs(e.scroll-n)>1||Math.abs(e.scrollPending-n)>1?!1:!!t.waitForInitialScrollCompletionFrame||ar(e)}function sr(e){let{state:t}=e;return!!t.scrollingTo?.isInitialScroll&&t.props.data.length>0&&R(e)<=t.scrollLength&&t.scrollPending<=$n}function cr(e,t){return t.index===e.state.props.data.length-1&&t.viewPosition===1}function lr(e,t){let n=t.index;return X(e,cr(e,t)&&n!==void 0?vt(e,et(e,n),t):t.targetOffset??X(e,t.offset-(t.viewOffset||0),t),t)}function ur(e,t){let{state:n}=e,r=n.scrollPending,i=n.scrollAdjustHandler.getAdjust(),a=lr(e,t),o=X(e,r,t),s=Math.abs(r-a),c=a+i,u=Math.abs(r-c),d=!t.animated||l.OS===`ios`;return{clampedTargetOffset:a,isAtResolvedTarget:Math.abs(r-o)<1&&(s<1||d&&u<1)}}function dr(e){let t=e.state.scrollingTo;if(!t)return;let{state:n}=e,r=ur(e,t);r.isAtResolvedTarget&&nr(n,{clampedTargetOffset:r.clampedTargetOffset,scrollingTo:t})&&yt(e)}function fr(e,t){var n;(n=e.state.refScroller.current)==null||n.scrollTo({animated:!1,x:e.state.props.horizontal?t:0,y:e.state.props.horizontal?0:t})}function pr(e){let t=e.state;if(t.scheduledWork.has(`checkFinishedScrollFallback`))return;let n=t.scrollingTo,r=sr(e),i=rr(t,n),a=n!==void 0&&or(t,n),o=n?.isInitialScroll&&!r&&!a||!t.didContainersLayout,s=r||a?0:i?er:o?500:100,c=0,u=e=>{t.scheduledWork.timeout(d,e,`checkFinishedScrollFallback`)},d=()=>{let n=t.scrollingTo;if(n){c++;let r=ar(t)&&!t.hasScrolled,a=i?5:r?Zn:5,o=sr(e),s=or(t,n),d=ur(e,n),f=l.OS===`android`,p=t.hasScrolled&&(!n.isInitialScroll||d.isAtResolvedTarget),m=n.isInitialScroll&&!d.isAtResolvedTarget&&c<=a;o||p||s||f||c>a?yt(e):((r||m)&&c<=a&&fr(e,ir(t)??n.targetOffset??t.scrollPending),u(i?er:100))}};u(s)}function mr(e){let t=e.state,n=t.initialScroll;return t.didFinishInitialScroll?Ln(e):!n||t.initialScrollSession?.kind===`offset`||n.viewPosition!==1||t.props.data.length===0?!1:cn(e,{forceScroll:!0})}function hr(e){if(!e.state.initialScroll)return;let t=()=>cn(e,{forceScroll:!0});t(),e.state.initialScrollSession?.kind!==`offset`&&requestAnimationFrame(t),tr(e,{onlyIfAligned:!0})}function gr(e,t){let{alwaysDispatchInitialScroll:n,dataLength:r,hasFooterComponent:i,initialContentOffset:a,initialScrollAtEnd:o,useBootstrapInitialScroll:s}=t,c=e.state,l=c.initialScroll,u=a??0,d=s&&o&&i;if(l&&(l.contentOffset===void 0||!!l.preserveForFooterLayout!==d&&c.initialScrollSession?.kind!==`offset`)&&nn(e,{...l,contentOffset:u,preserveForFooterLayout:d}),s&&l&&c.initialScrollSession?.kind!==`offset`){Bn(e,{initialScrollAtEnd:o,target:c.initialScroll});return}!n&&!u&&!(l&&r===0&&!(u===0&&!o))&&(l&&!o?$e(e,{resolvedOffset:u}):qe(e,{didInitialScroll:!0}))}function _r(e,t){let{dataLength:n,didDataChange:r,didStartFreshData:i,initialScrollAtEnd:a,latestInitialScroll:o,latestInitialScrollSessionKind:s,stylePaddingEnd:c,useBootstrapInitialScroll:l}=t,u=e.state,d=u.initialScrollSession?.previousDataLength??0,f=n>0&&(!u.hasHadNonEmptyData||i);if(n>0&&(u.hasHadNonEmptyData=!0),f&&(o?(nn(e,o),W(u,{kind:s,previousDataLength:d})):Ze(u)),u.initialScrollSession&&(u.initialScrollSession.previousDataLength=n),W(u),l){Vn(e,{dataLength:n,didDataChange:r,initialScrollAtEnd:a,previousDataLength:d,stylePaddingEnd:c});return}let p=d===0&&n>0&&!!u.initialScroll&&e.state.initialScrollSession?.kind===`offset`&&!!u.didFinishInitialScroll;d!==0||n===0||!u.initialScroll||!u.queuedInitialLayout||u.didFinishInitialScroll&&!p||(p&&Ke(e,{resetInitialScroll:!0}),cn(e))}function vr(e){e.indexByKey.clear(),e.idCache.length=0,e.positions.length=0,e.columns.length=0,e.columnSpans.length=0}function yr(e){let t=e.pendingContainerIds;if(e.pendingContainerIds=void 0,t===void 0)return;let n=e.state,r=t;if(r&&n.userScrollAnchorReset?.keys.size){r=new Set(r);for(let e of n.userScrollAnchorReset.keys){let t=n.containerItemKeys.get(e);t!==void 0&&r.add(t)}}return r}function br(e,t){let n=e.pendingContainerIds!==void 0,r=e.pendingContainerIds;if(t===void 0)e.pendingContainerIds=null;else if(r!==null){let n=r;if(!n)n=typeof t==`number`?new Set([t]):new Set(t);else if(typeof t==`number`)n.add(t);else for(let e of t)n.add(e);e.pendingContainerIds=n}n||N(e,`containerLayoutEpoch`,(M(e,`containerLayoutEpoch`)??0)+1)}function xr(e,t,n,r){let i=e.state,{columns:a,columnSpans:o,positions:s,props:{data:c,itemsAreEqual:l,keyExtractor:u}}=i,d=c[n];if(d===void 0)return{didChangePosition:!1,didRefreshData:!1};let f=i.idCache[n]??K(i,n),p=Jn(i,t,n,d),m=r?.updateLayout??!0,h=!1,g=!1;if(m){let c=s[n];if(c===void 0)return N(e,`containerPosition${t}`,se),{didChangePosition:!1,didRefreshData:!1};let l=y(i,(c||0)-(r?.scrollAdjustPending??0),i.sizes.get(f)??Y(e,f,n,d,void 0,void 0,void 0,p),M(e,`totalSize`)),u=a[n]||1,m=o[n]||1,g=M(e,`containerPosition${t}`),_=M(e,`containerColumn${t}`),v=M(e,`containerSpan${t}`);l>se&&l!==g&&(N(e,`containerPosition${t}`,l),h=!0),u>=0&&u!==_&&N(e,`containerColumn${t}`,u),m!==v&&N(e,`containerSpan${t}`,m)}M(e,`containerItemIndex${t}`)!==n&&N(e,`containerItemIndex${t}`,n);let _=M(e,`containerItemData${t}`),v=()=>{N(e,`containerItemData${t}`,d),g=!0};if(_!==d){let r=(i.pendingDataComparison?.previousData===i.previousData&&i.pendingDataComparison?.nextData===c?i.pendingDataComparison:void 0)?.byIndex[n]??0;if(r===2)v();else if(r!==1){let r=M(e,`containerItemKey${t}`)??f,a=u?.(_,n);if(_===void 0||!u||a!==r)v();else if(!l)v();else{let e=l(_,d,n,c);(!i.pendingDataComparison||i.pendingDataComparison.previousData!==i.previousData||i.pendingDataComparison.nextData!==c)&&i.previousData&&(i.pendingDataComparison={byIndex:[],nextData:c,previousData:i.previousData}),i.pendingDataComparison?.byIndex&&(i.pendingDataComparison.byIndex[n]=e?1:2),e||v()}}}return{didChangePosition:h,didRefreshData:g}}function Sr(e,t,n){let r=e.state,i=M(e,`numColumns`),a=t;r.columns[t]!==1&&(a=Cr(r,i,t));let o=0,s=r.columns[a];if(a>0){let t=a-1;o=(r.positions[t]??0)+wr(e,Cr(r,i,t),t,n)}return{column:s,currentRowTop:o,startIndex:a}}function Cr(e,t,n){if(t<=1)return Math.max(0,n);let r=Math.max(0,n);for(;r>0&&e.columns[r]!==1;)r--;return r}function wr(e,t,n,r){let i=e.state;if(n<t)return 0;let{data:a}=i.props;if(!a)return 0;let o=0;for(let s=t;s<=n;s++){if(s<0||s>=a.length)continue;let t=i.idCache[s],n=Y(e,t,s,a[s],r);n>o&&(o=n)}return o}function Tr(e){let t=e.state,{positions:n,props:{data:r}}=t,i=M(e,`numColumns`)??1;if(r.length===0)at(e,null,0);else{let a=r.length-1,o=K(t,a),s=n[a];if(o!==void 0&&s!==void 0)if(i>1){let n=a;for(;n>0;){let e=t.columns[n];if(e===1||e===void 0)break;--n}let i=0;for(let o=n;o<=a;o++){let n=Y(e,t.idCache[o]??K(t,o),o,r[o]);n>i&&(i=n)}at(e,null,s+i)}else{let t=Y(e,o,a,r[a]);t!==void 0&&at(e,null,s+t)}}}function Er(e){let t=e.state,{props:{snapToIndices:n}}=t,r=t.props.horizontal?R(e):void 0,i=Array(n.length);for(let e=0;e<n.length;e++){let a=n[e];K(t,a);let o=t.positions[a];i[e]=b(t,o,r)}N(e,`snapToOffsets`,i)}function Dr(e,t,{doMVCP:n,forceFullUpdate:r=!1,optimizeForVisibleWindow:i=!1,scrollBottomBuffered:a,scrollVelocity:o,startIndex:s}={doMVCP:!1,forceFullUpdate:!1,optimizeForVisibleWindow:!1,scrollBottomBuffered:-1,startIndex:0}){let c=e.state,l=e.positionListeners.size>0,{columns:u,columnSpans:d,indexByKey:f,positions:p,idCache:m,sizesKnown:h,props:{data:g,overrideItemLayout:_,snapToIndices:v},scrollingTo:y}=c,b=g.length,x=M(e,`numColumns`)??1,S=x>1,C=H?new Map:void 0,w=M(e,`extraData`),T=_?{span:1}:void 0,E=c.lastScrollDelta,D=o??Ht(c),O=!r&&!t&&(i||Math.abs(D)>0||c.scrollLength>0&&E>c.scrollLength),k=a+1e3,A=!n||t||c.scrollAdjustHandler.getAdjust()!==0||(M(e,`scrollAdjustPending`)??0)!==0,j=0,N=1,P=0;if(t&&(d.length=0),S||(u.length&&=0,d.length&&=0),s>0){if(S){let{startIndex:t,currentRowTop:n}=Sr(e,s,!0);s=t,j=n}else if(s<b){let t=s-1,n=K(c,t);j=(p[t]??0)+(h.get(n)??Y(e,n,t,g[t],!0,A,!1))}}let F=t||f.size===0,I=S&&!!_&&!!T,te=!1,L;for(let n=s;n<b;n++){if(O&&L!==void 0&&n>L){te=!0;break}O&&L===void 0&&!y&&!t&&j>k&&(L=n+(S?x:1)+10);let r=m[n]??K(c,n),i=1;if(I){T.span=1,_(T,g[n],n,x,w);let e=T.span;e!==void 0&&Number.isFinite(e)&&(i=Math.max(1,Math.min(x,Math.round(e))))}S&&N+i-1>x&&(j+=P,N=1,P=0);let a=h.get(r),o=a===void 0?Y(e,r,n,g[n],!0,A,!1):a;H&&F&&(C.has(r)&&console.error(`[legend-list] Error: Detected overlapping key (${r}) which causes missing items and gaps and other terrrible things. Check that keyExtractor returns unique values.`),C.set(r,n)),j!==p[n]&&(p[n]=j,l&&ee(e,r,j)),F&&f.set(r,n),S?(u[n]=N,d[n]=i,o>P&&(P=o),N+=i,N>x&&(j+=P,N=1,P=0)):j+=o}te||Tr(e),v&&Er(e)}function Or(e,t){let n=e.mapViewabilityConfigStates;n||(n=new Map,e.mapViewabilityConfigStates=n);let r=n.get(t);return r||(r={end:-1,endBuffered:-1,previousEnd:-1,previousStart:-1,start:-1,startBuffered:-1,viewableItems:[]},n.set(t,r)),r}function kr(e){let{viewabilityConfig:t,viewabilityConfigCallbackPairs:n,onViewableItemsChanged:r}=e;return(t||r)&&(n=[...n||[],{onViewableItemsChanged:r,viewabilityConfig:t||{viewAreaCoveragePercentThreshold:0}}]),n}function Ar(e,t,n,r,i,a,o=i,s=a){let{props:{data:c}}=e;for(let l of n){let n=Or(t,l.viewabilityConfig.id);n.start=i,n.end=a,n.startBuffered=o,n.endBuffered=s,l.viewabilityConfig.minimumViewTime?e.scheduledWork.timeout(()=>jr(c,l,e,t,r),l.viewabilityConfig.minimumViewTime):jr(c,l,e,t,r)}}function jr(e,t,n,r,i){let{viewabilityConfig:a,onViewableItemsChanged:o}=t,s=a.id,c=Or(r,s),{viewableItems:l,start:u,end:d,startBuffered:f,endBuffered:p}=c,m;for(let[e,t]of r.mapViewabilityAmountValues)Nr(n,r,a,e,t.key,i,t.item,t.index).sizeVisible<0&&(m??=[],m.push(e));let h=[],g=new Set;if(l)for(let t of l){g.add(t.key);let o=n.indexByKey.get(t.key),s=o===void 0?void 0:e[o],c=mt(r,t.key),l=!1;o!==void 0&&s!==void 0&&(l=Pr(n,r,a,c,t.key,i,s,o)),l||h.push({...t,index:o??t.index,isViewable:!1,item:s??t.item})}let _=[];for(let t=u;t<=d;t++){let o=e[t];if(o){let e=K(n,t),s=mt(r,e);if(Pr(n,r,a,s,e,i,o,t)){let n={containerId:s,index:t,isViewable:!0,item:o,key:e};_.push(n),g.has(n.key)||h.push(n)}}}if(Object.assign(c,{previousEnd:d,previousStart:u,viewableItems:_}),h.length>0){c.viewableItems=_;for(let e=0;e<h.length;e++){let t=h[e];Fr(r,s,t.containerId,t)}o&&o({changed:h,end:d,endBuffered:p,start:u,startBuffered:f,viewableItems:_})}if(m)for(let e of m){let t=r.mapViewabilityAmountValues.get(e);t&&t.sizeVisible<0&&r.mapViewabilityAmountValues.delete(e)}}function Mr(e,t){return!!e&&e.containerId===t.containerId&&e.index===t.index&&e.isViewable===t.isViewable&&e.item===t.item&&e.key===t.key&&e.percentOfScroller===t.percentOfScroller&&e.percentVisible===t.percentVisible&&e.scrollSize===t.scrollSize&&e.size===t.size&&e.sizeVisible===t.sizeVisible}function Nr(e,t,n,r,i,a,o,s){let{sizes:c,scroll:l}=e,u=(M(t,`stylePaddingTop`)||0)+(M(t,`alignItemsAtEndPadding`)||0)+(M(t,`headerSize`)||0),{itemVisiblePercentThreshold:d,viewAreaCoveragePercentThreshold:f}=n,p=f!=null,m=p?f:d,h=l-u,g=e.positions[s],_=c.get(i)||0;if(g===void 0){let e={containerId:r,index:s,isViewable:!1,item:o,key:i,percentOfScroller:0,percentVisible:0,scrollSize:a,size:_,sizeVisible:-1};if(!Mr(t.mapViewabilityAmountValues.get(r),e)){t.mapViewabilityAmountValues.set(r,e);let n=t.mapViewabilityAmountCallbacks.get(r);n&&n(e)}return e}let v=g-h,y=v+_,b=v>=0&&y<=a&&y>v,x=b?_:Math.min(y,a)-Math.max(v,0),S=_?b?100:x/_*100:0,C=_?x/a*100:0,w={containerId:r,index:s,isViewable:(b?100:p?C:S)>=m,item:o,key:i,percentOfScroller:C,percentVisible:S,scrollSize:a,size:_,sizeVisible:x};if(!Mr(t.mapViewabilityAmountValues.get(r),w)){t.mapViewabilityAmountValues.set(r,w);let e=t.mapViewabilityAmountCallbacks.get(r);e&&e(w)}return w}function Pr(e,t,n,r,i,a,o,s){let c=t.mapViewabilityAmountValues.get(r);return(!c||c.key!==i||c.index!==s)&&(c=Nr(e,t,n,r,i,a,o,s)),c.isViewable}function Fr(e,t,n,r){let i=n+t;e.mapViewabilityValues.set(i,r),e.mapViewabilityCallbacks.get(i)?.(r)}var Ir=o.unstable_batchedUpdates,Lr=typeof Ir==`function`?Ir:e=>e(),Rr=32,zr=64,Br=3;function Vr(e,t){if(e<=0||t<=0)return 0;let n=Math.ceil(t*Br),r=t+zr;return Math.min(Math.max(e,t),Math.max(t,Math.min(n,r),Math.min(e,Rr)))}function Hr(e,t){return e<=0||t<=0?0:Math.min(Math.max(e,t),Math.max(t,Math.ceil(t*1.5)))}function Ur(e,t,n,r,i,a,o){let s=t.length;if(s===0)return[];let c=M(e,`numContainers`),l=e.state,{containerItemMetadata:u,stickyContainerPool:d}=l,f=l.props.recycleItems&&!!l.props.positionComponentInternal,p=i.length>0?new Set(i):void 0,m=t.map((e,t)=>({isSticky:l.props.stickyHeaderIndicesSet.has(e),itemIndex:e,itemType:a?.(e),order:t})),h=m.filter(e=>!e.isSticky),g=m.filter(e=>e.isSticky),_=[],v=[];for(let t=0;t<c;t++){let i=M(e,`containerItemKey${t}`),a=!!p?.has(t);if(!(i&&o?.has(i)&&l.indexByKey.has(i))){if(d.has(t))(i===void 0||a)&&v.push({containerIndex:t,distance:1/0});else if(i===void 0||a)_.push({containerIndex:t,distance:1/0});else if(!f){let e=l.indexByKey.get(i);if(e!==void 0&&(e<n||e>r)){let i=e<n?n-e:e-r;_.push({containerIndex:t,distance:i})}}}}_.sort(Wr);let y=Array(s),b=c,x=!1,S=(e,t)=>{y[e.order]={containerIndex:t,itemIndex:e.itemIndex,itemType:e.itemType},p?.delete(t)&&(x=!0)},C=(e,t,n)=>{for(let r of e){if(y[r.order])continue;let e=t.findIndex(e=>n(u.get(e.containerIndex)?.itemType,r.itemType));if(e!==-1){let[n]=t.splice(e,1);S(r,n.containerIndex)}}},w=(e,t,n)=>{a&&C(e,t,(e,t)=>t!==void 0&&e===t),C(e,t,e=>e===void 0),n&&C(e,t,()=>!0)};w(h,_,!0),w(g,v,!1);for(let e of m){if(y[e.order])continue;let t=b++;e.isSticky&&d.add(t),S(e,t)}if(x&&(i.length=0,p))for(let e of p)i.push(e);if(H){let t=M(e,`numContainersPooled`)??1/0;b>t&&console.warn(`[legend-list] No unused container available, so creating one on demand. This can be a minor performance issue and is likely caused by the estimatedItemSize being too large. Consider decreasing estimatedItemSize.`,{debugInfo:{numContainers:c,numContainersPooled:t,numNeeded:s,stillNeeded:b-c}})}return y}function Wr(e,t){return t.distance-e.distance}function Gr(e){let t=e.state;t.queuedInitialLayout=!0,je(e),qe(e,{didLayout:!0}),t.pendingMaintainScrollAtEnd&&Q(e)}var Kr=4,qr=100;function Jr(e,t){if(t<=0)return 0;let n=Math.min(1,Math.abs(e)/Kr);return Math.sign(e)*t*n}function Yr(e){let t=e.state;t.scheduledWork.timeout(()=>{var e;t.scrollHistory.length=0,(e=t.triggerCalculateItemsInView)==null||e.call(t)},qr,`renderRangeProjection`)}function Xr(e,t,n){let r=n.positions;for(let n=e.length-1;n>=0;n--){let i=r[e[n]];if(i!==void 0&&t>=i)return n}return-1}function Zr(e,t){let n=e.state,r=!1;for(let i of n.stickyContainerPool){let a=M(e,`containerItemKey${i}`);if((a?n.indexByKey.get(a):void 0)===t){r=!0;break}}return r}function Qr(e,t,n,r,i,a,o){let s=e.state;N(e,`activeStickyIndex`,n>=0?t[n]:-1);for(let c=0;c<=1;c++){let l=n-c;if(l<0)continue;let u=t[l];if(Zr(e,u))continue;let d=s.idCache[u]??K(s,u);d&&!s.containerItemKeys.has(d)&&(u<a||u>o)&&!i.has(u)&&(i.add(u),r.push(u))}}function $r(e,t,n,r,i,a,o){let s=e.state;for(let c of s.stickyContainerPool){let l=M(e,`containerItemKey${c}`),u=l?s.indexByKey.get(l):void 0;if(u===void 0||o(u))continue;let d=t.indexOf(u);if(d===-1){s.stickyContainerPool.delete(c),N(e,`containerSticky${c}`,!1);continue}if(d>=i-1&&d<=i+1)continue;let f=t[d+1],p=!1;if(f){let e=s.positions[f];p=e!==void 0&&n>e+r*2}else{let t=s.idCache[u]??K(s,u);if(t){let i=s.positions[u],a=s.sizes.get(t)??Y(e,t,u,s.props.data[u]);p=i!==void 0&&n>i+a+r*3}}p&&a.push(c)}}function ei(e,t,n,r,i,a){let o=!1;return e.startNoBuffer===null&&n+r>i&&(e.startNoBuffer=t),e.firstFullyOnScreenIndex===void 0&&n>=i-10&&n<=a&&(e.firstFullyOnScreenIndex=t),e.startNoBuffer!==null&&(n<=a?e.endNoBuffer=t:o=!0),o}function ti(e,t){let n=[],r=t.firstFullyOnScreenIndex??t.startNoBuffer;if(r!=null&&t.endNoBuffer!==null)for(let i=r;i<=t.endNoBuffer;i++){let t=e.idCache[i]??K(e,i);n.push(t)}return n}function ni(e,t){let n=e.props.onFirstVisibleItemChanged;if(!n||t===null||t<0||t>=e.props.data.length)return;let r=e.idCache[t]??K(e,t),i=e.lastFirstVisibleItemCallback;(i?.index!==t||i.key!==r)&&(e.lastFirstVisibleItemCallback={index:t,key:r},n({index:t,item:e.props.data[t],key:r}))}function ri(e,t){let n=e.state,{endBuffered:r,idCache:i,positions:a,props:{data:o},sizes:s,startBuffered:c}=n;if(c===null||r===null||c<0||r<c)return null;for(let l=c;l<=r&&l<o.length;l++){let r=i[l]??K(n,l),c=s.get(r)??Y(e,r,l,o[l]);if(a[l]+c>t)return l}return null}function ii(e,t,n,r,i){let a=e.state,{endBuffered:o,idCache:s,positions:c,props:{data:l},sizes:u,startBuffered:d}=a;if(d===null||o===null||d<0||o<d)return;let f={endNoBuffer:null,firstFullyOnScreenIndex:void 0,startNoBuffer:null};for(let t=d;t<=o&&t<l.length;t++){let n=s[t]??K(a,t),o=u.get(n)??Y(e,n,t,l[t]),d=c[t];if(ei(f,t,d,o,r,i))break}Object.assign(a,{endNoBuffer:f.endNoBuffer,firstFullyOnScreenIndex:f.firstFullyOnScreenIndex,idsInView:ti(a,f),startNoBuffer:f.startNoBuffer}),ni(a,f.startNoBuffer),f.startNoBuffer!==null&&f.endNoBuffer!==null&&Ar(a,e,t,n,f.startNoBuffer,f.endNoBuffer,d,o)}function ai(e,t={}){let n=e.state;Lr(()=>{var r,i,a;let{columns:o,containerItemKeys:s,enableScrollForNextCalculateItemsInView:c,idCache:l,indexByKey:u,minIndexSizeChanged:d,positions:f,props:{alwaysRenderIndicesArr:p,alwaysRenderIndicesSet:m,getItemType:h,keyExtractor:g,onStickyHeaderChange:_},scrollForNextCalculateItemsInView:v,scrollLength:y,sizes:b,startBufferedId:x,viewabilityConfigCallbackPairs:S}=n,{data:C}=n.props,w=n.props.stickyHeaderIndicesArr||[],T=n.props.stickyHeaderIndicesSet||new Set,E=We(e,t.drawDistanceMode),{dataChanged:D,doMVCP:O,forceFullItemPositions:k,mvcpAdjustmentSource:A}=t,j=n.initialScrollSession?.kind===`bootstrap`?n.initialScrollSession.bootstrap:void 0,P=!!j,ee=M(e,`numContainers`);if(!C||y===0||!ee)return;let F=R(e),I,te=M(e,`stylePaddingTop`)+M(e,`alignItemsAtEndPadding`)+M(e,`headerSize`),L=M(e,`numColumns`),z=t.scrollVelocity??Ht(n),{initialScroll:ne,queuedInitialLayout:ie}=n,B=P?j?.scroll??n.scroll:!ie&&Ae(n)&&ne?rn(e,ne):n.scroll,ae=0,oe=0,V=0,H=0,ce=0,le=0,ue=B,de=t=>{ue=t,ae=M(e,`scrollAdjustPending`)??0,oe=ae-te,V=Math.round(t+0+oe),V+y>F&&(V=Math.max(0,F-y))};de(B);let fe=M(e,`activeStickyIndex`),pe=()=>{let t=w.length>0?Xr(w,V,n):-1,r=t>=0?w[t]:-1,i=fe!==r;return(t>=0||fe>=0)&&N(e,`activeStickyIndex`,r),{currentStickyIdx:t,finishCalculateItemsInView:_&&w.length>0&&i?()=>{let e=C[r];e!==void 0&&_?.({index:r,item:e})}:void 0}},me=D?void 0:pe(),he=E,ge=E;z>0||z===0&&V<Math.max(50,E)?(he=E*.5,ge=E*1.5):(he=E*1.5,ge=E*.5);let _e=!D&&!k&&!P&&!Ae(n)&&!n.scrollingTo&&!n.pendingNativeMVCPAdjust&&M(e,`readyToRender`)?Jr(z,Math.min(he,ge)):0,ve=()=>{let e=Math.max(0,V),t=Math.max(0,-ue);ce=Math.max(e,V+y+t),H=e-he+_e,le=ce+ge+_e};if(ve(),_e!==0&&Yr(e),c&&!P&&!D&&!k&&v){let{top:t,bottom:i}=v;if(t===null&&i===null)n.scrollForNextCalculateItemsInView=void 0;else if((t===null||H>t)&&(i===null||le<i)&&!Wt(n)){S?ii(e,S,y,V,ce):n.props.onFirstVisibleItemChanged&&ni(n,ri(e,V)),(r=me?.finishCalculateItemsInView)==null||r.call(me);return}}let ye=O&&!P?zt(e,D):void 0;D&&vr(n);let be=k||D?0:d??n.startBuffered??0;Dr(e,D,{doMVCP:O,forceFullUpdate:!!k,optimizeForVisibleWindow:!k&&!D&&L>1&&d!==void 0,scrollBottomBuffered:le,scrollVelocity:z,startIndex:be}),F=R(e),d!==void 0&&(n.minIndexSizeChanged=void 0);let xe;if(D&&O&&n.props.maintainVisibleContentPosition.data&&n.didContainersLayout&&n.idsInView.length>0){let e=n.props.maintainVisibleContentPosition.shouldRestorePosition;xe=new Set;for(let t of n.idsInView){let n=u.get(t);n!==void 0&&(e&&!e(C[n],n,C)||xe.add(t))}}let U=n.scroll,W=M(e,`scrollAdjustPending`)??0;ye?.(),ye&&(n.scroll!==U||(M(e,`scrollAdjustPending`)??0)!==W)&&(de(n.scroll),ve()),D&&(me=pe());let Se=null,Ce=null,we=null,Te=(P?j?.targetIndexSeed:void 0)??(!D&&x&&u.get(x)||0);for(let t=Te;t>=0;t--){let r=l[t]??K(n,t);if(f[t]+(b.get(r)??Y(e,r,t,C[t]))>H)Te=t;else break}if(L>1)for(;Te>0;){let e=o[Te];if(e===1||e===void 0)break;--Te}let Ee=!1,De,Oe,ke=0;for(let t=0;t<ee;t++){let n=M(e,`containerItemKey${t}`);if(n!==void 0){let e=u.get(n);ke=Math.max(ke,e)}}let G={endNoBuffer:null,firstFullyOnScreenIndex:void 0,startNoBuffer:null},je=C.length;for(let t=Math.max(0,Te);t<je&&(!Ee||t<=ke);t++){let r=l[t]??K(n,t),i=b.get(r)??Y(e,r,t,C[t]),a=f[t];Ee||(ei(G,t,a,i,V,ce),Se===null&&a+i>H&&(Se=t,Ce=r,De=H<0?null:a),G.startNoBuffer!==null&&(a<=le?(we=t,Oe=le>F?null:a+i):Ee=!0))}Object.assign(n,{endBuffered:we,endNoBuffer:G.endNoBuffer,firstFullyOnScreenIndex:G.firstFullyOnScreenIndex,idsInView:ti(n,G),startBuffered:Se,startBufferedId:Ce,startNoBuffer:G.startNoBuffer}),c&&De!==void 0&&Oe!==void 0&&(n.scrollForNextCalculateItemsInView=dt(De)&&dt(Oe)?void 0:{bottom:Oe,top:De});let Me=ee,Ne=[];if(D)for(let t=0;t<Me;t++){let n=M(e,`containerItemKey${t}`);(!g||n&&u.get(n)===void 0)&&Ne.push(t)}let Pe=n.scrollTargetPinnedRange,Fe=0,Ie=-1;Pe&&(Fe=Math.max(0,Math.min(Pe.start,Pe.end)),Ie=Math.min(je-1,Math.max(Pe.start,Pe.end)));let Le=Fe<=Ie,Re=e=>m.has(e)||Le&&e>=Fe&&e<=Ie;if(Se!==null&&we!==null){let t=[],r=new Set,a=e=>{if(e>=0&&e<je){let i=l[e]??K(n,e),a=s.get(i);a===void 0?!dt(i)&&!r.has(e)&&(r.add(e),t.push(e)):n.stickyContainerPool.add(a)}};for(let e=Se;e<=we;e++){let i=l[e]??K(n,e);s.has(i)||(r.add(e),t.push(e))}for(let e of p)a(e);if(Le)for(let e=Fe;e<=Ie;e++)a(e);if(w.length>0?Qr(e,w,me?.currentStickyIdx??-1,t,r,Se,we):fe!==-1&&N(e,`activeStickyIndex`,-1),t.length>0){let r=Ur(e,t,Se,we,Ne,h?e=>{let t=h(C[e],e);return t===void 0?``:String(t)}:void 0,xe);for(let t of r){let r=t.itemIndex,a=t.containerIndex,o=l[r]??K(n,r),c=M(e,`containerItemKey${a}`);if(c&&c!==o&&s.delete(c),n.containerItemMetadata.set(a,qn(n,r,C[r],t.itemType)),c!==o&&(I??=new Set,I.add(a),n.containerItemGenerations[a]=(n.containerItemGenerations[a]??0)+1,n.props.hideItemsUntilMeasured)){let t=n.sizesKnown.has(o)||Yn(n,a,r,C[r]).fixedItemSize!==void 0;N(e,`containerLayoutReady${a}`,t)}N(e,`containerItemKey${a}`,o),N(e,`containerItemIndex${a}`,r),N(e,`containerItemData${a}`,C[r]),s.set(o,a),(i=n.userScrollAnchorReset)==null||i.keys.add(o);let u=`containerSticky${a}`,d=T.has(r),f=Re(r);d?(N(e,u,!0),n.stickyContainerPool.add(a)):(M(e,u)&&N(e,u,!1),f?n.stickyContainerPool.add(a):n.stickyContainerPool.delete(a)),a>=Me&&(Me=a+1)}Me!==ee&&(N(e,`numContainers`,Me),Me>M(e,`numContainersPooled`)&&N(e,`numContainersPooled`,Hr(je,Me)))}n.userScrollAnchorReset?.keys.size===0&&(n.userScrollAnchorReset=void 0)}n.stickyContainerPool.size>0&&$r(e,w,V,E,me?.currentStickyIdx??-1,Ne,Re);let ze=Ne.length>0?new Set(Ne):void 0,Be=!1;for(let t=0;t<Me;t++){let r=M(e,`containerItemKey${t}`);if(ze?.has(t))r!==void 0&&(s.delete(r),I??=new Set,I.add(t),n.containerItemGenerations[t]=(n.containerItemGenerations[t]??0)+1),n.containerItemMetadata.delete(t),n.stickyContainerPool.has(t)&&(N(e,`containerSticky${t}`,!1),n.stickyContainerPool.delete(t)),N(e,`containerItemKey${t}`,void 0),N(e,`containerItemIndex${t}`,void 0),N(e,`containerItemData${t}`,void 0),N(e,`containerPosition${t}`,se),N(e,`containerColumn${t}`,-1),N(e,`containerSpan${t}`,1);else{let n=u.get(r);n!==void 0&&(Be=xr(e,t,n,{scrollAdjustPending:ae,updateLayout:!0}).didChangePosition||Be)}}if(I&&re&&br(e,I),Be&&N(e,`lastPositionUpdate`,Date.now()),P){Wn(e);return}ni(n,G.startNoBuffer),!ie&&!n.didContainersLayout&&(Ae(n)?ln(n,n.startBuffered,n.endBuffered):ln(n,n.startNoBuffer,n.endNoBuffer)||ln(n,n.startBuffered,n.endBuffered))&&(Gr(e),hr(e)),S&&G.startNoBuffer!==null&&G.endNoBuffer!==null&&Ar(e.state,e,S,y,G.startNoBuffer,G.endNoBuffer,Se??G.startNoBuffer,we??G.endNoBuffer),(a=me?.finishCalculateItemsInView)==null||a.call(me)})}function oi(e){var t,n;let r=e.state,i=r.props.anchoredEndSpace,a=M(e,`anchoredEndSpaceSize`),o=r.anchoredEndSpaceReadyAnchorIndex,s=r.anchoredEndSpaceReadyAnchorKey,c=i?.anchorIndex,l,u=!0,d=0;if(i){let{anchorIndex:t,anchorMaxSize:n,anchorOffset:o=0}=i,{data:s}=r.props;if(t>=0&&t<s.length&&r.scrollLength>0){l=K(r,t);let i=0,c=!1;for(let r=t;r<s.length;r++){let a=J(e,r),o=r===t&&n!==void 0?Math.min(a||0,Math.max(0,n)):a;a===void 0&&(c=!0),o!=null&&o>0&&(i+=o)}i=Math.max(0,i-e.scrollAxisGap),i+=(e.values.get(`footerSize`)||0)+_(r.props),u=!c,d=c?a||0:Math.max(0,r.scrollLength-i-o)}else t>=0&&(u=!1)}let f=a!==d&&(a!==void 0||i!==void 0),p=(a||0)!==d;return u&&(f||o!==c||s!==l)&&(r.anchoredEndSpaceReadyAnchorIndex=c,r.anchoredEndSpaceReadyAnchorKey=l,f&&(N(e,`anchoredEndSpaceSize`,d),(t=i?.onSizeChanged)==null||t.call(i,d)),p&&(it(e),Gt(e,r.scroll,!0,{markHasScrolled:!1})),(n=i?.onReady)==null||n.call(i,{anchorIndex:c,anchorKey:l,size:d})),d}function si(e){let t=e.state;t.userScrollAnchorReset===void 0?t.mvcpAnchorLock?t.scheduledWork.has(`mvcpRecalculate`)||t.scheduledWork.frame(()=>ai(e,{doMVCP:!0,mvcpAdjustmentSource:`item-size`}),`mvcpRecalculate`):(t.scheduledWork.cancel(`mvcpRecalculate`),ai(e,{doMVCP:!0,mvcpAdjustmentSource:`item-size`})):(ai(e),t.userScrollAnchorReset?.keys.size===0&&(t.userScrollAnchorReset=void 0))}function ci(e,t,n){if(e.state.needsOtherAxisSize){let r=n?t.height:t.width,i=M(e,`otherAxisSize`);(!i||r>i)&&N(e,`otherAxisSize`,r)}}var li;function ui(e){let t=li===void 0;li??=new Map;try{e()}finally{if(t){let e=li;li=void 0;for(let[t,n]of e)mi(t,n)}}}function di(e,t){e.didChange||=t.didChange,e.didMeasureUserScrollAnchorResetItem||=t.didMeasureUserScrollAnchorResetItem,e.needsRecalculate||=t.needsRecalculate,e.shouldMaintainScrollAtEnd||=t.shouldMaintainScrollAtEnd}function fi(e,t){let n=e.state;t.needsRecalculate?(n.scrollForNextCalculateItemsInView=void 0,si(e)):t.didMeasureUserScrollAnchorResetItem&&n.userScrollAnchorReset?.keys.size===0&&(n.userScrollAnchorReset=void 0),t.didChange&&oi(e),t.didChange&&t.shouldMaintainScrollAtEnd&&Q(e)}function pi(e,t){if(li){let n=li.get(e);n?n.push(t):li.set(e,[t])}else mi(e,[t])}function mi(e,t){let n=e.state,r={};for(let i of t)if(i.containerId===void 0||M(e,`containerItemKey${i.containerId}`)===i.itemKey){let t=n.indexByKey.get(i.itemKey),a=t===void 0?void 0:n.props.data?.[t],o=i.containerId!==void 0&&t!==void 0&&a!==void 0?Yn(n,i.containerId,t,a):void 0;di(r,hi(e,i.itemKey,i.size,o))}fi(e,r)}function hi(e,t,n,r){let i=e.state,a=!!i.userScrollAnchorReset?.keys.delete(t),{didContainersLayout:o,sizesKnown:s,props:{getFixedItemSize:c,getItemType:l,horizontal:u,onItemSizeChanged:d,data:f,maintainScrollAtEnd:p}}=i;if(!f)return{didMeasureUserScrollAnchorResetItem:a};let m=i.indexByKey.get(t);if(c){if(m===void 0)return{didMeasureUserScrollAnchorResetItem:a};let o=i.props.data[m];if(o===void 0)return{didMeasureUserScrollAnchorResetItem:a};if(!r?.didResolveFixedItemSize){let e=r?.itemType??(l?l(o,m)??``:``);r={didResolveFixedItemSize:!0,fixedItemSize:c(o,m,e),itemType:e}}let d=r.fixedItemSize;if(d!==void 0&&d===s.get(t))return ci(e,n,u),{didMeasureUserScrollAnchorResetItem:a}}let h=!o,g=!1,_,v=i.sizesKnown.get(t),y=gi(e,t,n,r),b=ut(u?n.width:n.height);if(y!==0){_=_===void 0?m:Math.min(_,m);let{startBuffered:e,endBuffered:n}=i;h||=m>=e&&m<=n,!h&&i.containerItemKeys.has(t)&&(h=!0),(v===void 0||Math.abs(v-b)>5)&&(g=!0),d?.({index:m,itemData:i.props.data[m],itemKey:t,previous:b-y,size:b})}if(_!==void 0&&(i.minIndexSizeChanged=i.minIndexSizeChanged===void 0?_:Math.min(i.minIndexSizeChanged,_)),ci(e,n,u),o||ln(i,i.startBuffered,i.endBuffered)){let e=g&&!!p?.onItemLayout;return{didChange:y!==0,didMeasureUserScrollAnchorResetItem:a,needsRecalculate:h,shouldMaintainScrollAtEnd:e}}return{didChange:y!==0,didMeasureUserScrollAnchorResetItem:a}}function gi(e,t,n,r){let{indexByKey:i,sizesKnown:a,averageSizes:o,props:{data:s,horizontal:c,getItemType:l,getFixedItemSize:u}}=e.state;if(!s)return 0;let d=i.get(t),f=s[d],p=r?.itemType,m=r?.fixedItemSize;u&&!r?.didResolveFixedItemSize&&(p=l?l(f,d)??``:``,m=u(f,d,p));let h=Y(e,t,d,f,void 0,void 0,void 0,r?.didResolveFixedItemSize||p!==void 0||m!==void 0?{didResolveFixedItemSize:r?.didResolveFixedItemSize,fixedItemSize:m,itemType:p}:void 0),g=c?n.width:n.height,_=a.get(t),v=Math.round(g);if(a.set(t,v),m===void 0&&v>0){p??=l?l(f,d)??``:``;let e=o[p];e||=o[p]={avg:0,num:0},e.num===0?(e.avg=v,e.num++):_!==void 0&&_>0?e.avg+=(v-_)/e.num:(e.avg=(e.avg*e.num+v)/(e.num+1),e.num++)}return!h||Math.abs(h-v)>.1?(ot(e,t,v),v-h):0}function _i(e,t=null){let n=[],r=t??e.viewRefs.keys();for(let t of r){let r=e.viewRefs.get(t),i=M(e,`containerItemKey${t}`),a=r?.current;if(i!==void 0&&a){let e=a.getBoundingClientRect();ae(a,e),n.push({containerId:t,itemKey:i,size:{height:e.height,width:e.width}})}}n.length>0&&mi(e,n)}var vi=i.forwardRef,yi=i.memo,bi=yi(function({children:e}){let t=D(),[n]=F([`containerLayoutEpoch`]);return i.useLayoutEffect(()=>{{let e=yr(t);e!==void 0&&_i(t,e)}},[t,n]),e}),xi=e=>i.isValidElement(e)?e:e?i.createElement(e,null):null,Si={contain:`paint layout style`,...typeof document<`u`&&document.getElementById(`react-native-stylesheet`)?{display:`flex`,flexDirection:`column`}:{}},Ci=yi(function({id:e,horizontal:t,style:n,refView:r,...a}){let[o=se]=F([`containerPosition${e}`]),s=ct(n)?Object.assign({},...n):n,c=t?{...Si,...s,left:o}:{...Si,...s,top:o},{animatedScrollY:l,onLayout:u,onLayoutChange:d,stickyHeaderConfig:f,...p}=a;return i.createElement(`div`,{ref:r,...p,style:c})}),wi=yi(function({id:e,horizontal:t,style:n,refView:r,animatedScrollY:a,stickyHeaderConfig:o,onLayout:s,onLayoutChange:c,children:l,...u}){let[d=se,f,p]=F([`containerPosition${e}`,`activeStickyIndex`,`containerItemIndex${e}`]),m=i.useMemo(()=>(ct(n)?Object.assign({},...n):n)??{},[n]),h=i.useMemo(()=>{let e={...Si,...m};delete e.transform;let n=o?.offset??0,r=f===p;return e.position=r?`sticky`:`absolute`,e.zIndex=p+1e3,t?e.left=r?n:d:e.top=r?n:d,e},[m,t,d,p,f,o?.offset]),g=i.useMemo(()=>o?.backdropComponent?i.createElement(`div`,{style:{inset:0,pointerEvents:`none`,position:`absolute`}},xi(o.backdropComponent)):null,[o?.backdropComponent]);return i.createElement(`div`,{ref:r,style:h,...u},g,l)}),Ti=Ci;function Ei(e){(0,i.useState)(()=>e())}var Di=(0,i.createContext)(null),Oi=-1;function ki(){return(0,i.useContext)(Di)}function Ai(){let e=ki(),[t]=F([`containerItemKey${e?.containerId??Oi}`]);return I(`lastItemKeys`,n=>e&&!dt(t)&&n?.includes(t)||!1)}function ji({ItemSeparatorComponent:e,leadingItem:t}){return Ai()?null:i.createElement(e,{leadingItem:t})}var Mi=null;function Ni(){return Mi||=new ResizeObserver(e=>{ui(()=>{for(let t of e){let e=Pi.get(t.target);if(e)for(let n of e)n(t)}})}),Mi}var Pi=new WeakMap;function Fi(e,t){if(typeof ResizeObserver>`u`||!e)return()=>{};let n=Ni(),r=Pi.get(e)??new Set;return r.size===0&&(Pi.set(e,r),n.observe(e,{box:`border-box`})),r.add(t),()=>{r.delete(t),r.size===0&&(Pi.delete(e),n.unobserve(e))}}function Ii({ref:e,measureInLayoutEffect:t=!0,onLayoutProp:n,onLayoutChange:r,webLayoutResync:a},o){return(0,i.useLayoutEffect)(()=>{let i=e.current,o=((i?.getScrollableNode)?.call(i)??null)||i;if(!o)return;let s=(e,t)=>{(e.height!==0||e.width!==0)&&(r(e,t),n?.({nativeEvent:{layout:e}}))},c;if(t){let e=o.getBoundingClientRect();s(Li(e),!0),c=e}return Fi(o,e=>{let t=e.target instanceof HTMLElement?e.target:void 0,n=Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize,r=n?{height:n.blockSize,left:e.contentRect.left,top:e.contentRect.top,width:n.inlineSize}:t?.getBoundingClientRect()??e.contentRect,i=c??B(o),l=i===void 0||r.width!==i.width||r.height!==i.height;c=r;let u=!!a?.();(l||u)&&s(Li(r),!1)})},[t,...o||[]]),{}}function Li(e){return e?{height:e.height,width:e.width,x:e.left,y:e.top}:{height:0,width:0,x:0,y:0}}var Ri=new Map,zi;function Bi(e){Ri.delete(e)}function Vi(e,t){Ri.set(e,t),zi===void 0&&(zi=requestAnimationFrame(()=>{let e=Array.from(Ri.values());Ri.clear(),zi=void 0,ui(()=>{for(let t of e)t()})}))}function Hi({containerId:e,ctx:t,rectangle:n,ref:r,state:i}){let a=t.state,o=i.itemKey;i.didLayout=!0;let s=n,c=i.horizontal?`width`:`height`,l=ut(n[c]);i.lastSize&&ut(i.lastSize[c]);let u=a.sizesKnown.get(o),d=()=>{i.lastSize=s,pi(t,{containerId:e,itemKey:o,size:s})};!Wt(a)&&u!==void 0&&l+1<u?Vi(i,()=>{if(i.itemKey===o){let e=r.current,t=(e?.getBoundingClientRect)?.call(e);t&&(s={height:t.height,width:t.width}),d()}}):(Bi(i),d())}function Ui({containerId:e,ctx:t,horizontal:n,itemKey:r,ref:a}){let o=(0,i.useRef)({didLayout:!1,horizontal:n,itemKey:r});o.current.horizontal=n,o.current.itemKey=r;let[s,c]=(0,i.useState)(0),l=(0,i.useCallback)(n=>{Hi({containerId:e,ctx:t,rectangle:n,ref:a,state:o.current})},[e,t,a]),u=(0,i.useCallback)(()=>{br(t,e)},[e,t]);(0,i.useLayoutEffect)(()=>(t.containerLayoutTriggers.set(e,u),()=>{Bi(o.current),t.containerLayoutTriggers.get(e)===u&&t.containerLayoutTriggers.delete(e)}),[e,t,u]),(0,i.useLayoutEffect)(()=>{br(t,e)});let{onLayout:d}=Ii({measureInLayoutEffect:!re,onLayoutChange:l,ref:a,webLayoutResync:()=>Wt(t.state)},[r,s]);return(0,i.useEffect)(()=>{},[e,t,r]),{onLayout:d,triggerLayout:u}}function Wi({columnWrapperStyle:e,contentContainerAlignItems:t,horizontal:n,hasItemSeparator:r,isHorizontalRTLList:i,numColumns:a,otherAxisPos:o,otherAxisSize:s}){let c;if(e){let{columnGap:t,rowGap:r,gap:i}=e;c=n?{paddingBottom:a>1?(r||i||0)/2:void 0,paddingRight:t||i||void 0,paddingTop:a>1?(r||i||0)/2:void 0}:{paddingBottom:r||i||void 0,paddingLeft:a>1?(t||i||0)/2:void 0,paddingRight:a>1?(t||i||0)/2:void 0}}return n?{bottom:t===`flex-end`&&a===1?0:void 0,boxSizing:c?`border-box`:void 0,direction:i&&l.OS===`web`?`ltr`:void 0,flexDirection:r?`row`:void 0,height:s,left:0,position:`absolute`,top:t===`flex-end`&&a===1?void 0:o,...c||{}}:{boxSizing:c?`border-box`:void 0,left:o,position:`absolute`,right:a>1?null:0,top:0,width:s,...c||{}}}var Gi=yi(function({id:e,itemKey:t,recycleItems:n,horizontal:r,getRenderedItem:a,ItemSeparatorComponent:o,stickyHeaderConfig:s}){let c=D(),{columnWrapperStyle:l,animatedScrollY:u}=c,d=h(c.state),f=c.state.props.positionComponentInternal,p=c.state.props.stickyPositionComponentInternal,[m=0,g=1,_,v=1,y,b]=F([`containerColumn${e}`,`containerSpan${e}`,`containerItemData${e}`,`numColumns`,`extraData`,`containerSticky${e}`]),x=(0,i.useRef)(null),{onLayout:S,triggerLayout:C}=Ui({containerId:e,ctx:c,horizontal:r,itemKey:t,ref:x}),w=m>0?m:1,T=Math.min(Math.max(g||1,1),v),E=v>1?`${(w-1)/v*100}%`:0,O=v>1?`${T/v*100}%`:void 0,k=(0,i.useMemo)(()=>Wi({columnWrapperStyle:l,contentContainerAlignItems:c.state.props.contentContainerAlignItems,hasItemSeparator:!!o,horizontal:r,isHorizontalRTLList:d,numColumns:v,otherAxisPos:E,otherAxisSize:O}),[r,d,E,O,l,c.state.props.contentContainerAlignItems,v,o]),A=(0,i.useMemo)(()=>t===void 0?null:a(t,e),[t,_,y]),{renderedItem:j}=A||{},M=(0,i.useMemo)(()=>(c.viewRefs.set(e,x),{containerId:e,triggerLayout:C}),[e,C]),N=b?p||wi:f||Ti;return i.createElement(N,{animatedScrollY:b?u:void 0,horizontal:r,id:e,key:n?void 0:t,onLayout:S,refView:x,stickyHeaderConfig:s,style:k},i.createElement(Di.Provider,{value:M},j,A&&o&&i.createElement(ji,{ItemSeparatorComponent:o,leadingItem:A.item})))});function Ki({id:e,horizontal:t,recycleItems:n,ItemSeparatorComponent:r,getRenderedItem:a,stickyHeaderConfig:o,ContainerComponent:s=Gi}){let[c]=F([`containerItemKey${e}`]);return c===void 0?null:i.createElement(s,{getRenderedItem:a,horizontal:t,ItemSeparatorComponent:r,id:e,itemKey:c,recycleItems:n,stickyHeaderConfig:o})}var qi=yi(function(e){return i.createElement(Ki,{...e})});function Ji(e,t){let n=Array.from(e.children);if(n.length<=1)return n;let r=n.map(e=>[e,t.get(e)??null]);r.sort((e,t)=>{let n=e[1],r=t[1];return n===null?1:r===null?-1:n-r});let i=new Map;r.forEach((e,t)=>{i.set(e[0],t)});let a=Yi(n.map(e=>i.get(e))),o=new Set(a);for(let t=0;t<r.length;t++){let i=r[t][0],a=n.indexOf(i);if(!o.has(a)){let a=null;for(let e=t+1;e<r.length;e++){let t=r[e][0],i=n.indexOf(t);if(o.has(i)){a=t;break}}a?e.insertBefore(i,a):e.appendChild(i)}}}function Yi(e){let t=e.length,n=[],r=Array(t).fill(-1),i=[];for(let a=0;a<t;a++){let t=e[a],o=0,s=n.length;for(;o<s;){let n=Math.floor((o+s)/2);e[i[n]]<t?o=n+1:s=n}o===n.length?(n.push(t),i.push(a)):(n[o]=t,i[o]=a),o>0&&(r[a]=i[o-1])}let a=[],o=i[i.length-1];for(;o!==-1;)a.unshift(o),o=r[o];return a}function Xi(e){let t=D(),n=(0,i.useRef)(void 0);(0,i.useEffect)(()=>{let r=j(t,`lastPositionUpdate`,()=>{n.current!==void 0&&clearTimeout(n.current),n.current=setTimeout(()=>{let r=e.current;if(r){let e=new Map;for(let[n,r]of t.viewRefs){let i=r.current,a=M(t,`containerItemIndex${n}`);i&&a!==void 0&&e.set(i,a)}Ji(r,e)}n.current=void 0},500)});return()=>{r(),n.current!==void 0&&clearTimeout(n.current)}},[t])}function Zi(e,t){let[n,r]=(0,i.useState)(t),a=n!==t;return(0,i.useLayoutEffect)(()=>{r(t)},[t]),e&&!a}var Qi=yi(function({freshDataTransitionEpoch:e,horizontal:t,numColumns:n,children:r}){let a=(0,i.useRef)(null),o=D(),s=o.columnWrapperStyle,c=h(o.state),[l,u,d]=F([`otherAxisSize`,`readyToRender`,`totalSize`]),f=Zi(!!u,e);Xi(a);let p=t?{direction:c?`ltr`:void 0,flexShrink:0,minHeight:l,opacity:+!!f,position:`relative`,width:d}:{height:d,minWidth:l,opacity:+!!f,position:`relative`};if(f||(p.pointerEvents=`none`),s&&n>1){let{columnGap:e,rowGap:n,gap:r}=s,i=e||r||0,a=n||r||0;t?(a&&(p.marginTop=p.marginBottom=-a/2),i&&(p.marginRight=-i)):a&&(p.marginBottom=-a)}return i.createElement(`div`,{ref:a,style:p},i.createElement(bi,null,r))}),$i=yi(function({freshDataTransitionEpoch:e,horizontal:t,recycleItems:n,ItemSeparatorComponent:r,getRenderedItem:a,stickyHeaderConfig:o}){let[s,c]=F([`numContainersPooled`,`numColumns`]),l=[];for(let e=0;e<s;e++)l.push(i.createElement(qi,{getRenderedItem:a,horizontal:t,ItemSeparatorComponent:r,id:e,key:e,recycleItems:n,stickyHeaderConfig:o}));return i.createElement(Qi,{freshDataTransitionEpoch:e,horizontal:t,numColumns:c},l)});function ea(e){return ct(e)?Object.assign({},...e.filter(Boolean)):e}var ta={create:e=>e,flatten:e=>ea(e)};function na(e){let t=i.useRef(e);return t.current=e,t}function ra(e){let t=na(e),n=(0,i.useRef)(void 0),r=(0,i.useMemo)(()=>({cancel(){n.current!==void 0&&(cancelAnimationFrame(n.current),n.current=void 0)},flush(){r.cancel(),t.current()},schedule(){if(n.current!==void 0)return!1;let e=requestAnimationFrame(()=>{n.current===e&&(n.current=void 0,t.current())});return n.current=e,!0}}),[]);return(0,i.useEffect)(()=>()=>{r.cancel()},[r]),r}var ia=`legend-list-content-container`,aa=`legend-list-scrollbar-x-hidden`,oa=`legend-list-scrollbar-y-hidden`;function sa(){return typeof document>`u`?null:document.scrollingElement||document.documentElement||document.body}function ca(){return typeof window>`u`?{x:0,y:0}:{x:window.scrollX??window.pageXOffset??0,y:window.scrollY??window.pageYOffset??0}}function la(e,t){let n=e?.getBoundingClientRect();return{left:(n?.left??0)+t.x,top:(n?.top??0)+t.y}}function ua(e){return{height:e?.scrollHeight??0,width:e?.scrollWidth??0}}function da(e,t,n){return ua(n?t:e)}function fa(e,t,n){if(t&&typeof window<`u`){let t=e?.getBoundingClientRect();return{height:n?t?.height??e?.clientHeight??window.innerHeight:window.innerHeight,width:n?window.innerWidth:t?.width??e?.clientWidth??window.innerWidth}}return{height:e?.clientHeight??0,width:e?.clientWidth??0}}function pa(e,t){return Math.max(0,Math.min(e,t))}function ma(e,t){return t?e.width:e.height}function ha(e,t,n){return Math.max(0,ma(e,n)-ma(t,n))}function ga(e,t){return t&&sa()||e}function _a(e,t){return t&&typeof window<`u`?window:e}function va(e,t,n){let r=e.getBoundingClientRect(),i=ca();return{height:t&&typeof window<`u`&&!n?window.innerHeight:r.height,width:t&&typeof window<`u`&&n?window.innerWidth:r.width,x:t?r.left+i.x:r.left,y:t?r.top+i.y:r.top}}function ya({clampedOffset:e,horizontal:t,listPos:n,scroll:r}){return{left:t?n.left+e:r.x,top:t?r.y:n.top+e}}var ba=`legend-list-scrollbar-axis-hidden-style`,xa=200,Sa=`.${oa}::-webkit-scrollbar:vertical{width:0;display:none;}.${aa}::-webkit-scrollbar:horizontal{height:0;display:none;}`;function Ca(){if(typeof document>`u`||document.getElementById(ba))return;let e=document.createElement(`style`);e.id=ba,e.textContent=Sa,document.head.appendChild(e)}function wa(e){let t=e.state?.props?.contentInsetEndAdjustment;return Math.max(0,t??0)}function Ta(e){if(!e?.length)return[];let t=[],n=new Set;for(let r of e)Number.isFinite(r)&&!n.has(r)&&(n.add(r),t.push(r));return t}function Ea(e,t){return{height:t?`100%`:1,left:t?e:0,pointerEvents:`none`,position:`absolute`,scrollSnapAlign:`start`,top:t?0:e,width:t?1:`100%`}}var Da=(0,i.forwardRef)(function({children:e,style:t,contentContainerClassName:n,contentContainerStyle:r,horizontal:a=!1,contentOffset:o,maintainVisibleContentPosition:s,onScroll:c,onInternalScrollEnd:l,onMomentumScrollEnd:u,showsHorizontalScrollIndicator:d=!0,showsVerticalScrollIndicator:f=!0,refreshControl:p,useWindowScroll:m=!1,onLayout:h,...g},_){let v=D(),[y]=F([`anchoredEndSpaceSize`]),b=(0,i.useRef)(null),x=(0,i.useRef)(null),S=m,C=(0,i.useCallback)(()=>_a(b.current,S),[S]),w=(0,i.useCallback)(()=>{let e=b.current;return ha(da(e,x.current,S),fa(e,S,a),a)},[a,S]),T=(0,i.useCallback)(()=>{let e=b.current;if(S){let t=w(),n=ca(),r=la(e,n);return pa(a?n.x-r.left:n.y-r.top,t)}return e?a?e.scrollLeft:e.scrollTop:0},[w,a,S]),E=(0,i.useCallback)((e,t)=>{let n=b.current,r=C();if(!r||typeof r.scrollTo!=`function`)return;let i=pa(e,w()),o={behavior:t?`smooth`:`auto`};if(S){let e=ca(),{left:t,top:r}=ya({clampedOffset:i,horizontal:a,listPos:la(n,e),scroll:e});o.left=t,o.top=r}else a?o.left=i:o.top=i;r.scrollTo(o)},[w,C,a,S]);(0,i.useImperativeHandle)(_,()=>({getBoundingClientRect:()=>b.current?.getBoundingClientRect(),getCurrentScrollOffset:T,getScrollableNode:()=>ga(b.current,S),getScrollEventTarget:()=>C(),getScrollResponder:()=>ga(b.current,S),isWindowScroll:()=>S,scrollBy:(e,t)=>{let n=C();!n||typeof n.scrollBy!=`function`||n.scrollBy({behavior:`auto`,left:e,top:t})},scrollTo:e=>{let{x:t=0,y:n=0,animated:r=!0}=e;E(a?t:n,r)},scrollToEnd:(e={})=>{let{animated:t=!0}=e,n=w();E(n,t)},scrollToOffset:e=>{let{offset:t,animated:n=!0}=e;E(t,n)}}),[T,w,C,a,S,E]);let O=ra((0,i.useCallback)(()=>{if(!c||!b.current)return;let e=ua(x.current),t=fa(b.current,S,a),n=T();c({nativeEvent:{contentOffset:{x:a?n:0,y:a?0:n},contentSize:{height:e.height,width:e.width},layoutMeasurement:{height:t.height,width:t.width}}})},[T,a,S,c])),k=(0,i.useRef)(void 0),A=(0,i.useCallback)(()=>{let e=k.current;e!==void 0&&(clearTimeout(e),k.current=void 0),O.flush(),l?.()},[l,O]),j=(0,i.useCallback)(e=>{if(!c)return;let t=v.state;if(t?.scrollingTo||t?.initialScrollSession&&!t.didFinishInitialScroll||t?.initialScroll&&!t.didFinishInitialScroll||t&&Wt(t)?O.flush():O.schedule(),l){let e=k.current;e!==void 0&&clearTimeout(e),k.current=setTimeout(A,xa)}},[v.state,A,l,c,O]);(0,i.useLayoutEffect)(()=>{let e=C();if(e)return e.addEventListener(`scroll`,j,{passive:!0}),`onscrollend`in e&&e.addEventListener(`scrollend`,A),()=>{e.removeEventListener(`scroll`,j),`onscrollend`in e&&e.removeEventListener(`scrollend`,A);let t=k.current;t!==void 0&&(clearTimeout(t),k.current=void 0),O.cancel()}},[A,C,j,O]),(0,i.useEffect)(()=>{let e=()=>{o&&E(a?o.x||0:o.y||0,!1)};e(),requestAnimationFrame(e)},[o?.x,o?.y,a,E]),(0,i.useLayoutEffect)(()=>{if(!h||!b.current)return;let e=b.current,t=()=>{h({nativeEvent:{layout:va(e,S,a)}})};t();let n=new ResizeObserver(()=>{t()});n.observe(e);let r=()=>{t()};return S&&typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`resize`,r),()=>{n.disconnect(),S&&typeof window<`u`&&typeof window.removeEventListener==`function`&&window.removeEventListener(`resize`,r)}},[S,h]);let M=!S&&(a?!d&&aa:!f&&oa);(0,i.useLayoutEffect)(()=>{M&&Ca()},[M]);let N={...S?{}:{overflow:`auto`,overflowX:a||d?`auto`:`hidden`,overflowY:a?f?`auto`:`hidden`:`auto`,WebkitOverflowScrolling:`touch`},...ta.flatten(t),...s?{overflowAnchor:`none`}:{}},P=wa(v),ee=v.state?.props?.anchoredEndSpace&&y?y:0,I=Math.max(0,P-ee),te=I?a?{flexShrink:0,width:I}:{height:I}:void 0,L={display:a?`flex`:`block`,flexDirection:a?`row`:void 0,minHeight:a?void 0:`100%`,minWidth:a?`100%`:void 0,...ta.flatten(r),...s?{overflowAnchor:`none`}:{}},R=n?`${ia} ${n}`:ia,{contentContainerClassName:z,contentInset:ne,scrollEventThrottle:re,ScrollComponent:ie,snapToOffsets:B,useWindowScroll:ae,className:oe,...V}=g,se=S?[]:Ta(B);se.length>0&&(N.scrollSnapType=a?`x mandatory`:`y mandatory`,L.position=L.position??`relative`);let ce=M?oe?`${oe} ${M}`:M:oe;return H&&/(?:^|\s)(?:[a-z0-9_-]+:)*gap(?:-[xy])?-(?:\[[^\]]+\]|[^\s]+)/.test(`${n??``} ${oe??``}`)&<(`className-gap`,`className/contentContainerClassName gap classes are not supported in LegendList because it needs to use exact values internally. Use contentContainerStyle={{ gap: ... }} or columnWrapperStyle instead.`),i.createElement(`div`,{className:ce,ref:b,...V,style:N},p,i.createElement(`div`,{className:R,ref:x,style:L},se.map(e=>i.createElement(`div`,{"aria-hidden":!0,"data-legend-list-snap-anchor":e,key:`snap-${e}`,style:Ea(e,a)})),e,te?i.createElement(`div`,{"aria-hidden":!0,style:te}):null))});function Oa({horizontal:e,needsOtherAxisSize:t,otherAxisSize:n}){if(!(!t||!n||n<=0))return e?{height:n}:{width:n}}function ka(e,t){let n=D();(0,i.useLayoutEffect)(()=>j(n,e,e=>{t(e)}),[t,n,e])}function Aa(e){return e?{contentSizeKey:`scrollWidth`,paddingEndProp:`paddingRight`,viewportSizeKey:`clientWidth`,x:1,y:0}:{contentSizeKey:`scrollHeight`,paddingEndProp:`paddingBottom`,viewportSizeKey:`clientHeight`,x:0,y:1}}function ja(e,t){let n=e.state?.refScroller.current,r=(n?.getScrollableNode)?.call(n)??null,i=null;return r&&(i=t?.isConnected&&t.parentElement===r?t:r.querySelector(`:scope > .${ia}`)),r?{contentNode:i,scrollElement:r}:null}function Ma(e,t,n){e.scrollBy({behavior:`auto`,left:t,top:n})}function Na(){let e=D(),t=i.useRef(0),n=i.useRef(0),r=i.useRef(void 0),a=i.useRef(void 0),o=i.useRef(null),s=i.useCallback(()=>{let i=M(e,`scrollAdjust`),s=M(e,`scrollAdjustUserOffset`),c=(i||0)+(s||0);if(c-t.current!==0){let i=ja(e,o.current);if(i){let t=!!e.state.props.horizontal,c=Aa(t),{contentNode:l,scrollElement:u}=i,d=t?u.scrollLeft:u.scrollTop,f=(s||0)-n.current,p=(f===0?e.state.scroll:d+f)-d,m=Math.abs(p)>.01,h=()=>Ma(u,c.x*p,c.y*p);if(o.current=l,m&&l){let t=l[c.contentSizeKey],n=u[c.viewportSizeKey],i=d+p;if(p>0&&!e.state.adjustingFromInitialMount&&t<i+n){let e=l.style[c.paddingEndProp],o=a.current,s=o?.value===e?o.baseline:e,u=(i+n-t)*2,d=`${(Number.parseFloat(window.getComputedStyle(l)[c.paddingEndProp])||0)+u}px`;a.current={baseline:s,value:d},l.style[c.paddingEndProp]=d,l.offsetHeight,h(),r.current!==void 0&&cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{let e=a.current;r.current=void 0,a.current=void 0,l.style[c.paddingEndProp]===e?.value&&(l.style[c.paddingEndProp]=e.baseline)})}else h()}else m&&h()}t.current=c,n.current=s||0}},[e]);return ka(`scrollAdjust`,s),ka(`scrollAdjustUserOffset`,s),null}var Pa=i.forwardRef(function({ScrollComponent:e,...t},n){let[r]=F([`snapToOffsets`]);return i.createElement(e,{...t,ref:n,snapToOffsets:r})}),Fa=.1;function Ia(e,t,n){let r=M(e,t)!==n;return r&&(N(e,t,n),it(e)),r}function La(e,t,n){let{didContainersLayout:r,didFinishInitialScroll:i,props:a,scroll:o,scrollingTo:s}=e.state,c=n-t,l=((a.horizontal?a.stylePaddingLeft:a.stylePaddingTop)||0)+t;return a.maintainVisibleContentPosition.size&&r&&i&&!s&&o>=l-Fa&&Math.abs(c)>Fa}function Ra(e,t){let{state:n}=e,r=M(e,`headerSize`)||0,i=r!==t,a=n.didMeasureHeader||r>Fa;i&&(N(e,`headerSize`,t),it(e),a&&La(e,r,t)&&Z(e,t-r)),n.didMeasureHeader=!0}function za(e,t){let n=Ia(e,`footerSize`,t);return n&&oi(e),n}function Ba(e,t){return(e?.top??0)===(t?.top??0)&&(e?.bottom??0)===(t?.bottom??0)&&(e?.left??0)===(t?.left??0)&&(e?.right??0)===(t?.right??0)}function Va(e,t){let{state:n}=e,r=n.contentInsetOverride,i=t??void 0,a=!Ba(r,i);return n.contentInsetOverride=i,a&&it(e),a}function Ha(e,t){let n=na(e),r=na(t);return i.useMemo(()=>i.forwardRef((e,t)=>n.current?.call(n,r.current(e,t))??null),[r,n])}var Ua=({onLayoutChange:e,refView:t,children:n,...r})=>{let a=(0,i.useRef)(null),o=t??a;return Ii({onLayoutChange:e,ref:o}),i.createElement(`div`,{...r,ref:o},n)},Wa=yi(function({horizontal:e}){let[t=0]=F([`alignItemsAtEndPadding`]);return t<=0?null:i.createElement(s,{style:e?{flexShrink:0,width:t}:{flexShrink:0,height:t}},null)}),Ga=yi(function({canRender:e,freshDataTransitionEpoch:t,style:n,contentContainerStyle:r,horizontal:a,initialContentOffset:o,recycleItems:s,ItemSeparatorComponent:c,alignItemsAtEnd:l,onScroll:u,onLayout:d,ListHeaderComponent:f,ListHeaderComponentStyle:p,ListFooterComponent:m,ListFooterComponentStyle:g,ListEmptyComponent:_,getRenderedItem:v,refScrollView:y,renderScrollComponent:b,onLayoutFooter:x,onInternalScrollBeginDrag:S,onInternalScrollEnd:C,scrollAdjustHandler:w,snapToIndices:T,stickyHeaderConfig:E,stickyHeaderIndices:O,useWindowScroll:k=!1,...A}){let j=D(),M=j.state.props.maintainVisibleContentPosition,[N=0,P=0]=F([`anchoredEndSpaceSize`,`otherAxisSize`]),ee=j.state.props.alignItemsAtEndPaddingEnabled,I=!!j.state.props.anchoredEndSpace&&j.state.props.anchoredEndSpaceOwner===`list`&&N>0,te;if(I){let e=a?h(j.state)?`Left`:`Right`:`Bottom`,t=ta.flatten(r);te={[`padding${e}`]:pt({},t||{},e)+N}}let L=Oa({horizontal:a,needsOtherAxisSize:j.state.needsOtherAxisSize,otherAxisSize:P}),R=Ha(b,(e,t)=>({...e,ref:t})),z=b?R:Da,ne=T?Pa:z,re=(0,i.useCallback)((e,t)=>{let n=za(j,e);t?.(),n&&j.state.props.maintainScrollAtEnd?.onFooterLayout&&Q(j)},[j]);(0,i.useLayoutEffect)(()=>{f||Ra(j,0),m||re(0)},[f,m,j,re]);let ie=(0,i.useCallback)(e=>{let t=e[a?`width`:`height`];Ra(j,t)},[j,a]),B=(0,i.useCallback)((e,t)=>{let n=e[a?`width`:`height`];re(n,()=>{x?.(e,t)})},[a,x,re]);return i.createElement(ne,{...A,...z===Da?{onInternalScrollEnd:C,useWindowScroll:k}:{},contentContainerStyle:[a?{height:`100%`}:{},r,te,{boxSizing:`border-box`}],contentOffset:o===void 0?void 0:a?{x:o,y:0}:{x:0,y:o},horizontal:a,maintainVisibleContentPosition:M.size||M.data?{minIndexForVisible:0}:void 0,onLayout:d,onScroll:u,ref:y,ScrollComponent:T?z:void 0,style:L?[L,n]:n},i.createElement(Na,null),f&&i.createElement(Ua,{onLayoutChange:ie,style:p},xi(f)),_&&xi(_),ee&&i.createElement(Wa,{horizontal:a}),e&&!_&&i.createElement($i,{freshDataTransitionEpoch:t,getRenderedItem:v,horizontal:a,ItemSeparatorComponent:c,recycleItems:s,stickyHeaderConfig:E}),m&&i.createElement(Ua,{onLayoutChange:B,style:g},xi(m)),H&&le)}),Ka=100,qa=.9,Ja=.9;function Ya(e){let t=D(),{anchoredEndSpace:n,childrenMode:r,keyExtractor:a,numColumns:o,renderScrollComponent:s,useWindowScroll:c}=e,l=!!n;(0,i.useEffect)(()=>{l&&(o??1)>1&<(`anchoredEndSpaceNumColumns`,`anchoredEndSpace is only supported when numColumns is 1. Using it with multiple columns may produce incorrect anchored spacing.`)},[l,o]),(0,i.useEffect)(()=>{c&&s&<(`useWindowScrollRenderScrollComponent`,`useWindowScroll is not supported when renderScrollComponent is provided.`)},[s,c]),(0,i.useEffect)(()=>{!a&&!t.state.isFirst&&t.state.didDataChange&&!r&<(`keyExtractor`,`Changing data without a keyExtractor can cause slow performance and resetting scroll. If your list data can change you should use a keyExtractor with a unique id for best performance and behavior.`)},[r,t,a]),(0,i.useEffect)(()=>{let e=t.state,n=e.props.data.length;if(e.props.useWindowScroll||n<Ka)return;let r=()=>{let e=M(t,`readyToRender`),r=M(t,`numContainers`)||0,i=M(t,`totalSize`)||0,a=t.state.scrollLength||0;if(!e||i<=0||a<=0)return;let o=r>=Math.ceil(n*qa),s=a>=i*Ja;o&&s&<(`webUnboundedOuterSize`,`LegendList appears to have an unbounded outer height on web, so virtualization is effectively disabled. Set a bounded height or flex: 1 on the list container, or use useWindowScroll.`)};r();let i=[j(t,`numContainers`,r),j(t,`readyToRender`,r),j(t,`totalSize`,r)];return()=>{for(let e of i)e()}},[t])}function Xa(e){}var Za=H?Ya:Xa;function Qa(e,t,{didColumnsChange:n=!1}={}){let r=e.state,{previousData:i}=r,{maintainScrollAtEnd:a}=r.props;if(n){r.sizes.clear(),r.sizesKnown.clear(),Xn(r);for(let e in r.averageSizes)delete r.averageSizes[e];r.minIndexSizeChanged=0,r.scrollForNextCalculateItemsInView=void 0}ai(e,{dataChanged:!0,doMVCP:!0});let o=!n&&a?.onDataChange&&Q(e);!o&&i&&t.length>i.length&&(r.isEndReached=!1),o||Ne(e),delete r.previousData}function $a(e,t,n){if(e.pendingDataComparison=void 0,!n||!t||t.length!==n.length)return!0;let{idCache:r,props:{itemsAreEqual:i,keyExtractor:a}}=e,o;for(let s=0;s<t.length;s++){if(t[s]===n[s])continue;if(!a||(r[s]??a(n[s],s))!==a(t[s],s)||!i)return o&&(e.pendingDataComparison={byIndex:o,nextData:t,previousData:n}),!0;let c=i(n[s],t[s],s,t);if(o??=[],o[s]=c?1:2,!c)return e.pendingDataComparison={byIndex:o,nextData:t,previousData:n},!0}return!1}var eo=`containerLayoutReady`;function to(e){for(let t of e.values.keys())t.startsWith(eo)&&N(e,t,void 0)}function no(e){let t=e.state,{scrollLength:n,props:{data:r,getFixedItemSize:i,getItemType:a,numColumns:o,estimatedItemSize:s}}=t,c=We(e),l=M(e,`numContainers`);if(n>0&&r.length>0&&!l){let l;if(i){let t=0,n=Math.min(20,r.length);for(let o=0;o<n;o++){let n=r[o];if(n!==void 0){let r=a?.(n,o)??``;t+=(i(n,o,r)??s)+e.scrollAxisGap}}l=t/n}else l=s+e.scrollAxisGap;let u=Math.max(1,Math.ceil((n+c*2)/l*o));for(let t=0;t<u;t++)N(e,`containerPosition${t}`,se),N(e,`containerColumn${t}`,-1),N(e,`containerSpan${t}`,1);return N(e,`numContainers`,u),N(e,`numContainersPooled`,Vr(r.length,u)),t.lastLayout&&(t.initialScroll?requestAnimationFrame(()=>{ai(e,{dataChanged:!0,doMVCP:!0})}):ai(e,{dataChanged:!0,doMVCP:!0})),!0}}function ro(){return typeof window>`u`?{height:0,width:0}:{height:window.innerHeight,width:window.innerWidth}}function io(e,t,n){let r=e.state,{maintainScrollAtEnd:i,useWindowScroll:a}=r.props,o=r.props.horizontal?`width`:`height`,s=r.props.horizontal?`height`:`width`,c=t;if(a){let e=ro()[o];c=e>0?{...t,[o]:e}:t}let l=c[o],u=r.scrollLength,d=l>0?l:u,f=c[s],p=!r.lastLayout||d>r.scrollLength||r.lastLayout.x!==c.x||r.lastLayout.y!==c.y;r.lastLayout=c;let m=r.otherAxisSize,h=d!==r.scrollLength||f!==m;h&&(r.scrollLength=d,r.otherAxisSize=f,it(e),r.lastBatchingAction=Date.now(),r.scrollForNextCalculateItemsInView=void 0,d>0&&no(e),p&&ai(e,{doMVCP:!0}),(h||f!==m)&&N(e,`scrollSize`,{height:c.height,width:c.width}),i?.onLayout&&Q(e),Ne(e),r&&(r.needsOtherAxisSize=f-(r.props.horizontal?(r.props.stylePaddingTop||0)+(r.props.stylePaddingBottom||0):(r.props.stylePaddingLeft||0)+(r.props.stylePaddingRight||0))<10),H&&l===0&<(`height0`,`List ${r.props.horizontal?`width`:`height`} is 0. You may need to set a style or \`flex: \` for the list, because children are absolutely positioned.`)),n(!0)}function ao(e,t){let n=U.get(e);if(n&&U.didReachTarget(t,n)){U.clear(e);return}n&&(e.hasScrolled=!1,U.set(e,{startScroll:n.startScroll,targetOffset:n.targetOffset}))}function oo(e){return!!e.initialScroll&&e.initialScrollSession?.kind===`bootstrap`&&!e.didFinishInitialScroll}function so(e){return{...e,nativeEvent:{...e.nativeEvent}}}function co(e,t){let n=e.state,{scrollProcessingEnabled:r}=n;if(r===!1||t.nativeEvent?.contentSize?.height===0&&t.nativeEvent.contentSize?.width===0)return;let i=!1;if(t.nativeEvent?.contentInset){let{contentInset:e}=t.nativeEvent,r=n.nativeContentInset;(!r||r.top!==e.top||r.bottom!==e.bottom||r.left!==e.left||r.right!==e.right)&&(n.nativeContentInset=e,i=!0)}let a=t.nativeEvent.contentOffset[n.props.horizontal?`x`:`y`];if(n.props.horizontal&&(a=x(n,a,t.nativeEvent.contentSize?.width)),n.didFinishInitialScroll&&n.initialScroll?.viewPosition===1&&(n.scroll,n.scrollLength),n.lastNativeScroll=a,n.lastNativeScrollTime=Date.now(),n.scrollingTo&&n.scrollingTo.offset>=a){let t=X(e,a,n.scrollingTo);if(a!==t&&Math.abs(a-t)>1){a=t,Qt(e,{forceScroll:!0,isInitialScroll:!0,noScrollingTo:!0,offset:a});return}}n.scrollPending=a,Gt(e,a,i,{fromNativeScrollEvent:!0}),ao(n,a),zn(e),n.scrollingTo&&tr(e),n.props.onScroll&&(oo(n)?n.deferredPublicOnScrollEvent=so(t):n.props.onScroll(t))}var lo=class{constructor(){this.work=new Map}microtask(e,t){let n=this.work.get(t);if(n?.callback)n.callback=e;else{this.cancel(t);let n={callback:e,cancel:()=>{}};this.work.set(t,n),queueMicrotask(()=>{var e;this.work.get(t)===n&&(this.work.delete(t),(e=n.callback)==null||e.call(n))})}}timeout(e,t,n){n&&this.cancel(n);let r={cancel:()=>clearTimeout(i)},i=setTimeout(()=>{let t=n??i;this.work.get(t)===r&&(this.work.delete(t),e())},t);this.work.set(n??i,r)}frame(e,t){this.cancel(t);let n={cancel:()=>cancelAnimationFrame(r)};this.work.set(t,n);let r=requestAnimationFrame(()=>{this.work.get(t)===n&&(this.work.delete(t),e())})}register(e,t){this.cancel(e),this.work.set(e,{cancel:t})}cancel(e){let t=this.work.get(e);t&&(this.work.delete(e),t.cancel())}has(e){return this.work.has(e)}dispose(){for(let e of this.work.values())e.cancel();this.work.clear()}},uo=class{constructor(e){this.appliedAdjust=0,this.pendingAdjust=0,this.ctx=e}requestAdjust(e){let t=this.ctx.state.scrollingTo;t?.animated&&!t.isInitialScroll?(this.pendingAdjust+=e,N(this.ctx,`scrollAdjustPending`,this.pendingAdjust)):(this.appliedAdjust+=e,N(this.ctx,`scrollAdjust`,this.appliedAdjust)),this.ctx.state.scrollingTo&&tr(this.ctx)}getAdjust(){return this.appliedAdjust}commitPendingAdjust(e){{let t=this.ctx.state,n=this.pendingAdjust;if(this.pendingAdjust=0,n!==0){let r;if(e?.index!==void 0){let t=et(this.ctx,e.index);r=vt(this.ctx,t,e),r=X(this.ctx,r,e)}else r=X(this.ctx,t.scroll+n);let i=r-t.scroll;(Math.abs(i)>.1||Math.abs(n)>.1)&&(this.appliedAdjust+=i,t.scroll=r,t.scrollForNextCalculateItemsInView=void 0,N(this.ctx,`scrollAdjust`,this.appliedAdjust)),N(this.ctx,`scrollAdjustPending`,0),ai(this.ctx)}}}};function fo(e,t){let n=e.state,r=n.props.data.length-1;if(r===-1)return!1;let i=n.props.stylePaddingBottom||0,a=M(e,`footerSize`)||0;return en(e,{...t,index:r,viewOffset:-i-a+(t?.viewOffset||0),viewPosition:1}),!0}function po(e,t){let n=e.state,r=L(e,t),i=L(e)-r;if(i!==0){let t=!!M(e,`isWithinMaintainScrollAtEndThreshold`);Gt(e,n.scroll,!0,{markHasScrolled:!1}),!mr(e)&&t&&i>0&&Z(e,i)}}function mo(e){return(0,i.useMemo)(()=>e?(t,n,r)=>t!==void 0&&n!==void 0?e(t,n,r):void 0:void 0,[e])}var ho=(...e)=>(0,i.useCallback)(t=>{for(let n of e)n&&(st(n)?n(t):n.current=t)},e);function go(e){return null}function _o(e,t,n,r){return r}function vo(e){let{gap:t,columnGap:n,rowGap:r}=e;if(t||n||r)return e.gap=void 0,e.columnGap=void 0,e.rowGap=void 0,{columnGap:n,gap:t,rowGap:r}}var yo=`default`;function bo(e){let t={};for(let n in e.averageSizes){let r=e.averageSizes[n];r&&(t[n||yo]={average:r.avg,count:r.num})}return t}function xo(e){br(e)}function So(e,t){let n=e.state,r=Et(e),i=()=>!!n.didDataChange||!!n.didColumnsChange||n.scheduledWork.has(`mvcpRecalculate`)||n.ignoreScrollFromMVCP!==void 0,a=(t,r=!1)=>{let i=n.props,a=i.data.length,o=i.anchoredEndSpace?.anchorIndex;return t<0?r:t>=a?!1:o===void 0||o<0||o>=a||t<o||gt(e,o,a-1)},o=(e,t,a)=>{let o=Date.now(),s=0,c=()=>{if(!r.isCurrent(e))return;i()||!a()?s=0:s+=1;let l=Date.now()-o>=800;if(s>=2||l){t();return}n.scheduledWork.frame(c,`imperativeScrollReady`)};n.scheduledWork.frame(c,`imperativeScrollReady`)},s=(e,t,n,a=()=>!0)=>{let s=()=>r.runNow(e,t,n);i()||!a()?o(e,s,a):s()},c=(t,n=()=>!0)=>new Promise(i=>{let a=r.start(i);Qe(e),s(a,i,t,n)});n.runPendingScrollToEnd=()=>{let t=n.pendingScrollToEnd;t&&(n.pendingScrollToEnd=void 0,r.isCurrent(t.token)&&s(t.token,t.resolve,()=>fo(e,t.options),()=>a(n.props.data.length-1,!0)))};let l=t=>{if(n){let{index:r,...i}=t,{startNoBuffer:a,endNoBuffer:o}=n;if(r<a||r>o){let t=r<a?0:1;return en(e,{...i,index:r,viewPosition:t}),!0}}return!1},u=n.refScroller;return{clearCaches:t=>{var r;let i=t?.mode??`sizes`;n.sizes.clear(),n.sizesKnown.clear(),Xn(n);for(let e in n.averageSizes)delete n.averageSizes[e];n.minIndexSizeChanged=0,n.scrollForNextCalculateItemsInView=void 0,n.pendingTotalSize=void 0,n.totalSize=0,N(e,`totalSize`,0),i===`full`&&(n.indexByKey.clear(),n.idCache.length=0,n.positions.length=0,n.columns.length=0,n.columnSpans.length=0),xo(e),(r=n.triggerCalculateItemsInView)==null||r.call(n,{forceFullItemPositions:!0})},flashScrollIndicators:()=>u.current.flashScrollIndicators(),getAnimatableRef:()=>{var e;return(e=u.current).getNativeScrollRef?.call(e)??u.current},getNativeScrollRef:()=>u.current,getScrollableNode:()=>u.current.getScrollableNode(),getScrollResponder:()=>u.current.getScrollResponder(),getState:()=>({activeStickyIndex:M(e,`activeStickyIndex`),contentLength:R(e),data:n.props.data,elementAtIndex:t=>e.viewRefs.get(mt(e,K(n,t)))?.current,end:n.endNoBuffer,endBuffered:n.endBuffered,getAverageItemSizes:()=>bo(n),indexByKey:e=>n.indexByKey.get(e),isAtEnd:M(e,`isAtEnd`),isAtStart:M(e,`isAtStart`),isEndReached:n.isEndReached,isNearEnd:M(e,`isNearEnd`),isNearStart:M(e,`isNearStart`),isStartReached:n.isStartReached,isWithinMaintainScrollAtEndThreshold:M(e,`isWithinMaintainScrollAtEndThreshold`),listen:(t,n)=>j(e,t,n),listenToPosition:(t,n)=>P(e,t,n),positionAtIndex:e=>n.positions[e],positionByKey:e=>{let t=n.indexByKey.get(e);return t===void 0?void 0:n.positions[t]},scroll:n.scroll,scrollLength:n.scrollLength,scrollVelocity:Ht(n),sizeAtIndex:e=>n.sizesKnown.get(K(n,e)),sizes:n.sizesKnown,start:n.startNoBuffer,startBuffered:n.startBuffered}),reportContentInset:t=>{let r=Va(e,t);Gt(e,n.scroll,!0,{markHasScrolled:!1}),r&&mr(e)},scrollIndexIntoView:e=>c(()=>l(e)),scrollItemIntoView:({item:e,...t})=>c(()=>{let r=n.props.data.indexOf(e);return r!==-1&&(l({index:r,...t}),!0)}),scrollToEnd:i=>new Promise(a=>{var o;let s=r.start(a);n.pendingScrollToEnd={options:i,resolve:a,token:s},t?.(),Qe(e),t||(o=n.runPendingScrollToEnd)==null||o.call(n)}),scrollToIndex:t=>c(()=>(en(e,t),!0),t.index>=0?()=>a(t.index):void 0),scrollToItem:({item:t,...r})=>c(()=>{let i=n.props.data.indexOf(t);return i!==-1&&(en(e,{index:i,...r}),!0)}),scrollToOffset:t=>c(()=>(Qt(e,t),!0)),setItemSize:(t,n)=>{pi(e,{itemKey:t,size:n})},setScrollProcessingEnabled:e=>{n.scrollProcessingEnabled=e},setVisibleContentAnchorOffset:t=>{N(e,`scrollAdjustUserOffset`,st(t)?t(M(e,`scrollAdjustUserOffset`)||0):t)}}}var Co=(e,t)=>e-t,wo=e=>typeof e==`number`&&Number.isFinite(e)?Math.max(0,Math.floor(e)):0,To=(e,t,n)=>{n>=0&&n<t&&e.add(n)};function Eo(e,t,n,r){if(t.length===0)return[];let i=new Set,a=t.length,o=wo(e?.top);if(o>0)for(let e=0;e<Math.min(o,a);e++)To(i,a,e);let s=wo(e?.bottom);if(s>0)for(let e=Math.max(0,a-s);e<a;e++)To(i,a,e);if(e?.indices?.length)for(let t of e.indices)Number.isFinite(t)&&To(i,a,Math.floor(t));if(e?.keys?.length){let r=new Set(e.keys);for(let e=0;e<a&&r.size>0;e++){let o=n(t[e],e);r.has(o)&&(To(i,a,e),r.delete(o))}}if(r!==void 0&&Number.isFinite(r)){let e=Math.floor(r);for(let t=e>=0?e:a;t<a;t++)To(i,a,t)}let c=Array.from(i);return c.sort(Co),c}function Do(e,t,n){let r=e.state;if(!r)return null;let i=r.containerItemMetadata.get(n),a=i&&i.dataChangeEpoch!==r.dataChangeEpoch,{indexByKey:o,props:{data:s,getItemType:c,renderItem:l}}=r,u=a?i.data:s,d=i?.itemIndex??o.get(t);if(d===void 0)return null;let f=null,p=M(e,`extraData`),m=a?i.itemData:u[d];return l&&!dt(m)&&(f=l({data:u,extraData:p,index:d,item:m,type:a?i.itemType??``:c?c(m,d)??``:``})),{index:d,item:m,renderedItem:f}}function Oo(e,t){return{animated:!1,onDataChange:t?e?.dataChange??!1:!0,onFooterLayout:t?e?.footerLayout??!1:!0,onItemLayout:t?e?.itemLayout??!1:!0,onLayout:t?e?.layout??!1:!0}}function ko(e){if(e)return e===!0?{...Oo(void 0,!1),animated:!1}:{...Oo(e.on,`on`in e),animated:e.animated??!1}}function Ao(e){return e===!0?{data:!0,size:!0}:e&&typeof e==`object`?{data:e.data??!1,shouldRestorePosition:e.shouldRestorePosition,size:e.size??!0}:e===!1?{data:!1,size:!1}:{data:!1,size:!0}}function jo(e,{stylePaddingTop:t}){let n=e.state;if(t!==void 0){let r=M(e,`stylePaddingTop`)||0;if(t<r){let t=M(e,`totalSize`)||0;N(e,`totalSize`,t+r),n.timeoutSetPaddingTop=setTimeout(()=>{t=M(e,`totalSize`)||0,N(e,`totalSize`,t-r)},16)}N(e,`stylePaddingTop`,t)}}function Mo(e){let t=(0,i.useRef)(null),n=(0,i.useRef)(0),r=(0,i.useRef)(null),a=()=>{t.current&&=(clearTimeout(t.current),null)};return(0,i.useCallback)((e,i,...o)=>{{let s=Date.now();r.current=o,s-n.current>=i?(n.current=s,e(...o),a()):(a(),t.current=setTimeout(()=>{r.current&&=(n.current=Date.now(),e(...r.current),t.current=null,null)},i-(s-n.current)))}},[e])}function No(e,t){let n=Mo(`throttle`);return r=>n(e,t,{nativeEvent:r.nativeEvent})}var Po=yi(vi(function(e,t){let{children:n,data:r,renderItem:a,...o}=e,s=n!==void 0&&r===void 0?{...o,childrenMode:!0,data:(ct(n)?n:i.Children.toArray(n)).flat(1),renderItem:({item:e})=>e}:{...o,data:r||[],renderItem:a};return i.createElement(E,null,i.createElement(Fo,{...s,ref:t}))})),Fo=vi(function(e,t){let n=(0,i.useCallback)(e=>{},[]);e.recycleItems===void 0&<(`recycleItems-omitted`,`recycleItems was not provided, so it defaults to false. Set recycleItems explicitly to true for better performance with recycling-aware rows, or false to preserve remount-on-reuse behavior.`);let{alignItemsAtEnd:r=!1,anchoredEndSpace:a,alwaysRender:o,columnWrapperStyle:s,contentContainerStyle:c,contentInset:u,data:d=[],dataKey:f,dataVersion:p,drawDistance:m=250,contentInsetEndAdjustment:h,estimatedItemSize:v=100,estimatedListSize:y,extraData:b,getFixedItemSize:x,getItemType:S,horizontal:C,rtl:w,estimatedHeaderSize:T,initialScrollAtEnd:E=!1,initialScrollIndex:O,initialScrollOffset:k,experimental_adaptiveRender:A,experimental_hideItemsUntilMeasured:P,itemsAreEqual:ee,keyExtractor:F,ListEmptyComponent:I,ListFooterComponent:te,ListFooterComponentStyle:L,ListHeaderComponent:R,maintainScrollAtEnd:z=!1,maintainScrollAtEndThreshold:ne=.1,maintainVisibleContentPosition:ie,numColumns:B=1,overrideItemLayout:ae,onEndReached:oe,onEndReachedThreshold:V=.5,onItemSizeChanged:se,onMetricsChange:ce,onLayout:le,onLoad:de,onMomentumScrollEnd:fe,onRefresh:me,onScroll:he,onScrollBeginDrag:ge,onStartReached:_e,onStartReachedThreshold:ve=.5,onStickyHeaderChange:ye,onFirstVisibleItemChanged:be,onViewableItemsChanged:xe,progressViewOffset:U,recycleItems:W=!1,refreshControl:Se,refreshing:Ce,refScrollView:we,renderScrollComponent:Te,renderItem:Ee,scrollEventThrottle:De,snapToIndices:Oe,stickyHeaderIndices:G,style:Ae,useWindowScroll:je=!1,viewabilityConfig:Me,viewabilityConfigCallbackPairs:Ne,...Pe}=e,Fe=e.animatedPropsInternal,Ie=e.anchoredEndSpaceOwnerInternal??`list`,Le=e.positionComponentInternal,Re=e.stickyPositionComponentInternal,{anchoredEndSpaceOwnerInternal:ze,positionComponentInternal:Be,stickyPositionComponentInternal:He,...Ue}=Pe,We=ta.flatten(c),Ge=r&&!C&&We?.minHeight==null&&d.length>0,qe=r&&!Ge&&(C?We?.minWidth==null:We?.minHeight==null),Je={...We,...r&&!Ge?{display:`flex`,flexDirection:C?`row`:`column`,...qe?{flexGrow:1}:{},justifyContent:`flex-end`}:{}},Ye={...ta.flatten(Ae)},Xe=pt(Ye,Je,`Top`),Qe=pt(Ye,Je,`Bottom`),$e=pt(Ye,Je,`Left`),et=pt(Ye,Je,`Right`),tt=_({horizontal:C,rtl:w,stylePaddingBottom:Qe,stylePaddingLeft:$e,stylePaddingRight:et}),nt=ko(z),rt=Ao(ie),at=O!=null,ot=k!=null,st=!E&&!at&&!ot&&g({horizontal:C,rtl:w}),ct=!E&&!at&&(ot||st),q=E||at,ut=typeof O==`number`&&!ot&&d.length>1&&O>=d.length-1,dt=E?{index:Math.max(0,d.length-1),preserveForBottomPadding:!0,viewOffset:-tt,viewPosition:1}:at?typeof O==`object`?{index:O.index??0,preserveForBottomPadding:O.viewOffset===void 0&&O.viewPosition===1||void 0,viewOffset:O.viewOffset??(O.viewPosition===1?-tt:0),viewPosition:O.viewPosition??0}:{index:O??0,preserveForBottomPadding:ut?!0:void 0,viewOffset:k??(ut?-tt:0),viewPosition:ut?1:void 0}:ct?{contentOffset:k??0,index:0,viewOffset:0}:void 0,[ft,mt]=i.useState(!re),[,ht]=i.useReducer(e=>e+1,0),J=D();J.columnWrapperStyle=s||(Je?vo(Je):void 0);let gt=C?J.columnWrapperStyle?.columnGap??J.columnWrapperStyle?.gap:J.columnWrapperStyle?.rowGap??J.columnWrapperStyle?.gap,Y=typeof gt==`number`&&Number.isFinite(gt)?gt:0,_t=(0,i.useRef)(null),vt=ho(_t,we),X=F??((e,t)=>t.toString()),yt=G,bt=h,xt=(0,i.useRef)(bt),St=(0,i.useMemo)(()=>{let e=Eo(o,d,X,a?.anchorIndex);return{arr:e,set:new Set(e)}},[a?.anchorIndex,o?.top,o?.bottom,(o?.indices)?.join(`,`),(o?.keys)?.join(`,`),d,f,p,X]),Ct=!!je&&!Te,wt=(0,i.useRef)(void 0),Tt=!!ae,Et=(0,i.useRef)(Tt);if(!wt.current){if(!J.state){let e=(y??{height:0,width:0})[C?`width`:`height`];J.values.set(`adaptiveRender`,A?.initialMode??`normal`),J.state={averageSizes:{},columnSpans:[],columns:[],containerItemGenerations:[],containerItemKeys:new Map,containerItemMetadata:new Map,contentInsetOverride:void 0,dataChangeEpoch:0,dataChangeNeedsScrollUpdate:!1,didColumnsChange:!1,didDataChange:!1,didLoad:!1,enableScrollForNextCalculateItemsInView:!0,endBuffered:-1,endNoBuffer:-1,endReachedSnapshot:void 0,firstFullyOnScreenIndex:-1,freshDataTransitionEpoch:0,hasHadNonEmptyData:d.length>0,idCache:[],idsInView:[],indexByKey:new Map,initialScroll:dt,initialScrollSession:dt?{kind:ct?`offset`:`bootstrap`,previousDataLength:d.length}:void 0,isEndReached:null,isFirst:!0,isStartReached:null,lastBatchingAction:Date.now(),lastLayout:void 0,lastScrollDelta:0,loadStartTime:Date.now(),minIndexSizeChanged:0,nativeContentInset:void 0,nativeMarginTop:0,pendingDataComparison:void 0,pendingNativeMVCPAdjust:void 0,positions:[],props:{},queuedCalculateItemsInView:0,refScroller:{current:null},scheduledWork:new lo,scroll:0,scrollAdjustHandler:new uo(J),scrollForNextCalculateItemsInView:void 0,scrollHistory:[],scrollLength:e,scrollPending:0,scrollPrev:0,scrollPrevTime:0,scrollProcessingEnabled:!0,scrollTime:0,sizes:new Map,sizesKnown:new Map,startBuffered:-1,startNoBuffer:-1,startReachedSnapshot:void 0,stickyContainerPool:new Set,stickyContainers:new Map,totalSize:0,viewabilityConfigCallbackPairs:void 0};let t=J.state;J.scrollToEnd=e=>fo(J,e),t.triggerCalculateItemsInView=e=>ai(J,e),t.reprocessCurrentScroll=()=>Gt(J,t.scroll,!0),N(J,`maintainVisibleContentPosition`,rt),N(J,`extraData`,b),T!==void 0&&N(J,`headerSize`,T)}wt.current=J.state}let Z=wt.current,Q=Z.isFirst,$=Z.props.adaptiveRender,Ot=Z.props.hideItemsUntilMeasured,kt=Z.props.numColumns,At=!Q&&J.scrollAxisGap!==Y;J.scrollAxisGap=Y,Z.didColumnsChange=B!==kt||At;let jt=Z.props.data?.length??0,Mt=Z.props.data!==d,Nt=Z.props.dataKey!==f,Pt=Z.props.dataVersion!==p,Ft=Nt||Pt||Mt&&$a(Z,d,Z.props.data),It=!Q&&Ft&&Z.hasHadNonEmptyData&&(Nt||jt===0)&&d.length>0;Ft&&!E&&Z.didFinishInitialScroll&&Z.initialScroll?.viewPosition===1&&Z.props.data.length>0&&Ze(Z),Ft&&(Z.dataChangeEpoch+=1,Z.dataChangeNeedsScrollUpdate=!0,Z.didDataChange=!0,Z.previousData=Z.props.data),It&&(Z.freshDataTransitionEpoch+=1);let Lt=No(he??n,De??0),Rt=De&&he?Lt:he,zt=!Q&&!Ft&&Z.props.anchoredEndSpace?.anchorIndex!==a?.anchorIndex;Z.props={adaptiveRender:A,alignItemsAtEnd:r,alignItemsAtEndPaddingEnabled:Ge,alwaysRender:o,alwaysRenderIndicesArr:St.arr,alwaysRenderIndicesSet:St.set,anchoredEndSpace:a,anchoredEndSpaceOwner:Ie,animatedProps:Fe,contentContainerAlignItems:Je.alignItems,contentInset:u,contentInsetEndAdjustment:bt,data:d,dataKey:f,dataVersion:p,drawDistance:m,estimatedItemSize:v,getFixedItemSize:mo(x),getItemType:mo(S),hideItemsUntilMeasured:P,horizontal:!!C,itemsAreEqual:ee,keyExtractor:mo(X),maintainScrollAtEnd:nt,maintainScrollAtEndThreshold:ne,maintainVisibleContentPosition:rt,numColumns:B,onEndReached:oe,onEndReachedThreshold:V,onFirstVisibleItemChanged:be,onItemSizeChanged:se,onLoad:de,onMomentumScrollEnd:fe,onScroll:Rt,onScrollBeginDrag:ge,onStartReached:_e,onStartReachedThreshold:ve,onStickyHeaderChange:ye,overrideItemLayout:ae,positionComponentInternal:Le,recycleItems:!!W,renderItem:Ee,rtl:w,snapToIndices:Oe,stickyHeaderIndicesArr:yt??[],stickyHeaderIndicesSet:(0,i.useMemo)(()=>new Set(yt??[]),[yt?.join(`,`)]),stickyPositionComponentInternal:Re,stylePaddingBottom:Qe,stylePaddingLeft:$e,stylePaddingRight:et,stylePaddingTop:Xe,useWindowScroll:Ct},Z.refScroller=_t,!Q&&$&&!A&&Ve(J),!Q&&Ot&&!P&&to(J);let Bt=(0,i.useMemo)(()=>d.length?Array.from({length:Math.min(B,d.length)},(e,t)=>K(Z,d.length-1-t)):[],[d,f,p,B]),Vt=e=>{N(J,`lastItemKeys`,Bt),N(J,`numColumns`,B);let t=M(J,`stylePaddingTop`);jo(J,{stylePaddingTop:Xe}),wt.current.props.stylePaddingBottom=Qe,it(J);let n=Xe-t;e&&rt.size&&n&&t!==void 0&&l.OS};Q&&(Vt(!1),vr(Z),Dr(J,!0));let Ht=(0,i.useMemo)(()=>{let e=Z.initialScroll;if(!e)return;let t=e.contentOffset??rn(J,e);return q&&Z.initialScrollSession?.kind===`bootstrap`&&l.OS===`web`?void 0:t},[q]);(0,i.useLayoutEffect)(()=>{gr(J,{alwaysDispatchInitialScroll:st,dataLength:d.length,hasFooterComponent:!!te,initialContentOffset:Ht,initialScrollAtEnd:E,useBootstrapInitialScroll:q})},[]),(Q||Ft||Z.didColumnsChange)&&(wt.current.lastBatchingAction=Date.now(),!F&&!Q&&Ft&&(wt.current.sizes.clear(),wt.current.positions.length=0,wt.current.totalSize=0,N(J,`totalSize`,0))),H&&Za(e),(0,i.useLayoutEffect)(()=>{It&&Ke(J,{resetInitialScroll:!!dt,resetLayout:!0}),_r(J,{dataLength:d.length,didDataChange:Ft,didStartFreshData:It,initialScrollAtEnd:E,latestInitialScroll:dt,latestInitialScrollSessionKind:ct?`offset`:`bootstrap`,stylePaddingEnd:tt,useBootstrapInitialScroll:q})},[d.length,f,Ft,It,E,tt,q]),(0,i.useLayoutEffect)(()=>{var e;zt&&(Z.scrollForNextCalculateItemsInView=void 0,(e=Z.triggerCalculateItemsInView)==null||e.call(Z)),oi(J)},[J,d,p,a?.anchorIndex,a?.anchorMaxSize,a?.anchorOffset,zt,C,B,w,Qe,$e,et]),(0,i.useLayoutEffect)(()=>{let e=xt.current;xt.current=bt,po(J,e)},[J,bt]);let Ut=(0,i.useCallback)(e=>{q&&Hn(J,{dataLength:d.length,footerSize:e[C?`width`:`height`],initialScrollAtEnd:E,stylePaddingEnd:tt})},[d.length,E,C,tt,q]),{onLayout:Wt}=Ii({onLayoutChange:(0,i.useCallback)((e,t)=>{let n=Z.scrollLength,r=Z.otherAxisSize;io(J,e,mt),oi(J);let i=n!==Z.scrollLength||r!==Z.otherAxisSize;q&&!t&&i&&Un(J),!q&&cn(J)},[d.length,E,tt,q]),onLayoutProp:le,ref:_t});(0,i.useLayoutEffect)(()=>{Oe&&Er(J)},[Oe]),(0,i.useLayoutEffect)(()=>Vt(!0),[f,p,Bt.join(`,`),B,Y,Qe,Xe,Ge]),(0,i.useLayoutEffect)(()=>{let{didColumnsChange:e,didDataChange:t,isFirst:n,props:{data:r}}=Z;!(r.length>0&&no(J))&&!n&&(t||e)&&Qa(J,r,{didColumnsChange:e}),t&&(Z.pendingDataComparison=void 0),Z.didColumnsChange=!1,Z.didDataChange=!1,Z.isFirst=!1},[d,f,p,B,Y]),(0,i.useLayoutEffect)(()=>{var e;N(J,`extraData`,b);let t=Et.current!==Tt;Et.current=Tt,(Tt||t)&&B>1&&((e=Z.triggerCalculateItemsInView)==null||e.call(Z,{forceFullItemPositions:!0}))},[b,Tt,B]),(0,i.useEffect)(()=>{if(!ce)return;let e,t=()=>{let t={footerSize:M(J,`footerSize`)||0,headerSize:M(J,`headerSize`)||0};(!e||t.headerSize!==e.headerSize||t.footerSize!==e.footerSize)&&(e=t,ce(t))};t();let n=[j(J,`headerSize`,t),j(J,`footerSize`,t)];return()=>{for(let e of n)e()}},[J,ce]),(0,i.useEffect)(()=>{let e=kr({onViewableItemsChanged:xe,viewabilityConfig:Me,viewabilityConfigCallbackPairs:Ne});Z.viewabilityConfigCallbackPairs=e,Z.enableScrollForNextCalculateItemsInView=!0,e&&(Z.scrollForNextCalculateItemsInView=void 0)},[Me,Ne,xe]),Ei(()=>{}),(0,i.useImperativeHandle)(t,()=>So(J,ht),[]),(0,i.useEffect)(()=>()=>{pe(Z),Z.scheduledWork.dispose()},[Z]),(0,i.useLayoutEffect)(()=>{var e;(e=Z.runPendingScrollToEnd)==null||e.call(Z)}),(0,i.useEffect)(()=>{q||cn(J)},[J,q]);let Kt=(0,i.useMemo)(()=>({getRenderedItem:(e,t)=>Do(J,e,t),onMomentumScrollEnd:e=>{pr(J),Z.props.onMomentumScrollEnd&&Z.props.onMomentumScrollEnd(e)},onScroll:e=>co(J,e),onScrollBeginDrag:e=>{var t,n;let r=Z.maintainingScrollAtEnd;(r===`animated`||r===`instant`)&&pe(Z),r&&Dt(J),ke(J),(n=(t=Z.props).onScrollBeginDrag)==null||n.call(t,e)},onScrollEnd:()=>ke(J)}),[]),qt=_o(yt,C,J,Kt.onScroll),Jt=Se;return i.createElement(i.Fragment,null,i.createElement(Ga,{...Ue,alignItemsAtEnd:r,canRender:ft,contentContainerStyle:Je,contentInset:u,freshDataTransitionEpoch:Z.freshDataTransitionEpoch,getRenderedItem:Kt.getRenderedItem,horizontal:C,initialContentOffset:Ht,ListEmptyComponent:d.length===0?I:void 0,ListFooterComponent:te,ListFooterComponentStyle:L,ListHeaderComponent:R,onInternalScrollBeginDrag:Kt.onScrollBeginDrag,onInternalScrollEnd:Kt.onScrollEnd,onLayout:Wt,onLayoutFooter:Ut,onMomentumScrollEnd:Kt.onMomentumScrollEnd,onScroll:qt,recycleItems:W,refreshControl:Jt?Xe>0?i.cloneElement(Jt,{progressViewOffset:(Jt.props.progressViewOffset??0)+Xe}):Jt:me&&i.createElement(go,{onRefresh:me,progressViewOffset:(U||0)+Xe,refreshing:!!Ce}),refScrollView:vt,renderScrollComponent:Te,scrollAdjustHandler:wt.current?.scrollAdjustHandler,scrollEventThrottle:0,snapToIndices:Oe,stickyHeaderIndices:yt,style:Ye,useWindowScroll:Ct}),H&&ue)}),Io=Po;export{Io as t};
|
package/dist/index.html
CHANGED
|
@@ -552,7 +552,7 @@
|
|
|
552
552
|
opacity: 0.72;
|
|
553
553
|
}
|
|
554
554
|
</style>
|
|
555
|
-
<script type="module" crossorigin src="/assets/main-
|
|
555
|
+
<script type="module" crossorigin src="/assets/main-8ssH8Y4M.js"></script>
|
|
556
556
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
557
557
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
558
558
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
@@ -569,7 +569,7 @@
|
|
|
569
569
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-BpPeXWIu.js">
|
|
570
570
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
571
571
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
572
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
572
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-DYtQIAm-.js">
|
|
573
573
|
<link rel="stylesheet" crossorigin href="/assets/src-BDOLh3pc.css">
|
|
574
574
|
</head>
|
|
575
575
|
<body class="h-full bg-background text-foreground">
|
package/dist/mini-chat.html
CHANGED
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
}
|
|
75
75
|
</style>
|
|
76
76
|
|
|
77
|
-
<script type="module" crossorigin src="/assets/miniChat-
|
|
77
|
+
<script type="module" crossorigin src="/assets/miniChat-BqeOJlOz.js"></script>
|
|
78
78
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
79
79
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-BpPeXWIu.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
93
93
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
94
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
94
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-DYtQIAm-.js">
|
|
95
95
|
<link rel="stylesheet" crossorigin href="/assets/src-BDOLh3pc.css">
|
|
96
96
|
</head>
|
|
97
97
|
<body class="h-full bg-background text-foreground">
|
package/dist/mobile.html
CHANGED
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
})();
|
|
64
64
|
</script>
|
|
65
65
|
|
|
66
|
-
<script type="module" crossorigin src="/assets/mobile-
|
|
66
|
+
<script type="module" crossorigin src="/assets/mobile-DUjVfFN8.js"></script>
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/terminalApi-BpPeXWIu.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
|
|
82
82
|
<link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
|
|
83
|
-
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-
|
|
83
|
+
<link rel="modulepreload" crossorigin href="/assets/runtimeConfig-DYtQIAm-.js">
|
|
84
84
|
<link rel="stylesheet" crossorigin href="/assets/src-BDOLh3pc.css">
|
|
85
85
|
</head>
|
|
86
86
|
<body class="h-full bg-background text-foreground">
|