@matterbridge/frontend 3.6.0 → 3.6.1-dev-20260912-2c1c047

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.
@@ -19,7 +19,7 @@ import{a as e}from"./rolldown-runtime.js";import{s as t}from"./vendor_emotion.js
19
19
  ::-webkit-scrollbar-track {
20
20
  background: ${i};
21
21
  }
22
- `,t.head.appendChild(a)},style:{display:`block`,flex:`1 1 auto`,width:`100%`,height:`100%`,border:`none`,backgroundColor:`var(--div-bg-color)`}})}),(0,q.jsx)(E,{sx:{flex:`0 0 auto`,justifyContent:`center`},children:(0,q.jsx)(w,{onClick:()=>S(null),children:`Close`})})]})]}):(0,q.jsx)(en,{})}var $n=(0,U.memo)(Qn),er=[`matterbridge-`,`matterbridge-plugin-template`,`matterbridge-dyson`,`matterbridge-tuya`,`matterbridge-matter`,`matterbridge-automations`,`matterbridge-camera`,`matterbridge-webcam`,`matterbridge-securitysystem`,`matterbridge-adapter`],tr=e=>e.replace(`git+`,``).replace(`.git`,``).trim(),nr=e=>{let t=tr(e);return t.startsWith(`git://`)&&(t=`https://${t.slice(6)}`),t.startsWith(`ssh://git@github.com/`)&&(t=`https://github.com/${t.slice(21)}`),t.startsWith(`git@github.com:`)&&(t=`https://github.com/${t.slice(15).replace(`:`,`/`)}`),t},rr=e=>{if(typeof e==`string`)return e.trim()||null;if(!e||typeof e!=`object`)return null;let t=e.url;return typeof t==`string`&&t.trim()||null},ir=()=>{try{let e=window.localStorage.getItem(W.searchPluginsTotal);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.total==`number`&&typeof t.asOf==`string`&&(n[e]={total:t.total,asOf:t.asOf})}return n}catch{return{}}},ar=e=>{try{window.localStorage.setItem(W.searchPluginsTotal,JSON.stringify(e))}catch{}},or=()=>{try{let e=window.localStorage.getItem(W.searchPluginsMeta);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.asOf==`string`&&(n[e]={homepage:typeof t.homepage==`string`?t.homepage:null,help:typeof t.help==`string`?t.help:null,changelog:typeof t.changelog==`string`?t.changelog:null,asOf:t.asOf})}return n}catch{return{}}},sr=e=>{try{window.localStorage.setItem(W.searchPluginsMeta,JSON.stringify(e))}catch{}},cr=()=>{try{let e=window.localStorage.getItem(W.searchPluginsVersions);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.asOf==`string`&&Array.isArray(t.versions)&&(n[e]={versions:t.versions.filter(e=>typeof e==`string`),asOf:t.asOf})}return n}catch{return{}}},lr=e=>{try{window.localStorage.setItem(W.searchPluginsVersions,JSON.stringify(e))}catch{}},ur=e=>`${e.getFullYear().toString()}-${(e.getMonth()+1).toString().padStart(2,`0`)}-${e.getDate().toString().padStart(2,`0`)}`,dr=({open:e,onClose:t,onSelect:n,onVersions:r})=>{let{mobile:i}=(0,U.useContext)(J),[a,o]=(0,U.useState)(``),s=(0,U.useRef)(``),c=(0,U.useRef)(!1),l=(0,U.useRef)(null),[u,d]=(0,U.useState)([]),[f,p]=(0,U.useState)(!1),[h,g]=(0,U.useState)(!1),[v,b]=(0,U.useState)(!1),[x,S]=(0,U.useState)({done:0,total:0}),[C,T]=(0,U.useState)(null),D=(0,U.useRef)({}),O=()=>{let e=document.activeElement;e&&e instanceof HTMLElement&&e.blur()},k=(0,U.useCallback)(async(e,t)=>{let n=D.current[e];if(n&&n.asOf===t&&Array.isArray(n.versions)&&n.versions.length>0&&n.versions[0]===`latest`)return G&&console.log(`[SearchPluginsDialog] versions cache hit for ${e} (${n.versions.length.toString()})`),n.versions;n&&n.asOf===t&&n.versions.length>0&&n.versions[0]!==`latest`&&G&&console.log(`[SearchPluginsDialog] versions cache ignored (old format) for ${e} (asOf=${t})`);let r=`https://registry.npmjs.org/${encodeURIComponent(e)}`;G&&console.log(`[SearchPluginsDialog] fetching versions for ${e} from: ${r}`);let i=await fetch(r,{signal:l.current?.signal});if(!i.ok)return G&&console.log(`[SearchPluginsDialog] versions fetch failed for ${e}: ${i.status.toString()} ${i.statusText}`),[];let a=await i.json(),o=Object.keys(a.versions??{}),s=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});o.sort((e,t)=>s.compare(e,t)).reverse();let c=a[`dist-tags`]??{},u=typeof c?.dev==`string`&&String(c.dev).trim().length>0,d=o.slice(0,20),f=[`latest`];return u&&f.push(`dev`),f.push(...d),G&&console.log(`[SearchPluginsDialog] fetched versions for ${e} (tags: latest${u?`, dev`:``}; latestVersions=${d.length.toString()}; allVersions=${o.length.toString()}):`,f),D.current[e]={versions:f,asOf:t},lr(D.current),f},[]),A=e=>new Intl.NumberFormat().format(e),j=[{label:`Name`,id:`name`,required:!0,maxWidth:230,tooltip:!0},{label:`Version`,id:`version`,required:!0,maxWidth:110,tooltip:!0},{label:`Monthly`,id:`downloads`,align:`right`,maxWidth:120,render:e=>typeof e==`number`?A(e):``},{label:`Total`,id:`total`,align:`right`,maxWidth:120,render:e=>typeof e==`number`?A(e):``},{label:`Description`,id:`description`,required:!0,maxWidth:300,tooltip:!0},{label:`Author`,id:`author`,maxWidth:140,tooltip:!0},{label:`Action`,id:`action`,align:`center`,maxWidth:100,noSort:!0,required:!0,render:(e,t,n,r)=>(0,q.jsxs)(`div`,{style:{margin:`0`,padding:`0`,gap:`4px`,display:`flex`,flexDirection:`row`,justifyContent:`center`},children:[(0,q.jsx)(B,{title:n.homepage?`Open the plugin homepage`:`No homepage available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.homepage,onClick:e=>{if(e.stopPropagation(),n.homepage)try{let e=new URL(n.homepage);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(y,{})})})}),(0,q.jsx)(B,{title:n.help?`Open the plugin help`:`No help available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.help,onClick:e=>{if(e.stopPropagation(),n.help)try{let e=new URL(n.help);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(re,{})})})}),(0,q.jsx)(B,{title:n.changelog?`Open the plugin changelog`:`No changelog available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.changelog,onClick:e=>{if(e.stopPropagation(),n.changelog)try{let e=new URL(n.changelog);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(_,{})})})})]})}];(0,U.useEffect)(()=>{if(!e){c.current=!1,s.current=``,l.current?.abort(),l.current=null,d([]),p(!1),g(!1),b(!1),S({done:0,total:0}),T(null),o(``);return}if(c.current)return;c.current=!0;let t=new AbortController;return l.current=t,D.current=cr(),(async()=>{let e=`matterbridge-`,n=e=>new Promise(t=>setTimeout(t,e)),r=e=>{if(!Array.isArray(e.downloads))return null;let t=0,n=!1;for(let r of e.downloads)typeof r?.downloads==`number`&&(t+=r.downloads,n=!0);return n?t:null};try{p(!0),T(null);let i=e=>{let t=String(e??``).trim().toLowerCase();return t?!!(t===`github actions`||t===`github-actions`||t===`github-actions[bot]`||t.includes(`github-actions`)||t.endsWith(`[bot]`)):!1},a=e=>{let t=(e.maintainers??[]).map(e=>(e.username??``).trim()).filter(Boolean),n=(e.publisher?.username??``).trim();return t.find(e=>!i(e))||(n&&!i(n)?n:t[0]??n??``)},o=await fetch(`https://registry.npmjs.org/-/v1/search?text=matterbridge-&size=250`,{signal:t.signal});if(!o.ok)throw Error(`npm registry request failed: ${o.status} ${o.statusText}`);let s=await o.json(),c=`luligu`,l=e=>e.publisher?.username?.toLowerCase()===c||(e.maintainers??[]).some(e=>e.username?.toLowerCase()===c),u=(s.objects??[]).filter(e=>!!e?.package&&typeof e.package.name==`string`).filter(t=>t.package?.name?.startsWith(e)).filter(e=>!er.includes(e.package?.name??``)).sort((e,t)=>{let n=l(e.package??{});return n===l(t.package??{})?(e.package?.name??``).localeCompare(t.package?.name??``):n?-1:1}).map(e=>{let t=e.package,n=t.name??``,r=a(t),i=typeof e.downloads?.monthly==`number`?e.downloads.monthly:null,o=(t.links?.npm??``).trim(),s=((t.links?.homepage??``).trim()||o||(n?`https://www.npmjs.com/package/${encodeURIComponent(n)}`:``)).trim()||null;return{name:n,version:t.version??``,downloads:i,total:null,description:t.description??``,author:r,official:l(t),homepage:s,help:null,changelog:null}}),f=ur(new Date),m=ir(),h=or(),g=u.map(e=>{let t=m[e.name];return!t||typeof t.total!=`number`?e:(G&&console.log(`[SearchPluginsDialog] total downloads loaded from cache for ${e.name} (asOf=${t.asOf}):`,t.total),{...e,total:t.total})}).map(e=>{let t=h[e.name];if(!t||t.asOf!==f)return e;let n=t.homepage??e.homepage,r=t.help,i=t.changelog;return G&&(r||i||n&&n!==e.homepage)&&console.log(`[SearchPluginsDialog] metadata loaded from cache for ${e.name} (asOf=${t.asOf}):`,{homepage:n,help:r,changelog:i}),{...e,homepage:n,help:r,changelog:i}});d(g);let _=u.map(e=>e.name).filter(e=>{let t=D.current[e];return!t||t.asOf!==f||t.versions.length===0});G&&console.log(`[SearchPluginsDialog] versions prefetch queue (${_.length.toString()}):`,_);let v=0,y=async()=>{for(;v<_.length;){if(t.signal.aborted)return;let e=v;v+=1;let r=_[e];if(r)try{let e=await k(r,f);G&&e.length>0&&console.log(`[SearchPluginsDialog] versions fetched for ${r} (${e.length.toString()}):`,e.slice(0,5))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{t.signal.aborted||await n(200)}}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>y()));let x=u.map(e=>e.name).filter(e=>{let t=h[e],n=!!t&&t.asOf===f,r=!!t&&!!t.help&&!!t.changelog,i=!n||!r;return!i&&G&&console.log(`[SearchPluginsDialog] metadata fetch skipped (cache fresh+complete) for ${e} (asOf=${t.asOf}).`),n&&!r&&G&&console.log(`[SearchPluginsDialog] metadata fetch forced (cache incomplete) for ${e} (asOf=${t.asOf}).`),i}),C=new Set(x),w=async(e,n)=>{let r=`https://registry.npmjs.org/${encodeURIComponent(e)}/latest`;try{let e=await fetch(r,{signal:t.signal});if(!e.ok)return null;let i=await e.json(),a=typeof i.homepage==`string`&&i.homepage.includes(`http`)?tr(i.homepage):null,o=typeof i.help==`string`&&i.help.startsWith(`http`)?i.help.trim():null,s=typeof i.changelog==`string`&&i.changelog.startsWith(`http`)?i.changelog.trim():null,c=rr(i.repository),l=c?nr(c):null,u=l&&l.includes(`http`)?l:null,d=a||u||n||null;return{homepage:d,help:o||(u?`${u}/blob/main/README.md`:null)||d||null,changelog:s||(u?`${u}/blob/main/CHANGELOG.md`:null)||d||null}}catch(e){return e instanceof DOMException&&e.name,null}},E=0,O=async()=>{for(;E<x.length;){if(t.signal.aborted)return;let e=E;E+=1;let r=x[e];if(!r||!C.has(r))continue;C.delete(r);let i=u.find(e=>e.name===r)?.homepage??null,a=await w(r,i);if(t.signal.aborted)return;a&&(d(e=>e.map(e=>e.name===r?{...e,homepage:a.homepage??e.homepage,help:a.help,changelog:a.changelog}:e)),h[r]={homepage:a.homepage,help:a.help,changelog:a.changelog,asOf:f},sr(h)),t.signal.aborted||await n(250)}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>O()));let A=`2020-01-01`,j=u.map(e=>e.name).filter(e=>{let t=m[e],n=!t||t.asOf!==f;return n||G&&console.log(`[SearchPluginsDialog] total downloads fetch skipped (cache fresh) for ${e} (asOf=${t.asOf}).`),n}),M=new Set(j),N=j.length;S({done:0,total:N}),b(N>0);let P=async e=>{let i=`https://api.npmjs.org/downloads/range/${A}:${f}/${encodeURIComponent(e)}`;for(let e=0;e<3;e+=1){let a=await fetch(i,{signal:t.signal});if(a.ok){let e=await a.json();return r(e)}if(a.status===404)return null;if(a.status===429){let t=a.headers.get(`retry-after`),r=t?Number(t):NaN,i=Number.isFinite(r)?r*1e3:2e3*(e+1);await n(i);continue}return null}return null},ee=0,te=0,ne=async()=>{for(;ee<j.length;){if(t.signal.aborted)return;let e=ee;ee+=1;let r=j[e];if(r&&M.has(r)){M.delete(r);try{G&&console.log(`[SearchPluginsDialog] fetching total downloads for ${r} (range ${A}:${f})...`);let e=await P(r);if(t.signal.aborted)return;G&&console.log(`[SearchPluginsDialog] total downloads fetched for ${r}:`,e),d(t=>t.map(t=>t.name===r?{...t,total:e}:t)),typeof e==`number`&&(m[r]={total:e,asOf:f},ar(m),G&&console.log(`[SearchPluginsDialog] total downloads saved to localStorage for ${r} (asOf=${f}):`,e))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{te+=1,S({done:te,total:N}),t.signal.aborted||await n(500)}}}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>ne())).finally(()=>{t.signal.aborted||b(!1)}),G&&console.log(`[SearchPluginsDialog] npm packages starting with "${e}" (filtered/sorted):`,u)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;console.error(`[SearchPluginsDialog] npm registry fetch error:`,e),T(e instanceof Error?e.message:String(e))}finally{p(!1)}})(),()=>t.abort()},[e,k]);let M=async()=>{O();let e=s.current||a;if(!(!e||h))try{g(!0);let t=ur(new Date),i=await k(e,t);G&&console.log(`[SearchPluginsDialog] passing versions to onVersions() for ${e} (${i.length.toString()}):`,i),r(i),g(!1),n(e)}catch(t){if(t instanceof DOMException&&t.name===`AbortError`)return;console.error(`[SearchPluginsDialog] npm versions fetch error:`,t),r([]),g(!1),n(e)}},N=()=>{O(),t(),r([])},P=u.reduce((e,t)=>e+(typeof t.downloads==`number`?t.downloads:0),0),ee=u.reduce((e,t)=>(typeof t.total==`number`&&(e.total+=t.total,e.hasAny=!0),e),{total:0,hasAny:!1}),te=v?` Totals: ${x.done.toString()}/${x.total.toString()} fetched`:``,ne=ee.hasAny?A(ee.total):`...`;return(0,q.jsxs)(me,{open:e,onClose:()=>{O(),t()},maxWidth:!1,fullWidth:!0,slotProps:{paper:{sx:{width:K&&i?`100vw`:`75vw`,height:K&&i?`100vh`:`75vh`,maxWidth:K&&i?`100vw`:`75vw`,maxHeight:K&&i?`100vh`:`75vh`,margin:K&&i?`0px`:void 0,display:`flex`,flexDirection:`column`}}},children:[(0,q.jsx)(m,{children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(`img`,{src:`matterbridge.svg`,alt:`Matterbridge Logo`,style:{height:`32px`,width:`32px`}}),(0,q.jsx)(`h4`,{style:{margin:0},children:`Search Plugins`})]})}),(0,q.jsx)(ge,{dividers:!0,sx:{padding:`10px`,flex:`1 1 auto`,minHeight:0},children:(0,q.jsx)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:f?(0,q.jsx)(`div`,{style:{padding:`20px`},children:`Loading npm registry...`}):C?(0,q.jsx)(`div`,{style:{padding:`20px`},children:C}):(0,q.jsx)(Ln,{name:`Search plugins`,rows:u,columns:j,getRowKey:`name`,onRowClick:(e,t,n)=>{s.current=e.name,o(e.name),n.detail===2&&M()},footerLeft:`Total packages: ${u.length.toString()} Total downloads: ${A(P)} / ${ne}${te}`,footerRight:a?`Selected: ${a}`:``})})}),(0,q.jsxs)(E,{sx:{justifyContent:`center`,gap:1.5,flexWrap:`wrap`},children:[(0,q.jsx)(B,{title:`Select the plugin and close the dialog. Double-click a row to select and close the dialog.`,children:(0,q.jsx)(w,{variant:`contained`,onClick:M,disabled:!(s.current||a)||h,children:`Select`})}),(0,q.jsx)(B,{title:`Close the dialog without selecting a plugin.`,children:(0,q.jsx)(w,{onClick:N,children:`Cancel`})})]})]})};function fr(){let{mobile:e,showSnackbarMessage:t}=(0,U.useContext)(J),{logMessage:n,sendMessage:r,getUniqueId:i}=(0,U.useContext)(Y),[a,o]=(0,U.useState)(`matterbridge-`),[s,c]=(0,U.useState)([`latest`,`dev`]),[l,u]=(0,U.useState)(`latest`),[f,p]=(0,U.useState)(!1),m=(0,U.useRef)(i()),h=e=>{let t=(e??``).trim();if(!t)return{name:``,specifier:null};if(t.startsWith(`@`)){let e=t.lastIndexOf(`@`);if(e>0){let n=t.slice(0,e),r=t.slice(e+1);if(n.includes(`/`)&&r)return{name:n,specifier:r}}return{name:t,specifier:null}}let n=t.indexOf(`@`);if(n>0){let e=t.slice(0,n),r=t.slice(n+1);return r?{name:e,specifier:r}:{name:e,specifier:null}}return{name:t,specifier:null}},g=()=>{let{name:e,specifier:t}=h(a);return e?t?`${e}@${t}`:l?`${e}@${l}`:e:``},_=e=>{e.preventDefault(),p(!0)},v=()=>{p(!1)},y=e=>{e.preventDefault(),p(!1);let t=e.dataTransfer.files[0];if(t){n(`Plugins`,`Installing package ${t.name}. Please wait...`);let e=new FormData;e.append(`file`,t),e.append(`filename`,t.name),fetch(`./api/uploadpackage`,{method:`POST`,body:e}).then(e=>e.text()).then(e=>{n(`Plugins`,`Server response: ${e}`)}).catch(e=>{console.error(`Error uploading plugin file:`,e),n(`Plugins`,`Error installing package ${e}`)})}},b=e=>{let t=e.target.files&&e.target.files[0];if(t){n(`Plugins`,`Uploading package ${t.name}`);let e=new FormData;e.append(`file`,t),e.append(`filename`,t.name),fetch(`./api/uploadpackage`,{method:`POST`,body:e}).then(e=>e.text()).then(e=>{n(`Plugins`,`Server response: ${e}`)}).catch(e=>{console.error(`Error uploading plugin file:`,e),n(`Plugins`,`Error uploading package ${e}`)})}},x=()=>{let e=g();if(e){if(er.includes(e.split(`@`)[0])){t(`Installation of plugin "${e}" is blocked by the ignore list.`);return}r({id:m.current,sender:`InstallPlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e,restart:!1}})}},S=()=>{r({id:m.current,sender:`InstallPlugins`,method:`/api/uninstall`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:a}})},C=()=>{document.getElementById(`file-upload`)?.click()},T=()=>{if(er.includes(a.split(`@`)[0])){t(`Addition of plugin "${a}" is blocked by the ignore list.`);return}r({id:m.current,sender:`InstallPlugins`,method:`/api/addplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginNameOrPath:a}})},E=e=>{e.preventDefault(),G&&console.log(`Right-clicked Upload button`)},D=e=>{e.preventDefault(),G&&console.log(`Right-clicked Add button`)},[O,k]=(0,U.useState)(!1),A=()=>{k(!0),G&&console.log(`Dialog opened for selection`)},j=()=>{o(`matterbridge-`),k(!1),G&&console.log(`Dialog closed without selection`)},M=e=>{o(e),k(!1),G&&console.log(`Select plugin:`,e)},N=e=>{c(e),u(e.includes(`latest`)?`latest`:e[0]??``),G&&console.log(`Select plugin versions:`,e)},[P,F]=(0,U.useState)(!1);return G&&console.log(`HomeInstallAddPlugins rendering...`),P?null:(0,q.jsxs)(Z,{children:[(0,q.jsxs)(tn,{children:[(0,q.jsx)(Q,{children:`Install plugins`}),(0,q.jsx)(sn,{close:()=>F(!0)})]}),(0,q.jsxs)(on,{onDragOver:_,onDragLeave:v,onDrop:y,style:K&&e?{flexWrap:`wrap`,alignItems:`center`,gap:`10px`}:{flexWrap:`wrap`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(dr,{open:O,onClose:j,onSelect:M,onVersions:N}),(0,q.jsxs)(`div`,{style:{flex:`1 1 auto`,display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`},children:[(0,q.jsx)(B,{title:`Provide the npm name or the local path of the plugin to install, uninstall, or add`,children:(0,q.jsx)(H,{value:a,onChange:e=>{let t=e.target.value;c([`latest`,`dev`]),u(`latest`),o(t)},size:`small`,id:`plugin-name`,label:`Plugin name or plugin path`,variant:`outlined`,fullWidth:!0})}),s.length>0&&(0,q.jsx)(B,{title:`Select the npm tag/version to install`,children:(0,q.jsx)(`span`,{children:(0,q.jsxs)(le,{size:`small`,style:{minWidth:`150px`},children:[(0,q.jsx)(te,{id:`plugin-version-label`,children:`Tag or version`}),(0,q.jsx)(ht,{labelId:`plugin-version-label`,id:`plugin-version`,value:l,label:`Tag or version`,onChange:e=>u(e.target.value??``),children:s.map(e=>(0,q.jsx)(L,{value:e,children:e},e))})]})})}),(0,q.jsx)(B,{title:`Search on npm the plugin to install`,children:(0,q.jsx)(R,{size:`large`,onClick:A,children:(0,q.jsx)(Ue,{fontSize:`inherit`})})})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,flexWrap:`wrap`,alignItems:`center`,gap:`10px`},children:[(0,q.jsx)(B,{title:`Install or update a plugin from npm`,children:(0,q.jsxs)(w,{onClick:x,endIcon:(0,q.jsx)(Ve,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Install`]})}),(0,q.jsx)(B,{title:`Uninstall and remove a plugin`,children:(0,q.jsxs)(w,{onClick:S,endIcon:(0,q.jsx)(ee,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Uninstall`]})}),(0,q.jsx)(B,{title:`Upload and install a plugin from a tarball`,children:(0,q.jsxs)(w,{onClick:C,onContextMenu:E,endIcon:(0,q.jsx)(d,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Upload`]})}),(0,q.jsx)(B,{title:`Add an already installed plugin or a plugin from a local path`,children:(0,q.jsxs)(w,{onClick:T,onContextMenu:D,endIcon:(0,q.jsx)(ne,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Add`]})}),(0,q.jsx)(`input`,{id:`file-upload`,type:`file`,accept:`.tgz`,style:{display:`none`},onChange:b})]})]})]})}var pr=(0,U.memo)(fr),mr=()=>{let e=window;return`ontouchstart`in window||e.DocumentTouch!==void 0&&document instanceof e.DocumentTouch?(G&&console.log(`WebSocketLogs detectTouchscreen = true`),!0):(G&&console.log(`WebSocketLogs detectTouchscreen = false`),!1)};function hr(){let{messages:e,logAutoScroll:t}=(0,U.useContext)(Qt),[n,r]=(0,U.useState)(!1),i=(0,U.useRef)(null),a=(0,U.useRef)(0),o=(0,U.useRef)(null),s=(0,U.useMemo)(()=>mr(),[]),c=()=>r(!0),l=()=>r(!1);(0,U.useEffect)(()=>{if(G&&console.log(`WebSocketLogs logAutoScroll: ${t.current} isHovering: ${n}`),t.current&&!n&&!s){let e=Date.now();e-a.current>=500?(G&&console.log(`WebSocketLogs auto-scroll to bottom`),a.current=e,i.current?.scrollIntoView({behavior:`smooth`,block:`end`})):(G&&console.log(`WebSocketLogs auto-scroll skipped to avoid flicker`),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{i.current?.scrollIntoView({behavior:`smooth`}),a.current=Date.now()},1e3))}},[e,t,n,s]);let u=e=>{switch(e.toLowerCase()){case`debug`:return`gray`;case`info`:return`#267fb7`;case`notice`:return`green`;case`warn`:return`#e9db18`;case`error`:return`red`;case`fatal`:return`#ff0000`;case`spawn`:return`#ff00d0`;default:return`#5c0e91`}},d=e=>{switch(e.toLowerCase()){case`warn`:return`black`;default:return`white`}};return(0,q.jsx)(`div`,{style:{margin:`0px`,padding:`0px`},onMouseEnter:c,onMouseLeave:l,children:(0,q.jsxs)(`ul`,{style:{margin:`0px`,padding:`0px`},children:[e.map((e,t)=>(0,q.jsxs)(`li`,{style:{wordWrap:`break-word`,maxHeight:`200px`,overflow:`hidden`},children:[(0,q.jsx)(`span`,{style:{marginRight:`5px`,padding:`1px 5px`,backgroundColor:u(e.level),color:d(e.level),fontSize:`12px`,borderRadius:`3px`,textAlign:`center`},children:e.level}),e.time&&(0,q.jsx)(`span`,{style:{marginRight:`3px`,color:`#505050`},children:`[`+e.time+`]`}),e.name&&(0,q.jsx)(`span`,{style:{marginRight:`3px`,color:`#09516d`},children:`[`+e.name+`]`}),(0,q.jsx)(`span`,{style:{color:`var(--main-log-color)`},children:e.message})]},t)),(0,q.jsx)(`div`,{ref:i})]})})}var gr=(0,U.memo)(hr);function _r(){let[e,t]=(0,U.useState)(localStorage.getItem(W.logFilterLevel)??`info`),[n,r]=(0,U.useState)(localStorage.getItem(W.logFilterSearch)??`*`),{online:i,logAutoScroll:a}=(0,U.useContext)(Y);return G&&console.log(`HomeLogs rendering...`),i?(0,q.jsxs)(Z,{style:{flex:`1 1 auto`},children:[(0,q.jsxs)(tn,{children:[(0,q.jsx)(Q,{children:`Logs`}),(0,q.jsxs)(Q,{style:{fontWeight:`normal`,fontSize:`12px`,marginTop:`2px`},children:[`Filter: logger level "`,e,`" and search "`,n===``?`*`:n,`" Scroll: `,a.current?`auto`:`manual`]})]}),(0,q.jsx)(on,{style:{flex:`1 1 auto`,overflow:`auto`,margin:`0px`,padding:`10px`,alignItems:`start`},children:(0,q.jsx)(gr,{})})]}):(0,q.jsx)(en,{})}var vr=(0,U.memo)(_r);function yr(e){return e.id!==0&&e.src===`Matterbridge`&&e.dst===`Frontend`}var br={fontSize:`16px`,fontWeight:`bold`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},xr={fontSize:`12px`,fontWeight:`normal`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},Sr={fontSize:`16px`,fontWeight:`bold`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},Cr={fontSize:`14px`,fontWeight:`normal`,color:`var(--secondary-color)`,backgroundColor:`var(--div-bg-color)`},wr={fontSize:`16px`,fontWeight:`bold`,backgroundColor:`var(--div-bg-color)`},Tr={padding:`0px`,margin:`0px`},Er=`5px 10px 5px 10px`,Dr={},Or={},kr={},Ar={},jr=[],Mr=[],Nr=[];function Pr(e,t){let n=e?.properties;if(!n||typeof n!=`object`)return!1;let r=n[t];return!r||typeof r!=`object`?!1:typeof r.type==`string`}function Fr(e){let t=e.items;return t!==void 0&&typeof t==`object`&&!Array.isArray(t)}function Ir(e,t){let n=e?.properties;if(!n||typeof n!=`object`)return!1;let r=n[t];if(!r||typeof r!=`object`||r.type!==`array`||r.uniqueItems!==!0)return!1;let i=r.items;return i!==void 0&&typeof i==`object`&&!Array.isArray(i)&&Array.isArray(i.enum)}var Lr=({open:e,onClose:t,plugin:n})=>{let{sendMessage:r,addListener:i,removeListener:a,getUniqueId:o}=(0,U.useContext)(Y),s=(0,U.useRef)(o()),c=(0,U.useRef)({}),l=(0,U.useRef)({}),[u,d]=(0,U.useState)(n.configJson),[p,h]=(0,U.useState)(n.schemaJson),[g,_]=(0,U.useState)({"ui:submitButtonOptions":{submitText:`Confirm`},"ui:globalOptions":{orderable:!0}}),y=(0,U.useRef)(``),b=n.configJson;(0,U.useEffect)(()=>{let e=e=>{e.src===`Matterbridge`&&e.dst===`Frontend`&&(yr(e)&&e.id===s.current&&e.method===`/api/select/devices`&&e.response&&(G&&console.log(`ConfigPluginDialog (id: ${e.id}) received ${e.response.length} /api/select/devices:`,e.response),Mr=e.response),yr(e)&&e.id===s.current&&e.method===`/api/select/entities`&&e.response&&(G&&console.log(`ConfigPluginDialog (id: ${e.id}) received ${e.response.length} /api/select/entities:`,e.response),Nr=e.response))};if(i(e,s.current),G&&console.log(`ConfigPluginDialog added WebSocket listener id:`,s.current),G&&console.log(`ConfigPluginDialog mounting...`),G&&console.log(`ConfigPluginDialog mounting with form:`,u),G&&console.log(`ConfigPluginDialog mounting with schema:`,p),G&&console.log(`ConfigPluginDialog mounting with uiSchema:`,g),u&&p&&p.properties){let e=(t,n,r=[])=>{!t||typeof t!=`object`||(t.properties&&Object.keys(t.properties).forEach(i=>{let a=t.properties?.[i],o=[...r,i];Object.keys(a).forEach(e=>{if(e.startsWith(`ui:`)){let t=n;o.forEach(e=>{t[e]||(t[e]={}),t=t[e]}),t[e]=a[e],delete a[e]}}),e(a,n,o)}),[`oneOf`,`anyOf`,`allOf`].forEach(i=>{Array.isArray(t[i])&&t[i].forEach(t=>{e(t,n,r)})}),t.items&&typeof t.items==`object`&&e(t.items,n,r))};e(p,g),_(g),c.current=p,l.current=g}return n.name&&n.configJson&&n.schemaJson&&(d(n.configJson),h(n.schemaJson),r({id:s.current,sender:`ConfigPlugin`,method:`/api/select/devices`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name}}),r({id:s.current,sender:`ConfigPlugin`,method:`/api/select/entities`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name}}),G&&console.log(`HomePlugins sent "/api/select/devices" and "/api/select/entities" for plugin:`,n.name)),()=>{a(e),G&&console.log(`ConfigPluginDialog removed WebSocket listener`)}},[i,u,n,a,p,r,g]);let x=(e,t)=>{b=e.formData},S=e=>{G&&console.log(`ConfigPluginDialog handleSaveChanges:`,e.formData),d(e.formData),n.configJson=e.formData,n.restartRequired=!0,r({id:s.current,sender:`ConfigPlugin`,method:`/api/savepluginconfig`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.formData.name,formData:e.formData}}),t()};function C(e){let{id:t,label:n,onKeyRenameBlur:r,onRemoveProperty:i,disabled:a,schema:o,children:s,registry:c,readonly:l,required:u}=e,{templates:d}=c,{RemoveButton:f}=d.ButtonTemplates,p=Mt in o,m=(0,U.useRef)(null);return(0,U.useEffect)(()=>{let e=y.current;!p||e===``||!/^newKey(?:-\d+)?$/.test(n)||!m.current||(G&&console.log(`WrapIfAdditionalTemplate: renaming additional property "${n}" to "${e}"`),m.current.value=e,r({target:m.current}),y.current=``)},[p,n,r]),p?(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,flexGrow:1,padding:0,margin:0,border:`none`},children:[(0,q.jsx)(H,{id:`${t}-key`,name:`${t}-key`,required:u,disabled:a||l,defaultValue:n,inputRef:m,onBlur:l?void 0:r,type:`text`,variant:`outlined`,sx:{width:`250px`,minWidth:`250px`,maxWidth:`250px`,marginRight:`20px`}}),(0,q.jsx)(M,{sx:{flex:1},children:s}),(0,q.jsx)(f,{disabled:a||l,onClick:i,registry:c})]}):(0,q.jsx)(M,{sx:{display:`flex`,flexDirection:`column`,flexGrow:1,padding:0,margin:0,border:`none`},children:s})}function T(e){let{children:t,description:n,displayLabel:r,errors:i,help:a,hidden:o,registry:s,uiSchema:c}=e,l=At(c),u=jt(`WrapIfAdditionalTemplate`,s,l);return o?(0,q.jsx)(`div`,{style:{display:`none`},children:t}):(0,q.jsx)(M,{sx:{display:`flex`,flexDirection:`column`,flexGrow:1,padding:0,margin:0,border:`none`},children:(0,q.jsxs)(u,{...e,children:[r===!0&&n,t,i,a]})})}function D(e){let{description:t}=e;return t?(0,q.jsx)(V,{sx:xr,children:t}):null}function O(e){let{required:t,title:n}=e;return n?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:(0,q.jsxs)(V,{sx:br,children:[`Title `,n,` `,t&&(0,q.jsx)(`mark`,{children:`***`})]})}):null}function k(e){let{help:t}=e;return t?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:(0,q.jsx)(V,{sx:Cr,children:t})}):null}function A(e){let{errors:t}=e;return t?(0,q.jsxs)(M,{sx:{padding:`10px`,margin:`10px`,border:`1px solid grey`},children:[(0,q.jsx)(V,{color:`error`,sx:wr,children:`Please fix the following errors:`}),(0,q.jsx)(He,{children:t.map((e,t)=>(0,q.jsxs)(We,{children:[(0,q.jsx)(I,{children:(0,q.jsx)(qe,{color:`error`})}),(0,q.jsx)(v,{primary:e.stack})]},t))})]}):null}function j(e){let{errors:t}=e;return t?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:t.map((e,t)=>(0,q.jsxs)(V,{color:`error`,variant:`body2`,sx:{marginLeft:1},children:[`This field `,e]},t))}):null}function N(e){let{id:t,name:n,_schema:r,_uiSchema:i,value:a,options:o,label:s,type:c,placeholder:l,required:u,disabled:d,readonly:f,autofocus:p,onChange:m,onChangeOverride:h,onBlur:g,onFocus:_,_rawErrors:v,_hideError:y,_registry:b,_formContext:x}=e;return(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`},children:(0,q.jsx)(H,{id:t,name:t,label:l&&l!==``?s:void 0,variant:`outlined`,placeholder:l&&l!==``?l:s,required:u,disabled:d||f,autoFocus:p,value:a||a===0?a:``,type:c,autoComplete:c===`password`?`current-password`:n,onChange:h||(({target:{value:e}})=>m(e===``?o.emptyValue:e)),onBlur:({target:e})=>g(t,e&&e.value),onFocus:({target:e})=>_(t,e&&e.value),fullWidth:!0})})}function P(e){return console.log(`ArrayFieldTitleTemplate:`,e),null}function ee(e){return console.log(`ArrayFieldDescriptionTemplate:`,e),null}function te(e){let{buttonsProps:t,children:n}=e;return(0,q.jsxs)(M,{sx:{margin:`2px 0px`,padding:`0px`,display:`flex`,alignItems:`center`},children:[(0,q.jsx)(M,{sx:{flexGrow:1,marginRight:`10px`},children:n}),(0,q.jsx)(R,{disabled:!t.hasMoveUp,onClick:t.onMoveUpItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Ae,{})}),(0,q.jsx)(R,{disabled:!t.hasMoveDown,onClick:t.onMoveDownItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Ne,{})}),t.hasRemove&&(0,q.jsx)(R,{onClick:t.onRemoveItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Fe,{})})]})}function F(e){let{canAdd:t,onAddClick:n,schema:r,title:i,formData:a}=e,[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(!1),[p,h]=(0,U.useState)(``),g=e=>{h(e.target.value)},_=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogDeviceToggle filter:`,p,`selectDevices:`,Mr),s(!o)},y=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogEntityToggle filter:`,p,`selectEntities:`,Nr),l(!c)},b=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogDeviceEntityToggle filter:`,p,`selectDevices:`,Mr),d(!u)},x=e=>{s(!1),r.selectFrom===`serial`&&Fr(r)?r.items.default=e.serial:r.selectFrom===`name`&&Fr(r)&&(r.items.default=e.name),n()},S=e=>{l(!1),r.selectEntityFrom===`name`&&Fr(r)?r.items.default=e.name:r.selectEntityFrom===`description`&&Fr(r)&&(r.items.default=e.description),n()},C=e=>{d(!1),r.selectDeviceEntityFrom===`name`&&Fr(r)?r.items.default=e.name:r.selectDeviceEntityFrom===`description`&&Fr(r)&&(r.items.default=e.description),n()};return(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 10px 5px 10px`,border:`1px solid grey`},children:[i&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[i&&(0,q.jsx)(V,{sx:br,children:i}),t&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[r.selectFrom&&(0,q.jsx)(B,{title:`Add a device from the list`,children:(0,q.jsx)(R,{onClick:_,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),r.selectEntityFrom&&(0,q.jsx)(B,{title:`Add an entity from the list`,children:(0,q.jsx)(R,{onClick:y,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),r.selectDeviceEntityFrom&&(0,q.jsx)(B,{title:`Add a device entity from the list`,children:(0,q.jsx)(R,{onClick:b,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),(0,q.jsx)(B,{title:`Add a new item`,children:(0,q.jsx)(R,{onClick:n,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ne,{})})})]})]}),r.description&&(0,q.jsx)(V,{sx:xr,children:r.description}),e.items,(0,q.jsxs)(me,{open:o,onClose:_,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select a device`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:p,onChange:g,placeholder:`Enter serial or name`})]}),(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial.toLowerCase().includes(p.toLowerCase())||e.name.toLowerCase().includes(p.toLowerCase())).filter(e=>!r.uniqueItems||!a.includes(r.selectFrom===`serial`?e.serial:e.name)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>x(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.serial,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:_,children:`Close`})})]}),(0,q.jsxs)(me,{open:c,onClose:y,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select an entity`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:p,onChange:g,placeholder:`Enter name or description`})]}),(0,q.jsx)(He,{dense:!0,children:Nr.filter(e=>e.name.toLowerCase().includes(p.toLowerCase())||e.description.toLowerCase().includes(p.toLowerCase())).filter(e=>!r.uniqueItems||!a.includes(r.selectEntityFrom===`name`?e.name:e.description)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>S(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),e.icon===`component`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ge,{style:Or})}),e.icon===`matter`&&(0,q.jsx)(I,{children:(0,q.jsx)(Le,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.description,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:y,children:`Close`})})]}),(0,q.jsxs)(me,{open:u,onClose:b,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsxs)(m,{children:[`Select an entity for `,i]}),(0,q.jsx)(ge,{children:(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial===i||e.name===i).map(e=>e.entities?.filter(e=>!r.uniqueItems||!Array.isArray(a)||!a.includes(r.selectDeviceEntityFrom===`name`?e.name:e.description)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>C(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),e.icon===`component`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ge,{style:Or})}),e.icon===`matter`&&(0,q.jsx)(I,{children:(0,q.jsx)(Le,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.description,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t)))})}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:b,children:`Close`})})]})]})}function re(e){let{onAddProperty:t,schema:n,properties:r,title:i,description:a}=e,[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(``),u=e=>{l(e.target.value)},d=()=>{s(!o)},p=e=>{G&&console.log(`ObjectFieldTemplate: handleSelectValue value "${e.serial}" for schema "${n.selectFrom}"`),s(!1);let r=``;n.selectFrom===`serial`?r=e.serial:n.selectFrom===`name`&&(r=e.name),y.current=r,G&&console.log(`ObjectFieldTemplate: handleSelectValue pendingAdditionalPropertyKey "${r}"`),t()},h=()=>{t()},g=!n.additionalProperties;return G&&console.log(`ObjectFieldTemplate: isRoot ${g} pendingAdditionalPropertyKey "${y.current}"`),(0,q.jsxs)(M,{sx:{margin:`0px`,padding:g?`10px`:`5px 10px 0px 10px`,border:g?`none`:`1px solid grey`},children:[n.title&&g&&(0,q.jsx)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`,marginBottom:`10px`},children:(0,q.jsx)(V,{sx:br,children:n.title})}),i&&!g&&(0,q.jsxs)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`},children:[(0,q.jsx)(V,{sx:br,children:i}),(0,q.jsxs)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`},children:[n.selectFrom&&(0,q.jsx)(B,{title:`Add a device from the list`,children:(0,q.jsx)(R,{onClick:d,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),(0,q.jsx)(B,{title:`Add a new item`,children:(0,q.jsx)(R,{onClick:h,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ne,{})})})]})]}),n.description&&(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginBottom:`10px`},children:(0,q.jsx)(V,{sx:xr,children:n.description})}),r.map(({content:e,name:t,hidden:r})=>{if(r)return null;let i=Pr(n,t),a=Ir(n,t),o=i&&[`object`,`array`].includes(n.properties[t].type);return(0,q.jsxs)(M,{sx:{margin:`0px`,marginBottom:`10px`,padding:o&&!a?`0px`:Er,border:o&&!a?`none`:`1px solid grey`},children:[i&&![`object`,`array`,`boolean`].includes(n.properties[t].type)&&(0,q.jsx)(V,{sx:br,children:n.properties[t].title||t}),a&&(0,q.jsx)(V,{sx:br,children:n.properties[t].title||t}),(0,q.jsx)(M,{sx:{flexGrow:1,padding:`0px`,margin:`0px`},children:e})]},t)}),(0,q.jsxs)(me,{open:o,onClose:d,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select a device`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:c,onChange:u,placeholder:`Enter serial or name`})]}),(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial.toLowerCase().includes(c.toLowerCase())||e.name.toLowerCase().includes(c.toLowerCase())).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>p(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.serial,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:d,children:`Close`})})]})]})}function ie(e){let{uiSchema:n}=e,{submitText:r,norender:i}=kt(n);return i?null:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,margin:`10px`,padding:`0px`,gap:`20px`},children:[(0,q.jsx)(w,{type:`submit`,variant:`contained`,color:`primary`,children:r}),(0,q.jsx)(w,{variant:`contained`,color:`primary`,onClick:t,children:`Cancel`})]})}function ae(e){let{className:t,disabled:n,onClick:r,registry:i,style:a,uiSchema:o,...s}=e;return(0,q.jsx)(B,{title:`Remove the item`,children:(0,q.jsx)(R,{disabled:n,size:`small`,color:`primary`,onClick:r,children:(0,q.jsx)(Fe,{})})})}function oe(e){let{className:t,disabled:n,onClick:r,registry:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Add an item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:r,children:(0,q.jsx)(ne,{})})})}function se(e){let{disabled:t,onClick:n,registry:r,style:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Move up the item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:n,children:(0,q.jsx)(Ae,{})})})}function ce(e){let{disabled:t,onClick:n,registry:r,style:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Move down the item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:n,children:(0,q.jsx)(Ne,{})})})}function le(e){let{id:i,name:a,value:o,schema:c,readonly:l,onChange:d}=e,[f,p]=(0,U.useState)(),m=e=>{G&&console.log(`CheckboxWidget ${a} onChangeField:`,e),p(e&&e!==``?e:void 0)},h=()=>{G&&console.log(`CheckboxWidget onClick plugin="${n.name}" action="${a}" value="${f}"`),r({id:s.current,sender:`ConfigPlugin`,method:`/api/action`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name,action:a,value:f,formData:b,id:i}}),c.buttonClose===!0?t():c.buttonSave===!0&&S({formData:u})};return c.buttonText&&(c.title||c.description)?(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:Sr,children:c.title||c.description}),(0,q.jsx)(w,{variant:`contained`,color:`primary`,onClick:()=>h(),children:c.buttonText})]}):c.buttonField&&(c.title||c.description)?(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 0px`,gap:`20px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:Sr,children:c.title||c.description}),(0,q.jsx)(H,{id:a+`-input`,name:a,label:c.textLabel,placeholder:c.textPlaceholder,onChange:e=>m(e.target.value),sx:{width:`250px`,minWidth:`250px`,maxWidth:`250px`}}),(0,q.jsx)(w,{id:a+`-button`,variant:`contained`,color:`primary`,disabled:f===void 0,onClick:()=>h(),children:c.buttonField})]}):(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`},children:[a&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,gap:`10px`,display:`flex`,justifyContent:`flex-start`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:br,children:c.title||a}),(0,q.jsx)(ve,{checked:o,readOnly:l,onChange:()=>d(!o),sx:{padding:`0px`,margin:`0px`}})]}),c.description&&(0,q.jsx)(V,{sx:xr,children:c.description})]})}function ue({schema:e,id:t,name:n,options:r,label:i,hideLabel:a,required:o,disabled:s,placeholder:c,readonly:l,value:u,multiple:d,autofocus:f,onChange:p,onBlur:m,onFocus:h,errorSchema:g,rawErrors:_=jr,registry:v,uiSchema:y,hideError:b,...x}){let{enumOptions:S,enumDisabled:C,emptyValue:w}=r,T=d?[]:``,E=u===void 0||d&&u.length<1||!d&&u===T,D=({target:{value:e}})=>p(It(e,S,w)),O=({target:e})=>m(t,It(e&&e.value,S,w)),k=({target:e})=>h(t,It(e&&e.value,S,w)),A=Pt(u,S,d);return(0,q.jsx)(H,{id:t,name:n,value:!E&&A!==void 0?A:T,required:o,disabled:s||l,autoFocus:f,error:_.length>0,onChange:D,onBlur:O,onFocus:k,select:!0,slotProps:{select:{multiple:d,...d?{renderValue:e=>!Array.isArray(e)||!Array.isArray(S)?``:e.map(e=>S[Number(e)]?.label).filter(e=>typeof e==`string`).join(`, `)}:{}}},"aria-describedby":Ft(t),children:Array.isArray(S)&&S.map(({value:e,label:t},n)=>{let r=Array.isArray(C)&&C.indexOf(e)!==-1,i=Array.isArray(A)&&A.includes(String(n));return(0,q.jsxs)(L,{value:String(n),disabled:r,children:[d&&(0,q.jsx)(I,{sx:{minWidth:`32px`},children:(0,q.jsx)(ve,{checked:i,disableRipple:!0,tabIndex:-1,sx:{padding:`0px`,margin:`0px`}})}),t]},n)})})}return G&&console.log(`ConfigPluginDialog rendering...`),!e||!p||!u?null:(0,q.jsxs)(me,{open:e,onClose:t,slotProps:{paper:{sx:{maxWidth:`800px`}}},children:[(0,q.jsx)(m,{children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(`img`,{src:`matterbridge.svg`,alt:`Matterbridge Logo`,style:{height:`32px`,width:`32px`}}),(0,q.jsx)(`h3`,{children:`Matterbridge plugin configuration`})]})}),(0,q.jsx)(ge,{style:{padding:`0px`,margin:`0px`,width:`800px`,height:`600px`,overflow:`auto`},children:(0,q.jsx)(Lt,{schema:p,formData:u,uiSchema:g,validator:Nt,templates:{FieldTemplate:T,BaseInputTemplate:N,TitleFieldTemplate:O,DescriptionFieldTemplate:D,FieldHelpTemplate:k,FieldErrorTemplate:j,ErrorListTemplate:A,WrapIfAdditionalTemplate:C,ArrayFieldTitleTemplate:P,ArrayFieldDescriptionTemplate:ee,ArrayFieldItemTemplate:te,ArrayFieldTemplate:F,ObjectFieldTemplate:re,ButtonTemplates:{SubmitButton:ie,RemoveButton:ae,AddButton:oe,MoveUpButton:se,MoveDownButton:ce}},widgets:{CheckboxWidget:le,SelectWidget:ue},onChange:x,onSubmit:S})})]})};function Rr({status:e,enabledText:t=`Enabled`,disabledText:n,tooltipText:r}){if(e===void 0)return null;{let i=(0,q.jsx)(`div`,{className:e?`status-enabled`:`status-disabled`,style:{cursor:`default`},children:e?t:n??t});return r===void 0?i:(0,q.jsx)(B,{title:r,children:i})}}function zr({storeId:e,setStoreId:t}){let{online:n,sendMessage:r,addListener:i,removeListener:a,getUniqueId:o}=(0,U.useContext)(Y),{mobile:s,showConfirmCancelDialog:c}=(0,U.useContext)(J),l=(0,U.useRef)(o()),[u,d]=(0,U.useState)(null),[f,p]=(0,U.useState)(null),[m,g]=(0,U.useState)([]),[v,y]=(0,U.useState)(null),[b,x]=(0,U.useState)(`inactive`),S=[{label:`Name`,id:`name`,required:!0,render:(e,t,n,r)=>(0,q.jsx)(B,{title:n.local===!0?`Local plugin path: ${n.path}`:`Plugin path ${n.path}`,children:(0,q.jsxs)(`button`,{type:`button`,style:{cursor:`pointer`,background:`none`,border:`none`,margin:0,padding:0,font:`inherit`,color:`inherit`,textAlign:`left`,display:`flex`,alignItems:`center`,gap:`4px`},onClick:()=>P(n),children:[n.name,n.local===!0&&(0,q.jsx)(ft,{style:{width:`14px`,height:`14px`,color:`var(--primary-color)`}})]})})},{label:`Description`,id:`description`,render:(e,t,n,r)=>(0,q.jsx)(B,{title:`Open the plugin homepage`,children:(0,q.jsx)(`button`,{type:`button`,style:{cursor:`pointer`,background:`none`,border:`none`,padding:0,font:`inherit`,color:`inherit`,textAlign:`left`},onClick:()=>P(n),children:n.description})})},{label:`Version`,id:`version`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(B,{title:`Plugin v.${n.version}`,children:(0,q.jsx)(`span`,{children:n.version.split(`-`)[0]+(n.version.includes(`-dev-`)?`@dev`:``)+(n.version.includes(`-git-`)?`@git`:``)})})})},{label:`Author`,id:`author`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:n.author?n.author.replace(`https://github.com/`,``):`Unknown`})},{label:`Type`,id:`type`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:n.type?n.type.replace(`Platform`,``):`Unknown`})},{label:`Devices`,id:`registeredDevices`},{label:`Actions`,id:`actions`,required:!0,noSort:!0,render:(e,n,r,i)=>(0,q.jsxs)(`div`,{style:{margin:`0px`,padding:`0px`,gap:`4px`,display:`flex`,flexDirection:`row`},children:[f&&f.bridgeMode===`childbridge`&&!r.error&&r.enabled&&(0,q.jsx)(B,{title:`Shows the QRCode or the fabrics`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:Yn(r.matter)},onClick:()=>{r.matter?.id&&t(r.matter?.id)},size:`small`,children:(0,q.jsx)(ie,{})})}),f&&f.bridgeMode===`childbridge`&&!r.error&&r.enabled&&(0,q.jsx)(B,{title:`Restart the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`},onClick:()=>M(r),size:`small`,children:(0,q.jsx)(mt,{})})}),(0,q.jsx)(B,{title:`Plugin config`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{disabled:r.restartRequired===!0,style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>de(r),size:`small`,children:(0,q.jsx)(De,{})})}),f&&!f.readOnly&&(0,q.jsx)(B,{title:`Remove the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>{T(`Remove plugin`,`Are you sure? This will also remove all devices and configuration from the controller.`,`remove`,r)},size:`small`,children:(0,q.jsx)(ee,{})})}),r.enabled?(0,q.jsx)(B,{title:`Disable the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>{T(`Disable plugin`,`Are you sure? This will also remove all devices and configuration from the controller.`,`disable`,r)},size:`small`,children:(0,q.jsx)(ut,{})})}):(0,q.jsx)(q.Fragment,{}),r.enabled?(0,q.jsx)(q.Fragment,{}):(0,q.jsx)(B,{title:`Enable the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>N(r),size:`small`,children:(0,q.jsx)(ue,{})})}),(0,q.jsx)(B,{title:`Open the plugin help`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>ne(r),size:`small`,children:(0,q.jsx)(re,{})})}),(0,q.jsx)(B,{title:`Open the plugin version history`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>F(r),size:`small`,children:(0,q.jsx)(_,{})})}),r.enabled&&r.frontendPath&&(0,q.jsx)(B,{title:`Open the plugin frontend`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>I(r),size:`small`,children:(0,q.jsx)(h,{})})}),r.local!==!0&&r.latestVersion!==void 0&&r.latestVersion!==r.version&&f&&!f.readOnly&&(0,q.jsx)(B,{title:`Update the plugin to the latest version v.${r.latestVersion}`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{color:`var(--primary-color)`,margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>k(r),size:`small`,children:(0,q.jsx)(gt,{})})}),r.local!==!0&&(r.version.includes(`-dev-`)||r.version.includes(`-git-`))&&r.devVersion!==void 0&&r.devVersion!==r.version&&f&&!f.readOnly&&(0,q.jsx)(B,{title:`Update the plugin to the latest dev version v.${r.devVersion}`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{color:`var(--secondary-color)`,margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>A(r),size:`small`,children:(0,q.jsx)(gt,{})})}),f&&!f.readOnly&&(0,q.jsx)(B,{title:`Sponsor the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`#b6409c`},onClick:()=>te(r),size:`small`,children:(0,q.jsx)(fe,{})})})]})},{label:`Status`,id:`status`,required:!0,noSort:!0,render:(e,t,n,r)=>(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`row`,flex:`1 1 auto`,margin:`0`,padding:`0`,gap:`5px`,width:`auto`,maxWidth:`max-content`},children:n.error?(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:!1,enabledText:`Error`,disabledText:`Error`,tooltipText:`The plugin is in error state. Check the log!`})}):(0,q.jsx)(q.Fragment,{children:n.enabled?(0,q.jsx)(q.Fragment,{children:n.loaded&&n.started&&n.configured?(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:n.loaded,enabledText:`Running`,tooltipText:`Whether the plugin is running`})}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Rr,{status:n.loaded,enabledText:`Loaded`,tooltipText:`Whether the plugin has been loaded`}),(0,q.jsx)(Rr,{status:n.started,enabledText:`Started`,tooltipText:`Whether the plugin started`}),(0,q.jsx)(Rr,{status:n.configured,enabledText:`Configured`,tooltipText:`Whether the plugin has been configured`})]})}):(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:n.enabled,enabledText:`Enabled`,disabledText:`Disabled`,tooltipText:`Whether the plugin is enable or disabled`})})})})}];(0,U.useEffect)(()=>{let e=e=>{G&&console.log(`HomePlugins received WebSocket Message:`,e),e.method===`refresh_required`&&e.response.changed===`plugins`?e.response.lock?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} lock=${e.response.lock} and locking plugins list`),g(t=>t.map(t=>t.name===e.response.lock?{...t,restartRequired:!0}:t))):(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} lock=${e.response.lock} and sending /api/plugins request`),r({id:l.current,sender:`HomePlugins`,method:`/api/plugins`,src:`Frontend`,dst:`Matterbridge`,params:{}})):e.method===`refresh_required`&&e.response.changed===`matter`?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and setting matter id ${e.response.matter?.id}`),g(t=>{let n=t.findIndex(t=>t.matter?.id===e.response.matter?.id);if(n<0)return G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and matter id ${e.response.matter?.id} not found`),t;G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} set matter id ${e.response.matter?.id}`);let r=[...t];return r[n]={...r[n],matter:e.response.matter},r})):e.method===`refresh_required`&&e.response.changed===`settings`?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and sending /api/settings request`),r({id:l.current,sender:`HomePlugins`,method:`/api/settings`,src:`Frontend`,dst:`Matterbridge`,params:{}})):e.method===`plugin_update_required`?(G&&console.log(`HomePlugins received plugin_update_required`,e.response),g(t=>t.map(t=>t.name===e.response.plugin?e.response.devVersion?{...t,devVersion:e.response.version}:{...t,latestVersion:e.response.version}:t))):e.method===`plugin_status_update`?(G&&console.log(`HomePlugins received plugin_status_update`,e.response),g(t=>t.map(t=>t.name===e.response.plugin?{...t,...e.response.status}:t))):e.method===`matterbridge_status_update`&&(G&&console.log(`HomePlugins received matterbridge_status_update: ${e.response.status}`),x(e.response.status)),e.id===l.current&&e.method===`/api/settings`?(G&&console.log(`HomePlugins (id: ${e.id}) received settings:`,e.response),d(e.response.systemInformation),p(e.response.matterbridgeInformation),x(e.response.matterbridgeInformation.bridgeStatus)):e.id===l.current&&e.method===`/api/plugins`&&(G&&console.log(`HomePlugins (id: ${e.id}) received ${e.response.length} plugins:`,e.response),g(e.response))};return i(e,l.current),G&&console.log(`HomePlugins added WebSocket listener id:`,l.current),()=>{a(e),G&&console.log(`HomePlugins removed WebSocket listener`)}},[i,a,r]),(0,U.useEffect)(()=>{n&&(G&&console.log(`HomePlugins sending api requests`),r({id:l.current,sender:`HomePlugins`,method:`/api/settings`,src:`Frontend`,dst:`Matterbridge`,params:{}}),r({id:l.current,sender:`HomePlugins`,method:`/api/plugins`,src:`Frontend`,dst:`Matterbridge`,params:{}}))},[n,r]);let C=(0,U.useRef)(null),T=(e,t,n,r)=>{G&&console.log(`handleActionWithConfirmCancel ${n} ${r.name}`),C.current=r,c(e,t,n,D,O)},D=e=>{G&&console.log(`handleConfirm action confirmed ${e} ${C.current?.name}`),e===`remove`&&C.current?j(C.current):e===`disable`&&C.current&&N(C.current),C.current=null},O=e=>{G&&console.log(`handleCancel action canceled ${e} ${C.current?.name}`),C.current=null},k=e=>{G&&console.log(`handleUpdatePlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e.name,restart:!1}})},A=e=>{G&&console.log(`handleUpdateDevPlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e.name+`@dev`,restart:!1}})},j=e=>{G&&console.log(`handleRemovePlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/removeplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})},M=e=>{G&&console.log(`handleRestartPlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/restartplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})},N=e=>{G&&console.log(`handleEnableDisablePlugin plugin:`,e.name,`enabled:`,e.enabled),e.enabled?(e.enabled=!1,r({id:l.current,sender:`HomePlugins`,method:`/api/disableplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})):(e.enabled=!0,r({id:l.current,sender:`HomePlugins`,method:`/api/enableplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}}))},P=e=>{G&&console.log(`handleHomepagePlugin plugin: ${e.name} homepage: ${e.homepage}`),e.homepage&&window.open(e.homepage,`_blank`)},te=e=>{G&&console.log(`handleSponsorPlugin plugin:`,e.name,`funding:`,e.funding),e.funding&&window.open(e.funding,`_blank`)},ne=e=>{G&&console.log(`handleHelpPlugin plugin:`,e.name,`help:`,e.help),e.help&&window.open(e.help,`_blank`)},F=e=>{G&&console.log(`handleChangelogPlugin plugin:`,e.name,`changelog:`,e.changelog),e.changelog&&window.open(e.changelog,`_blank`)},I=e=>{let t=`${Yt}plugins/${e.name}/`;console.log(`handleFrontendPlugin plugin:`,e.name,`basePath:`,Yt,`frontendPath:`,e.frontendPath,`computed pluginFrontendPath:`,t),e.frontendPath&&y({name:e.name,path:t})},ae=e=>{let t=e.currentTarget.contentDocument;if(!t?.head)return;let n=getComputedStyle(document.body),r=n.getPropertyValue(`--primary-color`).trim()||`#0d6efd`,i=n.getPropertyValue(`--div-bg-color`).trim()||`#111111`;t.getElementById(`matterbridge-plugin-scrollbar-style`)?.remove();let a=t.createElement(`style`);a.id=`matterbridge-plugin-scrollbar-style`,a.textContent=`
22
+ `,t.head.appendChild(a)},style:{display:`block`,flex:`1 1 auto`,width:`100%`,height:`100%`,border:`none`,backgroundColor:`var(--div-bg-color)`}})}),(0,q.jsx)(E,{sx:{flex:`0 0 auto`,justifyContent:`center`},children:(0,q.jsx)(w,{onClick:()=>S(null),children:`Close`})})]})]}):(0,q.jsx)(en,{})}var $n=(0,U.memo)(Qn),er=[`matterbridge-`,`matterbridge-plugin-template`,`matterbridge-dyson`,`matterbridge-tuya`,`matterbridge-matter`,`matterbridge-automations`,`matterbridge-camera`,`matterbridge-webcam`,`matterbridge-securitysystem`,`matterbridge-adapter`],tr=e=>e.replace(`git+`,``).replace(`.git`,``).trim(),nr=e=>{let t=tr(e);return t.startsWith(`git://`)&&(t=`https://${t.slice(6)}`),t.startsWith(`ssh://git@github.com/`)&&(t=`https://github.com/${t.slice(21)}`),t.startsWith(`git@github.com:`)&&(t=`https://github.com/${t.slice(15).replace(`:`,`/`)}`),t},rr=e=>{if(typeof e==`string`)return e.trim()||null;if(!e||typeof e!=`object`)return null;let t=e.url;return typeof t==`string`&&t.trim()||null},ir=()=>{try{let e=window.localStorage.getItem(W.searchPluginsTotal);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.total==`number`&&typeof t.asOf==`string`&&(n[e]={total:t.total,asOf:t.asOf})}return n}catch{return{}}},ar=e=>{try{window.localStorage.setItem(W.searchPluginsTotal,JSON.stringify(e))}catch{}},or=()=>{try{let e=window.localStorage.getItem(W.searchPluginsMeta);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.asOf==`string`&&(n[e]={homepage:typeof t.homepage==`string`?t.homepage:null,help:typeof t.help==`string`?t.help:null,changelog:typeof t.changelog==`string`?t.changelog:null,asOf:t.asOf})}return n}catch{return{}}},sr=e=>{try{window.localStorage.setItem(W.searchPluginsMeta,JSON.stringify(e))}catch{}},cr=()=>{try{let e=window.localStorage.getItem(W.searchPluginsVersions);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){if(!e||!r||typeof r!=`object`)continue;let t=r;typeof t.asOf==`string`&&Array.isArray(t.versions)&&(n[e]={versions:t.versions.filter(e=>typeof e==`string`),asOf:t.asOf})}return n}catch{return{}}},lr=e=>{try{window.localStorage.setItem(W.searchPluginsVersions,JSON.stringify(e))}catch{}},ur=e=>`${e.getFullYear().toString()}-${(e.getMonth()+1).toString().padStart(2,`0`)}-${e.getDate().toString().padStart(2,`0`)}`,dr=({open:e,onClose:t,onSelect:n,onVersions:r})=>{let{mobile:i}=(0,U.useContext)(J),[a,o]=(0,U.useState)(``),s=(0,U.useRef)(``),c=(0,U.useRef)(!1),l=(0,U.useRef)(null),[u,d]=(0,U.useState)([]),[f,p]=(0,U.useState)(!1),[h,g]=(0,U.useState)(!1),[v,b]=(0,U.useState)(!1),[x,S]=(0,U.useState)({done:0,total:0}),[C,T]=(0,U.useState)(null),D=(0,U.useRef)({}),O=()=>{let e=document.activeElement;e&&e instanceof HTMLElement&&e.blur()},k=(0,U.useCallback)(async(e,t)=>{let n=D.current[e];if(n&&n.asOf===t&&Array.isArray(n.versions)&&n.versions.length>0&&n.versions[0]===`latest`)return G&&console.log(`[SearchPluginsDialog] versions cache hit for ${e} (${n.versions.length.toString()})`),n.versions;n&&n.asOf===t&&n.versions.length>0&&n.versions[0]!==`latest`&&G&&console.log(`[SearchPluginsDialog] versions cache ignored (old format) for ${e} (asOf=${t})`);let r=`https://registry.npmjs.org/${encodeURIComponent(e)}`;G&&console.log(`[SearchPluginsDialog] fetching versions for ${e} from: ${r}`);let i=await fetch(r,{signal:l.current?.signal});if(!i.ok)return G&&console.log(`[SearchPluginsDialog] versions fetch failed for ${e}: ${i.status.toString()} ${i.statusText}`),[];let a=await i.json(),o=Object.keys(a.versions??{}),s=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});o.sort((e,t)=>s.compare(e,t)).reverse();let c=a[`dist-tags`]??{},u=typeof c?.dev==`string`&&String(c.dev).trim().length>0,d=o.slice(0,20),f=[`latest`];return u&&f.push(`dev`),f.push(...d),G&&console.log(`[SearchPluginsDialog] fetched versions for ${e} (tags: latest${u?`, dev`:``}; latestVersions=${d.length.toString()}; allVersions=${o.length.toString()}):`,f),D.current[e]={versions:f,asOf:t},lr(D.current),f},[]),A=e=>new Intl.NumberFormat().format(e),j=[{label:`Name`,id:`name`,required:!0,maxWidth:230,tooltip:!0},{label:`Version`,id:`version`,required:!0,maxWidth:110,tooltip:!0},{label:`Monthly`,id:`downloads`,align:`right`,maxWidth:120,render:e=>typeof e==`number`?A(e):``},{label:`Total`,id:`total`,align:`right`,maxWidth:120,render:e=>typeof e==`number`?A(e):``},{label:`Description`,id:`description`,required:!0,maxWidth:300,tooltip:!0},{label:`Author`,id:`author`,maxWidth:140,tooltip:!0},{label:`Action`,id:`action`,align:`center`,maxWidth:100,noSort:!0,required:!0,render:(e,t,n,r)=>(0,q.jsxs)(`div`,{style:{margin:`0`,padding:`0`,gap:`4px`,display:`flex`,flexDirection:`row`,justifyContent:`center`},children:[(0,q.jsx)(B,{title:n.homepage?`Open the plugin homepage`:`No homepage available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.homepage,onClick:e=>{if(e.stopPropagation(),n.homepage)try{let e=new URL(n.homepage);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(y,{})})})}),(0,q.jsx)(B,{title:n.help?`Open the plugin help`:`No help available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.help,onClick:e=>{if(e.stopPropagation(),n.help)try{let e=new URL(n.help);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(re,{})})})}),(0,q.jsx)(B,{title:n.changelog?`Open the plugin changelog`:`No changelog available`,children:(0,q.jsx)(`span`,{children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`var(--main-icon-color)`},disabled:!n.changelog,onClick:e=>{if(e.stopPropagation(),n.changelog)try{let e=new URL(n.changelog);(e.protocol===`http:`||e.protocol===`https:`)&&window.open(e.toString(),`_blank`)}catch{}},size:`small`,children:(0,q.jsx)(_,{})})})})]})}];(0,U.useEffect)(()=>{if(!e){c.current=!1,s.current=``,l.current?.abort(),l.current=null,d([]),p(!1),g(!1),b(!1),S({done:0,total:0}),T(null),o(``);return}if(c.current)return;c.current=!0;let t=new AbortController;return l.current=t,D.current=cr(),(async()=>{let e=`matterbridge-`,n=e=>new Promise(t=>setTimeout(t,e)),r=e=>{if(!Array.isArray(e.downloads))return null;let t=0,n=!1;for(let r of e.downloads)typeof r?.downloads==`number`&&(t+=r.downloads,n=!0);return n?t:null};try{p(!0),T(null);let i=e=>{let t=String(e??``).trim().toLowerCase();return t?!!(t===`github actions`||t===`github-actions`||t===`github-actions[bot]`||t.includes(`github-actions`)||t.endsWith(`[bot]`)):!1},a=e=>{let t=(e.maintainers??[]).map(e=>(e.username??``).trim()).filter(Boolean),n=(e.publisher?.username??``).trim();return t.find(e=>!i(e))||(n&&!i(n)?n:t[0]??n??``)},o=await fetch(`https://registry.npmjs.org/-/v1/search?text=matterbridge-&size=250`,{signal:t.signal});if(!o.ok)throw Error(`npm registry request failed: ${o.status} ${o.statusText}`);let s=await o.json(),c=`luligu`,l=e=>e.publisher?.username?.toLowerCase()===c||(e.maintainers??[]).some(e=>e.username?.toLowerCase()===c),u=(s.objects??[]).filter(e=>!!e?.package&&typeof e.package.name==`string`).filter(t=>t.package?.name?.startsWith(e)).filter(e=>!er.includes(e.package?.name??``)).sort((e,t)=>{let n=l(e.package??{});return n===l(t.package??{})?(e.package?.name??``).localeCompare(t.package?.name??``):n?-1:1}).map(e=>{let t=e.package,n=t.name??``,r=a(t),i=typeof e.downloads?.monthly==`number`?e.downloads.monthly:null,o=(t.links?.npm??``).trim(),s=((t.links?.homepage??``).trim()||o||(n?`https://www.npmjs.com/package/${encodeURIComponent(n)}`:``)).trim()||null;return{name:n,version:t.version??``,downloads:i,total:null,description:t.description??``,author:r,official:l(t),homepage:s,help:null,changelog:null}}),f=ur(new Date),m=ir(),h=or(),g=u.map(e=>{let t=m[e.name];return!t||typeof t.total!=`number`?e:(G&&console.log(`[SearchPluginsDialog] total downloads loaded from cache for ${e.name} (asOf=${t.asOf}):`,t.total),{...e,total:t.total})}).map(e=>{let t=h[e.name];if(!t||t.asOf!==f)return e;let n=t.homepage??e.homepage,r=t.help,i=t.changelog;return G&&(r||i||n&&n!==e.homepage)&&console.log(`[SearchPluginsDialog] metadata loaded from cache for ${e.name} (asOf=${t.asOf}):`,{homepage:n,help:r,changelog:i}),{...e,homepage:n,help:r,changelog:i}});d(g);let _=u.map(e=>e.name).filter(e=>{let t=D.current[e];return!t||t.asOf!==f||t.versions.length===0});G&&console.log(`[SearchPluginsDialog] versions prefetch queue (${_.length.toString()}):`,_);let v=0,y=async()=>{for(;v<_.length;){if(t.signal.aborted)return;let e=v;v+=1;let r=_[e];if(r)try{let e=await k(r,f);G&&e.length>0&&console.log(`[SearchPluginsDialog] versions fetched for ${r} (${e.length.toString()}):`,e.slice(0,5))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{t.signal.aborted||await n(200)}}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>y()));let x=u.map(e=>e.name).filter(e=>{let t=h[e],n=!!t&&t.asOf===f,r=!!t&&!!t.help&&!!t.changelog,i=!n||!r;return!i&&G&&console.log(`[SearchPluginsDialog] metadata fetch skipped (cache fresh+complete) for ${e} (asOf=${t.asOf}).`),n&&!r&&G&&console.log(`[SearchPluginsDialog] metadata fetch forced (cache incomplete) for ${e} (asOf=${t.asOf}).`),i}),C=new Set(x),w=async(e,n)=>{let r=`https://registry.npmjs.org/${encodeURIComponent(e)}/latest`;try{let e=await fetch(r,{signal:t.signal});if(!e.ok)return null;let i=await e.json(),a=typeof i.homepage==`string`&&i.homepage.includes(`http`)?tr(i.homepage):null,o=typeof i.help==`string`&&i.help.startsWith(`http`)?i.help.trim():null,s=typeof i.changelog==`string`&&i.changelog.startsWith(`http`)?i.changelog.trim():null,c=rr(i.repository),l=c?nr(c):null,u=l&&l.includes(`http`)?l:null,d=a||u||n||null;return{homepage:d,help:o||(u?`${u}/blob/main/README.md`:null)||d||null,changelog:s||(u?`${u}/blob/main/CHANGELOG.md`:null)||d||null}}catch(e){return e instanceof DOMException&&e.name,null}},E=0,O=async()=>{for(;E<x.length;){if(t.signal.aborted)return;let e=E;E+=1;let r=x[e];if(!r||!C.has(r))continue;C.delete(r);let i=u.find(e=>e.name===r)?.homepage??null,a=await w(r,i);if(t.signal.aborted)return;a&&(d(e=>e.map(e=>e.name===r?{...e,homepage:a.homepage??e.homepage,help:a.help,changelog:a.changelog}:e)),h[r]={homepage:a.homepage,help:a.help,changelog:a.changelog,asOf:f},sr(h)),t.signal.aborted||await n(250)}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>O()));let A=`2020-01-01`,j=u.map(e=>e.name).filter(e=>{let t=m[e],n=!t||t.asOf!==f;return n||G&&console.log(`[SearchPluginsDialog] total downloads fetch skipped (cache fresh) for ${e} (asOf=${t.asOf}).`),n}),M=new Set(j),N=j.length;S({done:0,total:N}),b(N>0);let P=async e=>{let i=`https://api.npmjs.org/downloads/range/${A}:${f}/${encodeURIComponent(e)}`;for(let e=0;e<3;e+=1){let a=await fetch(i,{signal:t.signal});if(a.ok){let e=await a.json();return r(e)}if(a.status===404)return null;if(a.status===429){let t=a.headers.get(`retry-after`),r=t?Number(t):NaN,i=Number.isFinite(r)?r*1e3:2e3*(e+1);await n(i);continue}return null}return null},ee=0,te=0,ne=async()=>{for(;ee<j.length;){if(t.signal.aborted)return;let e=ee;ee+=1;let r=j[e];if(r&&M.has(r)){M.delete(r);try{G&&console.log(`[SearchPluginsDialog] fetching total downloads for ${r} (range ${A}:${f})...`);let e=await P(r);if(t.signal.aborted)return;G&&console.log(`[SearchPluginsDialog] total downloads fetched for ${r}:`,e),d(t=>t.map(t=>t.name===r?{...t,total:e}:t)),typeof e==`number`&&(m[r]={total:e,asOf:f},ar(m),G&&console.log(`[SearchPluginsDialog] total downloads saved to localStorage for ${r} (asOf=${f}):`,e))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{te+=1,S({done:te,total:N}),t.signal.aborted||await n(500)}}}};Promise.all(Array.from({length:Math.min(1,u.length)},()=>ne())).finally(()=>{t.signal.aborted||b(!1)}),G&&console.log(`[SearchPluginsDialog] npm packages starting with "${e}" (filtered/sorted):`,u)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;console.error(`[SearchPluginsDialog] npm registry fetch error:`,e),T(e instanceof Error?e.message:String(e))}finally{p(!1)}})(),()=>t.abort()},[e,k]);let M=async()=>{O();let e=s.current||a;if(e&&!h)try{g(!0);let t=ur(new Date),i=await k(e,t);G&&console.log(`[SearchPluginsDialog] passing versions to onVersions() for ${e} (${i.length.toString()}):`,i),r(i),g(!1),n(e)}catch(t){if(t instanceof DOMException&&t.name===`AbortError`)return;console.error(`[SearchPluginsDialog] npm versions fetch error:`,t),r([]),g(!1),n(e)}},N=()=>{O(),t(),r([])},P=u.reduce((e,t)=>e+(typeof t.downloads==`number`?t.downloads:0),0),ee=u.reduce((e,t)=>(typeof t.total==`number`&&(e.total+=t.total,e.hasAny=!0),e),{total:0,hasAny:!1}),te=v?` Totals: ${x.done.toString()}/${x.total.toString()} fetched`:``,ne=ee.hasAny?A(ee.total):`...`;return(0,q.jsxs)(me,{open:e,onClose:()=>{O(),t()},maxWidth:!1,fullWidth:!0,slotProps:{paper:{sx:{width:K&&i?`100vw`:`75vw`,height:K&&i?`100vh`:`75vh`,maxWidth:K&&i?`100vw`:`75vw`,maxHeight:K&&i?`100vh`:`75vh`,margin:K&&i?`0px`:void 0,display:`flex`,flexDirection:`column`}}},children:[(0,q.jsx)(m,{children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(`img`,{src:`matterbridge.svg`,alt:`Matterbridge Logo`,style:{height:`32px`,width:`32px`}}),(0,q.jsx)(`h4`,{style:{margin:0},children:`Search Plugins`})]})}),(0,q.jsx)(ge,{dividers:!0,sx:{padding:`10px`,flex:`1 1 auto`,minHeight:0},children:(0,q.jsx)(`div`,{style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:f?(0,q.jsx)(`div`,{style:{padding:`20px`},children:`Loading npm registry...`}):C?(0,q.jsx)(`div`,{style:{padding:`20px`},children:C}):(0,q.jsx)(Ln,{name:`Search plugins`,rows:u,columns:j,getRowKey:`name`,onRowClick:(e,t,n)=>{s.current=e.name,o(e.name),n.detail===2&&M()},footerLeft:`Total packages: ${u.length.toString()} Total downloads: ${A(P)} / ${ne}${te}`,footerRight:a?`Selected: ${a}`:``})})}),(0,q.jsxs)(E,{sx:{justifyContent:`center`,gap:1.5,flexWrap:`wrap`},children:[(0,q.jsx)(B,{title:`Select the plugin and close the dialog. Double-click a row to select and close the dialog.`,children:(0,q.jsx)(w,{variant:`contained`,onClick:M,disabled:!(s.current||a)||h,children:`Select`})}),(0,q.jsx)(B,{title:`Close the dialog without selecting a plugin.`,children:(0,q.jsx)(w,{onClick:N,children:`Cancel`})})]})]})};function fr(){let{mobile:e,showSnackbarMessage:t}=(0,U.useContext)(J),{logMessage:n,sendMessage:r,getUniqueId:i}=(0,U.useContext)(Y),[a,o]=(0,U.useState)(`matterbridge-`),[s,c]=(0,U.useState)([`latest`,`dev`]),[l,u]=(0,U.useState)(`latest`),[f,p]=(0,U.useState)(!1),m=(0,U.useRef)(i()),h=e=>{let t=(e??``).trim();if(!t)return{name:``,specifier:null};if(t.startsWith(`@`)){let e=t.lastIndexOf(`@`);if(e>0){let n=t.slice(0,e),r=t.slice(e+1);if(n.includes(`/`)&&r)return{name:n,specifier:r}}return{name:t,specifier:null}}let n=t.indexOf(`@`);if(n>0){let e=t.slice(0,n),r=t.slice(n+1);return r?{name:e,specifier:r}:{name:e,specifier:null}}return{name:t,specifier:null}},g=()=>{let{name:e,specifier:t}=h(a);return e?t?`${e}@${t}`:l?`${e}@${l}`:e:``},_=e=>{e.preventDefault(),p(!0)},v=()=>{p(!1)},y=e=>{e.preventDefault(),p(!1);let t=e.dataTransfer.files[0];if(t){n(`Plugins`,`Installing package ${t.name}. Please wait...`);let e=new FormData;e.append(`file`,t),e.append(`filename`,t.name),fetch(`./api/uploadpackage`,{method:`POST`,body:e}).then(e=>e.text()).then(e=>{n(`Plugins`,`Server response: ${e}`)}).catch(e=>{console.error(`Error uploading plugin file:`,e),n(`Plugins`,`Error installing package ${e}`)})}},b=e=>{let t=e.target.files&&e.target.files[0];if(t){n(`Plugins`,`Uploading package ${t.name}`);let e=new FormData;e.append(`file`,t),e.append(`filename`,t.name),fetch(`./api/uploadpackage`,{method:`POST`,body:e}).then(e=>e.text()).then(e=>{n(`Plugins`,`Server response: ${e}`)}).catch(e=>{console.error(`Error uploading plugin file:`,e),n(`Plugins`,`Error uploading package ${e}`)})}},x=()=>{let e=g();if(e){if(er.includes(e.split(`@`)[0])){t(`Installation of plugin "${e}" is blocked by the ignore list.`);return}r({id:m.current,sender:`InstallPlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e,restart:!1}})}},S=()=>{r({id:m.current,sender:`InstallPlugins`,method:`/api/uninstall`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:a}})},C=()=>{document.getElementById(`file-upload`)?.click()},T=()=>{if(er.includes(a.split(`@`)[0])){t(`Addition of plugin "${a}" is blocked by the ignore list.`);return}r({id:m.current,sender:`InstallPlugins`,method:`/api/addplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginNameOrPath:a}})},E=e=>{e.preventDefault(),G&&console.log(`Right-clicked Upload button`)},D=e=>{e.preventDefault(),G&&console.log(`Right-clicked Add button`)},[O,k]=(0,U.useState)(!1),A=()=>{k(!0),G&&console.log(`Dialog opened for selection`)},j=()=>{o(`matterbridge-`),k(!1),G&&console.log(`Dialog closed without selection`)},M=e=>{o(e),k(!1),G&&console.log(`Select plugin:`,e)},N=e=>{c(e),u(e.includes(`latest`)?`latest`:e[0]??``),G&&console.log(`Select plugin versions:`,e)},[P,F]=(0,U.useState)(!1);return G&&console.log(`HomeInstallAddPlugins rendering...`),P?null:(0,q.jsxs)(Z,{children:[(0,q.jsxs)(tn,{children:[(0,q.jsx)(Q,{children:`Install plugins`}),(0,q.jsx)(sn,{close:()=>F(!0)})]}),(0,q.jsxs)(on,{onDragOver:_,onDragLeave:v,onDrop:y,style:K&&e?{flexWrap:`wrap`,alignItems:`center`,gap:`10px`}:{flexWrap:`wrap`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(dr,{open:O,onClose:j,onSelect:M,onVersions:N}),(0,q.jsxs)(`div`,{style:{flex:`1 1 auto`,display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`},children:[(0,q.jsx)(B,{title:`Provide the npm name or the local path of the plugin to install, uninstall, or add`,children:(0,q.jsx)(H,{value:a,onChange:e=>{let t=e.target.value;c([`latest`,`dev`]),u(`latest`),o(t)},size:`small`,id:`plugin-name`,label:`Plugin name or plugin path`,variant:`outlined`,fullWidth:!0})}),s.length>0&&(0,q.jsx)(B,{title:`Select the npm tag/version to install`,children:(0,q.jsx)(`span`,{children:(0,q.jsxs)(le,{size:`small`,style:{minWidth:`150px`},children:[(0,q.jsx)(te,{id:`plugin-version-label`,children:`Tag or version`}),(0,q.jsx)(ht,{labelId:`plugin-version-label`,id:`plugin-version`,value:l,label:`Tag or version`,onChange:e=>u(e.target.value??``),children:s.map(e=>(0,q.jsx)(L,{value:e,children:e},e))})]})})}),(0,q.jsx)(B,{title:`Search on npm the plugin to install`,children:(0,q.jsx)(R,{size:`large`,onClick:A,children:(0,q.jsx)(Ue,{fontSize:`inherit`})})})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,flexWrap:`wrap`,alignItems:`center`,gap:`10px`},children:[(0,q.jsx)(B,{title:`Install or update a plugin from npm`,children:(0,q.jsxs)(w,{onClick:x,endIcon:(0,q.jsx)(Ve,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Install`]})}),(0,q.jsx)(B,{title:`Uninstall and remove a plugin`,children:(0,q.jsxs)(w,{onClick:S,endIcon:(0,q.jsx)(ee,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Uninstall`]})}),(0,q.jsx)(B,{title:`Upload and install a plugin from a tarball`,children:(0,q.jsxs)(w,{onClick:C,onContextMenu:E,endIcon:(0,q.jsx)(d,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Upload`]})}),(0,q.jsx)(B,{title:`Add an already installed plugin or a plugin from a local path`,children:(0,q.jsxs)(w,{onClick:T,onContextMenu:D,endIcon:(0,q.jsx)(ne,{}),style:{color:`var(--main-button-color)`,backgroundColor:`var(--main-button-bg-color)`,height:`30px`,minWidth:`90px`},children:[` `,`Add`]})}),(0,q.jsx)(`input`,{id:`file-upload`,type:`file`,accept:`.tgz`,style:{display:`none`},onChange:b})]})]})]})}var pr=(0,U.memo)(fr),mr=()=>{let e=window;return`ontouchstart`in window||e.DocumentTouch!==void 0&&document instanceof e.DocumentTouch?(G&&console.log(`WebSocketLogs detectTouchscreen = true`),!0):(G&&console.log(`WebSocketLogs detectTouchscreen = false`),!1)};function hr(){let{messages:e,logAutoScroll:t}=(0,U.useContext)(Qt),[n,r]=(0,U.useState)(!1),i=(0,U.useRef)(null),a=(0,U.useRef)(0),o=(0,U.useRef)(null),s=(0,U.useMemo)(()=>mr(),[]),c=()=>r(!0),l=()=>r(!1);(0,U.useEffect)(()=>{if(G&&console.log(`WebSocketLogs logAutoScroll: ${t.current} isHovering: ${n}`),t.current&&!n&&!s){let e=Date.now();e-a.current>=500?(G&&console.log(`WebSocketLogs auto-scroll to bottom`),a.current=e,i.current?.scrollIntoView({behavior:`smooth`,block:`end`})):(G&&console.log(`WebSocketLogs auto-scroll skipped to avoid flicker`),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{i.current?.scrollIntoView({behavior:`smooth`}),a.current=Date.now()},1e3))}},[e,t,n,s]);let u=e=>{switch(e.toLowerCase()){case`debug`:return`gray`;case`info`:return`#267fb7`;case`notice`:return`green`;case`warn`:return`#e9db18`;case`error`:return`red`;case`fatal`:return`#ff0000`;case`spawn`:return`#ff00d0`;default:return`#5c0e91`}},d=e=>{switch(e.toLowerCase()){case`warn`:return`black`;default:return`white`}};return(0,q.jsx)(`div`,{style:{margin:`0px`,padding:`0px`},onMouseEnter:c,onMouseLeave:l,children:(0,q.jsxs)(`ul`,{style:{margin:`0px`,padding:`0px`},children:[e.map((e,t)=>(0,q.jsxs)(`li`,{style:{wordWrap:`break-word`,maxHeight:`200px`,overflow:`hidden`},children:[(0,q.jsx)(`span`,{style:{marginRight:`5px`,padding:`1px 5px`,backgroundColor:u(e.level),color:d(e.level),fontSize:`12px`,borderRadius:`3px`,textAlign:`center`},children:e.level}),e.time&&(0,q.jsx)(`span`,{style:{marginRight:`3px`,color:`#505050`},children:`[`+e.time+`]`}),e.name&&(0,q.jsx)(`span`,{style:{marginRight:`3px`,color:`#09516d`},children:`[`+e.name+`]`}),(0,q.jsx)(`span`,{style:{color:`var(--main-log-color)`},children:e.message})]},t)),(0,q.jsx)(`div`,{ref:i})]})})}var gr=(0,U.memo)(hr);function _r(){let[e,t]=(0,U.useState)(localStorage.getItem(W.logFilterLevel)??`info`),[n,r]=(0,U.useState)(localStorage.getItem(W.logFilterSearch)??`*`),{online:i,logAutoScroll:a}=(0,U.useContext)(Y);return G&&console.log(`HomeLogs rendering...`),i?(0,q.jsxs)(Z,{style:{flex:`1 1 auto`},children:[(0,q.jsxs)(tn,{children:[(0,q.jsx)(Q,{children:`Logs`}),(0,q.jsxs)(Q,{style:{fontWeight:`normal`,fontSize:`12px`,marginTop:`2px`},children:[`Filter: logger level "`,e,`" and search "`,n===``?`*`:n,`" Scroll: `,a.current?`auto`:`manual`]})]}),(0,q.jsx)(on,{style:{flex:`1 1 auto`,overflow:`auto`,margin:`0px`,padding:`10px`,alignItems:`start`},children:(0,q.jsx)(gr,{})})]}):(0,q.jsx)(en,{})}var vr=(0,U.memo)(_r);function yr(e){return e.id!==0&&e.src===`Matterbridge`&&e.dst===`Frontend`}var br={fontSize:`16px`,fontWeight:`bold`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},xr={fontSize:`12px`,fontWeight:`normal`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},Sr={fontSize:`16px`,fontWeight:`bold`,color:`var(--div-text-color)`,backgroundColor:`var(--div-bg-color)`},Cr={fontSize:`14px`,fontWeight:`normal`,color:`var(--secondary-color)`,backgroundColor:`var(--div-bg-color)`},wr={fontSize:`16px`,fontWeight:`bold`,backgroundColor:`var(--div-bg-color)`},Tr={padding:`0px`,margin:`0px`},Er=`5px 10px 5px 10px`,Dr={},Or={},kr={},Ar={},jr=[],Mr=[],Nr=[];function Pr(e,t){let n=e?.properties;if(!n||typeof n!=`object`)return!1;let r=n[t];return!r||typeof r!=`object`?!1:typeof r.type==`string`}function Fr(e){let t=e.items;return t!==void 0&&typeof t==`object`&&!Array.isArray(t)}function Ir(e,t){let n=e?.properties;if(!n||typeof n!=`object`)return!1;let r=n[t];if(!r||typeof r!=`object`||r.type!==`array`||r.uniqueItems!==!0)return!1;let i=r.items;return i!==void 0&&typeof i==`object`&&!Array.isArray(i)&&Array.isArray(i.enum)}var Lr=({open:e,onClose:t,plugin:n})=>{let{sendMessage:r,addListener:i,removeListener:a,getUniqueId:o}=(0,U.useContext)(Y),s=(0,U.useRef)(o()),c=(0,U.useRef)({}),l=(0,U.useRef)({}),[u,d]=(0,U.useState)(n.configJson),[p,h]=(0,U.useState)(n.schemaJson),[g,_]=(0,U.useState)({"ui:submitButtonOptions":{submitText:`Confirm`},"ui:globalOptions":{orderable:!0}}),y=(0,U.useRef)(``),b=n.configJson;(0,U.useEffect)(()=>{let e=e=>{e.src===`Matterbridge`&&e.dst===`Frontend`&&(yr(e)&&e.id===s.current&&e.method===`/api/select/devices`&&e.response&&(G&&console.log(`ConfigPluginDialog (id: ${e.id}) received ${e.response.length} /api/select/devices:`,e.response),Mr=e.response),yr(e)&&e.id===s.current&&e.method===`/api/select/entities`&&e.response&&(G&&console.log(`ConfigPluginDialog (id: ${e.id}) received ${e.response.length} /api/select/entities:`,e.response),Nr=e.response))};if(i(e,s.current),G&&console.log(`ConfigPluginDialog added WebSocket listener id:`,s.current),G&&console.log(`ConfigPluginDialog mounting...`),G&&console.log(`ConfigPluginDialog mounting with form:`,u),G&&console.log(`ConfigPluginDialog mounting with schema:`,p),G&&console.log(`ConfigPluginDialog mounting with uiSchema:`,g),u&&p&&p.properties){let e=(t,n,r=[])=>{t&&typeof t==`object`&&(t.properties&&Object.keys(t.properties).forEach(i=>{let a=t.properties?.[i],o=[...r,i];Object.keys(a).forEach(e=>{if(e.startsWith(`ui:`)){let t=n;o.forEach(e=>{t[e]||(t[e]={}),t=t[e]}),t[e]=a[e],delete a[e]}}),e(a,n,o)}),[`oneOf`,`anyOf`,`allOf`].forEach(i=>{Array.isArray(t[i])&&t[i].forEach(t=>{e(t,n,r)})}),t.items&&typeof t.items==`object`&&e(t.items,n,r))};e(p,g),_(g),c.current=p,l.current=g}return n.name&&n.configJson&&n.schemaJson&&(d(n.configJson),h(n.schemaJson),r({id:s.current,sender:`ConfigPlugin`,method:`/api/select/devices`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name}}),r({id:s.current,sender:`ConfigPlugin`,method:`/api/select/entities`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name}}),G&&console.log(`HomePlugins sent "/api/select/devices" and "/api/select/entities" for plugin:`,n.name)),()=>{a(e),G&&console.log(`ConfigPluginDialog removed WebSocket listener`)}},[i,u,n,a,p,r,g]);let x=(e,t)=>{b=e.formData},S=e=>{G&&console.log(`ConfigPluginDialog handleSaveChanges:`,e.formData),d(e.formData),n.configJson=e.formData,n.restartRequired=!0,r({id:s.current,sender:`ConfigPlugin`,method:`/api/savepluginconfig`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.formData.name,formData:e.formData}}),t()};function C(e){let{id:t,label:n,onKeyRenameBlur:r,onRemoveProperty:i,disabled:a,schema:o,children:s,registry:c,readonly:l,required:u}=e,{templates:d}=c,{RemoveButton:f}=d.ButtonTemplates,p=Mt in o,m=(0,U.useRef)(null);return(0,U.useEffect)(()=>{let e=y.current;p&&e!==``&&/^newKey(?:-\d+)?$/.test(n)&&m.current&&(G&&console.log(`WrapIfAdditionalTemplate: renaming additional property "${n}" to "${e}"`),m.current.value=e,r({target:m.current}),y.current=``)},[p,n,r]),p?(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,flexGrow:1,padding:0,margin:0,border:`none`},children:[(0,q.jsx)(H,{id:`${t}-key`,name:`${t}-key`,required:u,disabled:a||l,defaultValue:n,inputRef:m,onBlur:l?void 0:r,type:`text`,variant:`outlined`,sx:{width:`250px`,minWidth:`250px`,maxWidth:`250px`,marginRight:`20px`}}),(0,q.jsx)(M,{sx:{flex:1},children:s}),(0,q.jsx)(f,{disabled:a||l,onClick:i,registry:c})]}):(0,q.jsx)(M,{sx:{display:`flex`,flexDirection:`column`,flexGrow:1,padding:0,margin:0,border:`none`},children:s})}function T(e){let{children:t,description:n,displayLabel:r,errors:i,help:a,hidden:o,registry:s,uiSchema:c}=e,l=At(c),u=jt(`WrapIfAdditionalTemplate`,s,l);return o?(0,q.jsx)(`div`,{style:{display:`none`},children:t}):(0,q.jsx)(M,{sx:{display:`flex`,flexDirection:`column`,flexGrow:1,padding:0,margin:0,border:`none`},children:(0,q.jsxs)(u,{...e,children:[r===!0&&n,t,i,a]})})}function D(e){let{description:t}=e;return t?(0,q.jsx)(V,{sx:xr,children:t}):null}function O(e){let{required:t,title:n}=e;return n?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:(0,q.jsxs)(V,{sx:br,children:[`Title `,n,` `,t&&(0,q.jsx)(`mark`,{children:`***`})]})}):null}function k(e){let{help:t}=e;return t?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:(0,q.jsx)(V,{sx:Cr,children:t})}):null}function A(e){let{errors:t}=e;return t?(0,q.jsxs)(M,{sx:{padding:`10px`,margin:`10px`,border:`1px solid grey`},children:[(0,q.jsx)(V,{color:`error`,sx:wr,children:`Please fix the following errors:`}),(0,q.jsx)(He,{children:t.map((e,t)=>(0,q.jsxs)(We,{children:[(0,q.jsx)(I,{children:(0,q.jsx)(qe,{color:`error`})}),(0,q.jsx)(v,{primary:e.stack})]},t))})]}):null}function j(e){let{errors:t}=e;return t?(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginTop:`5px`},children:t.map((e,t)=>(0,q.jsxs)(V,{color:`error`,variant:`body2`,sx:{marginLeft:1},children:[`This field `,e]},t))}):null}function N(e){let{id:t,name:n,_schema:r,_uiSchema:i,value:a,options:o,label:s,type:c,placeholder:l,required:u,disabled:d,readonly:f,autofocus:p,onChange:m,onChangeOverride:h,onBlur:g,onFocus:_,_rawErrors:v,_hideError:y,_registry:b,_formContext:x}=e;return(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`},children:(0,q.jsx)(H,{id:t,name:t,label:l&&l!==``?s:void 0,variant:`outlined`,placeholder:l&&l!==``?l:s,required:u,disabled:d||f,autoFocus:p,value:a||a===0?a:``,type:c,autoComplete:c===`password`?`current-password`:n,onChange:h||(({target:{value:e}})=>m(e===``?o.emptyValue:e)),onBlur:({target:e})=>g(t,e&&e.value),onFocus:({target:e})=>_(t,e&&e.value),fullWidth:!0})})}function P(e){return console.log(`ArrayFieldTitleTemplate:`,e),null}function ee(e){return console.log(`ArrayFieldDescriptionTemplate:`,e),null}function te(e){let{buttonsProps:t,children:n}=e;return(0,q.jsxs)(M,{sx:{margin:`2px 0px`,padding:`0px`,display:`flex`,alignItems:`center`},children:[(0,q.jsx)(M,{sx:{flexGrow:1,marginRight:`10px`},children:n}),(0,q.jsx)(R,{disabled:!t.hasMoveUp,onClick:t.onMoveUpItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Ae,{})}),(0,q.jsx)(R,{disabled:!t.hasMoveDown,onClick:t.onMoveDownItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Ne,{})}),t.hasRemove&&(0,q.jsx)(R,{onClick:t.onRemoveItem,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(Fe,{})})]})}function F(e){let{canAdd:t,onAddClick:n,schema:r,title:i,formData:a}=e,[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(!1),[p,h]=(0,U.useState)(``),g=e=>{h(e.target.value)},_=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogDeviceToggle filter:`,p,`selectDevices:`,Mr),s(!o)},y=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogEntityToggle filter:`,p,`selectEntities:`,Nr),l(!c)},b=()=>{G&&console.log(`ArrayFieldTemplate: handleDialogDeviceEntityToggle filter:`,p,`selectDevices:`,Mr),d(!u)},x=e=>{s(!1),r.selectFrom===`serial`&&Fr(r)?r.items.default=e.serial:r.selectFrom===`name`&&Fr(r)&&(r.items.default=e.name),n()},S=e=>{l(!1),r.selectEntityFrom===`name`&&Fr(r)?r.items.default=e.name:r.selectEntityFrom===`description`&&Fr(r)&&(r.items.default=e.description),n()},C=e=>{d(!1),r.selectDeviceEntityFrom===`name`&&Fr(r)?r.items.default=e.name:r.selectDeviceEntityFrom===`description`&&Fr(r)&&(r.items.default=e.description),n()};return(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 10px 5px 10px`,border:`1px solid grey`},children:[i&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[i&&(0,q.jsx)(V,{sx:br,children:i}),t&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[r.selectFrom&&(0,q.jsx)(B,{title:`Add a device from the list`,children:(0,q.jsx)(R,{onClick:_,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),r.selectEntityFrom&&(0,q.jsx)(B,{title:`Add an entity from the list`,children:(0,q.jsx)(R,{onClick:y,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),r.selectDeviceEntityFrom&&(0,q.jsx)(B,{title:`Add a device entity from the list`,children:(0,q.jsx)(R,{onClick:b,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),(0,q.jsx)(B,{title:`Add a new item`,children:(0,q.jsx)(R,{onClick:n,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ne,{})})})]})]}),r.description&&(0,q.jsx)(V,{sx:xr,children:r.description}),e.items,(0,q.jsxs)(me,{open:o,onClose:_,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select a device`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:p,onChange:g,placeholder:`Enter serial or name`})]}),(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial.toLowerCase().includes(p.toLowerCase())||e.name.toLowerCase().includes(p.toLowerCase())).filter(e=>!r.uniqueItems||!a.includes(r.selectFrom===`serial`?e.serial:e.name)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>x(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.serial,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:_,children:`Close`})})]}),(0,q.jsxs)(me,{open:c,onClose:y,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select an entity`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:p,onChange:g,placeholder:`Enter name or description`})]}),(0,q.jsx)(He,{dense:!0,children:Nr.filter(e=>e.name.toLowerCase().includes(p.toLowerCase())||e.description.toLowerCase().includes(p.toLowerCase())).filter(e=>!r.uniqueItems||!a.includes(r.selectEntityFrom===`name`?e.name:e.description)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>S(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),e.icon===`component`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ge,{style:Or})}),e.icon===`matter`&&(0,q.jsx)(I,{children:(0,q.jsx)(Le,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.description,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:y,children:`Close`})})]}),(0,q.jsxs)(me,{open:u,onClose:b,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsxs)(m,{children:[`Select an entity for `,i]}),(0,q.jsx)(ge,{children:(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial===i||e.name===i).map(e=>e.entities?.filter(e=>!r.uniqueItems||!Array.isArray(a)||!a.includes(r.selectDeviceEntityFrom===`name`?e.name:e.description)).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>C(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),e.icon===`component`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ge,{style:Or})}),e.icon===`matter`&&(0,q.jsx)(I,{children:(0,q.jsx)(Le,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.description,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t)))})}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:b,children:`Close`})})]})]})}function re(e){let{onAddProperty:t,schema:n,properties:r,title:i,description:a}=e,[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(``),u=e=>{l(e.target.value)},d=()=>{s(!o)},p=e=>{G&&console.log(`ObjectFieldTemplate: handleSelectValue value "${e.serial}" for schema "${n.selectFrom}"`),s(!1);let r=``;n.selectFrom===`serial`?r=e.serial:n.selectFrom===`name`&&(r=e.name),y.current=r,G&&console.log(`ObjectFieldTemplate: handleSelectValue pendingAdditionalPropertyKey "${r}"`),t()},h=()=>{t()},g=!n.additionalProperties;return G&&console.log(`ObjectFieldTemplate: isRoot ${g} pendingAdditionalPropertyKey "${y.current}"`),(0,q.jsxs)(M,{sx:{margin:`0px`,padding:g?`10px`:`5px 10px 0px 10px`,border:g?`none`:`1px solid grey`},children:[n.title&&g&&(0,q.jsx)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`,marginBottom:`10px`},children:(0,q.jsx)(V,{sx:br,children:n.title})}),i&&!g&&(0,q.jsxs)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`},children:[(0,q.jsx)(V,{sx:br,children:i}),(0,q.jsxs)(M,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`0px`,margin:`0px`},children:[n.selectFrom&&(0,q.jsx)(B,{title:`Add a device from the list`,children:(0,q.jsx)(R,{onClick:d,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ct,{})})}),(0,q.jsx)(B,{title:`Add a new item`,children:(0,q.jsx)(R,{onClick:h,size:`small`,color:`primary`,sx:Tr,children:(0,q.jsx)(ne,{})})})]})]}),n.description&&(0,q.jsx)(M,{sx:{padding:`0px`,margin:`0px`,marginBottom:`10px`},children:(0,q.jsx)(V,{sx:xr,children:n.description})}),r.map(({content:e,name:t,hidden:r})=>{if(r)return null;let i=Pr(n,t),a=Ir(n,t),o=i&&[`object`,`array`].includes(n.properties[t].type);return(0,q.jsxs)(M,{sx:{margin:`0px`,marginBottom:`10px`,padding:o&&!a?`0px`:Er,border:o&&!a?`none`:`1px solid grey`},children:[i&&![`object`,`array`,`boolean`].includes(n.properties[t].type)&&(0,q.jsx)(V,{sx:br,children:n.properties[t].title||t}),a&&(0,q.jsx)(V,{sx:br,children:n.properties[t].title||t}),(0,q.jsx)(M,{sx:{flexGrow:1,padding:`0px`,margin:`0px`},children:e})]},t)}),(0,q.jsxs)(me,{open:o,onClose:d,slotProps:{paper:{sx:{maxHeight:`50vh`,maxWidth:`50vw`,overflow:`auto`}}},children:[(0,q.jsx)(m,{children:`Select a device`}),(0,q.jsxs)(ge,{children:[(0,q.jsxs)(M,{sx:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`10px`,marginBottom:`10px`},children:[(0,q.jsx)(V,{variant:`subtitle1`,sx:{whiteSpace:`nowrap`},children:`Filter by:`}),(0,q.jsx)(H,{fullWidth:!0,variant:`outlined`,value:c,onChange:u,placeholder:`Enter serial or name`})]}),(0,q.jsx)(He,{dense:!0,children:Mr.filter(e=>e.serial.toLowerCase().includes(c.toLowerCase())||e.name.toLowerCase().includes(c.toLowerCase())).map((e,t)=>(0,q.jsxs)(f,{onClick:()=>p(e),sx:Dr,children:[e.icon===`wifi`&&(0,q.jsx)(I,{children:(0,q.jsx)(_e,{style:Or})}),e.icon===`ble`&&(0,q.jsx)(I,{children:(0,q.jsx)(Ce,{style:Or})}),e.icon===`hub`&&(0,q.jsx)(I,{children:(0,q.jsx)($e,{style:Or})}),(0,q.jsx)(v,{primary:e.name,secondary:e.serial,slotProps:{primary:{style:kr},secondary:{style:Ar}}})]},t))})]}),(0,q.jsx)(E,{children:(0,q.jsx)(w,{onClick:d,children:`Close`})})]})]})}function ie(e){let{uiSchema:n}=e,{submitText:r,norender:i}=kt(n);return i?null:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,margin:`10px`,padding:`0px`,gap:`20px`},children:[(0,q.jsx)(w,{type:`submit`,variant:`contained`,color:`primary`,children:r}),(0,q.jsx)(w,{variant:`contained`,color:`primary`,onClick:t,children:`Cancel`})]})}function ae(e){let{className:t,disabled:n,onClick:r,registry:i,style:a,uiSchema:o,...s}=e;return(0,q.jsx)(B,{title:`Remove the item`,children:(0,q.jsx)(R,{disabled:n,size:`small`,color:`primary`,onClick:r,children:(0,q.jsx)(Fe,{})})})}function oe(e){let{className:t,disabled:n,onClick:r,registry:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Add an item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:r,children:(0,q.jsx)(ne,{})})})}function se(e){let{disabled:t,onClick:n,registry:r,style:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Move up the item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:n,children:(0,q.jsx)(Ae,{})})})}function ce(e){let{disabled:t,onClick:n,registry:r,style:i,uiSchema:a,...o}=e;return(0,q.jsx)(B,{title:`Move down the item`,children:(0,q.jsx)(R,{size:`small`,color:`primary`,onClick:n,children:(0,q.jsx)(Ne,{})})})}function le(e){let{id:i,name:a,value:o,schema:c,readonly:l,onChange:d}=e,[f,p]=(0,U.useState)(),m=e=>{G&&console.log(`CheckboxWidget ${a} onChangeField:`,e),p(e&&e!==``?e:void 0)},h=()=>{G&&console.log(`CheckboxWidget onClick plugin="${n.name}" action="${a}" value="${f}"`),r({id:s.current,sender:`ConfigPlugin`,method:`/api/action`,src:`Frontend`,dst:`Matterbridge`,params:{plugin:n.name,action:a,value:f,formData:b,id:i}}),c.buttonClose===!0?t():c.buttonSave===!0&&S({formData:u})};return c.buttonText&&(c.title||c.description)?(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 0px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:Sr,children:c.title||c.description}),(0,q.jsx)(w,{variant:`contained`,color:`primary`,onClick:()=>h(),children:c.buttonText})]}):c.buttonField&&(c.title||c.description)?(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`5px 0px`,gap:`20px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:Sr,children:c.title||c.description}),(0,q.jsx)(H,{id:a+`-input`,name:a,label:c.textLabel,placeholder:c.textPlaceholder,onChange:e=>m(e.target.value),sx:{width:`250px`,minWidth:`250px`,maxWidth:`250px`}}),(0,q.jsx)(w,{id:a+`-button`,variant:`contained`,color:`primary`,disabled:f===void 0,onClick:()=>h(),children:c.buttonField})]}):(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`},children:[a&&(0,q.jsxs)(M,{sx:{margin:`0px`,padding:`0px`,gap:`10px`,display:`flex`,justifyContent:`flex-start`,alignItems:`center`},children:[(0,q.jsx)(V,{sx:br,children:c.title||a}),(0,q.jsx)(ve,{checked:o,readOnly:l,onChange:()=>d(!o),sx:{padding:`0px`,margin:`0px`}})]}),c.description&&(0,q.jsx)(V,{sx:xr,children:c.description})]})}function ue({schema:e,id:t,name:n,options:r,label:i,hideLabel:a,required:o,disabled:s,placeholder:c,readonly:l,value:u,multiple:d,autofocus:f,onChange:p,onBlur:m,onFocus:h,errorSchema:g,rawErrors:_=jr,registry:v,uiSchema:y,hideError:b,...x}){let{enumOptions:S,enumDisabled:C,emptyValue:w}=r,T=d?[]:``,E=u===void 0||d&&u.length<1||!d&&u===T,D=({target:{value:e}})=>p(It(e,S,w)),O=({target:e})=>m(t,It(e&&e.value,S,w)),k=({target:e})=>h(t,It(e&&e.value,S,w)),A=Pt(u,S,d);return(0,q.jsx)(H,{id:t,name:n,value:!E&&A!==void 0?A:T,required:o,disabled:s||l,autoFocus:f,error:_.length>0,onChange:D,onBlur:O,onFocus:k,select:!0,slotProps:{select:{multiple:d,...d?{renderValue:e=>!Array.isArray(e)||!Array.isArray(S)?``:e.map(e=>S[Number(e)]?.label).filter(e=>typeof e==`string`).join(`, `)}:{}}},"aria-describedby":Ft(t),children:Array.isArray(S)&&S.map(({value:e,label:t},n)=>{let r=Array.isArray(C)&&C.indexOf(e)!==-1,i=Array.isArray(A)&&A.includes(String(n));return(0,q.jsxs)(L,{value:String(n),disabled:r,children:[d&&(0,q.jsx)(I,{sx:{minWidth:`32px`},children:(0,q.jsx)(ve,{checked:i,disableRipple:!0,tabIndex:-1,sx:{padding:`0px`,margin:`0px`}})}),t]},n)})})}return G&&console.log(`ConfigPluginDialog rendering...`),!e||!p||!u?null:(0,q.jsxs)(me,{open:e,onClose:t,slotProps:{paper:{sx:{maxWidth:`800px`}}},children:[(0,q.jsx)(m,{children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`20px`},children:[(0,q.jsx)(`img`,{src:`matterbridge.svg`,alt:`Matterbridge Logo`,style:{height:`32px`,width:`32px`}}),(0,q.jsx)(`h3`,{children:`Matterbridge plugin configuration`})]})}),(0,q.jsx)(ge,{style:{padding:`0px`,margin:`0px`,width:`800px`,height:`600px`,overflow:`auto`},children:(0,q.jsx)(Lt,{schema:p,formData:u,uiSchema:g,validator:Nt,templates:{FieldTemplate:T,BaseInputTemplate:N,TitleFieldTemplate:O,DescriptionFieldTemplate:D,FieldHelpTemplate:k,FieldErrorTemplate:j,ErrorListTemplate:A,WrapIfAdditionalTemplate:C,ArrayFieldTitleTemplate:P,ArrayFieldDescriptionTemplate:ee,ArrayFieldItemTemplate:te,ArrayFieldTemplate:F,ObjectFieldTemplate:re,ButtonTemplates:{SubmitButton:ie,RemoveButton:ae,AddButton:oe,MoveUpButton:se,MoveDownButton:ce}},widgets:{CheckboxWidget:le,SelectWidget:ue},onChange:x,onSubmit:S})})]})};function Rr({status:e,enabledText:t=`Enabled`,disabledText:n,tooltipText:r}){if(e===void 0)return null;{let i=(0,q.jsx)(`div`,{className:e?`status-enabled`:`status-disabled`,style:{cursor:`default`},children:e?t:n??t});return r===void 0?i:(0,q.jsx)(B,{title:r,children:i})}}function zr({storeId:e,setStoreId:t}){let{online:n,sendMessage:r,addListener:i,removeListener:a,getUniqueId:o}=(0,U.useContext)(Y),{mobile:s,showConfirmCancelDialog:c}=(0,U.useContext)(J),l=(0,U.useRef)(o()),[u,d]=(0,U.useState)(null),[f,p]=(0,U.useState)(null),[m,g]=(0,U.useState)([]),[v,y]=(0,U.useState)(null),[b,x]=(0,U.useState)(`inactive`),S=[{label:`Name`,id:`name`,required:!0,render:(e,t,n,r)=>(0,q.jsx)(B,{title:n.local===!0?`Local plugin path: ${n.path}`:`Plugin path ${n.path}`,children:(0,q.jsxs)(`button`,{type:`button`,style:{cursor:`pointer`,background:`none`,border:`none`,margin:0,padding:0,font:`inherit`,color:`inherit`,textAlign:`left`,display:`flex`,alignItems:`center`,gap:`4px`},onClick:()=>P(n),children:[n.name,n.local===!0&&(0,q.jsx)(ft,{style:{width:`14px`,height:`14px`,color:`var(--primary-color)`}})]})})},{label:`Description`,id:`description`,render:(e,t,n,r)=>(0,q.jsx)(B,{title:`Open the plugin homepage`,children:(0,q.jsx)(`button`,{type:`button`,style:{cursor:`pointer`,background:`none`,border:`none`,padding:0,font:`inherit`,color:`inherit`,textAlign:`left`},onClick:()=>P(n),children:n.description})})},{label:`Version`,id:`version`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(B,{title:`Plugin v.${n.version}`,children:(0,q.jsx)(`span`,{children:n.version.split(`-`)[0]+(n.version.includes(`-dev-`)?`@dev`:``)+(n.version.includes(`-git-`)?`@git`:``)})})})},{label:`Author`,id:`author`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:n.author?n.author.replace(`https://github.com/`,``):`Unknown`})},{label:`Type`,id:`type`,render:(e,t,n,r)=>(0,q.jsx)(q.Fragment,{children:n.type?n.type.replace(`Platform`,``):`Unknown`})},{label:`Devices`,id:`registeredDevices`},{label:`Actions`,id:`actions`,required:!0,noSort:!0,render:(e,n,r,i)=>(0,q.jsxs)(`div`,{style:{margin:`0px`,padding:`0px`,gap:`4px`,display:`flex`,flexDirection:`row`},children:[f&&f.bridgeMode===`childbridge`&&!r.error&&r.enabled&&(0,q.jsx)(B,{title:`Shows the QRCode or the fabrics`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:Yn(r.matter)},onClick:()=>{r.matter?.id&&t(r.matter?.id)},size:`small`,children:(0,q.jsx)(ie,{})})}),f&&f.bridgeMode===`childbridge`&&!r.error&&r.enabled&&(0,q.jsx)(B,{title:`Restart the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`},onClick:()=>M(r),size:`small`,children:(0,q.jsx)(mt,{})})}),(0,q.jsx)(B,{title:`Plugin config`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{disabled:r.restartRequired===!0,style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>de(r),size:`small`,children:(0,q.jsx)(De,{})})}),f&&!f.readOnly&&(0,q.jsx)(B,{title:`Remove the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>{T(`Remove plugin`,`Are you sure? This will also remove all devices and configuration from the controller.`,`remove`,r)},size:`small`,children:(0,q.jsx)(ee,{})})}),r.enabled?(0,q.jsx)(B,{title:`Disable the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>{T(`Disable plugin`,`Are you sure? This will also remove all devices and configuration from the controller.`,`disable`,r)},size:`small`,children:(0,q.jsx)(ut,{})})}):(0,q.jsx)(q.Fragment,{}),r.enabled?(0,q.jsx)(q.Fragment,{}):(0,q.jsx)(B,{title:`Enable the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>N(r),size:`small`,children:(0,q.jsx)(ue,{})})}),(0,q.jsx)(B,{title:`Open the plugin help`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>ne(r),size:`small`,children:(0,q.jsx)(re,{})})}),(0,q.jsx)(B,{title:`Open the plugin version history`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>F(r),size:`small`,children:(0,q.jsx)(_,{})})}),r.enabled&&r.frontendPath&&(0,q.jsx)(B,{title:`Open the plugin frontend`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>I(r),size:`small`,children:(0,q.jsx)(h,{})})}),r.local!==!0&&r.latestVersion!==void 0&&r.latestVersion!==r.version&&f&&!f.readOnly&&(0,q.jsx)(B,{title:`Update the plugin to the latest version v.${r.latestVersion}`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{color:`var(--primary-color)`,margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>k(r),size:`small`,children:(0,q.jsx)(gt,{})})}),r.local!==!0&&(r.version.includes(`-dev-`)||r.version.includes(`-git-`))&&r.devVersion!==void 0&&r.devVersion!==r.version&&f&&!f.readOnly&&(0,q.jsx)(B,{title:`Update the plugin to the latest dev version v.${r.devVersion}`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{color:`var(--secondary-color)`,margin:`0px 2px`,padding:`0px`,width:`19px`,height:`19px`},onClick:()=>A(r),size:`small`,children:(0,q.jsx)(gt,{})})}),f&&!f.readOnly&&(0,q.jsx)(B,{title:`Sponsor the plugin`,slotProps:{popper:{modifiers:[{name:`offset`,options:{offset:[30,15]}}]}},children:(0,q.jsx)(R,{style:{margin:`0`,padding:`0`,width:`19px`,height:`19px`,color:`#b6409c`},onClick:()=>te(r),size:`small`,children:(0,q.jsx)(fe,{})})})]})},{label:`Status`,id:`status`,required:!0,noSort:!0,render:(e,t,n,r)=>(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`row`,flex:`1 1 auto`,margin:`0`,padding:`0`,gap:`5px`,width:`auto`,maxWidth:`max-content`},children:n.error?(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:!1,enabledText:`Error`,disabledText:`Error`,tooltipText:`The plugin is in error state. Check the log!`})}):(0,q.jsx)(q.Fragment,{children:n.enabled?(0,q.jsx)(q.Fragment,{children:n.loaded&&n.started&&n.configured?(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:n.loaded,enabledText:`Running`,tooltipText:`Whether the plugin is running`})}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Rr,{status:n.loaded,enabledText:`Loaded`,tooltipText:`Whether the plugin has been loaded`}),(0,q.jsx)(Rr,{status:n.started,enabledText:`Started`,tooltipText:`Whether the plugin started`}),(0,q.jsx)(Rr,{status:n.configured,enabledText:`Configured`,tooltipText:`Whether the plugin has been configured`})]})}):(0,q.jsx)(q.Fragment,{children:(0,q.jsx)(Rr,{status:n.enabled,enabledText:`Enabled`,disabledText:`Disabled`,tooltipText:`Whether the plugin is enable or disabled`})})})})}];(0,U.useEffect)(()=>{let e=e=>{G&&console.log(`HomePlugins received WebSocket Message:`,e),e.method===`refresh_required`&&e.response.changed===`plugins`?e.response.lock?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} lock=${e.response.lock} and locking plugins list`),g(t=>t.map(t=>t.name===e.response.lock?{...t,restartRequired:!0}:t))):(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} lock=${e.response.lock} and sending /api/plugins request`),r({id:l.current,sender:`HomePlugins`,method:`/api/plugins`,src:`Frontend`,dst:`Matterbridge`,params:{}})):e.method===`refresh_required`&&e.response.changed===`matter`?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and setting matter id ${e.response.matter?.id}`),g(t=>{let n=t.findIndex(t=>t.matter?.id===e.response.matter?.id);if(n<0)return G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and matter id ${e.response.matter?.id} not found`),t;G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} set matter id ${e.response.matter?.id}`);let r=[...t];return r[n]={...r[n],matter:e.response.matter},r})):e.method===`refresh_required`&&e.response.changed===`settings`?(G&&console.log(`HomePlugins received refresh_required: changed=${e.response.changed} and sending /api/settings request`),r({id:l.current,sender:`HomePlugins`,method:`/api/settings`,src:`Frontend`,dst:`Matterbridge`,params:{}})):e.method===`plugin_update_required`?(G&&console.log(`HomePlugins received plugin_update_required`,e.response),g(t=>t.map(t=>t.name===e.response.plugin?e.response.devVersion?{...t,devVersion:e.response.version}:{...t,latestVersion:e.response.version}:t))):e.method===`plugin_status_update`?(G&&console.log(`HomePlugins received plugin_status_update`,e.response),g(t=>t.map(t=>t.name===e.response.plugin?{...t,...e.response.status}:t))):e.method===`matterbridge_status_update`&&(G&&console.log(`HomePlugins received matterbridge_status_update: ${e.response.status}`),x(e.response.status)),e.id===l.current&&e.method===`/api/settings`?(G&&console.log(`HomePlugins (id: ${e.id}) received settings:`,e.response),d(e.response.systemInformation),p(e.response.matterbridgeInformation),x(e.response.matterbridgeInformation.bridgeStatus)):e.id===l.current&&e.method===`/api/plugins`&&(G&&console.log(`HomePlugins (id: ${e.id}) received ${e.response.length} plugins:`,e.response),g(e.response))};return i(e,l.current),G&&console.log(`HomePlugins added WebSocket listener id:`,l.current),()=>{a(e),G&&console.log(`HomePlugins removed WebSocket listener`)}},[i,a,r]),(0,U.useEffect)(()=>{n&&(G&&console.log(`HomePlugins sending api requests`),r({id:l.current,sender:`HomePlugins`,method:`/api/settings`,src:`Frontend`,dst:`Matterbridge`,params:{}}),r({id:l.current,sender:`HomePlugins`,method:`/api/plugins`,src:`Frontend`,dst:`Matterbridge`,params:{}}))},[n,r]);let C=(0,U.useRef)(null),T=(e,t,n,r)=>{G&&console.log(`handleActionWithConfirmCancel ${n} ${r.name}`),C.current=r,c(e,t,n,D,O)},D=e=>{G&&console.log(`handleConfirm action confirmed ${e} ${C.current?.name}`),e===`remove`&&C.current?j(C.current):e===`disable`&&C.current&&N(C.current),C.current=null},O=e=>{G&&console.log(`handleCancel action canceled ${e} ${C.current?.name}`),C.current=null},k=e=>{G&&console.log(`handleUpdatePlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e.name,restart:!1}})},A=e=>{G&&console.log(`handleUpdateDevPlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/install`,src:`Frontend`,dst:`Matterbridge`,params:{packageName:e.name+`@dev`,restart:!1}})},j=e=>{G&&console.log(`handleRemovePlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/removeplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})},M=e=>{G&&console.log(`handleRestartPlugin plugin:`,e.name),r({id:l.current,sender:`HomePlugins`,method:`/api/restartplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})},N=e=>{G&&console.log(`handleEnableDisablePlugin plugin:`,e.name,`enabled:`,e.enabled),e.enabled?(e.enabled=!1,r({id:l.current,sender:`HomePlugins`,method:`/api/disableplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}})):(e.enabled=!0,r({id:l.current,sender:`HomePlugins`,method:`/api/enableplugin`,src:`Frontend`,dst:`Matterbridge`,params:{pluginName:e.name}}))},P=e=>{G&&console.log(`handleHomepagePlugin plugin: ${e.name} homepage: ${e.homepage}`),e.homepage&&window.open(e.homepage,`_blank`)},te=e=>{G&&console.log(`handleSponsorPlugin plugin:`,e.name,`funding:`,e.funding),e.funding&&window.open(e.funding,`_blank`)},ne=e=>{G&&console.log(`handleHelpPlugin plugin:`,e.name,`help:`,e.help),e.help&&window.open(e.help,`_blank`)},F=e=>{G&&console.log(`handleChangelogPlugin plugin:`,e.name,`changelog:`,e.changelog),e.changelog&&window.open(e.changelog,`_blank`)},I=e=>{let t=`${Yt}plugins/${e.name}/`;console.log(`handleFrontendPlugin plugin:`,e.name,`basePath:`,Yt,`frontendPath:`,e.frontendPath,`computed pluginFrontendPath:`,t),e.frontendPath&&y({name:e.name,path:t})},ae=e=>{let t=e.currentTarget.contentDocument;if(!t?.head)return;let n=getComputedStyle(document.body),r=n.getPropertyValue(`--primary-color`).trim()||`#0d6efd`,i=n.getPropertyValue(`--div-bg-color`).trim()||`#111111`;t.getElementById(`matterbridge-plugin-scrollbar-style`)?.remove();let a=t.createElement(`style`);a.id=`matterbridge-plugin-scrollbar-style`,a.textContent=`
23
23
  html,
