@telemetryos/sdk 1.14.0 → 1.16.0

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.
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ interface SettingsSectionProps {
3
+ /** Section heading text. */
4
+ title: string;
5
+ /** Whether the section starts expanded. Defaults to true. */
6
+ defaultOpen?: boolean;
7
+ children: ReactNode;
8
+ }
9
+ /**
10
+ * Collapsible settings section with animated open/close.
11
+ *
12
+ * Manages its own open/closed state internally — the parent only provides
13
+ * a title and optional defaultOpen flag.
14
+ *
15
+ * Use this to group related settings controls under a heading.
16
+ * When adding a new logical group of settings, always wrap them
17
+ * in a SettingsSection so users can collapse sections they don't need.
18
+ */
19
+ export declare function SettingsSection({ title, defaultOpen, children }: SettingsSectionProps): import("react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -1,4 +1,5 @@
1
1
  export { SettingsBox, SettingsButtonFrame, SettingsCheckboxFrame, SettingsCheckboxLabel, SettingsColorFrame, SettingsContainer, SettingsDivider, SettingsError, SettingsField, SettingsHeading, SettingsHint, SettingsInputFrame, SettingsLabel, SettingsRadioFrame, SettingsRadioLabel, SettingsSelectFrame, SettingsSliderFrame, SettingsSliderRuler, SettingsSwitchFrame, SettingsSwitchLabel, SettingsTextAreaFrame, } from './Settings.js';
2
2
  export { SettingsMediaSelect, type MediaSelection } from './SettingsMediaSelect.js';
3
+ export { SettingsSection } from './SettingsSection.js';
3
4
  export { useStoreState, createUseStoreState, createUseInstanceStoreState, createUseApplicationStoreState, createUseDeviceStoreState, createUseSharedStoreState, createUseDynamicNamespaceStoreState, } from './hooks/store.js';
4
5
  export { useUiScaleToSetRem, useUiAspectRatio, useUiResponsiveFactors } from './hooks/ui-scale.js';
package/dist/react.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),b=require("./index.cjs");var O={exports:{}},R={};/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),x=require("./index.cjs");var O={exports:{}},j={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var J;function oe(){if(J)return R;J=1;var n=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function o(i,a,u){var g=null;if(u!==void 0&&(g=""+u),a.key!==void 0&&(g=""+a.key),"key"in a){u={};for(var p in a)p!=="key"&&(u[p]=a[p])}else u=a;return a=u.ref,{$$typeof:n,type:i,key:g,ref:a!==void 0?a:null,props:u}}return R.Fragment=s,R.jsx=o,R.jsxs=o,R}var j={};/**
9
+ */var q;function oe(){if(q)return j;q=1;var n=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function i(o,a,c){var p=null;if(c!==void 0&&(p=""+c),a.key!==void 0&&(p=""+a.key),"key"in a){c={};for(var f in a)f!=="key"&&(c[f]=a[f])}else c=a;return a=c.ref,{$$typeof:n,type:o,key:p,ref:a!==void 0?a:null,props:c}}return j.Fragment=s,j.jsx=i,j.jsxs=i,j}var R={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,12 +14,12 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var q;function ie(){return q||(q=1,process.env.NODE_ENV!=="production"&&(function(){function n(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case E:return"Fragment";case N:return"Profiler";case _:return"StrictMode";case Z:return"Suspense";case K:return"SuspenseList";case ne:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case P:return"Portal";case X:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case Q:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ee:return r=e.displayName||null,r!==null?r:n(e.type)||"Memo";case F:r=e._payload,e=e._init;try{return n(e(r))}catch{}}return null}function s(e){return""+e}function o(e){try{s(e);var r=!1}catch{r=!0}if(r){r=console;var c=r.error,d=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return c.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",d),s(e)}}function i(e){if(e===E)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===F)return"<...>";try{var r=n(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function a(){var e=L.A;return e===null?null:e.getOwner()}function u(){return Error("react-stack-top-frame")}function g(e){if(M.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function p(e,r){function c(){D||(D=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}c.isReactWarning=!0,Object.defineProperty(e,"key",{get:c,configurable:!0})}function k(){var e=n(this.type);return Y[e]||(Y[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function m(e,r,c,d,A,I){var f=c.ref;return e={$$typeof:T,type:e,key:r,props:c,_owner:d},(f!==void 0?f:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:k}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function w(e,r,c,d,A,I){var f=r.children;if(f!==void 0)if(d)if(re(f)){for(d=0;d<f.length;d++)h(f[d]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(f);if(M.call(r,"key")){f=n(e);var y=Object.keys(r).filter(function(se){return se!=="key"});d=0<y.length?"{key: someKey, "+y.join(": ..., ")+": ...}":"{key: someKey}",V[f+d]||(y=0<y.length?"{"+y.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var B;function ie(){return B||(B=1,process.env.NODE_ENV!=="production"&&(function(){function n(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case E:return"Fragment";case N:return"Profiler";case _:return"StrictMode";case Z:return"Suspense";case K:return"SuspenseList";case ne:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case P:return"Portal";case X:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case Q:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ee:return r=e.displayName||null,r!==null?r:n(e.type)||"Memo";case F:r=e._payload,e=e._init;try{return n(e(r))}catch{}}return null}function s(e){return""+e}function i(e){try{s(e);var r=!1}catch{r=!0}if(r){r=console;var l=r.error,d=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",d),s(e)}}function o(e){if(e===E)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===F)return"<...>";try{var r=n(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function a(){var e=L.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function p(e){if($.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function f(e,r){function l(){D||(D=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function k(){var e=n(this.type);return Y[e]||(Y[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function m(e,r,l,d,A,U){var g=l.ref;return e={$$typeof:T,type:e,key:r,props:l,_owner:d},(g!==void 0?g:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:k}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:U}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function w(e,r,l,d,A,U){var g=r.children;if(g!==void 0)if(d)if(re(g)){for(d=0;d<g.length;d++)h(g[d]);Object.freeze&&Object.freeze(g)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(g);if($.call(r,"key")){g=n(e);var y=Object.keys(r).filter(function(se){return se!=="key"});d=0<y.length?"{key: someKey, "+y.join(": ..., ")+": ...}":"{key: someKey}",J[g+d]||(y=0<y.length?"{"+y.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,d,f,y,f),V[f+d]=!0)}if(f=null,c!==void 0&&(o(c),f=""+c),g(r)&&(o(r.key),f=""+r.key),"key"in r){c={};for(var z in r)z!=="key"&&(c[z]=r[z])}else c=r;return f&&p(c,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,f,c,a(),A,I)}function h(e){v(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===F&&(e._payload.status==="fulfilled"?v(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function v(e){return typeof e=="object"&&e!==null&&e.$$typeof===T}var S=l,T=Symbol.for("react.transitional.element"),P=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),X=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),K=Symbol.for("react.suspense_list"),ee=Symbol.for("react.memo"),F=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),L=S.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=Object.prototype.hasOwnProperty,re=Array.isArray,U=console.createTask?console.createTask:function(){return null};S={react_stack_bottom_frame:function(e){return e()}};var D,Y={},$=S.react_stack_bottom_frame.bind(S,u)(),W=U(i(u)),V={};j.Fragment=E,j.jsx=function(e,r,c){var d=1e4>L.recentlyCreatedOwnerStacks++;return w(e,r,c,!1,d?Error("react-stack-top-frame"):$,d?U(i(e)):W)},j.jsxs=function(e,r,c){var d=1e4>L.recentlyCreatedOwnerStacks++;return w(e,r,c,!0,d?Error("react-stack-top-frame"):$,d?U(i(e)):W)}})()),j}var B;function ae(){return B||(B=1,process.env.NODE_ENV==="production"?O.exports=oe():O.exports=ie()),O.exports}var t=ae();const ce=`:root {
22
+ <%s key={someKey} {...props} />`,d,g,y,g),J[g+d]=!0)}if(g=null,l!==void 0&&(i(l),g=""+l),p(r)&&(i(r.key),g=""+r.key),"key"in r){l={};for(var z in r)z!=="key"&&(l[z]=r[z])}else l=r;return g&&f(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),m(e,g,l,a(),A,U)}function h(e){v(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===F&&(e._payload.status==="fulfilled"?v(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function v(e){return typeof e=="object"&&e!==null&&e.$$typeof===T}var S=u,T=Symbol.for("react.transitional.element"),P=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),X=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),K=Symbol.for("react.suspense_list"),ee=Symbol.for("react.memo"),F=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),te=Symbol.for("react.client.reference"),L=S.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,re=Array.isArray,I=console.createTask?console.createTask:function(){return null};S={react_stack_bottom_frame:function(e){return e()}};var D,Y={},W=S.react_stack_bottom_frame.bind(S,c)(),V=I(o(c)),J={};R.Fragment=E,R.jsx=function(e,r,l){var d=1e4>L.recentlyCreatedOwnerStacks++;return w(e,r,l,!1,d?Error("react-stack-top-frame"):W,d?I(o(e)):V)},R.jsxs=function(e,r,l){var d=1e4>L.recentlyCreatedOwnerStacks++;return w(e,r,l,!0,d?Error("react-stack-top-frame"):W,d?I(o(e)):V)}})()),R}var H;function ae(){return H||(H=1,process.env.NODE_ENV==="production"?O.exports=oe():O.exports=ie()),O.exports}var t=ae();const ce=`:root {
23
23
  --background: 0 0% 100%;
24
24
  --foreground: 222.2 84% 4.9%;
25
25
 
@@ -565,4 +565,74 @@ React keys must be passed directly to JSX without using spread:
565
565
  }
566
566
 
567
567
  /* Note: Modal styles are defined in Studio-UI where the picker modal is rendered */
568
- `;let H=!1;function G(){if(H||typeof document>"u")return;const n=document.createElement("style");n.setAttribute("data-telemetryos-sdk",""),n.textContent=ce,document.head.appendChild(n),H=!0}G();function le({children:n}){const s=()=>{const o=window.matchMedia("(prefers-color-scheme: dark)"),i=g=>{let p;g==="system"?p=o.matches:p=g!=="light",p?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},a=b.environment().subscribeColorScheme(i);a.catch(console.error);const u=()=>{b.environment().getColorScheme().then(i).catch(console.error)};return o.addEventListener("change",u),()=>{a.then(()=>b.environment().unsubscribeColorScheme(i)).catch(console.error),o.removeEventListener("change",u)}};return l.useEffect(s,[]),t.jsx("div",{className:"settings__container",children:n})}function ue({children:n}){return t.jsx("div",{className:"settings__box",children:n})}function de({children:n}){return t.jsx("div",{className:"settings__heading",children:n})}function fe(){return t.jsx("hr",{className:"settings__divider"})}function pe({children:n}){return t.jsx("label",{className:"settings__field",children:n})}function ge({children:n}){return t.jsx("div",{className:"settings__label",children:n})}function me({children:n}){return t.jsx("div",{className:"settings__hint",children:n})}function he({children:n}){return t.jsx("div",{className:"settings__error",children:n})}function _e({children:n}){return t.jsx("div",{className:"settings__input-frame",children:n})}function be({children:n}){return t.jsx("div",{className:"settings__textarea-frame",children:n})}function xe({children:n}){return t.jsx("div",{className:"settings__select-frame",children:n})}function ve({children:n}){return t.jsx("div",{className:"settings__slider-frame",children:n})}function Se({children:n}){return t.jsx("div",{className:"settings__slider-ruler",children:n})}function ye({children:n}){return t.jsx("div",{className:"settings__color-frame",children:n})}function ke({children:n}){return t.jsx("label",{className:"settings__switch-frame",children:n})}function we({children:n}){return t.jsx("span",{className:"settings__switch-label",children:n})}function Ee({children:n}){return t.jsx("label",{className:"settings__checkbox-frame",children:n})}function Re({children:n}){return t.jsx("span",{className:"settings__checkbox-label",children:n})}function je({children:n}){return t.jsx("label",{className:"settings__radio-frame",children:n})}function Te({children:n}){return t.jsx("span",{className:"settings__radio-label",children:n})}function Ne({children:n}){return t.jsx("div",{className:"settings__button-frame",children:n})}G();function Ce({value:n,onChange:s,disabled:o=!1,placeholder:i="Select media...",accept:a}){const[u,g]=l.useState(!1),p=async()=>{if(!(o||u)){g(!0);try{const m=await b.media().openPicker({accept:a,currentValue:n??void 0});m&&s(m)}catch(m){console.error("Failed to open media picker:",m)}finally{g(!1)}}},k=m=>{m.stopPropagation(),s(null)};return t.jsxs("div",{className:"settings__media-select",children:[t.jsx("button",{type:"button",className:`settings__media-select-trigger ${n?"settings__media-select-trigger--has-value":""}`,onClick:p,disabled:o||u,title:n?`${n.name} - Click to change`:i,children:n?t.jsx("img",{src:n.thumbnailUrl,alt:n.name,className:"settings__media-select-thumbnail"}):t.jsx("div",{className:"settings__media-select-thumbnail settings__media-select-thumbnail--empty",children:u?t.jsx(Pe,{}):t.jsx(Oe,{})})}),n&&!o&&t.jsx("button",{type:"button",className:"settings__media-select-clear",onClick:k,title:"Remove image",children:t.jsx(Ae,{})})]})}function Ae(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}function Oe(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),t.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),t.jsx("polyline",{points:"21 15 16 10 5 21"})]})}function Pe(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("circle",{cx:"12",cy:"12",r:"10",opacity:"0.25"}),t.jsx("path",{d:"M12 2a10 10 0 0 1 10 10",strokeLinecap:"round",children:t.jsx("animateTransform",{attributeName:"transform",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"1s",repeatCount:"indefinite"})})]})}function x(n,s,o,i=0){var a;const[u,g]=l.useState(!0),p=l.useRef(!0),[k]=l.useState(o),[m,w]=l.useState(void 0),[h,v]=l.useState(void 0),S=l.useCallback(_=>{p.current?console.error("Cannot set store value while loading. Destructure and check the first element of the returned tuple."):v(_)},[]),T=()=>{g(!0),p.current=!0,w(void 0),v(void 0);const _=N=>{w(C=>JSON.stringify(C)===JSON.stringify(N)?C:N),g(!1),p.current=!1};return n.subscribe(s,_).catch(console.error),()=>{n.unsubscribe(s,_).catch(console.error)}};l.useEffect(T,[n,s]);const P=()=>{if(!p.current&&typeof h<"u"){const _=setTimeout(()=>{n.set(s,h)},i);return()=>clearTimeout(_)}};l.useEffect(P,[h,n,s,i]);const E=()=>{if(JSON.stringify(h)===JSON.stringify(m)){const _=setTimeout(()=>{v(void 0)},500);return()=>clearTimeout(_)}};return l.useEffect(E,[h,m]),[u,(a=h??m)!==null&&a!==void 0?a:k,S]}function Fe(n,s){return(o,i=0)=>x(o,n,s,i)}function Le(n,s){return(o=0)=>{const i=l.useMemo(()=>b.store().instance,[]);return x(i,n,s,o)}}function Ue(n,s){return(o=0)=>{const i=l.useMemo(()=>b.store().application,[]);return x(i,n,s,o)}}function Ie(n,s){return(o=0)=>{const i=l.useMemo(()=>b.store().device,[]);return x(i,n,s,o)}}function ze(n,s,o){return(i=0)=>{const a=l.useMemo(()=>b.store().shared(o),[o]);return x(a,n,s,i)}}function Me(n,s){return(o,i=0)=>{const a=l.useMemo(()=>b.store().shared(o),[o]);return x(a,n,s,i)}}function De(n){const s=()=>{document.documentElement.style.fontSize=`calc(1vmax * ${n})`};l.useEffect(s,[n])}function Ye(){const[n,s]=l.useState(()=>window.innerWidth/window.innerHeight),o=()=>{const i=()=>{s(window.innerWidth/window.innerHeight)};return window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)};return l.useEffect(o,[]),n}function $e(n,s){return{uiWidthFactor:Math.min(s,1)/n,uiHeightFactor:Math.max(s,1)/n}}exports.SettingsBox=ue;exports.SettingsButtonFrame=Ne;exports.SettingsCheckboxFrame=Ee;exports.SettingsCheckboxLabel=Re;exports.SettingsColorFrame=ye;exports.SettingsContainer=le;exports.SettingsDivider=fe;exports.SettingsError=he;exports.SettingsField=pe;exports.SettingsHeading=de;exports.SettingsHint=me;exports.SettingsInputFrame=_e;exports.SettingsLabel=ge;exports.SettingsMediaSelect=Ce;exports.SettingsRadioFrame=je;exports.SettingsRadioLabel=Te;exports.SettingsSelectFrame=xe;exports.SettingsSliderFrame=ve;exports.SettingsSliderRuler=Se;exports.SettingsSwitchFrame=ke;exports.SettingsSwitchLabel=we;exports.SettingsTextAreaFrame=be;exports.createUseApplicationStoreState=Ue;exports.createUseDeviceStoreState=Ie;exports.createUseDynamicNamespaceStoreState=Me;exports.createUseInstanceStoreState=Le;exports.createUseSharedStoreState=ze;exports.createUseStoreState=Fe;exports.useStoreState=x;exports.useUiAspectRatio=Ye;exports.useUiResponsiveFactors=$e;exports.useUiScaleToSetRem=De;
568
+
569
+ /* =============================================================================
570
+ Sections (collapsible accordion)
571
+ ============================================================================= */
572
+
573
+ .settings__section {
574
+ border: 1px solid hsl(var(--border));
575
+ border-radius: var(--radius);
576
+ overflow: hidden;
577
+ }
578
+
579
+ .settings__section-header {
580
+ display: flex;
581
+ align-items: center;
582
+ width: 100%;
583
+ padding: 12px 16px;
584
+ background: hsl(var(--card));
585
+ border: none;
586
+ color: hsl(var(--foreground));
587
+ font-size: 14px;
588
+ font-weight: 600;
589
+ font-family: inherit;
590
+ cursor: pointer;
591
+ gap: 8px;
592
+ }
593
+
594
+ .settings__section-header:hover {
595
+ background: hsl(var(--accent));
596
+ }
597
+
598
+ .settings__section-arrow {
599
+ display: inline-block;
600
+ font-size: 10px;
601
+ color: hsl(var(--muted-foreground));
602
+ transition: transform 0.2s ease;
603
+ transform: rotate(0deg);
604
+ }
605
+
606
+ .settings__section-arrow--open {
607
+ transform: rotate(90deg);
608
+ }
609
+
610
+ .settings__section-title {
611
+ flex: 1;
612
+ text-align: left;
613
+ }
614
+
615
+ .settings__section-body {
616
+ display: grid;
617
+ grid-template-rows: 0fr;
618
+ transition: grid-template-rows 0.2s ease;
619
+ }
620
+
621
+ .settings__section-body--open {
622
+ grid-template-rows: 1fr;
623
+ }
624
+
625
+ .settings__section-content {
626
+ overflow: hidden;
627
+ min-height: 0;
628
+ display: flex;
629
+ flex-direction: column;
630
+ gap: 16px;
631
+ padding: 0 16px;
632
+ transition: padding 0.2s ease;
633
+ }
634
+
635
+ .settings__section-body--open .settings__section-content {
636
+ padding: 16px;
637
+ }
638
+ `;let G=!1;function M(){if(G||typeof document>"u")return;const n=document.createElement("style");n.setAttribute("data-telemetryos-sdk",""),n.textContent=ce,document.head.appendChild(n),G=!0}M();function le({children:n}){const s=()=>{const i=window.matchMedia("(prefers-color-scheme: dark)"),o=p=>{let f;p==="system"?f=i.matches:f=p!=="light",f?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},a=x.environment().subscribeColorScheme(o);a.catch(console.error);const c=()=>{x.environment().getColorScheme().then(o).catch(console.error)};return i.addEventListener("change",c),()=>{a.then(()=>x.environment().unsubscribeColorScheme(o)).catch(console.error),i.removeEventListener("change",c)}};return u.useEffect(s,[]),t.jsx("div",{className:"settings__container",children:n})}function ue({children:n}){return t.jsx("div",{className:"settings__box",children:n})}function de({children:n}){return t.jsx("div",{className:"settings__heading",children:n})}function ge(){return t.jsx("hr",{className:"settings__divider"})}function fe({children:n}){return t.jsx("label",{className:"settings__field",children:n})}function pe({children:n}){return t.jsx("div",{className:"settings__label",children:n})}function me({children:n}){return t.jsx("div",{className:"settings__hint",children:n})}function he({children:n}){return t.jsx("div",{className:"settings__error",children:n})}function _e({children:n}){return t.jsx("div",{className:"settings__input-frame",children:n})}function xe({children:n}){return t.jsx("div",{className:"settings__textarea-frame",children:n})}function be({children:n}){return t.jsx("div",{className:"settings__select-frame",children:n})}function ve({children:n}){return t.jsx("div",{className:"settings__slider-frame",children:n})}function Se({children:n}){return t.jsx("div",{className:"settings__slider-ruler",children:n})}function ye({children:n}){return t.jsx("div",{className:"settings__color-frame",children:n})}function ke({children:n}){return t.jsx("label",{className:"settings__switch-frame",children:n})}function we({children:n}){return t.jsx("span",{className:"settings__switch-label",children:n})}function Ee({children:n}){return t.jsx("label",{className:"settings__checkbox-frame",children:n})}function je({children:n}){return t.jsx("span",{className:"settings__checkbox-label",children:n})}function Re({children:n}){return t.jsx("label",{className:"settings__radio-frame",children:n})}function Te({children:n}){return t.jsx("span",{className:"settings__radio-label",children:n})}function Ne({children:n}){return t.jsx("div",{className:"settings__button-frame",children:n})}M();function Ce({value:n,onChange:s,disabled:i=!1,placeholder:o="Select media...",accept:a}){const[c,p]=u.useState(!1),f=async()=>{if(!(i||c)){p(!0);try{const m=await x.media().openPicker({accept:a,currentValue:n??void 0});m&&s(m)}catch(m){console.error("Failed to open media picker:",m)}finally{p(!1)}}},k=m=>{m.stopPropagation(),s(null)};return t.jsxs("div",{className:"settings__media-select",children:[t.jsx("button",{type:"button",className:`settings__media-select-trigger ${n?"settings__media-select-trigger--has-value":""}`,onClick:f,disabled:i||c,title:n?`${n.name} - Click to change`:o,children:n?t.jsx("img",{src:n.thumbnailUrl,alt:n.name,className:"settings__media-select-thumbnail"}):t.jsx("div",{className:"settings__media-select-thumbnail settings__media-select-thumbnail--empty",children:c?t.jsx(Pe,{}):t.jsx(Oe,{})})}),n&&!i&&t.jsx("button",{type:"button",className:"settings__media-select-clear",onClick:k,title:"Remove image",children:t.jsx(Ae,{})})]})}function Ae(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}function Oe(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),t.jsx("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),t.jsx("polyline",{points:"21 15 16 10 5 21"})]})}function Pe(){return t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[t.jsx("circle",{cx:"12",cy:"12",r:"10",opacity:"0.25"}),t.jsx("path",{d:"M12 2a10 10 0 0 1 10 10",strokeLinecap:"round",children:t.jsx("animateTransform",{attributeName:"transform",type:"rotate",from:"0 12 12",to:"360 12 12",dur:"1s",repeatCount:"indefinite"})})]})}M();function Fe({title:n,defaultOpen:s=!0,children:i}){const[o,a]=u.useState(s),c=u.useId();return t.jsxs("div",{className:"settings__section",children:[t.jsxs("button",{type:"button",className:"settings__section-header",onClick:()=>a(!o),"aria-expanded":o,"aria-controls":c,children:[t.jsx("span",{className:`settings__section-arrow ${o?"settings__section-arrow--open":""}`,children:"▶"}),t.jsx("span",{className:"settings__section-title",children:n})]}),t.jsx("div",{id:c,className:`settings__section-body ${o?"settings__section-body--open":""}`,...!o&&{inert:!0},children:t.jsx("div",{className:"settings__section-content",children:i})})]})}function b(n,s,i,o=0){var a;const[c,p]=u.useState(!0),f=u.useRef(!0),[k]=u.useState(i),[m,w]=u.useState(void 0),[h,v]=u.useState(void 0),S=u.useCallback(_=>{f.current?console.error("Cannot set store value while loading. Destructure and check the first element of the returned tuple."):v(_)},[]),T=()=>{p(!0),f.current=!0,w(void 0),v(void 0);const _=N=>{w(C=>JSON.stringify(C)===JSON.stringify(N)?C:N),p(!1),f.current=!1};return n.subscribe(s,_).catch(console.error),()=>{n.unsubscribe(s,_).catch(console.error)}};u.useEffect(T,[n,s]);const P=()=>{if(!f.current&&typeof h<"u"){const _=setTimeout(()=>{n.set(s,h)},o);return()=>clearTimeout(_)}};u.useEffect(P,[h,n,s,o]);const E=()=>{if(JSON.stringify(h)===JSON.stringify(m)){const _=setTimeout(()=>{v(void 0)},500);return()=>clearTimeout(_)}};return u.useEffect(E,[h,m]),[c,(a=h??m)!==null&&a!==void 0?a:k,S]}function Le(n,s){return(i,o=0)=>b(i,n,s,o)}function Ie(n,s){return(i=0)=>{const o=u.useMemo(()=>x.store().instance,[]);return b(o,n,s,i)}}function Ue(n,s){return(i=0)=>{const o=u.useMemo(()=>x.store().application,[]);return b(o,n,s,i)}}function ze(n,s){return(i=0)=>{const o=u.useMemo(()=>x.store().device,[]);return b(o,n,s,i)}}function Me(n,s,i){return(o=0)=>{const a=u.useMemo(()=>x.store().shared(i),[i]);return b(a,n,s,o)}}function $e(n,s){return(i,o=0)=>{const a=u.useMemo(()=>x.store().shared(i),[i]);return b(a,n,s,o)}}function De(n){const s=()=>{document.documentElement.style.fontSize=`calc(1vmax * ${n})`};u.useEffect(s,[n])}function Ye(){const[n,s]=u.useState(()=>window.innerWidth/window.innerHeight),i=()=>{const o=()=>{s(window.innerWidth/window.innerHeight)};return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)};return u.useEffect(i,[]),n}function We(n,s){return{uiWidthFactor:Math.min(s,1)/n,uiHeightFactor:Math.max(s,1)/n}}exports.SettingsBox=ue;exports.SettingsButtonFrame=Ne;exports.SettingsCheckboxFrame=Ee;exports.SettingsCheckboxLabel=je;exports.SettingsColorFrame=ye;exports.SettingsContainer=le;exports.SettingsDivider=ge;exports.SettingsError=he;exports.SettingsField=fe;exports.SettingsHeading=de;exports.SettingsHint=me;exports.SettingsInputFrame=_e;exports.SettingsLabel=pe;exports.SettingsMediaSelect=Ce;exports.SettingsRadioFrame=Re;exports.SettingsRadioLabel=Te;exports.SettingsSection=Fe;exports.SettingsSelectFrame=be;exports.SettingsSliderFrame=ve;exports.SettingsSliderRuler=Se;exports.SettingsSwitchFrame=ke;exports.SettingsSwitchLabel=we;exports.SettingsTextAreaFrame=xe;exports.createUseApplicationStoreState=Ue;exports.createUseDeviceStoreState=ze;exports.createUseDynamicNamespaceStoreState=$e;exports.createUseInstanceStoreState=Ie;exports.createUseSharedStoreState=Me;exports.createUseStoreState=Le;exports.useStoreState=b;exports.useUiAspectRatio=Ye;exports.useUiResponsiveFactors=We;exports.useUiScaleToSetRem=De;