@camstack/addon-admin-ui 1.2.305 → 1.2.307
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AddonCollectionPage-Cl_qAbsl.js → AddonCollectionPage-BlnjptJq.js} +1 -1
- package/dist/assets/{Addons-DbxAcT9L.js → Addons-CFLe76ry.js} +1 -1
- package/dist/assets/{AdminTabs-BCENPGP0.js → AdminTabs-CIbVXHF1.js} +1 -1
- package/dist/assets/{AiProfiles-D2Anvjja.js → AiProfiles-B7_e4-Dk.js} +1 -1
- package/dist/assets/{BrokerForm-tbj3TTlT.js → BrokerForm-BuBHkQxf.js} +1 -1
- package/dist/assets/{Build-CccOFFWX.js → Build-Blf4IzFw.js} +3 -3
- package/dist/assets/{Capabilities-wtdNT9TU.js → Capabilities-CyawfSVE.js} +1 -1
- package/dist/assets/{CapabilityBadges-Bgy4Rib6.js → CapabilityBadges-BPnLNQy-.js} +1 -1
- package/dist/assets/{Cluster-DdBgI4d8.js → Cluster-CQgzBal7.js} +1 -1
- package/dist/assets/CompositionEditor-aIa-qSTI.js +1 -0
- package/dist/assets/{CompositionEditorPage-Bx_9IyNG.js → CompositionEditorPage-DbDCpjhY.js} +1 -1
- package/dist/assets/{Data-CqobbR8Z.js → Data-Donw-7W0.js} +1 -1
- package/dist/assets/{DetectionIntelligence-8BtmoZVG.js → DetectionIntelligence-DWJgfejB.js} +1 -1
- package/dist/assets/{DeviceAggregateSection-Y5MaJwRO.js → DeviceAggregateSection-B9l-qHib.js} +1 -1
- package/dist/assets/{DeviceDetail-NYe65jHy.js → DeviceDetail-geCSa8CL.js} +2 -2
- package/dist/assets/{Devices-B82gNjqQ.js → Devices-CozxrwRE.js} +1 -1
- package/dist/assets/{EmbedPlayerPage-CuM-FVlc.js → EmbedPlayerPage-DDuY9-SP.js} +1 -1
- package/dist/assets/{Events-CkXn8wzv.js → Events-DfRnvQKn.js} +1 -1
- package/dist/assets/{FormBuilder-CyIFzW5E.js → FormBuilder-DKW_99f4.js} +1 -1
- package/dist/assets/{Identity-D9qGHb3I.js → Identity-tX_F6JNY.js} +1 -1
- package/dist/assets/{IntegrationDetail-CUPBR6AV.js → IntegrationDetail-D-0Jl71F.js} +1 -1
- package/dist/assets/{Integrations-BTa40Hen.js → Integrations-CV2oW06j.js} +1 -1
- package/dist/assets/{Integrations-BDEavMy3.js → Integrations-CYIKE6OT.js} +1 -1
- package/dist/assets/{Locations-DSFZPgLY.js → Locations-BGod9NJ4.js} +2 -2
- package/dist/assets/{Logs-wN20yApp.js → Logs-CRGID0ok.js} +1 -1
- package/dist/assets/{ModelLicenses-DIb1l17k.js → ModelLicenses-Dp1DrE1h.js} +1 -1
- package/dist/assets/{MotionZonesSettings-CCgybLxG.js → MotionZonesSettings-DmK_8xfo.js} +1 -1
- package/dist/assets/{MyAccess-DDiGeFFp.js → MyAccess-igLD1UAC.js} +1 -1
- package/dist/assets/{Network-D-4lFCTl.js → Network-BPpAccv0.js} +1 -1
- package/dist/assets/{NodeAddonsSettingsPanel-BsNVBpch.js → NodeAddonsSettingsPanel-CNhqhDLO.js} +1 -1
- package/dist/assets/{NodeInferenceDevices-DnSMPjX3.js → NodeInferenceDevices-_rl5f9vI.js} +1 -1
- package/dist/assets/Notifications-DbYW-5zD.js +1 -0
- package/dist/assets/{Pipeline-pMK4xnan.js → Pipeline-x0ICzCh3.js} +1 -1
- package/dist/assets/{Plates-CFklDEQ6.js → Plates-BKwiI_k-.js} +1 -1
- package/dist/assets/{PrivacyMaskSettings-Dldjr0V3.js → PrivacyMaskSettings-BfLXAC0e.js} +1 -1
- package/dist/assets/{ProviderIcon-CJzZF-Md.js → ProviderIcon-CuEBRor2.js} +1 -1
- package/dist/assets/{Recordings-B6U209AG.js → Recordings-XAFmB4XB.js} +1 -1
- package/dist/assets/{ScanNetworkModal-DMYLrkN_.js → ScanNetworkModal-DWW_cmMK.js} +1 -1
- package/dist/assets/{SceneMonitorEditor-FHItPjH6.js → SceneMonitorEditor-CaJawXbC.js} +1 -1
- package/dist/assets/{Scenes-blkRmI0c.js → Scenes-TX5ZEstc.js} +1 -1
- package/dist/assets/{Settings-a9bgvnbO.js → Settings-C2w9rTDo.js} +1 -1
- package/dist/assets/{Showroom-D-fGFbC3.js → Showroom-dOHNv9A4.js} +1 -1
- package/dist/assets/{StorageLocationsPanel-CenO9DBf.js → StorageLocationsPanel-NVC8GM9O.js} +1 -1
- package/dist/assets/{Terminal-KDXpPGlv.js → Terminal-CtbR0SaR.js} +1 -1
- package/dist/assets/{Viewer-BYmuROGj.js → Viewer-DvBANa84.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-C_VbCPrP.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-OERUpRWM.js} +1 -1
- package/dist/assets/{archive-CDSwYv4h.js → archive-DJeHV1ne.js} +1 -1
- package/dist/assets/{authed-media-BYABeaKk.js → authed-media-D-ATEmn4.js} +1 -1
- package/dist/assets/{boxes-CnFFfq72.js → boxes-D8b0kCFX.js} +1 -1
- package/dist/assets/circle-slash-eyMQBZ12.js +1 -0
- package/dist/assets/{debounced-invalidate-ly8jvXjB.js → debounced-invalidate-DXk1jDkb.js} +1 -1
- package/dist/assets/{device-integration-icon-C5G12j3k.js → device-integration-icon-46kqfkPN.js} +1 -1
- package/dist/assets/dist-CVJFualw.js +349 -0
- package/dist/assets/{dist-Cr9XqozI.js → dist-DYxjCn4p.js} +1 -1
- package/dist/assets/{face-bbox-DJz4o2gq.js → face-bbox-Cs-vA_dV.js} +1 -1
- package/dist/assets/{hard-drive-download-sG8iQV2H.js → hard-drive-download-Bm-blTzS.js} +1 -1
- package/dist/assets/{hostInit-C9Y27Ptm.js → hostInit-7CmiDKph.js} +1 -1
- package/dist/assets/{index-DZW8_yqU.js → index-DNdhQ4uM.js} +3 -3
- package/dist/assets/{layers-7a6NP14k.js → layers-DhuNMfQb.js} +1 -1
- package/dist/assets/{location-owned-usage-D7m8uVKn.js → location-owned-usage-CH7Qcnpi.js} +1 -1
- package/dist/assets/{mf-entry-bootstrap-0-a4207cb9.js → mf-entry-bootstrap-0-a7760dd5.js} +2 -2
- package/dist/assets/{player-overlays-CcX5nwSA.js → player-overlays-BgwZpgSe.js} +1 -1
- package/dist/assets/remoteEntry-C982rsbc.js +1 -0
- package/dist/assets/{send-CZnJNG3q.js → send-BFj1Ykmj.js} +1 -1
- package/dist/assets/{settings-2-CgM5uR-Q.js → settings-2-BfxFWE-M.js} +1 -1
- package/dist/assets/{square-check-big-QVLxfFC-.js → square-check-big-UoS0DKVP.js} +1 -1
- package/dist/assets/{src-BK-p5x7D.js → src-DRNwsLgw.js} +8 -8
- package/dist/assets/src-MMiLp0V-.js +349 -0
- package/dist/assets/{use-scenes-feed-BkMKSS4g.js → use-scenes-feed-DkXrY9Sr.js} +1 -1
- package/dist/assets/{use-stationary-objects-BeeWiF0v.js → use-stationary-objects-BAsDUCt8.js} +1 -1
- package/dist/assets/{useDevice-CWhn2X8b.js → useDevice-Bj2bv3lq.js} +1 -1
- package/dist/assets/useEventInvalidation-Dk3OgvD_.js +1 -0
- package/dist/assets/{useNodeUrlSelection-Dw4lkvT5.js → useNodeUrlSelection-C4PNrHg2.js} +1 -1
- package/dist/assets/user-round-BNml-2tW.js +1 -0
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-B0HL4fu0.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-BJDm2_I8.js} +2 -2
- package/dist/index.html +5 -5
- package/dist/server/addon.js +30 -75
- package/package.json +1 -1
- package/dist/assets/CompositionEditor-CloRIkP3.js +0 -1
- package/dist/assets/Notifications-Cjbqxus3.js +0 -1
- package/dist/assets/circle-slash-BdFzbR7x.js +0 -1
- package/dist/assets/dist-BSPBtyTE.js +0 -349
- package/dist/assets/remoteEntry-BDfCWrX6.js +0 -1
- package/dist/assets/src-BAc6gsIi.js +0 -349
- package/dist/assets/useEventInvalidation-CIP3wjBs.js +0 -1
- package/dist/assets/user-round-Yl1pAdZw.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as e,I as t,K as n,Q as r,S as i,b as a,q as o,x as s,z as c}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DhP-Lgiq.js";import{at as l}from"./player-overlays-CcX5nwSA.js";import{Hr as u,Ji as d,U as f,V as p,c as m,ln as h,nn as g,on as _,vi as v,yi as y,zr as ee}from"./src-BK-p5x7D.js";import{An as b,Cn as x,En as S,In as C,Ln as te,Lt as w,Sn as ne,Tn as T,_n as re,kn as E,kt as ie,mn as D,vn as ae,wn as O,xn as k,yn as oe}from"./src-BAc6gsIi.js";import{l as A}from"./index-DZW8_yqU.js";r();function se(e){return{target:{kind:`new`,type:e},name:``,features:[]}}function ce(e){return{target:{kind:`existing`,device:e},name:``,features:[]}}function le(e,t){return{target:e.target,name:t,features:e.features.flatMap(e=>e.kind===`fields`?[e]:[])}}function j(e,t,n){return{...e,features:e.features.map(e=>e.cap===t?n(e):e)}}function ue(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>e!==t))}function de(e,t){switch(t.type){case`set-new-type`:return e.target.kind===`new`?{...e,target:{...e.target,type:t.deviceType}}:e;case`set-new-role`:{if(e.target.kind!==`new`)return e;let{role:n,...r}=e.target;return{...e,target:t.role===null?r:{...r,role:t.role}}}case`set-name`:return{...e,name:t.name};case`add-feature`:return e.features.some(e=>e.cap===t.cap)?e:{...e,features:[...e.features,{kind:`fields`,cap:t.cap,fields:{}}]};case`remove-feature`:return{...e,features:e.features.filter(e=>e.cap!==t.cap)};case`set-field`:return j(e,t.cap,e=>({...e,fields:{...e.fields,[t.path]:t.source}}));case`clear-field`:return j(e,t.cap,e=>({...e,fields:ue(e.fields,t.path)}));case`copy-feature`:return j(e,t.cap,e=>({...e,fields:{...e.fields,...Object.fromEntries(t.paths.map(e=>[e,{kind:`from`,source:t.from,cap:t.sourceCap,fieldPath:e}]))}}))}}function fe(e){let t=oe.safeParse({target:e.target,features:e.features});return t.success?{ok:!0,composition:t.data}:{ok:!1,problems:t.error.issues.map(e=>`${e.path.join(`.`)||`composition`}: ${e.message}`)}}function pe(e){for(let t=1;;t++){let n=`s${t}`;if(!e.includes(n))return n}}function me(e){return{addonId:e.addonId,stableId:e.stableId}}function M(e){return new Map(e.map(e=>[T(me(e)),e]))}function he(e,t,n){let r=e?.features??[],i=r.findIndex(e=>e.cap===n.cap);return{target:e?.target??{kind:`existing`,device:t},features:i===-1?[...r,n]:r.map((e,t)=>t===i?n:e)}}function ge(e,t){let n=e.features.filter(e=>e.cap!==t);return n.length===0?null:{target:e.target,features:n}}function _e(e,t){let n=e?.features.find(e=>e.cap===t);return n!==void 0&&n.kind===`fields`?n:null}function N(e){return Array.isArray(e)?e.map(N):typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,N(t)]))}function P(e){return JSON.stringify(N(e))}function F(e,t){return P(e)===P(t)}function I(e,t){return P(e)===P(t)}function ve(e,t){switch(e.kind){case`pending`:return{kind:`refused`,reason:`the customization has not been read yet — try again`};case`unknown`:return{kind:`refused`,reason:`the customization could not be read: ${e.reason}`};case`not-loaded`:return{kind:`refused`,reason:`the customizations are not loaded yet: ${e.reason}`};case`none`:return t===null?{kind:`noop`}:{kind:`create`,input:{enabled:!0,composition:t}};case`present`:{let n=e.view.block.id;return t===null?{kind:`delete`,blockId:n}:P(t)===P(e.composition)?{kind:`noop`}:{kind:`update`,blockId:n,expectedUpdatedAt:e.view.block.updatedAt,composition:t}}}}function L(e,t){let n=e===`enum`?`string`:e,r=t.kind===`enum`?`string`:t.kind,i={source:t.source,cap:t.cap,fieldPath:t.fieldPath};return r===n?{kind:`from`,...i}:n===`number`&&r===`string`?{kind:`expression`,expr:`number(x)`,bindings:{x:{kind:`from`,...i}}}:null}function R(e){return{kind:`expression`,expr:e,bindings:{}}}function z(e){let t=L(`number`,e.percentage);return t===null?null:{kind:`fields`,cap:`battery`,fields:e.mode===`replace`?{percentage:t}:{percentage:t,charging:R(`"unknown"`),sleeping:R(`false`),lastUpdated:R(`now`)}}}var ye=[`percent`,...w.options];function B(e,t){return t===`percent`?{level:e}:{"remaining.value":e,"remaining.unit":R(JSON.stringify(t))}}function be(e,t){let n=L(`number`,t.remaining);if(n===null||!ae.test(t.key)||t.label.trim()===``)return null;let r={label:t.label.trim(),fields:B(n,t.unit)};return{kind:`fields`,cap:`consumables`,...e?.enabled===void 0?{}:{enabled:e.enabled},fields:e?.fields??{lastChangedAt:R(`now`),lastFetchedAt:R(`now`)},items:{...e?.items,[t.key]:r}}}function xe(e){if(e.level!==void 0)return`percent`;let t=e[`remaining.unit`];if(t===void 0||t.kind!==`expression`)return null;try{let e=w.safeParse(JSON.parse(t.expr));return e.success?e.data:null}catch{return null}}function Se(e){return Object.entries(e?.items??{}).map(([e,t])=>{let n=xe(t.fields),r=V(t.fields.level??t.fields[`remaining.value`]),i=r===null?null:L(`number`,r);return n!==null&&i!==null&&F(B(i,n),t.fields)?{key:e,label:t.label,unit:n,source:r}:{key:e,label:t.label,unit:null,source:null}})}function Ce(e,t){let n=Object.fromEntries(Object.entries(e.items??{}).filter(([e])=>e!==t));return Object.keys(n).length===0?null:{...e,items:n}}function we(e){return e.toLowerCase().normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)}function Te(e){let t=e.fields.lastPressedAt;if(t===void 0||t.kind!==`expression`)return[];let n=Object.entries(t.bindings).filter(([e])=>e.startsWith(`active`)).flatMap(([,e])=>e.kind===`from`?[e.source]:[]);return[...new Map(n.map(e=>[T(e),e])).values()]}function Ee(e){let t=e.fields.lastPressedAt;if(t===void 0||t.kind!==`expression`)return[];let n=t.bindings;return Object.entries(n).flatMap(([e,t])=>{if(!e.startsWith(`active`)||t.kind!==`from`)return[];let r=n[`changed${e.slice(6)}`];return r===void 0||r.kind!==`from`?[]:[{source:t.source,cap:t.cap,activeField:t.fieldPath,changedAtField:r.fieldPath}]})}function V(e){if(e===void 0)return null;if(e.kind===`from`){let{kind:t,...n}=e;return{...n,kind:`number`}}if(e.kind!==`expression`||e.expr!==`number(x)`)return null;let t=e.bindings.x;if(t===void 0||t.kind!==`from`||Object.keys(e.bindings).length!==1)return null;let{kind:n,...r}=t;return{...r,kind:`string`}}function De(e,t){let n=V(e.fields.percentage);if(n===null)return!1;let r=z({percentage:n,mode:t}),{enabled:i,...a}=e;return r!==null&&I(a,r)}function H(e){return e.map(e=>({id:e.id,name:e.name,addonId:e.addonId,stableId:e.stableId,location:e.location,type:e.type}))}function Oe(e,t,n){let r=t.trim().toLowerCase();return r===``?[]:e.filter(e=>!n.includes(e.id)&&[e.name,e.stableId,e.location??``].some(e=>e.toLowerCase().includes(r))).toSorted((e,t)=>e.name.localeCompare(t.name)).slice(0,20)}function U(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=Object.getOwnPropertyDescriptor(n,e)?.value}return n}function ke(e,t,n,r){return r===null?{kind:`from`,source:e,cap:t,fieldPath:n.path}:L(r,{source:e,cap:t,fieldPath:n.path,kind:n.kind})}function Ae(e,t,n,r){let i={addonId:e.addonId,stableId:e.stableId};return t.caps.flatMap(e=>e.fields.filter(e=>e.item!==!0).map(t=>({cap:e.cap,path:t.path,kind:t.kind,value:n===null?void 0:U(n[e.cap],t.path),source:ke(i,e.cap,t,r)})))}function W(e,t){return t?e===void 0?`—`:e===null?`null`:typeof e==`string`||typeof e==`number`||typeof e==`boolean`?String(e):JSON.stringify(e):`…`}var je=[];function G({title:e,targetKind:t,excludeDeviceIds:n=je,onPick:r,onCancel:a}){let{t:c}=A(),[l,u]=o(null);return i(`aside`,{"aria-label":e,className:`rounded-lg border border-border bg-surface p-3 flex flex-col gap-2`,children:[s(`h3`,{className:`text-xs font-semibold`,children:e}),l===null?s(K,{excludeDeviceIds:n,onSelect:u}):s(q,{device:l,targetKind:t,onPick:r,onBack:()=>u(null)}),s(`div`,{children:s(h,{variant:`ghost`,onClick:a,children:c(`customize.picker.cancel`)})})]})}function K({excludeDeviceIds:e,onSelect:t}){let{t:n}=A(),[r,c]=o(``),l=y({projection:`slim`});return i(a,{children:[i(`label`,{className:`flex flex-col gap-1 text-[11px]`,children:[n(`customize.picker.search`),s(`input`,{type:`search`,"aria-label":n(`customize.picker.search`),className:`px-1.5 py-0.5 text-[11px] bg-background border border-border rounded`,value:r,onChange:e=>c(e.target.value)})]}),l.status===`pending`&&s(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:n(`customize.picker.loadingDevices`)}),l.status===`error`&&s(_,{title:n(`customize.picker.devicesFailed`),message:l.error?.message??``}),l.status===`success`&&s(`ul`,{className:`flex flex-col gap-1`,children:Oe(H(l.data),r,e).map(e=>s(`li`,{children:i(`button`,{type:`button`,className:`text-left text-[11px] hover:underline`,onClick:()=>t(e),children:[e.name,` `,i(`span`,{className:`text-foreground-subtle`,children:[`· `,e.stableId]})]})},e.id))})]})}function q({device:e,targetKind:t,selected:n,onPick:r,onBack:a}){let{t:o}=A(),c=v({deviceId:e.id}),l=d({deviceId:e.id});if(c.status===`pending`)return s(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:o(`customize.picker.loadingFields`)});if(c.status===`error`)return s(_,{title:o(`customize.picker.fieldsFailed`),message:c.error?.message??``});let u=Ae(e,c.data,l.status===`success`?l.data:null,t),f=u.filter(e=>e.source===null).length,p={addonId:e.addonId,stableId:e.stableId};return i(`div`,{className:`flex flex-col gap-1`,children:[i(`button`,{type:`button`,className:`text-left text-[11px] text-primary`,onClick:a,children:[`← `,e.name]}),l.status===`error`&&s(`p`,{role:`alert`,className:`text-[10px] text-warning`,children:o(`customize.picker.valuesFailed`,{reason:l.error?.message??``})}),s(`ul`,{role:`listbox`,"aria-label":o(`customize.picker.fields`),className:`flex flex-col gap-1`,children:u.map(t=>{let a=t.source;if(a===null)return null;let o=()=>r({device:e,ref:p,cap:t.cap,path:t.path,kind:t.kind,source:a,value:t.value});return i(`li`,{role:`option`,"aria-selected":n?.cap===t.cap&&n.path===t.path,tabIndex:0,className:`flex justify-between gap-2 text-[11px] cursor-pointer hover:bg-surface-hover rounded px-1`,onClick:o,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&o()},children:[i(`span`,{className:`font-mono`,children:[t.cap,`.`,t.path]}),s(`span`,{children:W(t.value,l.status===`success`)})]},`${t.cap}.${t.path}`)})}),f>0&&t!==null&&s(`p`,{className:`text-[10px] text-foreground-subtle`,children:o(`customize.picker.hidden`,{count:f,kind:o(`customize.kinds.${t}`)})})]})}var Me=`integration`;function J(e,t){switch(e.kind){case`from`:{let n=T(e.source);return`${t.get(n)??n} · ${e.cap}.${e.fieldPath}`}case`expression`:return e.expr;case`code`:return`code`}}function Ne(e,t){if(e.kind===`unreachable`)return{kind:`unknown`,reason:e.error};if(e.state===null)return{kind:`unknown`,reason:`the composer has not reported this customization yet`};let n=e.state.fields.find(t);return n===void 0?{kind:`unknown`,reason:`the composer reports no value for this field`}:n.state===`unavailable`?{kind:`unavailable`,reason:n.reason??`unavailable`}:{kind:`value`,value:n.value,staleReason:n.state===`stale`?n.reason??`stale`:null}}function Y(e,t,n,r){return{key:`${e.feature.cap}.${t}`,cap:e.feature.cap,field:t,origin:`composed`,mode:e.mode,from:J(n,e.input.sourceNames),value:e.enabled?Ne(e.input.state,r):{kind:`off`}}}function Pe(e){let t=e.feature.cap;return Object.entries(e.feature.fields).map(([n,r])=>Y(e,n,r,e=>e.cap===t&&e.path===n&&e.item===void 0))}function Fe(e){let t=e.feature.cap;return Object.entries(e.feature.items??{}).flatMap(([n,r])=>Object.entries(r.fields).map(([r,i])=>Y(e,ne(re,n,r),i,e=>e.cap===t&&e.path===r&&e.item?.arrayPath===`items`&&e.item.key===n)))}function Ie(e,t,n){if(e===null)return{kind:`unknown`,reason:`the device state could not be read`};let r=U(e[t],n),i=r===void 0?void 0:C(r);return i===void 0?{kind:`unknown`,reason:`not reported`}:{kind:`value`,value:i,staleReason:null}}function Le(e){if(e.mode!==`replace`)return[];let t=e.feature.cap,n=new Set(Object.keys(e.feature.fields));return(e.input.nativeFields.get(t)??[]).filter(e=>!n.has(e)).map(n=>({key:`${t}.${n}`,cap:t,field:n,origin:`native`,mode:e.mode,from:Me,value:Ie(e.input.snapshot,t,n)}))}function Re(e){return e.composition.features.flatMap(t=>{if(t.kind!==`fields`)return[];let n={feature:t,mode:e.nativeCaps.has(t.cap)?`replace`:`add`,enabled:k(t),input:e};return[...Pe(n),...Fe(n),...Le(n)]})}var ze={min:`min(a, b, …)`,max:`max(a, b, …)`,abs:`abs(x)`,floor:`floor(x)`,ceil:`ceil(x)`,sqrt:`sqrt(x)`,round:`round(x, digits?)`,pow:`pow(x, y)`,clamp:`clamp(x, lo, hi)`,avg:`avg(a, b, …)`,sum:`sum(a, b, …)`,coalesce:`coalesce(a, b, …)`,age:`age(now, ts)`,convert:`convert(x, "from", "to")`,any:`any(a, b, …)`,all:`all(a, b, …)`,within:`within(ts, ms)`,number:`number(x)`,latest:`latest(ts, …)`,rose:`rose(level, changedAt, debounceMs?)`,count:`count(x)`},X=/[A-Za-z_][A-Za-z0-9_]*$/;function Be(e,t,n){let r=X.exec(e.slice(0,t))?.[0]??``;if(r===``)return[];let i=n.filter(e=>e.startsWith(r)).toSorted().map(e=>({kind:`binding`,label:e,insert:e,hintKey:null})),a=`now`.startsWith(r)?[{kind:`now`,label:`now`,insert:`now`,hintKey:`compositionEditor.now`}]:[],o=[...te].filter(e=>e.startsWith(r)).toSorted().map(e=>({kind:`builtin`,label:ze[e]??e,insert:`${e}(`,hintKey:`compositionEditor.builtins.${e}`}));return[...i,...a,...o].slice(0,8)}function Ve(e,t,n){let r=t-(X.exec(e.slice(0,t))?.[0]??``).length;return{text:`${e.slice(0,r)}${n.insert}${e.slice(t)}`,cursor:r+n.insert.length}}r();function He({label:e,value:t,bindings:r,onChange:a}){let{t:c}=A(),l=n(null),[u,d]=o(t.length),f=Be(t,u,r);return i(`div`,{className:`flex flex-col gap-1`,children:[i(`label`,{className:`flex flex-col gap-1 text-[11px]`,children:[e,s(`input`,{ref:l,className:`font-mono px-1.5 py-0.5 text-[11px] bg-background border border-border rounded`,value:t,onChange:e=>{a(e.target.value),d(e.target.selectionStart??e.target.value.length)},onSelect:e=>d(e.currentTarget.selectionStart??t.length)})]}),f.length>0&&s(`ul`,{role:`listbox`,"aria-label":c(`compositionEditor.suggestions`),className:`rounded border border-border bg-surface text-[11px]`,children:f.map(e=>i(`li`,{role:`option`,"aria-selected":!1,tabIndex:0,className:`flex justify-between gap-2 px-1 cursor-pointer hover:bg-surface-hover`,onClick:()=>{let n=Ve(t,u,e);a(n.text),d(n.cursor),l.current?.focus()},children:[s(`span`,{className:`font-mono`,children:e.label}),e.hintKey!==null&&s(`span`,{className:`text-foreground-subtle`,children:c(e.hintKey)})]},`${e.kind}:${e.label}`))})]})}function Ue(e,t,n){if(e.kind===`code`)return{kind:`unavailable`,reason:`code fields arrive in slice 4`};if(e.kind===`expression`&&(D(e.expr,`rose`)||D(e.expr,`count`)))return{kind:`runtime-only`};let r=S(e).filter(e=>t.get(O(e.source,e.cap))?.kind!==`value`).map(x);if(r.length>0)return{kind:`waiting`,missing:r};let i=ie({source:e,now:n,read:e=>{let n=t.get(O(e.source,e.cap)),r=n?.kind===`value`?U(n.slice,e.fieldPath):void 0,i=r===void 0?void 0:C(r);return i===void 0?{state:`unavailable`,reason:`${e.cap}.${e.fieldPath} is not reported`,fatal:!1}:{state:`fresh`,value:i}}});return i.state===`unavailable`?{kind:`unavailable`,reason:i.reason}:{kind:`value`,value:i.value,stale:i.reason}}r();function We({sliceKey:e,deviceId:t,capName:n,onReading:r}){let i=m(l().trpcClient,t,n);return c(()=>{r(e,i===void 0?{kind:`pending`}:{kind:`value`,slice:i})},[e,i,r]),null}function Ge(e,t){return[...new Map(S(e).map(e=>[O(e.source,e.cap),e]))].map(([e,n])=>({key:e,read:n,device:t.get(T(n.source))}))}function Ke({source:e}){let{t:n}=A(),r=y({projection:`slim`}),[a,c]=o(new Map),l=t((e,t)=>{c(n=>new Map([...n,[e,t]]))},[]),u=Ge(e,M(r.status===`success`?H(r.data):[])),d=r.status===`success`?u.filter(e=>e.device===void 0).map(e=>T(e.read.source)):[];return i(`div`,{className:`flex flex-wrap items-center gap-2 text-[11px]`,children:[u.map(e=>e.device===void 0?null:s(We,{sliceKey:e.key,deviceId:e.device.id,capName:e.read.cap,onReading:l},e.key)),s(`span`,{className:`text-foreground-subtle`,children:n(`compositionEditor.preview.label`)}),r.status===`error`?s(`span`,{className:`text-warning`,children:n(`compositionEditor.preview.devicesFailed`,{reason:r.error?.message??``})}):d.length>0?s(`span`,{className:`text-warning`,children:n(`compositionEditor.preview.unknownDevice`,{sources:d.join(`, `)})}):s(Z,{preview:Ue(e,a,Date.now())})]})}function Z({preview:e}){let{t}=A();switch(e.kind){case`value`:return i(`strong`,{children:[`→ `,W(e.value,!0),e.stale===null?``:` (${e.stale})`]});case`unavailable`:return s(`span`,{className:`text-warning`,children:e.reason});case`waiting`:return s(`span`,{className:`text-foreground-subtle`,children:t(`compositionEditor.preview.waiting`,{sources:e.missing.join(`, `)})});case`runtime-only`:return s(`span`,{className:`text-foreground-subtle`,children:t(`compositionEditor.preview.runtimeOnly`)})}}r();function qe({path:e,kind:t,required:n,source:r,onSet:c,onClear:l,sourceNames:u}){let{t:d}=A(),[f,p]=o(`idle`),m=r?.kind===`expression`?r:null;return i(`div`,{className:`flex flex-col gap-1 rounded border border-border p-2`,children:[i(`div`,{className:`flex flex-wrap items-center gap-2`,children:[s(`span`,{className:`font-mono text-[11px]`,children:e}),i(`span`,{className:`text-[10px] text-foreground-subtle`,children:[d(`customize.kinds.${t}`),n?` · ${d(`compositionEditor.required`)}`:``]}),s(h,{size:`sm`,variant:`outline`,onClick:()=>p(`take`),children:d(`compositionEditor.takeFrom`)}),s(h,{size:`sm`,variant:`outline`,"aria-pressed":m!==null,onClick:()=>c(m??{kind:`expression`,expr:`null`,bindings:{}}),children:d(`compositionEditor.formula`)}),r!==void 0&&s(h,{size:`sm`,variant:`ghost`,onClick:l,children:d(`compositionEditor.clear`)})]}),r?.kind===`from`&&s(`span`,{className:`text-[11px]`,children:J(r,u)}),m!==null&&i(a,{children:[s(He,{label:d(`compositionEditor.formulaFor`,{path:e}),value:m.expr,bindings:Object.keys(m.bindings),onChange:e=>c({...m,expr:e})}),s(`ul`,{className:`text-[11px] flex flex-col gap-0.5`,children:Object.entries(m.bindings).map(([e,t])=>i(`li`,{className:`flex gap-2`,children:[s(`span`,{className:`font-mono`,children:e}),s(`span`,{children:t.kind===`from`?J(t,u):JSON.stringify(t.value)})]},e))}),s(h,{size:`sm`,variant:`ghost`,onClick:()=>p(`add-binding`),children:d(`compositionEditor.addSource`)})]}),f!==`idle`&&s(G,{title:d(f===`take`?`compositionEditor.takeFrom`:`compositionEditor.addSource`),targetKind:f===`take`?t:null,onCancel:()=>p(`idle`),onPick:e=>{if(f===`take`)c(e.source);else if(m!==null){let t=pe(Object.keys(m.bindings));c({...m,bindings:{...m.bindings,[t]:{kind:`from`,source:e.ref,cap:e.cap,fieldPath:e.path}}})}p(`idle`)}}),r!==void 0&&s(Ke,{source:r})]})}r();function Q(e){return e===null||e.kind===`known`?null:e}function Je({draft:e,deviceType:t,nativeCaps:n,targetFields:r,dispatch:c}){let{t:l}=A(),u=ee({deviceType:t}),d=y({projection:`slim`}),f=new Map([...M(d.status===`success`?H(d.data):[])].map(([e,t])=>[e,t.name])),[p,m]=o(null),_=Q(n)??Q(r),v=n?.kind===`known`?n.value:new Set,b=new Set(e.features.map(e=>e.cap)),x=u.status===`success`?u.data.caps.filter(e=>!b.has(e.cap)&&!v.has(e.cap)):[],S=[...v].filter(e=>!b.has(e)),C=e=>v.has(e)?((r?.kind===`known`?r.value.caps.find(t=>t.cap===e):void 0)?.fields??[]).filter(e=>e.item!==!0&&!e.path.includes(`.`)).map(e=>({path:e.path,kind:e.kind,required:!1})):((u.status===`success`?u.data.caps.find(t=>t.cap===e):void 0)?.fields??[]).map(e=>({path:e.path,kind:e.kind,required:e.required}));return _===null?i(a,{children:[i(`section`,{"aria-labelledby":`editor-features`,className:`flex flex-col gap-2`,children:[s(`h2`,{id:`editor-features`,className:`text-sm font-semibold`,children:l(`compositionEditor.steps.features`)}),u.status===`pending`&&s(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:l(`compositionEditor.checking`)}),u.status===`error`&&s(`p`,{role:`alert`,className:`text-[11px] text-warning`,children:l(`compositionEditor.unknown`,{reason:u.error?.message??``})}),i(`div`,{className:`flex flex-wrap gap-1`,children:[e.features.map(e=>i(`span`,{className:`flex items-center gap-1 rounded border border-border px-1.5 text-[11px]`,children:[e.cap,s(g,{variant:v.has(e.cap)?`default`:`info`,children:v.has(e.cap)?l(`compositionEditor.replaces`):l(`compositionEditor.added`)}),s(`button`,{type:`button`,"aria-label":l(`compositionEditor.removeFeature`,{cap:e.cap}),onClick:()=>c({type:`remove-feature`,cap:e.cap}),children:`×`})]},e.cap)),x.map(e=>i(h,{size:`sm`,variant:`outline`,onClick:()=>c({type:`add-feature`,cap:e.cap}),children:[`+ `,e.cap]},e.cap)),S.map(e=>s(h,{size:`sm`,variant:`ghost`,onClick:()=>c({type:`add-feature`,cap:e}),children:l(`compositionEditor.replaceIn`,{cap:e})},e))]})]}),e.features.map(e=>i(`section`,{"aria-label":l(`compositionEditor.steps.fieldsOf`,{cap:e.cap}),className:`flex flex-col gap-2`,children:[i(`div`,{className:`flex items-center justify-between`,children:[s(`h2`,{className:`text-sm font-semibold`,children:l(`compositionEditor.steps.fieldsOf`,{cap:e.cap})}),s(h,{size:`sm`,variant:`outline`,onClick:()=>m(e.cap),children:l(`compositionEditor.copyFeature`)})]}),p===e.cap&&s(G,{title:l(`compositionEditor.copyFeature`),targetKind:null,onCancel:()=>m(null),onPick:t=>{c({type:`copy-feature`,cap:e.cap,from:t.ref,sourceCap:t.cap,paths:C(e.cap).map(e=>e.path)}),m(null)}}),C(e.cap).map(t=>s(qe,{path:t.path,kind:t.kind,required:t.required,source:e.fields[t.path],onSet:n=>c({type:`set-field`,cap:e.cap,path:t.path,source:n}),onClear:()=>c({type:`clear-field`,cap:e.cap,path:t.path}),sourceNames:f},t.path))]},e.cap))]}):i(`section`,{"aria-labelledby":`editor-features`,className:`flex flex-col gap-2`,children:[s(`h2`,{id:`editor-features`,className:`text-sm font-semibold`,children:l(`compositionEditor.steps.features`)}),s(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:_.kind===`unknown`?_.reason:l(`compositionEditor.reading`)})]})}var $=`px-1.5 py-0.5 text-[11px] bg-background border border-border rounded`;function Ye({draft:e,targetName:t,dispatch:n}){let{t:r}=A(),a=e.target;return i(`section`,{"aria-labelledby":`editor-target`,className:`flex flex-col gap-2`,children:[s(`h2`,{id:`editor-target`,className:`text-sm font-semibold`,children:r(`compositionEditor.steps.target`)}),a.kind===`existing`?s(`p`,{className:`text-[11px]`,children:r(`compositionEditor.existingTarget`,{name:t??`${a.device.addonId}/${a.device.stableId}`})}):i(`div`,{className:`grid grid-cols-3 gap-2`,children:[i(`label`,{className:`flex flex-col gap-1 text-[11px]`,children:[r(`compositionEditor.targetType`),s(`select`,{className:$,value:a.type,onChange:e=>{let t=Object.values(b).find(t=>t===e.target.value);t!==void 0&&n({type:`set-new-type`,deviceType:t})},children:Object.values(b).map(e=>s(`option`,{value:e,children:f(e).label},e))})]}),i(`label`,{className:`flex flex-col gap-1 text-[11px]`,children:[r(`customize.identity.role`),i(`select`,{className:$,value:a.role??``,onChange:e=>n({type:`set-new-role`,role:Object.values(E).find(t=>t===e.target.value)??null}),children:[s(`option`,{value:``,children:r(`customize.identity.noRole`)}),Object.values(E).map(e=>s(`option`,{value:e,children:p(e).label},e))]})]}),i(`label`,{className:`flex flex-col gap-1 text-[11px]`,children:[r(`compositionEditor.name`),s(`input`,{className:$,value:e.name,onChange:e=>n({type:`set-name`,name:e.target.value})})]})]})]})}r();function Xe({draft:e,blockId:t,saving:n,onSave:r,onCancel:a}){let{t:l}=A(),d=u(),f=fe(e),p=f.ok?JSON.stringify(f.composition):``,[m,g]=o({key:``,state:{kind:`checking`}});c(()=>{if(!f.ok)return;let e=f.composition,n=setTimeout(()=>{d.mutateAsync({composition:e,...t===null?{}:{blockId:t}}).then(e=>g({key:p,state:e.ok?{kind:`ok`}:{kind:`refused`,problems:e.problems}})).catch(e=>g({key:p,state:{kind:`unknown`,reason:e instanceof Error?e.message:String(e)}}))},500);return()=>clearTimeout(n)},[p,t]);let _=f.ok?m.key===p?m.state:{kind:`checking`}:{kind:`invalid-draft`,problems:f.problems};return i(`section`,{"aria-labelledby":`editor-verify`,className:`flex flex-col gap-2`,children:[s(`h2`,{id:`editor-verify`,className:`text-sm font-semibold`,children:l(`compositionEditor.steps.verify`)}),_.kind===`checking`&&s(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:l(`compositionEditor.verify.checking`)}),_.kind===`ok`&&s(`p`,{className:`text-[11px] text-success`,children:l(`compositionEditor.verify.ok`)}),_.kind===`unknown`&&s(`p`,{role:`alert`,className:`text-[11px] text-warning`,children:l(`compositionEditor.verify.unknown`,{reason:_.reason})}),(_.kind===`invalid-draft`||_.kind===`refused`)&&s(`ul`,{role:`alert`,className:`flex flex-col gap-1 text-[11px] text-danger`,children:_.kind===`invalid-draft`?_.problems.map(e=>s(`li`,{children:e},e)):_.problems.map(e=>i(`li`,{children:[s(`span`,{className:`font-mono`,children:e.path}),` — `,e.message]},`${e.path}:${e.code}`))}),i(`div`,{className:`flex gap-2`,children:[s(h,{variant:`ghost`,onClick:a,children:l(`compositionEditor.cancel`)}),s(h,{disabled:_.kind!==`ok`||n||!f.ok,onClick:()=>f.ok&&r(f.composition),children:l(`compositionEditor.save`)})]})]})}r();function Ze({initial:t,blockId:n,deviceType:r,targetName:a=null,nativeCaps:c,targetFields:l,save:u,onCancel:d}){let[f,p]=e(de,t),[m,h]=o(!1),[g,_]=o(null),v=f.target.kind===`new`?f.target.type:r,y=async e=>{h(!0);let t=await u(e,f.name);h(!1),_(t.kind===`refused`?t.reason:null)};return i(`div`,{className:`flex flex-col gap-4`,children:[s(Ye,{draft:f,targetName:a,dispatch:p}),s(Je,{draft:f,deviceType:v,nativeCaps:c,targetFields:l,dispatch:p}),s(Xe,{draft:f,blockId:n,saving:m,onSave:e=>void y(e),onCancel:d}),g!==null&&s(`p`,{role:`alert`,className:`text-[11px] text-danger break-words`,children:g})]})}export{ce as C,le as S,_e as _,W as a,he as b,z as c,Te as d,Ee as f,Ce as g,V as h,K as i,be as l,we as m,Re as n,U as o,De as p,q as r,ye as s,Ze as t,Se as u,ve as v,se as w,ge as x,I as y};
|