24
24
  body {
25
25
  background-color: ${i};
@@ -1 +1 @@
1
- import{a as e,t}from"./rolldown-runtime.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),r=t(((e,t)=>{t.exports=n()}));function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(null,arguments)}var a=e(r());function o(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}function s(e){var t=document.createElement(`style`);return t.setAttribute(`data-emotion`,e.key),e.nonce!==void 0&&t.setAttribute(`nonce`,e.nonce),t.appendChild(document.createTextNode(``)),t.setAttribute(`data-s`,``),t}var c=function(){function e(e){var t=this;this._insertTag=function(e){var n=t.tags.length===0?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling;t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=e.speedy===void 0||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(s(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=o(t);try{n.insertRule(e,n.cssRules.length)}catch{}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach(function(e){return e.parentNode?.removeChild(e)}),this.tags=[],this.ctr=0},e}(),l=`-ms-`,u=`-moz-`,d=`-webkit-`,f=`comm`,p=`rule`,m=`decl`,h=`@import`,g=`@keyframes`,_=`@layer`,v=Math.abs,y=String.fromCharCode,b=Object.assign;function x(e,t){return E(e,0)^45?(((t<<2^E(e,0))<<2^E(e,1))<<2^E(e,2))<<2^E(e,3):0}function S(e){return e.trim()}function C(e,t){return(e=t.exec(e))?e[0]:e}function w(e,t,n){return e.replace(t,n)}function T(e,t){return e.indexOf(t)}function E(e,t){return e.charCodeAt(t)|0}function D(e,t,n){return e.slice(t,n)}function O(e){return e.length}function k(e){return e.length}function A(e,t){return t.push(e),e}function j(e,t){return e.map(t).join(``)}var M=1,N=1,P=0,F=0,I=0,L=``;function R(e,t,n,r,i,a,o){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:M,column:N,length:o,return:``}}function z(e,t){return b(R(``,null,null,``,null,null,0),e,{length:-e.length},t)}function ee(){return I}function te(){return I=F>0?E(L,--F):0,N--,I===10&&(N=1,M--),I}function B(){return I=F<P?E(L,F++):0,N++,I===10&&(N=1,M++),I}function V(){return E(L,F)}function H(){return F}function U(e,t){return D(L,e,t)}function W(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ne(e){return M=N=1,P=O(L=e),F=0,[]}function re(e){return L=``,e}function G(e){return S(U(F-1,K(e===91?e+2:e===40?e+1:e)))}function ie(e){for(;(I=V())&&I<33;)B();return W(e)>2||W(I)>3?``:` `}function ae(e,t){for(;--t&&B()&&!(I<48||I>102||I>57&&I<65||I>70&&I<97););return U(e,H()+(t<6&&V()==32&&B()==32))}function K(e){for(;B();)switch(I){case e:return F;case 34:case 39:e!==34&&e!==39&&K(I);break;case 40:e===41&&K(e);break;case 92:B();break}return F}function oe(e,t){for(;B()&&e+I!==57&&(e+I!==84||V()!==47););return`/*`+U(t,F-1)+`*`+y(e===47?e:B())}function se(e){for(;!W(V());)B();return U(e,F)}function ce(e){return re(q(``,null,null,null,[``],e=ne(e),0,[0],e))}function q(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,b=``,x=i,S=a,C=r,D=b;g;)switch(m=v,v=B()){case 40:if(m!=108&&E(D,d-1)==58){T(D+=w(G(v),`&`,`&\f`),`&\f`)!=-1&&(_=-1);break}case 34:case 39:case 91:D+=G(v);break;case 9:case 10:case 13:case 32:D+=ie(m);break;case 92:D+=ae(H()-1,7);continue;case 47:switch(V()){case 42:case 47:A(ue(oe(B(),H()),t,n),c);break;default:D+=`/`}break;case 123*h:s[l++]=O(D)*_;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:_==-1&&(D=w(D,/\f/g,``)),p>0&&O(D)-d&&A(p>32?de(D+`;`,r,n,d-1):de(w(D,` `,``)+`;`,r,n,d-2),c);break;case 59:D+=`;`;default:if(A(C=le(D,t,n,l,u,i,s,b,x=[],S=[],d),a),v===123){if(u===0)q(D,t,C,C,x,a,d,s,S);else switch(f===99&&E(D,3)===110?100:f){case 100:case 108:case 109:case 115:q(e,C,C,r&&A(le(e,C,C,0,0,i,s,b,i,x=[],d),S),i,S,d,s,r?x:S);break;default:q(D,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=D=``,d=o;break;case 58:d=1+O(D),p=m;default:if(h<1){if(v==123)--h;else if(v==125&&h++==0&&te()==125)continue}switch(D+=y(v),v*h){case 38:_=u>0?1:(D+=`\f`,-1);break;case 44:s[l++]=(O(D)-1)*_,_=1;break;case 64:V()===45&&(D+=G(B())),f=V(),u=d=O(b=D+=se(H())),v++;break;case 45:m===45&&O(D)==2&&(h=0)}}return a}function le(e,t,n,r,i,a,o,s,c,l,u){for(var d=i-1,f=i===0?a:[``],m=k(f),h=0,g=0,_=0;h<r;++h)for(var y=0,b=D(e,d+1,d=v(g=o[h])),x=e;y<m;++y)(x=S(g>0?f[y]+` `+b:w(b,/&\f/g,f[y])))&&(c[_++]=x);return R(e,t,n,i===0?p:s,c,l,u)}function ue(e,t,n){return R(e,t,n,f,y(ee()),D(e,2,-2),0)}function de(e,t,n,r){return R(e,t,n,m,D(e,0,r),D(e,r+1,-1),r)}function J(e,t){for(var n=``,r=k(e),i=0;i<r;i++)n+=t(e[i],i,e,t)||``;return n}function fe(e,t,n,r){switch(e.type){case _:if(e.children.length)break;case h:case m:return e.return=e.return||e.value;case f:return``;case g:return e.return=e.value+`{`+J(e.children,r)+`}`;case p:e.value=e.props.join(`,`)}return O(n=J(e.children,r))?e.return=e.value+`{`+n+`}`:``}function pe(e){var t=k(e);return function(n,r,i,a){for(var o=``,s=0;s<t;s++)o+=e[s](n,r,i,a)||``;return o}}function me(e){return function(t){t.root||(t=t.return)&&e(t)}}function he(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var ge=function(e,t,n){for(var r=0,i=0;r=i,i=V(),r===38&&i===12&&(t[n]=1),!W(i);)B();return U(e,F)},_e=function(e,t){var n=-1,r=44;do switch(W(r)){case 0:r===38&&V()===12&&(t[n]=1),e[n]+=ge(F-1,t,n);break;case 2:e[n]+=G(r);break;case 4:if(r===44){e[++n]=V()===58?`&\f`:``,t[n]=e[n].length;break}default:e[n]+=y(r)}while(r=B());return e},ve=function(e,t){return re(_e(ne(e),t))},ye=new WeakMap,be=function(e){if(!(e.type!==`rule`||!e.parent||e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;n.type!==`rule`;)if(n=n.parent,!n)return;if(!(e.props.length===1&&t.charCodeAt(0)!==58&&!ye.get(n))&&!r){ye.set(e,!0);for(var i=[],a=ve(t,i),o=n.props,s=0,c=0;s<a.length;s++)for(var l=0;l<o.length;l++,c++)e.props[c]=i[s]?a[s].replace(/&\f/g,o[l]):o[l]+` `+a[s]}}},xe=function(e){if(e.type===`decl`){var t=e.value;t.charCodeAt(0)===108&&t.charCodeAt(2)===98&&(e.return=``,e.value=``)}};function Se(e,t){switch(x(e,t)){case 5103:return d+`print-`+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return d+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return d+e+u+e+l+e+e;case 6828:case 4268:return d+e+l+e+e;case 6165:return d+e+l+`flex-`+e+e;case 5187:return d+e+w(e,/(\w+).+(:[^]+)/,d+`box-$1$2`+l+`flex-$1$2`)+e;case 5443:return d+e+l+`flex-item-`+w(e,/flex-|-self/,``)+e;case 4675:return d+e+l+`flex-line-pack`+w(e,/align-content|flex-|-self/,``)+e;case 5548:return d+e+l+w(e,`shrink`,`negative`)+e;case 5292:return d+e+l+w(e,`basis`,`preferred-size`)+e;case 6060:return d+`box-`+w(e,`-grow`,``)+d+e+l+w(e,`grow`,`positive`)+e;case 4554:return d+w(e,/([^-])(transform)/g,`$1`+d+`$2`)+e;case 6187:return w(w(w(e,/(zoom-|grab)/,d+`$1`),/(image-set)/,d+`$1`),e,``)+e;case 5495:case 3959:return w(e,/(image-set\([^]*)/,d+"$1$`$1");case 4968:return w(w(e,/(.+:)(flex-)?(.*)/,d+`box-pack:$3`+l+`flex-pack:$3`),/s.+-b[^;]+/,`justify`)+d+e+e;case 4095:case 3583:case 4068:case 2532:return w(e,/(.+)-inline(.+)/,d+`$1$2`)+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(O(e)-1-t>6)switch(E(e,t+1)){case 109:if(E(e,t+4)!==45)break;case 102:return w(e,/(.+:)(.+)-([^]+)/,`$1`+d+`$2-$3$1`+u+(E(e,t+3)==108?`$3`:`$2-$3`))+e;case 115:return~T(e,`stretch`)?Se(w(e,`stretch`,`fill-available`),t)+e:e}break;case 4949:if(E(e,t+1)!==115)break;case 6444:switch(E(e,O(e)-3-(~T(e,`!important`)&&10))){case 107:return w(e,`:`,`:`+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,`$1`+d+(E(e,14)===45?`inline-`:``)+`box$3$1`+d+`$2$3$1`+l+`$2box$3`)+e}break;case 5936:switch(E(e,t+11)){case 114:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`tb`)+e;case 108:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`tb-rl`)+e;case 45:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`lr`)+e}return d+e+l+e+e}return e}var Ce=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case m:e.return=Se(e.value,e.length);break;case g:return J([z(e,{value:w(e.value,`@`,`@`+d)})],r);case p:if(e.length)return j(e.props,function(t){switch(C(t,/(::plac\w+|:read-\w+)/)){case`:read-only`:case`:read-write`:return J([z(e,{props:[w(t,/:(read-\w+)/,`:`+u+`$1`)]})],r);case`::placeholder`:return J([z(e,{props:[w(t,/:(plac\w+)/,`:`+d+`input-$1`)]}),z(e,{props:[w(t,/:(plac\w+)/,`:`+u+`$1`)]}),z(e,{props:[w(t,/:(plac\w+)/,l+`input-$1`)]})],r)}return``})}}],we=function(e){var t=e.key;if(t===`css`){var n=document.querySelectorAll(`style[data-emotion]:not([data-s])`);Array.prototype.forEach.call(n,function(e){e.getAttribute(`data-emotion`).indexOf(` `)!==-1&&(document.head.appendChild(e),e.setAttribute(`data-s`,``))})}var r=e.stylisPlugins||Ce,i={},a,o=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll(`style[data-emotion^="`+t+` "]`),function(e){for(var t=e.getAttribute(`data-emotion`).split(` `),n=1;n<t.length;n++)i[t[n]]=!0;o.push(e)});var s,l=[be,xe],u,d=[fe,me(function(e){u.insert(e)})],f=pe(l.concat(r,d)),p=function(e){return J(ce(e),f)};s=function(e,t,n,r){u=n,p(e?e+`{`+t.styles+`}`:t.styles),r&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new c({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:s};return m.sheet.hydrate(o),m},Te=t((e=>{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),Ee=t(((e,t)=>{t.exports=Te()})),De=t(((e,t)=>{var n=Ee(),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[n.ForwardRef]=a,s[n.Memo]=o;function c(e){return n.isMemo(e)?o:s[e.$$typeof]||r}var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function h(e,t,n){if(typeof t!=`string`){if(m){var r=p(t);r&&r!==m&&h(e,r,n)}var a=u(t);d&&(a=a.concat(d(t)));for(var o=c(e),s=c(t),g=0;g<a.length;++g){var _=a[g];if(!i[_]&&!(n&&n[_])&&!(s&&s[_])&&!(o&&o[_])){var v=f(t,_);try{l(e,_,v)}catch{}}}}return e}t.exports=h}));function Oe(e,t,n){var r=``;return n.split(` `).forEach(function(n){e[n]===void 0?n&&(r+=n+` `):t.push(e[n]+`;`)}),r}var ke=function(e,t,n){var r=e.key+`-`+t.name;n===!1&&e.registered[r]===void 0&&(e.registered[r]=t.styles)},Ae=function(e,t,n){ke(e,t,n);var r=e.key+`-`+t.name;if(e.inserted[t.name]===void 0){var i=t;do e.insert(t===i?`.`+r:``,i,e.sheet,!0),i=i.next;while(i!==void 0)}};function je(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Me={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Ne=/[A-Z]|^ms/g,Pe=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Fe=function(e){return e.charCodeAt(1)===45},Ie=function(e){return e!=null&&typeof e!=`boolean`},Le=he(function(e){return Fe(e)?e:e.replace(Ne,`-$&`).toLowerCase()}),Re=function(e,t){switch(e){case`animation`:case`animationName`:if(typeof t==`string`)return t.replace(Pe,function(e,t,n){return X={name:t,styles:n,next:X},t})}return Me[e]!==1&&!Fe(e)&&typeof t==`number`&&t!==0?t+`px`:t};function Y(e,t,n){if(n==null)return``;var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case`boolean`:return``;case`object`:var i=n;if(i.anim===1)return X={name:i.name,styles:i.styles,next:X},i.name;var a=n;if(a.styles!==void 0){var o=a.next;if(o!==void 0)for(;o!==void 0;)X={name:o.name,styles:o.styles,next:X},o=o.next;return a.styles+`;`}return ze(e,t,n);case`function`:if(e!==void 0){var s=X,c=n(e);return X=s,Y(e,t,c)}}var l=n;if(t==null)return l;var u=t[l];return u===void 0?l:u}function ze(e,t,n){var r=``;if(Array.isArray(n))for(var i=0;i<n.length;i++)r+=Y(e,t,n[i])+`;`;else for(var a in n){var o=n[a];if(typeof o!=`object`){var s=o;t!=null&&t[s]!==void 0?r+=a+`{`+t[s]+`}`:Ie(s)&&(r+=Le(a)+`:`+Re(a,s)+`;`)}else if(Array.isArray(o)&&typeof o[0]==`string`&&(t==null||t[o[0]]===void 0))for(var c=0;c<o.length;c++)Ie(o[c])&&(r+=Le(a)+`:`+Re(a,o[c])+`;`);else{var l=Y(e,t,o);switch(a){case`animation`:case`animationName`:r+=Le(a)+`:`+l+`;`;break;default:r+=a+`{`+l+`}`}}}return r}var Be=/label:\s*([^\s;{]+)\s*(;|$)/g,X;function Z(e,t,n){if(e.length===1&&typeof e[0]==`object`&&e[0]!==null&&e[0].styles!==void 0)return e[0];var r=!0,i=``;X=void 0;var a=e[0];a==null||a.raw===void 0?(r=!1,i+=Y(n,t,a)):i+=a[0];for(var o=1;o<e.length;o++)i+=Y(n,t,e[o]),r&&(i+=a[o]);Be.lastIndex=0;for(var s=``,c;(c=Be.exec(i))!==null;)s+=`-`+c[1];return{name:je(i)+s,styles:i,next:X}}var Ve=function(e){return e()},He=a.useInsertionEffect?a.useInsertionEffect:!1,Ue=He||Ve,We=He||a.useLayoutEffect,Ge=a.createContext(typeof HTMLElement<`u`?we({key:`css`}):null);Ge.Provider;var Ke=function(e){return(0,a.forwardRef)(function(t,n){return e(t,(0,a.useContext)(Ge),n)})},Q=a.createContext({}),qe={}.hasOwnProperty,Je=`__EMOTION_TYPE_PLEASE_DO_NOT_USE__`,Ye=function(e,t){var n={};for(var r in t)qe.call(t,r)&&(n[r]=t[r]);return n[Je]=e,n},Xe=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ke(t,n,r),Ue(function(){return Ae(t,n,r)}),null},Ze=Ke(function(e,t,n){var r=e.css;typeof r==`string`&&t.registered[r]!==void 0&&(r=t.registered[r]);var i=e[Je],o=[r],s=``;typeof e.className==`string`?s=Oe(t.registered,o,e.className):e.className!=null&&(s=e.className+` `);var c=Z(o,void 0,a.useContext(Q));s+=t.key+`-`+c.name;var l={};for(var u in e)qe.call(e,u)&&u!==`css`&&u!==Je&&(l[u]=e[u]);return l.className=s,n&&(l.ref=n),a.createElement(a.Fragment,null,a.createElement(Xe,{cache:t,serialized:c,isStringTag:typeof i==`string`}),a.createElement(i,l))});De();var Qe=function(e,t){var n=arguments;if(t==null||!qe.call(t,`css`))return a.createElement.apply(void 0,n);var r=n.length,i=Array(r);i[0]=Ze,i[1]=Ye(e,t);for(var o=2;o<r;o++)i[o]=n[o];return a.createElement.apply(null,i)};(function(e){var t;t||=e.JSX||={}})(Qe||={});var $e=Ke(function(e,t){var n=e.styles,r=Z([n],void 0,a.useContext(Q)),i=a.useRef();return We(function(){var e=t.key+`-global`,n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),a=!1,o=document.querySelector(`style[data-emotion="`+e+` `+r.name+`"]`);return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),o!==null&&(a=!0,o.setAttribute(`data-emotion`,e),n.hydrate([o])),i.current=[n,a],function(){n.flush()}},[t]),We(function(){var e=i.current,n=e[0];if(e[1]){e[1]=!1;return}r.next!==void 0&&Ae(t,r.next,!0),n.tags.length&&(n.before=n.tags[n.tags.length-1].nextElementSibling,n.flush()),t.insert(``,r,n,!1)},[t,r.name]),null});function et(){return Z([...arguments])}function tt(){var e=et.apply(void 0,arguments),t=`animation-`+e.name;return{name:t,styles:`@keyframes `+t+`{`+e.styles+`}`,anim:1,toString:function(){return`_EMO_`+this.name+`_`+this.styles+`_EMO_`}}}var nt=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,rt=he(function(e){return nt.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),it=function(e){return e!==`theme`},at=function(e){return typeof e==`string`&&e.charCodeAt(0)>96?rt:it},ot=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return typeof r!=`function`&&n&&(r=e.__emotion_forwardProp),r},st=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ke(t,n,r),Ue(function(){return Ae(t,n,r)}),null},ct=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,s,c;n!==void 0&&(s=n.label,c=n.target);var l=ot(t,n,r),u=l||at(o),d=!u(`as`);return function(){var f=arguments,p=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(s!==void 0&&p.push(`label:`+s+`;`),f[0]==null||f[0].raw===void 0)p.push.apply(p,f);else{var m=f[0];p.push(m[0]);for(var h=f.length,g=1;g<h;g++)p.push(f[g],m[g])}var _=Ke(function(e,t,n){var r=d&&e.as||o,i=``,s=[],f=e;if(e.theme==null){for(var m in f={},e)f[m]=e[m];f.theme=a.useContext(Q)}typeof e.className==`string`?i=Oe(t.registered,s,e.className):e.className!=null&&(i=e.className+` `);var h=Z(p.concat(s),t.registered,f);i+=t.key+`-`+h.name,c!==void 0&&(i+=` `+c);var g=d&&l===void 0?at(r):u,_={};for(var v in e)d&&v===`as`||g(v)&&(_[v]=e[v]);return _.className=i,n&&(_.ref=n),a.createElement(a.Fragment,null,a.createElement(st,{cache:t,serialized:h,isStringTag:typeof r==`string`}),a.createElement(r,_))});return _.displayName=s===void 0?`Styled(`+(typeof o==`string`?o:o.displayName||o.name||`Component`)+`)`:s,_.defaultProps=t.defaultProps,_.__emotion_real=_,_.__emotion_base=o,_.__emotion_styles=p,_.__emotion_forwardProp=l,Object.defineProperty(_,"toString",{value:function(){return`.`+c}}),_.withComponent=function(t,r){return e(t,i({},n,r,{shouldForwardProp:ot(_,r,!0)})).apply(void 0,p)},_}},lt=`a.abbr.address.area.article.aside.audio.b.base.bdi.bdo.big.blockquote.body.br.button.canvas.caption.cite.code.col.colgroup.data.datalist.dd.del.details.dfn.dialog.div.dl.dt.em.embed.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.iframe.img.input.ins.kbd.keygen.label.legend.li.link.main.map.mark.marquee.menu.menuitem.meta.meter.nav.noscript.object.ol.optgroup.option.output.p.param.picture.pre.progress.q.rp.rt.ruby.s.samp.script.section.select.small.source.span.strong.style.sub.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.title.tr.track.u.ul.var.video.wbr.circle.clipPath.defs.ellipse.foreignObject.g.image.line.linearGradient.mask.path.pattern.polygon.polyline.radialGradient.rect.stop.svg.text.tspan`.split(`.`),$=ct.bind(null);lt.forEach(function(e){$[e]=$(e)});export{Q as a,tt as i,$e as n,Z as o,et as r,r as s,$ as t};
1
+ import{a as e,t}from"./rolldown-runtime.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function L(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function R(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else L(R.bind(null,e))}var te={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=te,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=R,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=L,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.0`})),r=t(((e,t)=>{t.exports=n()}));function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(null,arguments)}var a=e(r());function o(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}function s(e){var t=document.createElement(`style`);return t.setAttribute(`data-emotion`,e.key),e.nonce!==void 0&&t.setAttribute(`nonce`,e.nonce),t.appendChild(document.createTextNode(``)),t.setAttribute(`data-s`,``),t}var c=function(){function e(e){var t=this;this._insertTag=function(e){var n=t.tags.length===0?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling;t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=e.speedy===void 0||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(s(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=o(t);try{n.insertRule(e,n.cssRules.length)}catch{}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach(function(e){return e.parentNode?.removeChild(e)}),this.tags=[],this.ctr=0},e}(),l=`-ms-`,u=`-moz-`,d=`-webkit-`,f=`comm`,p=`rule`,m=`decl`,h=`@import`,g=`@keyframes`,_=`@layer`,v=Math.abs,y=String.fromCharCode,b=Object.assign;function x(e,t){return E(e,0)^45?(((t<<2^E(e,0))<<2^E(e,1))<<2^E(e,2))<<2^E(e,3):0}function S(e){return e.trim()}function C(e,t){return(e=t.exec(e))?e[0]:e}function w(e,t,n){return e.replace(t,n)}function T(e,t){return e.indexOf(t)}function E(e,t){return e.charCodeAt(t)|0}function D(e,t,n){return e.slice(t,n)}function O(e){return e.length}function k(e){return e.length}function A(e,t){return t.push(e),e}function ee(e,t){return e.map(t).join(``)}var j=1,M=1,N=0,P=0,F=0,I=``;function L(e,t,n,r,i,a,o){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:j,column:M,length:o,return:``}}function R(e,t){return b(L(``,null,null,``,null,null,0),e,{length:-e.length},t)}function te(){return F}function ne(){return F=P>0?E(I,--P):0,M--,F===10&&(M=1,j--),F}function z(){return F=P<N?E(I,P++):0,M++,F===10&&(M=1,j++),F}function B(){return E(I,P)}function V(){return P}function H(e,t){return D(I,e,t)}function U(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function re(e){return j=M=1,N=O(I=e),P=0,[]}function ie(e){return I=``,e}function W(e){return S(H(P-1,G(e===91?e+2:e===40?e+1:e)))}function ae(e){for(;(F=B())&&F<33;)z();return U(e)>2||U(F)>3?``:` `}function oe(e,t){for(;--t&&z()&&!(F<48||F>102||F>57&&F<65||F>70&&F<97););return H(e,V()+(t<6&&B()==32&&z()==32))}function G(e){for(;z();)switch(F){case e:return P;case 34:case 39:e!==34&&e!==39&&G(F);break;case 40:e===41&&G(e);break;case 92:z()}return P}function se(e,t){for(;z()&&e+F!==57&&(e+F!==84||B()!==47););return`/*`+H(t,P-1)+`*`+y(e===47?e:z())}function ce(e){for(;!U(B());)z();return H(e,P)}function le(e){return ie(K(``,null,null,null,[``],e=re(e),0,[0],e))}function K(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,b=``,x=i,S=a,C=r,D=b;g;)switch(m=v,v=z()){case 40:if(m!=108&&E(D,d-1)==58){T(D+=w(W(v),`&`,`&\f`),`&\f`)!=-1&&(_=-1);break}case 34:case 39:case 91:D+=W(v);break;case 9:case 10:case 13:case 32:D+=ae(m);break;case 92:D+=oe(V()-1,7);continue;case 47:switch(B()){case 42:case 47:A(de(se(z(),V()),t,n),c);break;default:D+=`/`}break;case 123*h:s[l++]=O(D)*_;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:_==-1&&(D=w(D,/\f/g,``)),p>0&&O(D)-d&&A(p>32?fe(D+`;`,r,n,d-1):fe(w(D,` `,``)+`;`,r,n,d-2),c);break;case 59:D+=`;`;default:if(A(C=ue(D,t,n,l,u,i,s,b,x=[],S=[],d),a),v===123){if(u===0)K(D,t,C,C,x,a,d,s,S);else switch(f===99&&E(D,3)===110?100:f){case 100:case 108:case 109:case 115:K(e,C,C,r&&A(ue(e,C,C,0,0,i,s,b,i,x=[],d),S),i,S,d,s,r?x:S);break;default:K(D,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=D=``,d=o;break;case 58:d=1+O(D),p=m;default:if(h<1){if(v==123)--h;else if(v==125&&h++==0&&ne()==125)continue}switch(D+=y(v),v*h){case 38:_=u>0?1:(D+=`\f`,-1);break;case 44:s[l++]=(O(D)-1)*_,_=1;break;case 64:B()===45&&(D+=W(z())),f=B(),u=d=O(b=D+=ce(V())),v++;break;case 45:m===45&&O(D)==2&&(h=0)}}return a}function ue(e,t,n,r,i,a,o,s,c,l,u){for(var d=i-1,f=i===0?a:[``],m=k(f),h=0,g=0,_=0;h<r;++h)for(var y=0,b=D(e,d+1,d=v(g=o[h])),x=e;y<m;++y)(x=S(g>0?f[y]+` `+b:w(b,/&\f/g,f[y])))&&(c[_++]=x);return L(e,t,n,i===0?p:s,c,l,u)}function de(e,t,n){return L(e,t,n,f,y(te()),D(e,2,-2),0)}function fe(e,t,n,r){return L(e,t,n,m,D(e,0,r),D(e,r+1,-1),r)}function q(e,t){for(var n=``,r=k(e),i=0;i<r;i++)n+=t(e[i],i,e,t)||``;return n}function pe(e,t,n,r){switch(e.type){case _:if(e.children.length)break;case h:case m:return e.return=e.return||e.value;case f:return``;case g:return e.return=e.value+`{`+q(e.children,r)+`}`;case p:e.value=e.props.join(`,`)}return O(n=q(e.children,r))?e.return=e.value+`{`+n+`}`:``}function me(e){var t=k(e);return function(n,r,i,a){for(var o=``,s=0;s<t;s++)o+=e[s](n,r,i,a)||``;return o}}function he(e){return function(t){t.root||(t=t.return)&&e(t)}}function ge(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var _e=function(e,t,n){for(var r=0,i=0;r=i,i=B(),r===38&&i===12&&(t[n]=1),!U(i);)z();return H(e,P)},ve=function(e,t){var n=-1,r=44;do switch(U(r)){case 0:r===38&&B()===12&&(t[n]=1),e[n]+=_e(P-1,t,n);break;case 2:e[n]+=W(r);break;case 4:if(r===44){e[++n]=B()===58?`&\f`:``,t[n]=e[n].length;break}default:e[n]+=y(r)}while(r=z());return e},ye=function(e,t){return ie(ve(re(e),t))},be=new WeakMap,xe=function(e){if(!(e.type!==`rule`||!e.parent||e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;n.type!==`rule`;)if(n=n.parent,!n)return;if((e.props.length!==1||t.charCodeAt(0)===58||be.get(n))&&!r){be.set(e,!0);for(var i=[],a=ye(t,i),o=n.props,s=0,c=0;s<a.length;s++)for(var l=0;l<o.length;l++,c++)e.props[c]=i[s]?a[s].replace(/&\f/g,o[l]):o[l]+` `+a[s]}}},Se=function(e){if(e.type===`decl`){var t=e.value;t.charCodeAt(0)===108&&t.charCodeAt(2)===98&&(e.return=``,e.value=``)}};function Ce(e,t){switch(x(e,t)){case 5103:return d+`print-`+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return d+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return d+e+u+e+l+e+e;case 6828:case 4268:return d+e+l+e+e;case 6165:return d+e+l+`flex-`+e+e;case 5187:return d+e+w(e,/(\w+).+(:[^]+)/,d+`box-$1$2`+l+`flex-$1$2`)+e;case 5443:return d+e+l+`flex-item-`+w(e,/flex-|-self/,``)+e;case 4675:return d+e+l+`flex-line-pack`+w(e,/align-content|flex-|-self/,``)+e;case 5548:return d+e+l+w(e,`shrink`,`negative`)+e;case 5292:return d+e+l+w(e,`basis`,`preferred-size`)+e;case 6060:return d+`box-`+w(e,`-grow`,``)+d+e+l+w(e,`grow`,`positive`)+e;case 4554:return d+w(e,/([^-])(transform)/g,`$1`+d+`$2`)+e;case 6187:return w(w(w(e,/(zoom-|grab)/,d+`$1`),/(image-set)/,d+`$1`),e,``)+e;case 5495:case 3959:return w(e,/(image-set\([^]*)/,d+"$1$`$1");case 4968:return w(w(e,/(.+:)(flex-)?(.*)/,d+`box-pack:$3`+l+`flex-pack:$3`),/s.+-b[^;]+/,`justify`)+d+e+e;case 4095:case 3583:case 4068:case 2532:return w(e,/(.+)-inline(.+)/,d+`$1$2`)+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(O(e)-1-t>6)switch(E(e,t+1)){case 109:if(E(e,t+4)!==45)break;case 102:return w(e,/(.+:)(.+)-([^]+)/,`$1`+d+`$2-$3$1`+u+(E(e,t+3)==108?`$3`:`$2-$3`))+e;case 115:return~T(e,`stretch`)?Ce(w(e,`stretch`,`fill-available`),t)+e:e}break;case 4949:if(E(e,t+1)!==115)break;case 6444:switch(E(e,O(e)-3-(~T(e,`!important`)&&10))){case 107:return w(e,`:`,`:`+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,`$1`+d+(E(e,14)===45?`inline-`:``)+`box$3$1`+d+`$2$3$1`+l+`$2box$3`)+e}break;case 5936:switch(E(e,t+11)){case 114:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`tb`)+e;case 108:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`tb-rl`)+e;case 45:return d+e+l+w(e,/[svh]\w+-[tblr]{2}/,`lr`)+e}return d+e+l+e+e}return e}var we=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case m:e.return=Ce(e.value,e.length);break;case g:return q([R(e,{value:w(e.value,`@`,`@`+d)})],r);case p:if(e.length)return ee(e.props,function(t){switch(C(t,/(::plac\w+|:read-\w+)/)){case`:read-only`:case`:read-write`:return q([R(e,{props:[w(t,/:(read-\w+)/,`:`+u+`$1`)]})],r);case`::placeholder`:return q([R(e,{props:[w(t,/:(plac\w+)/,`:`+d+`input-$1`)]}),R(e,{props:[w(t,/:(plac\w+)/,`:`+u+`$1`)]}),R(e,{props:[w(t,/:(plac\w+)/,l+`input-$1`)]})],r)}return``})}}],Te=function(e){var t=e.key;if(t===`css`){var n=document.querySelectorAll(`style[data-emotion]:not([data-s])`);Array.prototype.forEach.call(n,function(e){e.getAttribute(`data-emotion`).indexOf(` `)!==-1&&(document.head.appendChild(e),e.setAttribute(`data-s`,``))})}var r=e.stylisPlugins||we,i={},a,o=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll(`style[data-emotion^="`+t+` "]`),function(e){for(var t=e.getAttribute(`data-emotion`).split(` `),n=1;n<t.length;n++)i[t[n]]=!0;o.push(e)});var s,l=[xe,Se],u,d=[pe,he(function(e){u.insert(e)})],f=me(l.concat(r,d)),p=function(e){return q(le(e),f)};s=function(e,t,n,r){u=n,p(e?e+`{`+t.styles+`}`:t.styles),r&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new c({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:s};return m.sheet.hydrate(o),m},Ee=t((e=>{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),De=t(((e,t)=>{t.exports=Ee()})),Oe=t(((e,t)=>{var n=De(),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[n.ForwardRef]=a,s[n.Memo]=o;function c(e){return n.isMemo(e)?o:s[e.$$typeof]||r}var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function h(e,t,n){if(typeof t!=`string`){if(m){var r=p(t);r&&r!==m&&h(e,r,n)}var a=u(t);d&&(a=a.concat(d(t)));for(var o=c(e),s=c(t),g=0;g<a.length;++g){var _=a[g];if(!i[_]&&!(n&&n[_])&&!(s&&s[_])&&!(o&&o[_])){var v=f(t,_);try{l(e,_,v)}catch{}}}}return e}t.exports=h}));function ke(e,t,n){var r=``;return n.split(` `).forEach(function(n){e[n]===void 0?n&&(r+=n+` `):t.push(e[n]+`;`)}),r}var J=function(e,t,n){var r=e.key+`-`+t.name;n===!1&&e.registered[r]===void 0&&(e.registered[r]=t.styles)},Y=function(e,t,n){J(e,t,n);var r=e.key+`-`+t.name;if(e.inserted[t.name]===void 0){var i=t;do e.insert(t===i?`.`+r:``,i,e.sheet,!0),i=i.next;while(i!==void 0)}};function Ae(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var je={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Me=/[A-Z]|^ms/g,Ne=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Pe=function(e){return e.charCodeAt(1)===45},Fe=function(e){return e!=null&&typeof e!=`boolean`},Ie=ge(function(e){return Pe(e)?e:e.replace(Me,`-$&`).toLowerCase()}),Le=function(e,t){switch(e){case`animation`:case`animationName`:if(typeof t==`string`)return t.replace(Ne,function(e,t,n){return Z={name:t,styles:n,next:Z},t})}return je[e]!==1&&!Pe(e)&&typeof t==`number`&&t!==0?t+`px`:t};function X(e,t,n){if(n==null)return``;var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case`boolean`:return``;case`object`:var i=n;if(i.anim===1)return Z={name:i.name,styles:i.styles,next:Z},i.name;var a=n;if(a.styles!==void 0){var o=a.next;if(o!==void 0)for(;o!==void 0;)Z={name:o.name,styles:o.styles,next:Z},o=o.next;return a.styles+`;`}return Re(e,t,n);case`function`:if(e!==void 0){var s=Z,c=n(e);return Z=s,X(e,t,c)}}var l=n;if(t==null)return l;var u=t[l];return u===void 0?l:u}function Re(e,t,n){var r=``;if(Array.isArray(n))for(var i=0;i<n.length;i++)r+=X(e,t,n[i])+`;`;else for(var a in n){var o=n[a];if(typeof o!=`object`){var s=o;t!=null&&t[s]!==void 0?r+=a+`{`+t[s]+`}`:Fe(s)&&(r+=Ie(a)+`:`+Le(a,s)+`;`)}else if(Array.isArray(o)&&typeof o[0]==`string`&&(t==null||t[o[0]]===void 0))for(var c=0;c<o.length;c++)Fe(o[c])&&(r+=Ie(a)+`:`+Le(a,o[c])+`;`);else{var l=X(e,t,o);switch(a){case`animation`:case`animationName`:r+=Ie(a)+`:`+l+`;`;break;default:r+=a+`{`+l+`}`}}}return r}var ze=/label:\s*([^\s;{]+)\s*(;|$)/g,Z;function Q(e,t,n){if(e.length===1&&typeof e[0]==`object`&&e[0]!==null&&e[0].styles!==void 0)return e[0];var r=!0,i=``;Z=void 0;var a=e[0];a==null||a.raw===void 0?(r=!1,i+=X(n,t,a)):i+=a[0];for(var o=1;o<e.length;o++)i+=X(n,t,e[o]),r&&(i+=a[o]);ze.lastIndex=0;for(var s=``,c;(c=ze.exec(i))!==null;)s+=`-`+c[1];return{name:Ae(i)+s,styles:i,next:Z}}var Be=function(e){return e()},Ve=a.useInsertionEffect?a.useInsertionEffect:!1,He=Ve||Be,Ue=Ve||a.useLayoutEffect,We=a.createContext(typeof HTMLElement<`u`?Te({key:`css`}):null);We.Provider;var Ge=function(e){return(0,a.forwardRef)(function(t,n){return e(t,(0,a.useContext)(We),n)})},$=a.createContext({}),Ke={}.hasOwnProperty,qe=`__EMOTION_TYPE_PLEASE_DO_NOT_USE__`,Je=function(e,t){var n={};for(var r in t)Ke.call(t,r)&&(n[r]=t[r]);return n[qe]=e,n},Ye=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return J(t,n,r),He(function(){return Y(t,n,r)}),null},Xe=Ge(function(e,t,n){var r=e.css;typeof r==`string`&&t.registered[r]!==void 0&&(r=t.registered[r]);var i=e[qe],o=[r],s=``;typeof e.className==`string`?s=ke(t.registered,o,e.className):e.className!=null&&(s=e.className+` `);var c=Q(o,void 0,a.useContext($));s+=t.key+`-`+c.name;var l={};for(var u in e)Ke.call(e,u)&&u!==`css`&&u!==qe&&(l[u]=e[u]);return l.className=s,n&&(l.ref=n),a.createElement(a.Fragment,null,a.createElement(Ye,{cache:t,serialized:c,isStringTag:typeof i==`string`}),a.createElement(i,l))});Oe();var Ze=function(e,t){var n=arguments;if(t==null||!Ke.call(t,`css`))return a.createElement.apply(void 0,n);var r=n.length,i=Array(r);i[0]=Xe,i[1]=Je(e,t);for(var o=2;o<r;o++)i[o]=n[o];return a.createElement.apply(null,i)};(function(e){var t;t||=e.JSX||={}})(Ze||={});var Qe=Ge(function(e,t){var n=e.styles,r=Q([n],void 0,a.useContext($)),i=a.useRef();return Ue(function(){var e=t.key+`-global`,n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),a=!1,o=document.querySelector(`style[data-emotion="`+e+` `+r.name+`"]`);return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),o!==null&&(a=!0,o.setAttribute(`data-emotion`,e),n.hydrate([o])),i.current=[n,a],function(){n.flush()}},[t]),Ue(function(){var e=i.current,n=e[0];if(e[1]){e[1]=!1;return}r.next!==void 0&&Y(t,r.next,!0),n.tags.length&&(n.before=n.tags[n.tags.length-1].nextElementSibling,n.flush()),t.insert(``,r,n,!1)},[t,r.name]),null});function $e(){return Q([...arguments])}function et(){var e=$e.apply(void 0,arguments),t=`animation-`+e.name;return{name:t,styles:`@keyframes `+t+`{`+e.styles+`}`,anim:1,toString:function(){return`_EMO_`+this.name+`_`+this.styles+`_EMO_`}}}var tt=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,nt=ge(function(e){return tt.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),rt=function(e){return e!==`theme`},it=function(e){return typeof e==`string`&&e.charCodeAt(0)>96?nt:rt},at=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return typeof r!=`function`&&n&&(r=e.__emotion_forwardProp),r},ot=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return J(t,n,r),He(function(){return Y(t,n,r)}),null},st=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,s,c;n!==void 0&&(s=n.label,c=n.target);var l=at(t,n,r),u=l||it(o),d=!u(`as`);return function(){var f=arguments,p=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(s!==void 0&&p.push(`label:`+s+`;`),f[0]==null||f[0].raw===void 0)p.push.apply(p,f);else{var m=f[0];p.push(m[0]);for(var h=f.length,g=1;g<h;g++)p.push(f[g],m[g])}var _=Ge(function(e,t,n){var r=d&&e.as||o,i=``,s=[],f=e;if(e.theme==null){for(var m in f={},e)f[m]=e[m];f.theme=a.useContext($)}typeof e.className==`string`?i=ke(t.registered,s,e.className):e.className!=null&&(i=e.className+` `);var h=Q(p.concat(s),t.registered,f);i+=t.key+`-`+h.name,c!==void 0&&(i+=` `+c);var g=d&&l===void 0?it(r):u,_={};for(var v in e)d&&v===`as`||g(v)&&(_[v]=e[v]);return _.className=i,n&&(_.ref=n),a.createElement(a.Fragment,null,a.createElement(ot,{cache:t,serialized:h,isStringTag:typeof r==`string`}),a.createElement(r,_))});return _.displayName=s===void 0?`Styled(`+(typeof o==`string`?o:o.displayName||o.name||`Component`)+`)`:s,_.defaultProps=t.defaultProps,_.__emotion_real=_,_.__emotion_base=o,_.__emotion_styles=p,_.__emotion_forwardProp=l,Object.defineProperty(_,"toString",{value:function(){return`.`+c}}),_.withComponent=function(t,r){return e(t,i({},n,r,{shouldForwardProp:at(_,r,!0)})).apply(void 0,p)},_}},ct=`a.abbr.address.area.article.aside.audio.b.base.bdi.bdo.big.blockquote.body.br.button.canvas.caption.cite.code.col.colgroup.data.datalist.dd.del.details.dfn.dialog.div.dl.dt.em.embed.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.iframe.img.input.ins.kbd.keygen.label.legend.li.link.main.map.mark.marquee.menu.menuitem.meta.meter.nav.noscript.object.ol.optgroup.option.output.p.param.picture.pre.progress.q.rp.rt.ruby.s.samp.script.section.select.small.source.span.strong.style.sub.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.title.tr.track.u.ul.var.video.wbr.circle.clipPath.defs.ellipse.foreignObject.g.image.line.linearGradient.mask.path.pattern.polygon.polyline.radialGradient.rect.stop.svg.text.tspan`.split(`.`),lt=st.bind(null);ct.forEach(function(e){lt[e]=lt(e)});export{$ as a,et as i,Qe as n,Q as o,$e as r,r as s,lt as t};