@bacca2095/webphone 1.1.0 → 1.2.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.
@@ -55,4 +55,4 @@ For more information, see https://www.reka-ui.com/docs/components/${n}`,s=`Warni
55
55
  `){a.debug(`received message with CRLF Keep Alive response`);return}else if(typeof e!=`string`){try{e=this.textDecoder?this.textDecoder.decode(e):String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){a.debug(`received binary message failed to be converted into string: ${e}`);return}a.debug(`received binary message:\n\n${e}\n`)}else a.debug(`received text message:\n\n${e}\n`);this.ondata({transport:this,message:e})}}})),fD=o((e=>{var t=HE(),n=FE(),r=qE(),i=new t(`Parser`);e.parseMessage=(e,t)=>{let s,c,l=e.indexOf(`\r
56
56
  `);if(l===-1){i.warn(`parseMessage() | no CRLF found, not a SIP message`);return}let u=e.substring(0,l),d=n.parse(u,`Request_Response`);if(d===-1){i.warn(`parseMessage() | error parsing first line of SIP message: "${u}"`);return}else d.status_code?(s=new r.IncomingResponse,s.status_code=d.status_code,s.reason_phrase=d.reason_phrase):(s=new r.IncomingRequest(t),s.method=d.method,s.ruri=d.uri);s.data=e;let f=l+2;for(;;){if(l=a(e,f),l===-2){c=f+2;break}else if(l===-1){i.warn(`parseMessage() | malformed message`);return}if(d=o(s,e,f,l),d!==!0){i.warn(`parseMessage() |`,d.error);return}f=l+2}if(s.hasHeader(`content-length`)){let t=s.getHeader(`content-length`);s.body=e.substr(c,t)}else s.body=e.substring(c);return s};function a(e,t){let n=t,r=0,i=0;if(e.substring(n,n+2).match(/(^\r\n)/))return-2;for(;r===0;){if(i=e.indexOf(`\r
57
57
  `,n),i===-1)return i;!e.substring(i+2,i+4).match(/(^\r\n)/)&&e.charAt(i+2).match(/(^\s+)/)?n=i+2:r=i}return r}function o(e,t,i,a){let o,s=t.indexOf(`:`,i),c=t.substring(i,s).trim(),l=t.substring(s+1,a).trim();switch(c.toLowerCase()){case`via`:case`v`:e.addHeader(`via`,l),e.getHeaders(`via`).length===1?(o=e.parseHeader(`Via`),o&&(e.via=o,e.via_branch=o.branch)):o=0;break;case`from`:case`f`:e.setHeader(`from`,l),o=e.parseHeader(`from`),o&&(e.from=o,e.from_tag=o.getParam(`tag`));break;case`to`:case`t`:e.setHeader(`to`,l),o=e.parseHeader(`to`),o&&(e.to=o,e.to_tag=o.getParam(`tag`));break;case`record-route`:if(o=n.parse(l,`Record_Route`),o===-1)o=void 0;else for(let t of o)e.addHeader(`record-route`,l.substring(t.possition,t.offset)),e.headers[`Record-Route`][e.getHeaders(`record-route`).length-1].parsed=t.parsed;break;case`call-id`:case`i`:e.setHeader(`call-id`,l),o=e.parseHeader(`call-id`),o&&(e.call_id=l);break;case`contact`:case`m`:if(o=n.parse(l,`Contact`),o===-1)o=void 0;else for(let t of o)e.addHeader(`contact`,l.substring(t.possition,t.offset)),e.headers.Contact[e.getHeaders(`contact`).length-1].parsed=t.parsed;break;case`content-length`:case`l`:e.setHeader(`content-length`,l),o=e.parseHeader(`content-length`);break;case`content-type`:case`c`:e.setHeader(`content-type`,l),o=e.parseHeader(`content-type`);break;case`cseq`:e.setHeader(`cseq`,l),o=e.parseHeader(`cseq`),o&&(e.cseq=o.value),e instanceof r.IncomingResponse&&(e.method=o.method);break;case`max-forwards`:e.setHeader(`max-forwards`,l),o=e.parseHeader(`max-forwards`);break;case`www-authenticate`:e.setHeader(`www-authenticate`,l),o=e.parseHeader(`www-authenticate`);break;case`proxy-authenticate`:e.setHeader(`proxy-authenticate`,l),o=e.parseHeader(`proxy-authenticate`);break;case`session-expires`:case`x`:e.setHeader(`session-expires`,l),o=e.parseHeader(`session-expires`),o&&(e.session_expires=o.expires,e.session_expires_refresher=o.refresher);break;case`refer-to`:case`r`:e.setHeader(`refer-to`,l),o=e.parseHeader(`refer-to`),o&&(e.refer_to=o);break;case`replaces`:e.setHeader(`replaces`,l),o=e.parseHeader(`replaces`),o&&(e.replaces=o);break;case`event`:case`o`:e.setHeader(`event`,l),o=e.parseHeader(`event`),o&&(e.event=o);break;default:e.addHeader(c,l),o=0}return o===void 0?{error:`error parsing header "${c}"`}:!0}})),pD=o(((e,t)=>{var n=HE(),r=ME(),i=qE(),a=LE(),o=new n(`sanityCheck`),s=[y],c=[p,m,h,g],l=[_,v],u,d,f;t.exports=(e,t,n)=>{u=e,d=t,f=n;for(let e of s)if(e()===!1)return!1;if(u instanceof i.IncomingRequest){for(let e of c)if(e()===!1)return!1}else if(u instanceof i.IncomingResponse){for(let e of l)if(e()===!1)return!1}return!0};function p(){if(u.s(`to`).uri.scheme!==`sip`)return b(416),!1}function m(){if(!u.to_tag&&u.call_id.substr(0,5)===d.configuration.jssip_id)return b(482),!1}function h(){if(a.str_utf8_length(u.body)<u.getHeader(`content-length`))return b(400),!1}function g(){let e=u.from_tag,t=u.call_id,n=u.cseq,i;if(!u.to_tag){if(u.method===r.INVITE){if(d._transactions.ist[u.via_branch])return!1;for(let r in d._transactions.ist)if(Object.prototype.hasOwnProperty.call(d._transactions.ist,r)&&(i=d._transactions.ist[r],i.request.from_tag===e&&i.request.call_id===t&&i.request.cseq===n))return b(482),!1}else if(d._transactions.nist[u.via_branch])return!1;else for(let r in d._transactions.nist)if(Object.prototype.hasOwnProperty.call(d._transactions.nist,r)&&(i=d._transactions.nist[r],i.request.from_tag===e&&i.request.call_id===t&&i.request.cseq===n))return b(482),!1}}function _(){if(u.getHeaders(`via`).length>1)return o.debug(`more than one Via header field present in the response, dropping the response`),!1}function v(){if(a.str_utf8_length(u.body)<u.getHeader(`content-length`))return o.debug(`message body length is lower than the value in Content-Length header field, dropping the response`),!1}function y(){for(let e of[`from`,`to`,`call_id`,`cseq`,`via`])if(!u.hasHeader(e))return o.debug(`missing mandatory header field : ${e}, dropping the response`),!1}function b(e){let t=u.getHeaders(`via`),n,i=`SIP/2.0 ${e} ${r.REASON_PHRASE[e]}\r\n`;for(let e of t)i+=`Via: ${e}\r\n`;n=u.getHeader(`To`),u.to_tag||(n+=`;tag=${a.newTag()}`),i+=`To: ${n}\r\n`,i+=`From: ${u.getHeader(`From`)}\r\n`,i+=`Call-ID: ${u.call_id}\r\n`,i+=`CSeq: ${u.cseq} ${u.method}\r\n`,i+=`\r
58
- `,f.send(i)}})),mD=o((e=>{var t=LE(),n=ME(),r=FE(),i=IE(),a=uD(),o=NE();e.settings={authorization_user:null,password:null,realm:null,ha1:null,authorization_jwt:null,display_name:null,uri:null,contact_uri:null,instance_id:null,use_preloaded_route:!1,session_timers:!0,session_timers_refresh_method:n.UPDATE,session_timers_force_refresher:!1,no_answer_timeout:60,register:!0,register_expires:600,register_from_tag_trail:``,registrar_server:null,sockets:null,connection_recovery_max_interval:n.CONNECTION_RECOVERY_MAX_INTERVAL,connection_recovery_min_interval:n.CONNECTION_RECOVERY_MIN_INTERVAL,extra_headers:null,via_host:`${t.createRandomToken(12)}.invalid`};var s={mandatory:{sockets(e){let t=[];if(a.isSocket(e))t.push({socket:e});else if(Array.isArray(e)&&e.length)for(let n of e)Object.prototype.hasOwnProperty.call(n,`socket`)&&a.isSocket(n.socket)?t.push(n):a.isSocket(n)&&t.push({socket:n});else return;return t},uri(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&t.user)return t}},optional:{authorization_user(e){if(r.parse(`"${e}"`,`quoted_string`)!==-1)return e},authorization_jwt(e){if(typeof e==`string`)return e},user_agent(e){if(typeof e==`string`)return e},connection_recovery_max_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},connection_recovery_min_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},contact_uri(e){if(typeof e==`string`){let t=r.parse(e,`SIP_URI`);if(t!==-1)return t}},display_name(e){return e},instance_id(e){if(/^uuid:/i.test(e)&&(e=e.substr(5)),r.parse(e,`uuid`)!==-1)return e},no_answer_timeout(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},session_timers(e){if(typeof e==`boolean`)return e},session_timers_refresh_method(e){if(typeof e==`string`&&(e=e.toUpperCase(),e===n.INVITE||e===n.UPDATE))return e},session_timers_force_refresher(e){if(typeof e==`boolean`)return e},password(e){return String(e)},realm(e){return String(e)},ha1(e){return String(e)},register(e){if(typeof e==`boolean`)return e},register_expires(e){if(t.isDecimal(e)){let t=Number(e);if(t>=0)return t}},register_from_tag_trail(e){return typeof e==`function`?e:String(e)},registrar_server(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&!t.user)return t},use_preloaded_route(e){if(typeof e==`boolean`)return e},extra_headers(e){let t=[];if(Array.isArray(e)&&e.length)for(let n of e)typeof n==`string`&&t.push(n);else return;return t}}};e.load=(e,n)=>{for(let t in s.mandatory)if(n.hasOwnProperty(t)){let r=n[t],i=s.mandatory[t](r);if(i!==void 0)e[t]=i;else throw new o.ConfigurationError(t,r)}else throw new o.ConfigurationError(t);for(let r in s.optional)if(n.hasOwnProperty(r)){let i=n[r];if(t.isEmpty(i))continue;let a=s.optional[r](i);if(a!==void 0)e[r]=a;else throw new o.ConfigurationError(r,i)}}})),hD=o(((e,t)=>{var n=RE().EventEmitter,r=HE(),i=ME(),a=QE(),o=aD(),s=oD(),c=sD(),l=cD(),u=lD(),d=XE(),f=dD(),p=LE(),m=NE(),h=IE(),g=fD(),_=qE(),v=pD(),y=mD(),b=new r(`UA`),x={STATUS_INIT:0,STATUS_READY:1,STATUS_USER_CLOSED:2,STATUS_NOT_READY:3,CONFIGURATION_ERROR:1,NETWORK_ERROR:2};t.exports=class extends n{static get C(){return x}constructor(e){if(!e)throw TypeError(`Not enough arguments`);let t=[`password`,`ha1`,`authorization_jwt`];b.debug(`new() [configuration:%o]`,Object.entries(e).filter(([e])=>!t.includes(e))),super(),this._cache={credentials:{}},this._configuration=Object.assign({},y.settings),this._dynConfiguration={},this._dialogs={},this._applicants={},this._sessions={},this._transport=null,this._contact=null,this._status=x.STATUS_INIT,this._error=null,this._transactions={nist:{},nict:{},ist:{},ict:{}},this._data={},this._closeTimer=null;try{this._loadConfig(e)}catch(e){throw this._status=x.STATUS_NOT_READY,this._error=x.CONFIGURATION_ERROR,e}this._registrator=new a(this)}get C(){return x}get status(){return this._status}get contact(){return this._contact}get configuration(){return this._configuration}get transport(){return this._transport}start(){b.debug(`start()`),this._status===x.STATUS_INIT?this._transport.connect():this._status===x.STATUS_USER_CLOSED?(b.debug(`restarting UA`),this._closeTimer!==null&&(clearTimeout(this._closeTimer),this._closeTimer=null,this._transport.disconnect()),this._status=x.STATUS_INIT,this._transport.connect()):this._status===x.STATUS_READY?b.debug(`UA is in READY status, not restarted`):b.debug(`ERROR: connection is down, Auto-Recovery system is trying to reconnect`),this._dynConfiguration.register=this._configuration.register}register(){b.debug(`register()`),this._dynConfiguration.register=!0,this._registrator.register()}unregister(e){b.debug(`unregister()`),this._dynConfiguration.register=!1,this._registrator.unregister(e)}registrator(){return this._registrator}isRegistered(){return this._registrator.registered}isConnected(){return this._transport.isConnected()}call(e,t){b.debug(`call()`);let n=new o(this);return n.connect(e,t),n}sendMessage(e,t,n){b.debug(`sendMessage()`);let r=new l(this);return r.send(e,t,n),r}subscribe(e,t,n,r){return b.debug(`subscribe()`),new s(this,e,t,n,r)}notify(e,t,n){return b.debug(`notify()`),new c(this,e,t,n)}sendOptions(e,t,n){b.debug(`sendOptions()`);let r=new u(this);return r.send(e,t,n),r}terminateSessions(e){b.debug(`terminateSessions()`);for(let t in this._sessions)this._sessions[t].isEnded()||this._sessions[t].terminate(e)}stop(){if(b.debug(`stop()`),this._dynConfiguration={},this._status===x.STATUS_USER_CLOSED){b.debug(`UA already closed`);return}this._registrator.close();let e=Object.keys(this._sessions).length;for(let e in this._sessions)if(Object.prototype.hasOwnProperty.call(this._sessions,e)){b.debug(`closing session ${e}`);try{this._sessions[e].terminate()}catch{}}for(let e in this._applicants)if(Object.prototype.hasOwnProperty.call(this._applicants,e))try{this._applicants[e].close()}catch{}this._status=x.STATUS_USER_CLOSED,Object.keys(this._transactions.nict).length+Object.keys(this._transactions.nist).length+Object.keys(this._transactions.ict).length+Object.keys(this._transactions.ist).length===0&&e===0?this._transport.disconnect():this._closeTimer=setTimeout(()=>{this._closeTimer=null,this._transport.disconnect()},2e3)}normalizeTarget(e){return p.normalizeTarget(e,this._configuration.hostport_params)}get(e){switch(e){case`authorization_user`:return this._configuration.authorization_user;case`realm`:return this._configuration.realm;case`ha1`:return this._configuration.ha1;case`authorization_jwt`:return this._configuration.authorization_jwt;default:b.warn(`get() | cannot get "%s" parameter in runtime`,e);return}}set(e,t){switch(e){case`authorization_user`:this._configuration.authorization_user=String(t);break;case`password`:this._configuration.password=String(t);break;case`realm`:this._configuration.realm=String(t);break;case`ha1`:this._configuration.ha1=String(t),this._configuration.password=null;break;case`authorization_jwt`:this._configuration.authorization_jwt=String(t);break;case`display_name`:this._configuration.display_name=t;break;case`extra_headers`:this._configuration.extra_headers=t;break;default:return b.warn(`set() | cannot set "%s" parameter in runtime`,e),!1}return!0}newTransaction(e){this._transactions[e.type][e.id]=e,this.emit(`newTransaction`,{transaction:e})}destroyTransaction(e){delete this._transactions[e.type][e.id],this.emit(`transactionDestroyed`,{transaction:e})}newDialog(e){this._dialogs[e.id]=e}destroyDialog(e){delete this._dialogs[e.id]}newMessage(e,t){this._applicants[e]=e,this.emit(`newMessage`,t)}newOptions(e,t){this._applicants[e]=e,this.emit(`newOptions`,t)}destroyMessage(e){delete this._applicants[e]}newRTCSession(e,t){this._sessions[e.id]=e,this.emit(`newRTCSession`,t)}destroyRTCSession(e){delete this._sessions[e.id]}registered(e){this.emit(`registered`,e)}unregistered(e){this.emit(`unregistered`,e)}registrationFailed(e){this.emit(`registrationFailed`,e)}receiveRequest(e){let t=e.method;if(e.ruri.user!==this._configuration.uri.user&&e.ruri.user!==this._contact.uri.user){b.debug(`Request-URI does not point to us`),e.method!==i.ACK&&e.reply_sl(404);return}if(e.ruri.scheme===i.SIPS){e.reply_sl(416);return}if(d.checkTransaction(this,e))return;if(t===i.INVITE?new d.InviteServerTransaction(this,this._transport,e):t!==i.ACK&&t!==i.CANCEL&&new d.NonInviteServerTransaction(this,this._transport,e),t===i.OPTIONS){if(this.listeners(`newOptions`).length===0){e.reply(200);return}new u(this).init_incoming(e)}else if(t===i.MESSAGE){if(this.listeners(`newMessage`).length===0){e.reply(405);return}new l(this).init_incoming(e)}else if(t===i.SUBSCRIBE){if(this.listeners(`newSubscribe`).length===0){e.reply(405);return}}else if(t===i.INVITE&&!e.to_tag&&this.listeners(`newRTCSession`).length===0){e.reply(405);return}let n,r;if(e.to_tag)n=this._findDialog(e.call_id,e.from_tag,e.to_tag),n?n.receiveRequest(e):t===i.NOTIFY?(r=this._findSession(e),r?r.receiveRequest(e):(b.debug(`received NOTIFY request for a non existent subscription`),e.reply(481,`Subscription does not exist`))):t!==i.ACK&&e.reply(481);else switch(t){case i.INVITE:if(window.RTCPeerConnection)if(e.hasHeader(`replaces`)){let t=e.replaces;n=this._findDialog(t.call_id,t.from_tag,t.to_tag),n?(r=n.owner,r.isEnded()?e.reply(603):r.receiveRequest(e)):e.reply(481)}else r=new o(this),r.init_incoming(e);else b.warn(`INVITE received but WebRTC is not supported`),e.reply(488);break;case i.BYE:e.reply(481);break;case i.CANCEL:r=this._findSession(e),r?r.receiveRequest(e):b.debug(`received CANCEL request for a non existent session`);break;case i.ACK:break;case i.NOTIFY:this.emit(`sipEvent`,{event:e.event,request:e}),e.reply(200);break;case i.SUBSCRIBE:c.init_incoming(e,()=>{this.emit(`newSubscribe`,{event:e.event,request:e})});break;default:e.reply(405);break}}_findSession({call_id:e,from_tag:t,to_tag:n}){let r=e+t,i=this._sessions[r],a=e+n,o=this._sessions[a];return i||o||null}_findDialog(e,t,n){let r=e+t+n,i=this._dialogs[r];return i||(r=e+n+t,i=this._dialogs[r],i||null)}_loadConfig(e){y.load(this._configuration,e),this._configuration.display_name===0&&(this._configuration.display_name=`0`),this._configuration.instance_id||(this._configuration.instance_id=p.newUUID()),this._configuration.jssip_id=p.createRandomToken(5);let t=this._configuration.uri.clone();t.user=null,this._configuration.hostport_params=t.toString().replace(/^sip:/i,``);try{this._transport=new f(this._configuration.sockets,{max_interval:this._configuration.connection_recovery_max_interval,min_interval:this._configuration.connection_recovery_min_interval}),this._transport.onconnecting=S.bind(this),this._transport.onconnect=C.bind(this),this._transport.ondisconnect=w.bind(this),this._transport.ondata=T.bind(this)}catch(e){throw b.warn(e),new m.ConfigurationError(`sockets`,this._configuration.sockets)}if(delete this._configuration.sockets,this._configuration.authorization_user||(this._configuration.authorization_user=this._configuration.uri.user),!this._configuration.registrar_server){let e=this._configuration.uri.clone();e.user=null,e.clearParams(),e.clearHeaders(),this._configuration.registrar_server=e}this._configuration.no_answer_timeout*=1e3,this._configuration.contact_uri?this._configuration.via_host=this._configuration.contact_uri.host:this._configuration.contact_uri=new h(`sip`,p.createRandomToken(8),this._configuration.via_host,null,{transport:`ws`}),this._contact={pub_gruu:null,temp_gruu:null,uri:this._configuration.contact_uri,toString(e={}){let t=e.anonymous||null,n=e.outbound||null,r=`<`;return t?r+=this.temp_gruu||`sip:anonymous@anonymous.invalid;transport=ws`:r+=this.pub_gruu||this.uri.toString(),n&&(t?!this.temp_gruu:!this.pub_gruu)&&(r+=`;ob`),r+=`>`,r}};let n=[`authorization_user`,`password`,`realm`,`ha1`,`authorization_jwt`,`display_name`,`register`,`extra_headers`];for(let e in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,e)&&(n.indexOf(e)===-1?Object.defineProperty(this._configuration,e,{writable:!1,configurable:!1}):Object.defineProperty(this._configuration,e,{writable:!0,configurable:!1}));b.debug(`configuration parameters after validation:`);for(let e in this._configuration)if(Object.prototype.hasOwnProperty.call(y.settings,e))switch(e){case`uri`:case`registrar_server`:b.debug(`- ${e}: ${this._configuration[e]}`);break;case`password`:case`ha1`:case`authorization_jwt`:b.debug(`- ${e}: NOT SHOWN`);break;default:b.debug(`- ${e}: ${JSON.stringify(this._configuration[e])}`)}}};function S(e){this.emit(`connecting`,e)}function C(e){this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_READY,this._error=null,this.emit(`connected`,e),this._dynConfiguration.register&&this._registrator.register())}function w(e){for(let e of[`nict`,`ict`,`nist`,`ist`])for(let t in this._transactions[e])Object.prototype.hasOwnProperty.call(this._transactions[e],t)&&this._transactions[e][t].onTransportError();this.emit(`disconnected`,e),this._registrator.onTransportClosed(),this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_NOT_READY,this._error=x.NETWORK_ERROR)}function T(e){let t=e.transport,n=e.message;if(n=g.parseMessage(n,this),n&&!(this._status===x.STATUS_USER_CLOSED&&n instanceof _.IncomingRequest)&&v(n,this,t)){if(n instanceof _.IncomingRequest)n.transport=t,this.receiveRequest(n);else if(n instanceof _.IncomingResponse){let e;switch(n.method){case i.INVITE:e=this._transactions.ict[n.via_branch],e&&e.receiveResponse(n);break;case i.ACK:break;default:e=this._transactions.nict[n.via_branch],e&&e.receiveResponse(n);break}}}}})),gD=o(((e,t)=>{var n=HE(),r=FE(),i=new n(`WebSocketInterface`);t.exports=class{constructor(e){i.debug(`new() [url:"%s"]`,e),this._url=e,this._sip_uri=null,this._via_transport=null,this._ws=null;let t=r.parse(e,`absoluteURI`);if(t===-1)throw i.warn(`invalid WebSocket URI: ${e}`),TypeError(`Invalid argument: ${e}`);if(t.scheme!==`wss`&&t.scheme!==`ws`)throw i.warn(`invalid WebSocket URI scheme: ${t.scheme}`),TypeError(`Invalid argument: ${e}`);this._sip_uri=`sip:${t.host}${t.port?`:${t.port}`:``};transport=ws`,this._via_transport=t.scheme.toUpperCase()}get via_transport(){return this._via_transport}set via_transport(e){this._via_transport=e.toUpperCase()}get sip_uri(){return this._sip_uri}get url(){return this._url}connect(){if(i.debug(`connect()`),this.isConnected()){i.debug(`WebSocket ${this._url} is already connected`);return}else if(this.isConnecting()){i.debug(`WebSocket ${this._url} is connecting`);return}this._ws&&this.disconnect(),i.debug(`connecting to WebSocket ${this._url}`);try{this._ws=new WebSocket(this._url,`sip`),this._ws.binaryType=`arraybuffer`,this._ws.onopen=this._onOpen.bind(this),this._ws.onclose=this._onClose.bind(this),this._ws.onmessage=this._onMessage.bind(this),this._ws.onerror=this._onError.bind(this)}catch(e){this._onError(e)}}disconnect(){i.debug(`disconnect()`),this._ws&&=(this._ws.onopen=()=>{},this._ws.onclose=()=>{},this._ws.onmessage=()=>{},this._ws.onerror=()=>{},this._ws.close(),null)}send(e){return i.debug(`send()`),this.isConnected()?(this._ws.send(e),!0):(i.warn(`unable to send message, WebSocket is not open`),!1)}isConnected(){return this._ws&&this._ws.readyState===this._ws.OPEN}isConnecting(){return this._ws&&this._ws.readyState===this._ws.CONNECTING}_onOpen(){i.debug(`WebSocket ${this._url} connected`),this.onconnect()}_onClose({wasClean:e,code:t,reason:n}){i.debug(`WebSocket ${this._url} closed`),e===!1&&i.debug(`WebSocket abrupt disconnection`),this.ondisconnect(!e,t,n)}_onMessage({data:e}){i.debug(`received WebSocket message`),this.ondata(e)}_onError(e){i.warn(`WebSocket ${this._url} error: `,e)}}})),_D=o(((e,t)=>{var n=(jE(),l(mE).default),r=ME(),i=NE(),a=LE(),o=hD(),s=IE(),c=PE(),u=FE(),d=gD(),f=VE()(`JsSIP`),p=aD();f(`version %s`,n.version),t.exports={C:r,Exceptions:i,Utils:a,UA:o,URI:s,NameAddrHeader:c,WebSocketInterface:d,Grammar:u,RTCSession:p,debug:VE(),get name(){return n.title},get version(){return n.version}}}))(),vD=null,yD=new Map,bD=new Map,xD=e=>(vD&&=(vD.stop(),null),vD=new _D.UA({sockets:[new _D.WebSocketInterface(e.server)],uri:e.uri,password:e.password,display_name:e.displayName,register:!0,...e.iceServers&&{pcConfig:{iceServers:e.iceServers}}}),vD),SD=()=>vD,CD=()=>{yD.forEach(e=>{try{e.terminate()}catch{}}),yD.clear(),bD.forEach(e=>e.remove()),bD.clear(),vD?.stop(),vD=null},wD=(e,t)=>{yD.set(e,t)},TD=e=>yD.get(e),ED=e=>{yD.delete(e)},DD=(e,t)=>{let n=bD.get(e);if(n){n.srcObject!==t&&(n.srcObject=t),n.paused&&n.play().catch(()=>{});return}let r=document.createElement(`audio`);r.autoplay=!0,r.style.display=`none`,document.body.appendChild(r),r.srcObject=t,r.play().catch(e=>console.warn(`[webphone] audio play blocked:`,e)),bD.set(e,r)},OD=e=>{let t=bD.get(e);t&&(t.pause(),t.srcObject=null,t.remove(),bD.delete(e))},kD=async e=>{for(let t of bD.values())await t.setSinkId?.(e)},AD=e=>{let t=Math.max(0,Math.min(1,e/100));for(let e of bD.values())e.volume=t},jD=e=>{for(let t of bD.values())t.muted=e},MD=`webphone`,ND=4,PD=`call-history`,FD=`phone-notes`,ID=`contacts`,LD=`scheduled-calls`,RD=null,zD=()=>RD||(RD=new Promise((e,t)=>{let n=indexedDB.open(MD,ND);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(PD)||e.createObjectStore(PD,{keyPath:`id`}),e.objectStoreNames.contains(FD)||e.createObjectStore(FD,{keyPath:`id`}).createIndex(`remoteUri`,`remoteUri`,{unique:!1}),e.objectStoreNames.contains(ID)||e.createObjectStore(ID,{keyPath:`id`}),e.objectStoreNames.contains(LD)||e.createObjectStore(LD,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>{RD=null,t(n.error)},n.onblocked=()=>{RD=null,t(Error(`IndexedDB upgrade blocked`))}}),RD),BD=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),VD=async()=>{let e=await zD(),t=(await BD(e.transaction(PD,`readonly`).objectStore(PD).getAll())).map(e=>({...e,endedAt:new Date(e.endedAt)})).sort((e,t)=>t.endedAt.getTime()-e.endedAt.getTime());if(t.length>50){let n=e.transaction(PD,`readwrite`).objectStore(PD);await Promise.all(t.slice(50).map(e=>BD(n.delete(e.id))))}return t.slice(0,50)},HD=async e=>{await BD((await zD()).transaction(PD,`readwrite`).objectStore(PD).put({...e,endedAt:e.endedAt.toISOString()}))},UD=async()=>(await BD((await zD()).transaction(FD,`readonly`).objectStore(FD).getAll())).map(e=>({...e,createdAt:new Date(e.createdAt)})).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),WD=async e=>{await BD((await zD()).transaction(FD,`readwrite`).objectStore(FD).put({...e,createdAt:e.createdAt.toISOString()}))},GD=async e=>{await BD((await zD()).transaction(FD,`readwrite`).objectStore(FD).delete(e))},KD=async()=>BD((await zD()).transaction(ID,`readonly`).objectStore(ID).getAll()),qD=async e=>{await BD((await zD()).transaction(ID,`readwrite`).objectStore(ID).put(e))},JD=async e=>{await BD((await zD()).transaction(ID,`readwrite`).objectStore(ID).delete(e))},YD=async()=>(await BD((await zD()).transaction(LD,`readonly`).objectStore(LD).getAll())).map(e=>({...e,scheduledAt:new Date(e.scheduledAt)})).sort((e,t)=>e.scheduledAt.getTime()-t.scheduledAt.getTime()),XD=async e=>{await BD((await zD()).transaction(LD,`readwrite`).objectStore(LD).put({...e,scheduledAt:e.scheduledAt.toISOString()}))},ZD=async e=>{await BD((await zD()).transaction(LD,`readwrite`).objectStore(LD).delete(e))},QD=A_(`webphone`,()=>{let e=L([]),t=L(!1),n=L(!1),r=L([]),i=L([]),a=L([]);VD().then(e=>{r.value=e}).catch(()=>{}),UD().then(e=>{i.value=e}).catch(()=>{}),YD().then(e=>{a.value=e}).catch(()=>{});let o=new Map,s=Y(()=>e.value.filter(e=>e.status===`ringing`)),c=Y(()=>e.value.filter(e=>e.status===`active`||e.status===`held`||e.status===`remote_held`)),l=Y(()=>r.value.find(e=>e.direction===`outgoing`)?.remoteUri??null),u=e=>{r.value.unshift(e),r.value.length>50&&(r.value.length=50),HD(e).catch(()=>{})},d=t=>{e.value.filter(e=>e.id!==t&&e.status===`active`).forEach(e=>{TD(e.id)?.hold(),e.status=`held`})};return{channels:e,isRegistered:t,isConnecting:n,history:r,notes:i,lastDialed:l,incomingChannels:s,activeChannels:c,addChannel:t=>e.value.length>=3?!1:(t.status===`active`&&d(t.id),e.value.push(t),!0),updateStatus:(t,n)=>{n===`active`&&d(t);let r=e.value.find(e=>e.id===t);r&&(r.status=n)},updateMute:(t,n)=>{let r=e.value.find(e=>e.id===t);r&&(r.isMuted=n)},startTimer:t=>{let n=e.value.find(e=>e.id===t);n&&(n.startTime=new Date,o.set(t,setInterval(()=>{n.startTime&&(n.duration=Math.floor((Date.now()-n.startTime.getTime())/1e3))},1e3)))},removeChannel:t=>{let n=o.get(t);n&&(clearInterval(n),o.delete(t));let r=e.value.find(e=>e.id===t);if(r){let e;e=r.startTime===null?r.direction===`incoming`?`missed`:`failed`:`answered`,u({id:t,direction:r.direction,remoteUri:r.remoteUri,remoteName:r.remoteName,duration:r.duration,outcome:e,endedAt:new Date})}let i=e.value.findIndex(e=>e.id===t);i!==-1&&e.value.splice(i,1)},addNote:(e,t,n,r)=>{let a={id:crypto.randomUUID(),remoteUri:e,remoteName:t,text:n.trim(),color:r,createdAt:new Date};i.value.unshift(a),WD(a).catch(()=>{})},removeNote:e=>{let t=i.value.findIndex(t=>t.id===e);t!==-1&&i.value.splice(t,1),GD(e).catch(()=>{})},scheduledCalls:a,addScheduledCall:e=>{let t={id:crypto.randomUUID(),...e};a.value.push(t),a.value.sort((e,t)=>e.scheduledAt.getTime()-t.scheduledAt.getTime()),XD(t).catch(()=>{})},removeScheduledCall:e=>{let t=a.value.findIndex(t=>t.id===e);t!==-1&&a.value.splice(t,1),ZD(e).catch(()=>{})}}}),$D={audio:!0,video:!1},eO=e=>{let t=new URL(e.server).hostname,n=e.uri.split(`:`)[1]?.split(`@`)[0];!t||!n||fetch(`https://${t}/api/webphone/ip`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extension:n})}).catch(()=>{})},tO=async()=>{try{return await navigator.mediaDevices.getUserMedia($D)}catch(e){return console.warn(`[webphone] microphone access denied`,e),null}},nO=()=>{let e=QD();return{channels:Y(()=>e.channels),isRegistered:Y(()=>e.isRegistered),isConnecting:Y(()=>e.isConnecting),history:Y(()=>e.history),notes:Y(()=>e.notes),lastDialed:Y(()=>e.lastDialed),connect:t=>{let n=xD(t);e.isConnecting=!0,n.on(`registered`,()=>{e.isRegistered=!0,e.isConnecting=!1,eO(t)}),n.on(`unregistered`,()=>{e.isRegistered=!1}),n.on(`registrationFailed`,()=>{e.isRegistered=!1,e.isConnecting=!1}),n.on(`newRTCSession`,t=>{let{session:n,originator:r}=t,i=`ch-${Date.now()}-${Math.random().toString(36).slice(2,7)}`;wD(i,n),e.addChannel({id:i,direction:r===`remote`?`incoming`:`outgoing`,status:r===`remote`?`ringing`:`connecting`,remoteUri:n.remote_identity.uri.user??n.remote_identity.uri.toString(),remoteName:n.remote_identity.display_name??``,startTime:null,duration:0,isMuted:!1});let a=e=>{e.addEventListener(`track`,e=>{DD(i,e.streams[0]??new MediaStream([e.track]))})};n.connection?a(n.connection):n.on(`peerconnection`,e=>{a(e.peerconnection)});let o=!1,s=()=>{o||(o=!0,e.channels.filter(e=>e.id!==i&&e.status===`active`).forEach(t=>{TD(t.id)?.hold(),e.updateStatus(t.id,`held`)}),e.updateStatus(i,`active`),e.startTimer(i))};n.on(`accepted`,s),n.on(`confirmed`,s),n.on(`hold`,t=>{e.updateStatus(i,t.originator===`local`?`held`:`remote_held`)}),n.on(`unhold`,()=>{e.updateStatus(i,`active`)}),n.on(`muted`,()=>e.updateMute(i,!0)),n.on(`unmuted`,()=>e.updateMute(i,!1)),n.on(`ended`,()=>{OD(i),ED(i),e.removeChannel(i)}),n.on(`failed`,()=>{OD(i),ED(i),e.removeChannel(i)})}),n.start()},disconnect:()=>{CD(),e.isRegistered=!1,e.isConnecting=!1},call:async t=>{let n=SD();if(!n||!e.isRegistered)return;let r=await tO();r&&n.call(t,{mediaConstraints:$D,mediaStream:r,rtcOfferConstraints:{offerToReceiveAudio:!0,offerToReceiveVideo:!1}})},answer:async e=>{let t=await tO();t&&TD(e)?.answer({mediaConstraints:$D,mediaStream:t})},hangup:t=>{TD(t)?.terminate(),TD(t)||e.removeChannel(t)},hold:t=>{TD(t)?.hold(),e.updateStatus(t,`held`)},resume:t=>{TD(t)?.unhold(),e.updateStatus(t,`active`)},mute:t=>{TD(t)?.mute({audio:!0,video:!1}),e.updateMute(t,!0)},unmute:t=>{TD(t)?.unmute({audio:!0,video:!1}),e.updateMute(t,!1)},addNote:(t,n,r,i)=>{e.addNote(t,n,r,i)},removeNote:t=>{e.removeNote(t)},sendDTMF:(e,t)=>{TD(e)?.sendDTMF(t)}}},rO=L(`unknown`),iO=L([]),aO=L(``),oO=L(``),sO=L(100),cO=L(100),lO=Y(()=>iO.value.filter(e=>e.kind===`audioinput`)),uO=Y(()=>iO.value.filter(e=>e.kind===`audiooutput`)),dO=async()=>{iO.value=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`||e.kind===`audiooutput`),!aO.value&&lO.value[0]&&(aO.value=lO.value[0].deviceId),!oO.value&&uO.value[0]&&(oO.value=uO.value[0].deviceId)},fO=async()=>{try{(await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})).getTracks().forEach(e=>e.stop()),rO.value=`granted`,await dO()}catch{rO.value=`denied`}},pO=async()=>{if(!navigator.permissions){await dO();return}let e=await navigator.permissions.query({name:`microphone`});rO.value=e.state,e.state===`granted`&&await dO(),e.addEventListener(`change`,async()=>{rO.value=e.state,e.state===`granted`&&await dO()})};wi(oO,e=>{e&&kD(e).catch(()=>{})}),wi(cO,e=>AD(e));var mO=()=>({permission:rO,inputDevices:lO,outputDevices:uO,selectedInputId:aO,selectedOutputId:oO,inputVolume:sO,outputVolume:cO,requestPermission:fO,checkPermission:pO}),hO=Rv(`webphone-sip-config`,{server:``,uri:``,password:``,displayName:``});function gO(){return{sipConfig:hO,isConfigured:Y(()=>!!hO.value.server&&!!hO.value.uri&&!!hO.value.password)}}var _O=null,vO=()=>(_O||=new AudioContext,_O.state===`suspended`&&_O.resume().catch(()=>{}),_O),yO={1:[697,1209],2:[697,1336],3:[697,1477],4:[770,1209],5:[770,1336],6:[770,1477],7:[852,1209],8:[852,1336],9:[852,1477],"*":[941,1209],0:[941,1336],"#":[941,1477]},bO=(e,t,n,r,i=.08)=>{let a=e.createOscillator(),o=e.createGain();a.type=`sine`,a.frequency.value=t,o.gain.setValueAtTime(i,n),o.gain.setValueAtTime(0,r-.005),a.connect(o),o.connect(e.destination),a.start(n),a.stop(r)},xO=e=>{let t=yO[e];if(!t)return;let n=vO(),r=n.currentTime;t.forEach(e=>bO(n,e,r,r+.12))},SO=(e,t,n)=>{let r=!0,i=t/1e3,a=n/1e3,o=()=>{if(!r)return;let t=vO(),n=t.currentTime;e.forEach(e=>bO(t,e,n,n+i)),setTimeout(o,(i+a)*1e3)};return o(),()=>{r=!1}},CO=()=>SO([440,480],1e3,3e3),wO=()=>SO([440,480],2e3,4e3),TO=()=>{let e=vO(),t=e.currentTime;[480,620].forEach(n=>bO(e,n,t,t+.3,.06))},EO=U({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=ib(e,t);return(e,t)=>(G(),K(R(Mb),sl({"data-slot":`dialog`},R(n)),{default:H(t=>[W(e.$slots,`default`,Te(Qc(t)))]),_:3},16))}}),DO=U({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=ev(t,`class`);return(e,r)=>(G(),K(R(mx),sl({"data-slot":`dialog-overlay`},R(n),{class:R(cE)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),OO=U({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(t,r)=>(G(),K(R(gx),null,{default:H(()=>[J(DO),J(R(dx),sl({"data-slot":`dialog-content`},{...t.$attrs,...R(i)},{class:R(cE)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,n.class)}),{default:H(()=>[W(t.$slots,`default`),e.showCloseButton?(G(),K(R(Nb),{key:0,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`},{default:H(()=>[J(R(wy)),r[0]||=q(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):rl(``,!0)]),_:3},16,[`class`])]),_:3}))}}),kO=U({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=rb(ev(t,`class`));return(e,r)=>(G(),K(R(fx),sl({"data-slot":`dialog-description`},R(n),{class:R(cE)(`text-muted-foreground text-sm`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),AO=U({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(G(),Uc(`div`,{"data-slot":`dialog-header`,class:we(R(cE)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[W(e.$slots,`default`)],2))}}),jO=U({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=rb(ev(t,`class`));return(e,r)=>(G(),K(R(_x),sl({"data-slot":`dialog-title`},R(n),{class:R(cE)(`text-lg leading-none font-semibold`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),MO=U({__name:`DialogTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(G(),K(R(vx),sl({"data-slot":`dialog-trigger`},t),{default:H(()=>[W(e.$slots,`default`)]),_:3},16))}}),NO=U({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=ib(e,t);return(e,t)=>(G(),K(R(ww),sl({"data-slot":`popover`},R(n)),{default:H(t=>[W(e.$slots,`default`,Te(Qc(t)))]),_:3},16))}}),PO=U({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(e,t)=>(G(),K(R(kw),null,{default:H(()=>[J(R(Ow),sl({"data-slot":`popover-content`},{...e.$attrs,...R(i)},{class:R(cE)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md origin-(--reka-popover-content-transform-origin) outline-hidden`,n.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),FO=U({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(G(),K(R(Aw),sl({"data-slot":`popover-trigger`},t),{default:H(()=>[W(e.$slots,`default`)]),_:3},16))}}),IO=U({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=zv(n,`modelValue`,t,{passive:!0,defaultValue:n.defaultValue});return(e,t)=>mi((G(),Uc(`input`,{"onUpdate:modelValue":t[0]||=e=>kn(r)?r.value=e:null,"data-slot":`input`,class:we(R(cE)(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n.class))},null,2)),[[Ad,R(r)]])}}),LO={class:`group/native-select relative w-fit has-[select:disabled]:opacity-50`,"data-slot":`native-select-wrapper`},RO=U({inheritAttrs:!1,__name:`NativeSelect`,props:{modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=zv(n,`modelValue`,t,{passive:!0,defaultValue:``}),i=ev(n,`class`);return(e,t)=>(G(),Uc(`div`,LO,[mi(q(`select`,sl({...e.$attrs,...R(i)},{"onUpdate:modelValue":t[0]||=e=>kn(r)?r.value=e:null,"data-slot":`native-select`,class:R(cE)(`border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n.class)}),[W(e.$slots,`default`)],16),[[Pd,R(r)]]),J(R(Zv),{class:`text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none`,"aria-hidden":`true`,"data-slot":`native-select-icon`})]))}}),zO=U({__name:`NativeSelectOption`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(G(),Uc(`option`,{"data-slot":`native-select-option`,class:we(R(cE)(`bg-popover text-popover-foreground`,t.class))},[W(e.$slots,`default`)],2))}}),BO=U({__name:`Slider`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},orientation:{},dir:{},inverted:{type:Boolean},min:{},max:{},step:{},minStepsBetweenThumbs:{},thumbAlignment:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`,`valueCommit`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(e,t)=>(G(),K(R(gw),sl({"data-slot":`slider`,class:R(cE)(`relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col`,n.class)},R(i)),{default:H(({modelValue:e})=>[J(R(xw),{"data-slot":`slider-track`,class:`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`},{default:H(()=>[J(R(vw),{"data-slot":`slider-range`,class:`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`})]),_:1}),(G(!0),Uc(Nc,null,mo(e,(e,t)=>(G(),K(R(bw),{key:t,"data-slot":`slider-thumb`,class:`bg-white border-primary ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`}))),128))]),_:1},16,[`class`]))}}),VO={key:0,class:`w-full min-w-0 space-y-5 pt-2`},HO={class:`space-y-2`},UO={class:`text-xs font-medium text-muted-foreground flex items-center gap-1.5`},WO={class:`w-full`},GO={class:`flex items-center gap-2 px-1`},KO={class:`text-xs tabular-nums text-muted-foreground w-7 text-right shrink-0`},qO={class:`space-y-2`},JO={class:`text-xs font-medium text-muted-foreground flex items-center gap-1.5`},YO={class:`w-full`},XO={class:`flex items-center gap-2 px-1`},ZO={class:`text-xs tabular-nums text-muted-foreground w-7 text-right shrink-0`},QO={key:1,class:`pt-2`},$O=U({__name:`AudioSettings`,setup(e){let{permission:t,inputDevices:n,outputDevices:r,selectedInputId:i,selectedOutputId:a,inputVolume:o,outputVolume:s,requestPermission:c}=mO();return(e,l)=>R(t)===`granted`?(G(),Uc(`div`,VO,[q(`div`,HO,[q(`label`,UO,[J(R(oy),{class:`size-3.5`}),l[4]||=tl(` Micrófono `,-1)]),q(`div`,WO,[J(R(RO),{modelValue:R(i),"onUpdate:modelValue":l[0]||=e=>kn(i)?i.value=e:null,class:`w-full truncate`},{default:H(()=>[(G(!0),Uc(Nc,null,mo(R(n),e=>(G(),K(R(zO),{key:e.deviceId,value:e.deviceId},{default:H(()=>[tl(We(e.label||`Micrófono ${e.deviceId.slice(0,6)}`),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),q(`div`,GO,[J(R(oy),{class:`size-3 text-muted-foreground shrink-0`}),J(R(BO),{"model-value":[R(o)],min:0,max:100,step:1,class:`flex-1 min-w-0`,"onUpdate:modelValue":l[1]||=e=>o.value=e?.[0]??R(o)},null,8,[`model-value`]),q(`span`,KO,We(R(o))+`%`,1)])]),q(`div`,qO,[q(`label`,JO,[J(R(Sy),{class:`size-3.5`}),l[5]||=tl(` Altavoz `,-1)]),q(`div`,YO,[J(R(RO),{modelValue:R(a),"onUpdate:modelValue":l[2]||=e=>kn(a)?a.value=e:null,class:`w-full truncate`},{default:H(()=>[(G(!0),Uc(Nc,null,mo(R(r),e=>(G(),K(R(zO),{key:e.deviceId,value:e.deviceId},{default:H(()=>[tl(We(e.label||`Altavoz ${e.deviceId.slice(0,6)}`),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),q(`div`,XO,[J(R(Sy),{class:`size-3 text-muted-foreground shrink-0`}),J(R(BO),{"model-value":[R(s)],min:0,max:100,step:1,class:`flex-1 min-w-0`,"onUpdate:modelValue":l[3]||=e=>s.value=e?.[0]??R(s)},null,8,[`model-value`]),q(`span`,ZO,We(R(s))+`%`,1)])])])):(G(),Uc(`div`,QO,[J(R(lE),{class:`w-full gap-2`,variant:`outline`,onClick:R(c)},{default:H(()=>[J(R(oy),{class:`size-4`}),l[6]||=tl(` Permitir micrófono `,-1)]),_:1},8,[`onClick`])]))}}),ek={class:`flex items-center gap-2`},tk={class:`text-xs text-muted-foreground`},nk={class:`text-muted-foreground hover:text-foreground transition-colors`},rk={class:`flex flex-col`},ik={class:`text-muted-foreground hover:text-foreground transition-colors`},ak={class:`flex gap-1 bg-muted rounded-lg p-1`},ok={key:0,class:`space-y-3`},sk={class:`space-y-1.5`},ck={class:`space-y-1.5`},lk={class:`space-y-1.5`},uk={class:`space-y-1.5`},dk={class:`pt-1`},fk={key:1},pk=U({__name:`PhoneHeader`,props:{isRegistered:{type:Boolean},isConnecting:{type:Boolean},isDark:{type:Boolean},rootEl:{},float:{type:Boolean},isDragging:{type:Boolean}},emits:[`toggle-dark`,`open-history`,`open-notes`,`open-contacts`,`open-calendar`],setup(e,{emit:t}){let n=t,r=L(!1),i=L(`account`),a=()=>{r.value=!1,n(`open-history`)},o=()=>{r.value=!1,n(`open-notes`)},s=()=>{r.value=!1,n(`open-contacts`)},c=()=>{r.value=!1,n(`open-calendar`)},{sipConfig:l,isConfigured:u}=gO(),{connect:d,disconnect:f}=nO();return(t,p)=>(G(),Uc(`div`,{class:we([`flex items-center justify-between px-5 py-3 bg-muted/70`,e.float?e.isDragging?`cursor-grabbing`:`cursor-grab`:``])},[p[22]||=q(`span`,{class:`text-xs font-medium text-muted-foreground`},`Webphone`,-1),q(`div`,ek,[q(`span`,{class:we([`size-2 rounded-full`,e.isRegistered?`bg-green-500`:e.isConnecting?`bg-amber-400 animate-pulse`:`bg-muted-foreground/30`])},null,2),q(`span`,tk,We(e.isConnecting?`Conectando…`:e.isRegistered?`Registrado`:`Sin conexión`),1),q(`button`,{class:`text-muted-foreground hover:text-foreground transition-colors`,onClick:p[0]||=e=>n(`toggle-dark`)},[e.isDark?(G(),K(R(vy),{key:0,class:`size-3.5`})):(G(),K(R(sy),{key:1,class:`size-3.5`}))]),J(R(NO),{open:r.value,"onUpdate:open":p[1]||=e=>r.value=e},{default:H(()=>[J(R(FO),{"as-child":``},{default:H(()=>[q(`button`,nk,[J(R(ty),{class:`size-3.5`})])]),_:1}),J(R(PO),{class:`w-44 p-1`,side:`bottom`,align:`end`},{default:H(()=>[q(`div`,rk,[q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:a},[J(R($v),{class:`size-3.5 text-muted-foreground`}),p[11]||=tl(` Historial `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:o},[J(R(ly),{class:`size-3.5 text-muted-foreground`}),p[12]||=tl(` Notas `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:s},[J(R(xy),{class:`size-3.5 text-muted-foreground`}),p[13]||=tl(` Contactos `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:c},[J(R(Xv),{class:`size-3.5 text-muted-foreground`}),p[14]||=tl(` Agenda `,-1)])])]),_:1})]),_:1},8,[`open`]),J(R(EO),{"onUpdate:open":p[10]||=e=>{e&&(i.value=`account`)}},{default:H(()=>[J(R(MO),{"as-child":``},{default:H(()=>[q(`button`,ik,[J(R(gy),{class:`size-3.5`})])]),_:1}),J(R(OO),{class:`sm:max-w-xs`,to:e.rootEl??void 0},{default:H(()=>[J(R(AO),null,{default:H(()=>[J(R(jO),null,{default:H(()=>[...p[15]||=[tl(`Ajustes`,-1)]]),_:1}),J(R(kO),{class:`sr-only`},{default:H(()=>[...p[16]||=[tl(`Configuración de cuenta SIP y audio.`,-1)]]),_:1})]),_:1}),q(`div`,ak,[q(`button`,{class:we([`flex-1 py-1.5 text-sm font-medium rounded-md transition-colors`,i.value===`account`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`]),onClick:p[2]||=e=>i.value=`account`},` Cuenta SIP `,2),q(`button`,{class:we([`flex-1 py-1.5 text-sm font-medium rounded-md transition-colors`,i.value===`audio`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`]),onClick:p[3]||=e=>i.value=`audio`},` Audio `,2)]),i.value===`account`?(G(),Uc(`div`,ok,[q(`div`,sk,[p[17]||=q(`label`,{class:`text-xs text-muted-foreground`},`Servidor WebSocket`,-1),J(R(IO),{modelValue:R(l).server,"onUpdate:modelValue":p[4]||=e=>R(l).server=e,placeholder:`wss://sip.ejemplo.com`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,ck,[p[18]||=q(`label`,{class:`text-xs text-muted-foreground`},`URI SIP`,-1),J(R(IO),{modelValue:R(l).uri,"onUpdate:modelValue":p[5]||=e=>R(l).uri=e,placeholder:`sip:usuario@dominio.com`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,lk,[p[19]||=q(`label`,{class:`text-xs text-muted-foreground`},`Contraseña`,-1),J(R(IO),{modelValue:R(l).password,"onUpdate:modelValue":p[6]||=e=>R(l).password=e,type:`password`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,uk,[p[20]||=q(`label`,{class:`text-xs text-muted-foreground`},`Nombre visible (opcional)`,-1),J(R(IO),{modelValue:R(l).displayName,"onUpdate:modelValue":p[7]||=e=>R(l).displayName=e,placeholder:`Ej. Juan García`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,dk,[!e.isRegistered&&!e.isConnecting?(G(),K(R(lE),{key:0,class:`w-full`,disabled:!R(u),onClick:p[8]||=e=>R(d)({...R(l)})},{default:H(()=>[...p[21]||=[tl(` Conectar `,-1)]]),_:1},8,[`disabled`])):(G(),K(R(lE),{key:1,class:`w-full`,variant:`outline`,onClick:p[9]||=e=>R(f)()},{default:H(()=>[tl(We(e.isConnecting?`Cancelar`:`Desconectar`),1)]),_:1}))])])):(G(),Uc(`div`,fk,[J($O)]))]),_:1},8,[`to`])]),_:1})])],2))}}),mk=U({__name:`ToggleGroup`,props:{rovingFocus:{type:Boolean},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},type:{},modelValue:{},defaultValue:{},class:{type:[Boolean,null,String,Object,Array]},variant:{},size:{},spacing:{default:0}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t;gi(`toggleGroup`,{variant:n.variant,size:n.size,spacing:n.spacing});let i=ib(ev(n,`class`,`size`,`variant`),r);return(t,r)=>(G(),K(R(Nw),sl({"data-slot":`toggle-group`,"data-size":e.size,"data-variant":e.variant,"data-spacing":e.spacing,style:{"--gap":e.spacing}},R(i),{class:R(cE)(`group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs`,n.class)}),{default:H(e=>[W(t.$slots,`default`,Te(Qc(e)))]),_:3},16,[`data-size`,`data-variant`,`data-spacing`,`style`,`class`]))}}),hk=ky(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),gk=U({__name:`ToggleGroupItem`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{},size:{}},setup(e){let t=e,n=_i(`toggleGroup`),r=rb(ev(t,`class`,`size`,`variant`));return(i,a)=>(G(),K(R(Fw),sl({"data-slot":`toggle-group-item`,"data-variant":R(n)?.variant||e.variant,"data-size":R(n)?.size||e.size,"data-spacing":R(n)?.spacing},R(r),{class:R(cE)(R(hk)({variant:R(n)?.variant||e.variant,size:R(n)?.size||e.size}),`w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10`,`data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l`,t.class)}),{default:H(e=>[W(i.$slots,`default`,Te(Qc(e)))]),_:3},16,[`data-variant`,`data-size`,`data-spacing`,`class`]))}}),_k={class:`px-3 pt-2`},vk={class:`truncate max-w-20`},yk=U({__name:`ChannelTabs`,props:{channels:{},selectedId:{}},emits:[`select`],setup(e,{emit:t}){let n={ringing:`bg-blue-500`,connecting:`bg-amber-400`,active:`bg-green-500`,held:`bg-amber-500`,remote_held:`bg-amber-500`,ended:`bg-muted-foreground`,failed:`bg-destructive`},r=t,i=e=>e.remoteName||e.remoteUri;return(t,a)=>(G(),Uc(`div`,_k,[J(R(mk),{type:`single`,"model-value":e.selectedId??``,class:`w-full gap-1`,"onUpdate:modelValue":a[0]||=e=>r(`select`,e?String(e):null)},{default:H(()=>[(G(!0),Uc(Nc,null,mo(e.channels,e=>(G(),K(R(gk),{key:e.id,value:e.id,class:`flex-1 gap-1.5 text-xs h-8 rounded-full`},{default:H(()=>[q(`span`,{class:we([`size-1.5 rounded-full shrink-0`,n[e.status]])},null,2),q(`span`,vk,We(i(e)),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`])]))}}),bk={class:`px-5 pt-4 pb-2 text-center`},xk={class:`font-semibold text-base truncate`},Sk={key:0,class:`text-xs text-muted-foreground truncate mt-0.5`},Ck={class:`font-semibold text-sm truncate`},wk={key:0,class:`text-xs text-muted-foreground truncate`},Tk=U({__name:`CallDisplay`,props:{channel:{}},setup(e){let t={ringing:`bg-blue-500`,connecting:`bg-amber-400`,active:`bg-green-500`,held:`bg-amber-500`,remote_held:`bg-amber-500`,ended:`bg-muted-foreground`,failed:`bg-destructive`},n=e=>e.remoteName||e.remoteUri,r=e=>`${Math.floor(e/60).toString().padStart(2,`0`)}:${(e%60).toString().padStart(2,`0`)}`,i=e=>e===`held`||e===`remote_held`;return(a,o)=>(G(),Uc(`div`,bk,[e.channel.status===`ringing`?(G(),Uc(Nc,{key:0},[J(R(dy),{class:`size-5 text-blue-500 mx-auto mb-1 animate-bounce`}),o[0]||=q(`p`,{class:`text-xs text-blue-500 font-medium mb-1`},`Llamada entrante`,-1),q(`p`,xk,We(n(e.channel)),1),e.channel.remoteName?(G(),Uc(`p`,Sk,We(e.channel.remoteUri),1)):rl(``,!0)],64)):(G(),Uc(Nc,{key:1},[q(`div`,{class:we([`size-12 rounded-full mx-auto mb-2 flex items-center justify-center text-white font-bold text-lg`,t[e.channel.status]])},We(n(e.channel).charAt(0).toUpperCase()),3),q(`p`,Ck,We(n(e.channel)),1),e.channel.remoteName?(G(),Uc(`p`,wk,We(e.channel.remoteUri),1)):rl(``,!0),q(`p`,{class:we([`text-sm mt-1 tabular-nums font-medium`,e.channel.status===`active`?`text-green-600 dark:text-green-400`:`text-amber-500`])},We(e.channel.startTime?r(e.channel.duration):e.channel.status===`connecting`?`Conectando…`:i(e.channel.status)?`En espera`:``),3)],64))]))}}),Ek={class:`flex items-center justify-center gap-4 pt-1 pb-2`},Dk={key:0,class:`size-1.5 rounded-full bg-amber-400 inline-block`},Ok=U({__name:`PanelToggle`,props:{showPad:{type:Boolean},hasNotes:{type:Boolean}},emits:[`toggle-pad`,`open-notes`],setup(e,{emit:t}){let n=t;return(t,r)=>(G(),Uc(`div`,Ek,[q(`button`,{class:we([`flex items-center gap-1.5 text-xs transition-colors`,e.showPad?`text-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:r[0]||=e=>n(`toggle-pad`)},[J(R(iy),{class:`size-3.5`}),r[2]||=tl(` Teclado `,-1),e.showPad?(G(),K(R(Qv),{key:0,class:`size-3`})):(G(),K(R(Zv),{key:1,class:`size-3`}))],2),q(`button`,{class:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors`,onClick:r[1]||=e=>n(`open-notes`)},[J(R(cy),{class:`size-3.5`}),r[3]||=tl(` Notas `,-1),e.hasNotes?(G(),Uc(`span`,Dk)):rl(``,!0)])]))}}),kk=L([]);KD().then(e=>{kk.value=e}).catch(()=>{});var Ak=e=>{let t={...e,id:crypto.randomUUID()};kk.value.push(t),qD(t).catch(()=>{})},jk=e=>{let t=kk.value.findIndex(t=>t.id===e.id);t!==-1&&(kk.value[t]=e),qD(e).catch(()=>{})},Mk=e=>{let t=kk.value.findIndex(t=>t.id===e);t!==-1&&kk.value.splice(t,1),JD(e).catch(()=>{})},Nk=()=>({contacts:kk,addContact:Ak,updateContact:jk,deleteContact:Mk}),Pk={class:`flex items-center gap-2 px-3 pt-2 pb-1`},Fk=[`onClick`],Ik={class:`min-w-0 flex-1`},Lk={class:`text-sm font-medium truncate`},Rk={class:`text-xs text-muted-foreground`},zk={class:`px-6`},Bk={class:`grid grid-cols-3 place-items-center gap-y-1`},Vk=[`onClick`],Hk=U({__name:`DialSection`,props:{modelValue:{},externalContacts:{},hasActiveCall:{type:Boolean}},emits:[`update:modelValue`,`digit`,`back`,`call`],setup(e,{emit:t}){let n=[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`*`,`0`,`#`],r={internal:{icon:by,bg:`bg-blue-100 dark:bg-blue-950`,color:`text-blue-600 dark:text-blue-400`},external:{icon:ny,bg:`bg-gray-100 dark:bg-gray-800`,color:`text-gray-600 dark:text-gray-400`},service:{icon:ry,bg:`bg-violet-100 dark:bg-violet-950`,color:`text-violet-600 dark:text-violet-400`},emergency:{icon:_y,bg:`bg-red-100 dark:bg-red-950`,color:`text-red-600 dark:text-red-400`}},i=e,{contacts:a}=Nk(),o=t,s=L(!1),{bottom:c,left:l,width:u}=Lv(oa(`dialInput`)),d=Y(()=>({position:`fixed`,top:`${c.value+4}px`,left:`${l.value}px`,width:`${u.value}px`,zIndex:50})),f=Y(()=>{let e=a.value,t=i.externalContacts??[],n=new Set(e.map(e=>e.phone));return[...e,...t.filter(e=>!n.has(e.phone))]}),p=Y(()=>{if(!s.value||!i.modelValue||i.hasActiveCall)return[];let e=i.modelValue.toLowerCase();return f.value.filter(t=>t.name.toLowerCase().includes(e)||t.phone.toLowerCase().includes(e)).slice(0,5)}),m=e=>r[e.type??`internal`],h=e=>{o(`update:modelValue`,e.phone),s.value=!1},g=e=>{o(`digit`,e),o(`update:modelValue`,i.modelValue+e)};return(t,r)=>(G(),Uc(`div`,null,[q(`div`,Pk,[J(R(IO),{ref:`dialInput`,"model-value":e.modelValue,placeholder:`Buscar o marcar…`,class:`flex-1 text-center`,"onUpdate:modelValue":r[0]||=e=>o(`update:modelValue`,String(e)),onFocus:r[1]||=e=>s.value=!0,onBlur:r[2]||=e=>s.value=!1,onKeydown:r[3]||=Kd(Wd(e=>o(`call`),[`prevent`]),[`enter`])},null,8,[`model-value`]),e.modelValue?(G(),Uc(`button`,{key:0,class:`text-muted-foreground hover:text-foreground transition-colors shrink-0`,onClick:r[4]||=e=>o(`back`)},[J(R(ey),{class:`size-4`})])):rl(``,!0)]),J(cu,{"enter-from-class":`opacity-0 -translate-y-1`,"enter-active-class":`transition-all duration-150`,"leave-to-class":`opacity-0 -translate-y-1`,"leave-active-class":`transition-all duration-100`},{default:H(()=>[p.value.length?(G(),Uc(`div`,{key:0,style:ve(d.value),class:`bg-background border border-border/60 rounded-2xl shadow-lg overflow-hidden`},[(G(!0),Uc(Nc,null,mo(p.value,e=>(G(),Uc(`button`,{key:e.id,class:`w-full flex items-center gap-3 px-3 py-2.5 hover:bg-muted transition-colors text-left`,onMousedown:r[5]||=Wd(()=>{},[`prevent`]),onClick:t=>h(e)},[q(`div`,{class:we([`size-7 rounded-full flex items-center justify-center shrink-0`,m(e).bg])},[(G(),K(lo(m(e).icon),{class:we([`size-3.5`,m(e).color])},null,8,[`class`]))],2),q(`div`,Ik,[q(`p`,Lk,We(e.name),1),q(`p`,Rk,We(e.phone),1)])],40,Fk))),128))],4)):rl(``,!0)]),_:1}),q(`div`,zk,[q(`div`,Bk,[(G(),Uc(Nc,null,mo(n,e=>q(`button`,{key:e,class:`size-12 flex items-center justify-center rounded-full hover:bg-muted active:scale-95 transition-all text-lg font-light`,onClick:t=>g(e)},We(e),9,Vk)),64))])])]))}}),Uk={class:`flex items-center justify-center gap-3 px-6 py-4`},Wk=[`title`,`disabled`],Gk=[`title`],Kk=U({__name:`CallControls`,props:{selected:{},callBtnMode:{},isSpeakerMuted:{type:Boolean},lastDialed:{}},emits:[`call`,`answer`,`hangup`,`mute`,`unmute`,`hold`,`resume`,`toggle-speaker`],setup(e,{emit:t}){let n=t,r=e=>e===`held`||e===`remote_held`;return(t,i)=>(G(),Uc(`div`,Uk,[e.selected?e.selected.status===`ringing`?(G(),Uc(Nc,{key:1},[q(`button`,{class:`size-11 rounded-full bg-green-500 hover:bg-green-600 text-white flex items-center justify-center transition-colors active:scale-95`,title:`Contestar`,onClick:i[1]||=t=>n(`answer`,e.selected.id)},[J(R(my),{class:`size-4`})]),q(`button`,{class:`size-11 rounded-full bg-destructive hover:bg-destructive/90 text-white flex items-center justify-center transition-colors active:scale-95`,title:`Rechazar`,onClick:i[2]||=t=>n(`hangup`,e.selected.id)},[J(R(fy),{class:`size-4`})])],64)):(G(),Uc(Nc,{key:2},[q(`button`,{class:we([`size-11 rounded-full flex items-center justify-center transition-colors active:scale-95`,e.selected.isMuted?`bg-foreground text-background`:`bg-muted hover:bg-muted/70`]),title:`Silenciar / Activar`,onClick:i[3]||=t=>e.selected.isMuted?n(`unmute`,e.selected.id):n(`mute`,e.selected.id)},[e.selected.isMuted?(G(),K(R(ay),{key:0,class:`size-4`})):(G(),K(R(oy),{key:1,class:`size-4`}))],2),q(`button`,{class:`size-11 rounded-full flex items-center justify-center bg-muted hover:bg-muted/70 transition-colors active:scale-95`,title:r(e.selected.status)?`Reanudar`:`Espera`,onClick:i[4]||=t=>r(e.selected.status)?n(`resume`,e.selected.id):n(`hold`,e.selected.id)},[r(e.selected.status)?(G(),K(R(hy),{key:0,class:`size-4`})):(G(),K(R(uy),{key:1,class:`size-4`}))],8,Gk),q(`button`,{class:we([`size-11 rounded-full flex items-center justify-center transition-colors active:scale-95`,e.isSpeakerMuted?`bg-foreground text-background`:`bg-muted hover:bg-muted/70`]),title:`Silenciar altavoz`,onClick:i[5]||=e=>n(`toggle-speaker`)},[e.isSpeakerMuted?(G(),K(R(Cy),{key:0,class:`size-4`})):(G(),K(R(Sy),{key:1,class:`size-4`}))],2),q(`button`,{class:`size-11 rounded-full flex items-center justify-center bg-destructive hover:bg-destructive/90 text-white transition-colors active:scale-95`,title:`Colgar`,onClick:i[6]||=t=>n(`hangup`,e.selected.id)},[J(R(py),{class:`size-4`})])],64)):(G(),Uc(`button`,{key:0,class:we([`size-11 rounded-full flex items-center justify-center transition-all active:scale-95`,e.callBtnMode===`call`?`bg-green-500 hover:bg-green-600 text-white`:`bg-muted text-muted-foreground cursor-not-allowed`]),title:e.lastDialed?`Rellamar: ${e.lastDialed}`:`Llamar`,disabled:e.callBtnMode!==`call`,onClick:i[0]||=e=>n(`call`)},[J(R(my),{class:`size-4`})],10,Wk))]))}}),qk={ref:`handle`},Jk={key:0,class:`px-4 pt-3`},Yk=U({__name:`WebPhone`,props:{config:{},float:{type:Boolean},contacts:{}},emits:[`open-history`,`open-notes`,`open-contacts`,`open-calendar`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=oa(`root`),{x:o,y:s,isDragging:c}=Fv(a,{handle:oa(`handle`),initialValue:{x:20,y:20}}),l=Y(()=>r.float?{position:`fixed`,left:`${o.value}px`,top:`${s.value}px`}:{}),u=L(null),d=Mv({storageKey:`webphone-color-scheme`}),f=ov(d);wi(d,e=>{u.value?.classList.toggle(`dark`,e)},{immediate:!0});let{channels:p,isRegistered:m,isConnecting:h,notes:g,lastDialed:_,connect:v,call:y,answer:b,hangup:x,hold:S,resume:C,mute:w,unmute:T,sendDTMF:E}=nO(),{permission:D,checkPermission:O,requestPermission:k}=mO();Xa(async()=>{let e=a.value?.getRootNode();if(e instanceof ShadowRoot&&(u.value=e.host),await O(),r.config)v(r.config);else{let{sipConfig:e,isConfigured:t}=gO();t.value&&v({...e.value})}});let ee=L(null),A=Y(()=>p.value.find(e=>e.id===ee.value)??p.value[0]);wi(p,e=>{if(!e.length){ee.value=null;return}ee.value&&e.find(e=>e.id===ee.value)||(ee.value=(e.find(e=>e.status===`ringing`)??e.find(e=>e.status===`active`)??e[0])?.id??null)},{deep:!0});let te=e=>{if(!e||e===ee.value)return;let t=p.value.find(t=>t.id===e);if(t&&(t.status===`active`||t.status===`held`||t.status===`remote_held`)){let n=p.value.find(e=>e.id===ee.value);n?.status===`active`&&S(n.id),(t.status===`held`||t.status===`remote_held`)&&C(e)}ee.value=e},ne=L(``),re=L(!0),ie=Y(()=>!A.value&&m.value&&(ne.value||_.value)?`call`:`disabled`),j=Y(()=>A.value?g.value.some(e=>e.remoteUri===A.value.remoteUri):!1),M=L(!1),ae=()=>{M.value=!M.value,jD(M.value)},oe=null,se=null;wi(()=>p.value.some(e=>e.status===`ringing`),e=>{e&&!oe?oe=CO():!e&&oe&&(oe(),oe=null)}),wi(()=>p.value.some(e=>e.status===`connecting`),e=>{e&&!se?se=wO():!e&&se&&(se(),se=null)}),wi(()=>p.value.length,(e,t)=>{e<t&&(TO(),e===0&&(M.value=!1))}),eo(()=>{oe?.(),se?.()}),t({el:a});let ce=e=>{xO(e),A.value&&E(A.value.id,e)},N=()=>{ne.value=ne.value.slice(0,-1)},P=()=>{if(ie.value!==`call`)return;let e=ne.value.trim()||_.value;e&&(y(e),ne.value=``)},le=e=>{if(!(e.target instanceof HTMLInputElement)){if(/^[0-9*#]$/.test(e.key)){xO(e.key),ne.value+=e.key,A.value&&E(A.value.id,e.key);return}if(e.key===`Backspace`){N();return}e.key===`Enter`&&P()}};return(e,t)=>(G(),Uc(`div`,{ref:`root`,style:ve(l.value),class:we([`w-full max-w-[18rem] rounded-3xl bg-background shadow-md overflow-hidden select-none flex flex-col border`,{"z-50":r.float}]),onKeydown:le,tabindex:`-1`},[q(`div`,qk,[J(pk,{"is-registered":R(m),"is-connecting":R(h),"is-dark":R(d),"root-el":a.value,float:r.float,"is-dragging":R(c),onToggleDark:t[0]||=()=>R(f)(),onOpenHistory:t[1]||=e=>i(`open-history`),onOpenNotes:t[2]||=e=>i(`open-notes`,A.value?.remoteUri),onOpenContacts:t[3]||=e=>i(`open-contacts`),onOpenCalendar:t[4]||=e=>i(`open-calendar`)},null,8,[`is-registered`,`is-connecting`,`is-dark`,`root-el`,`float`,`is-dragging`])],512),R(D)===`denied`?(G(),Uc(`div`,Jk,[J(R(dE),{variant:`destructive`},{default:H(()=>[J(R(yy),{class:`size-4`}),J(R(fE),{class:`text-xs`},{default:H(()=>[...t[8]||=[tl(`Permiso de micrófono denegado.`,-1)]]),_:1})]),_:1})])):R(D)===`prompt`||R(D)===`unknown`?(G(),K(R(lE),{key:1,variant:`outline`,class:`mx-4 mt-3 gap-2 text-sm`,onClick:R(k)},{default:H(()=>[J(R(oy),{class:`size-4`}),t[9]||=tl(` Permitir micrófono `,-1)]),_:1},8,[`onClick`])):rl(``,!0),R(p).length?(G(),K(yk,{key:2,channels:R(p),"selected-id":ee.value,onSelect:te},null,8,[`channels`,`selected-id`])):rl(``,!0),A.value?(G(),K(Tk,{key:3,channel:A.value},null,8,[`channel`])):rl(``,!0),R(p).length&&A.value?.status!==`ringing`?(G(),K(Ok,{key:4,"show-pad":re.value,"has-notes":j.value,onTogglePad:t[5]||=e=>re.value=!re.value,onOpenNotes:t[6]||=e=>i(`open-notes`,A.value?.remoteUri)},null,8,[`show-pad`,`has-notes`])):rl(``,!0),A.value?.status!==`ringing`&&(!R(p).length||re.value)?(G(),K(Hk,{key:5,modelValue:ne.value,"onUpdate:modelValue":t[7]||=e=>ne.value=e,"external-contacts":r.contacts,"has-active-call":!!A.value,onDigit:ce,onBack:N,onCall:P},null,8,[`modelValue`,`external-contacts`,`has-active-call`])):rl(``,!0),J(Kk,{selected:A.value,"call-btn-mode":ie.value,"is-speaker-muted":M.value,"last-dialed":R(_),onCall:P,onAnswer:R(b),onHangup:R(x),onMute:R(w),onUnmute:R(T),onHold:R(S),onResume:R(C),onToggleSpeaker:ae},null,8,[`selected`,`call-btn-mode`,`is-speaker-muted`,`last-dialed`,`onAnswer`,`onHangup`,`onMute`,`onUnmute`,`onHold`,`onResume`])],38))}}),Xk=`@import "https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Raleway", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-950:oklch(25.8% .092 26.042);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-900:oklch(40.8% .153 2.432);--color-pink-950:oklch(28.4% .109 3.907);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Raleway", ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer utilities{.\\@container\\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\\[50\\%\\]{top:50%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3\\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0\\.5{bottom:calc(var(--spacing) * .5)}.left-1\\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-\\[50\\%\\]{left:50%}.z-40{z-index:40}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-\\[var\\(--reka-select-trigger-height\\)\\]{height:var(--reka-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\\(--reka-select-content-available-height\\){max-height:var(--reka-select-content-available-height)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\\[300px\\]{max-height:300px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\\[8rem\\]{min-width:8rem}.min-w-\\[var\\(--reka-select-trigger-width\\)\\]{min-width:var(--reka-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-\\(--reka-popover-content-transform-origin\\){transform-origin:var(--reka-popover-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-2{--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\[0_1fr\\]{grid-template-columns:0 1fr}.grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\\[--spacing\\(var\\(--gap\\)\\)\\]{gap:calc(var(--spacing) * var(--gap))}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\\/50>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\\/50>:not(:last-child)){border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-border,.border-border\\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-foreground{border-color:var(--foreground)}.border-gray-200{border-color:var(--color-gray-200)}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--background)}.bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-green-500{background-color:var(--color-green-500)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted\\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-muted\\/60{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/60{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.bg-muted\\/70{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/70{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-200{background-color:var(--color-orange-200)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-200{background-color:var(--color-pink-200)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-200{background-color:var(--color-yellow-200)}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[0\\.8rem\\]{font-size:.8rem}.text-\\[10px\\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.wrap-break-word{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-background{color:var(--background)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--card-foreground)}.text-current\\/40{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\\/40{color:color-mix(in oklab, currentcolor 40%, transparent)}}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/40{color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.text-muted-foreground\\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-transparent{color:#0000}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring\\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\\:bg-primary ::selection{background-color:var(--primary)}.selection\\:bg-primary::selection{background-color:var(--primary)}.selection\\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\\:inline-flex::file-selector-button{display:inline-flex}.file\\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\:bg-transparent::file-selector-button{background-color:#0000}.file\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.focus-within\\:relative:focus-within{position:relative}.focus-within\\:z-20:focus-within{z-index:20}@media (hover:hover){.hover\\:bg-accent:hover{background-color:var(--accent)}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\\:bg-muted:hover,.hover\\:bg-muted\\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted\\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\\:bg-muted\\/70:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted\\/70:hover{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\\:bg-secondary:hover,.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-amber-400:hover{color:var(--color-amber-400)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-green-500:hover{color:var(--color-green-500)}.hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\\:text-red-500:hover{color:var(--color-red-500)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:opacity-100:hover{opacity:1}.hover\\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\\:z-10:focus{z-index:10}.focus\\:bg-accent:focus{background-color:var(--accent)}.focus\\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\\:z-10:focus-visible{z-index:10}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\\[select\\:disabled\\]\\:opacity-50:has(:is(select:disabled)){opacity:.5}.has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\\[\\>svg\\]\\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-disabled\\:text-muted-foreground[data-disabled]{color:var(--muted-foreground)}.data-disabled\\:opacity-40[data-disabled]{opacity:.4}.data-outside-view\\:text-muted-foreground[data-outside-view]{color:var(--muted-foreground)}.data-outside-view\\:opacity-40[data-outside-view]{opacity:.4}.data-selected\\:bg-primary[data-selected]{background-color:var(--primary)}.data-selected\\:text-primary-foreground[data-selected]{color:var(--primary-foreground)}.data-unavailable\\:line-through[data-unavailable]{text-decoration-line:line-through}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[highlighted\\]\\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-\\[highlighted\\]\\:text-accent-foreground[data-highlighted]{color:var(--accent-foreground)}.data-\\[orientation\\=horizontal\\]\\:h-1\\.5[data-orientation=horizontal]{height:calc(var(--spacing) * 1.5)}.data-\\[orientation\\=horizontal\\]\\:h-full[data-orientation=horizontal]{height:100%}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing) * 44)}.data-\\[orientation\\=vertical\\]\\:w-1\\.5[data-orientation=vertical]{width:calc(var(--spacing) * 1.5)}.data-\\[orientation\\=vertical\\]\\:w-auto[data-orientation=vertical]{width:auto}.data-\\[orientation\\=vertical\\]\\:w-full[data-orientation=vertical]{width:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[orientation\\=vertical\\]\\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\\[placeholder\\]\\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\\[size\\=default\\]\\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\\[size\\=sm\\]\\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.\\*\\*\\:data-\\[slot\\=native-select-icon\\]\\:right-1 *)[data-slot=native-select-icon]{right:calc(var(--spacing) * 1)}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\\[spacing\\=0\\]\\:rounded-none[data-spacing="0"]{border-radius:0}.data-\\[spacing\\=0\\]\\:shadow-none[data-spacing="0"]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\\[spacing\\=0\\]\\:first\\:rounded-l-md[data-spacing="0"]:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\\[spacing\\=0\\]\\:last\\:rounded-r-md[data-spacing="0"]:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=on\\]\\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-l-0[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-l[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\\[spacing\\=default\\]\\:data-\\[variant\\=outline\\]\\:shadow-xs[data-spacing=default][data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (width>=40rem){.sm\\:w-96{width:calc(var(--spacing) * 96)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-xs{max-width:var(--container-xs)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\\:gap-y-0{row-gap:calc(var(--spacing) * 0)}.sm\\:rounded-lg{border-radius:var(--radius)}.sm\\:text-left{text-align:left}}@media (width>=48rem){.md\\:w-full{width:100%}.md\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\\:border-violet-800:is(.dark *){border-color:var(--color-violet-800)}.dark\\:bg-blue-900\\/70:is(.dark *){background-color:#1c398eb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-900) 70%, transparent)}}.dark\\:bg-blue-950:is(.dark *){background-color:var(--color-blue-950)}.dark\\:bg-blue-950\\/80:is(.dark *){background-color:#162456cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 80%, transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\\:bg-green-900\\/70:is(.dark *){background-color:#0d542bb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-green-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-green-900) 70%, transparent)}}.dark\\:bg-green-950\\/80:is(.dark *){background-color:#032e15cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-green-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 80%, transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\\:bg-orange-900\\/70:is(.dark *){background-color:#7e2a0cb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-orange-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-900) 70%, transparent)}}.dark\\:bg-orange-950\\/80:is(.dark *){background-color:#441306cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-orange-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 80%, transparent)}}.dark\\:bg-pink-900\\/70:is(.dark *){background-color:#861043b3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-pink-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-pink-900) 70%, transparent)}}.dark\\:bg-pink-950\\/80:is(.dark *){background-color:#510424cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-pink-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-pink-950) 80%, transparent)}}.dark\\:bg-purple-900\\/70:is(.dark *){background-color:#59168bb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-purple-900) 70%, transparent)}}.dark\\:bg-purple-950\\/80:is(.dark *){background-color:#3c0366cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-purple-950) 80%, transparent)}}.dark\\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\\:bg-violet-950:is(.dark *){background-color:var(--color-violet-950)}.dark\\:bg-yellow-900\\/70:is(.dark *){background-color:#733e0ab3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-yellow-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-yellow-900) 70%, transparent)}}.dark\\:bg-yellow-950\\/80:is(.dark *){background-color:#432004cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-yellow-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-yellow-950) 80%, transparent)}}.dark\\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\\:text-violet-400:is(.dark *){color:var(--color-violet-400)}@media (hover:hover){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\\[\\&_p\\]\\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]),.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'size-\\\\\\'\\]\\)\\]\\:size-4 svg:not([class*="'size-'"]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'text-\\\\\\'\\]\\)\\]\\:text-muted-foreground svg:not([class*="'text-'"]){color:var(--muted-foreground)}.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:hidden::-webkit-calendar-picker-indicator{display:none}.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:appearance-none::-webkit-calendar-picker-indicator{appearance:none}.\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.\\[\\&\\>svg\\]\\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:translate-y-0\\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\\[\\&\\>svg\\]\\:text-current>svg{color:currentColor}.\\[\\&\\[data-today\\]\\:not\\(\\[data-selected\\]\\)\\]\\:bg-accent[data-today]:not([data-selected]){background-color:var(--accent)}.\\[\\&\\[data-today\\]\\:not\\(\\[data-selected\\]\\)\\]\\:text-accent-foreground[data-today]:not([data-selected]){color:var(--accent-foreground)}@media (hover:hover){a.\\[a\\&\\]\\:hover\\:bg-accent:hover{background-color:var(--accent)}a.\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}`,Zk=h_(),Qk=cd(Yk,{styles:[(e=>e.replace(/:root\s*\{/g,`:host {`).replace(/\.dark\s*\{/g,`:host(.dark) {`).replace(/:is\(\.dark \*\)/g,`:is(:host(.dark) *)`))(Xk)],configureApp(e){e.use(Zk)}});return customElements.define(`web-phone`,Qk),e.WebPhoneElement=Qk,e})({});
58
+ `,f.send(i)}})),mD=o((e=>{var t=LE(),n=ME(),r=FE(),i=IE(),a=uD(),o=NE();e.settings={authorization_user:null,password:null,realm:null,ha1:null,authorization_jwt:null,display_name:null,uri:null,contact_uri:null,instance_id:null,use_preloaded_route:!1,session_timers:!0,session_timers_refresh_method:n.UPDATE,session_timers_force_refresher:!1,no_answer_timeout:60,register:!0,register_expires:600,register_from_tag_trail:``,registrar_server:null,sockets:null,connection_recovery_max_interval:n.CONNECTION_RECOVERY_MAX_INTERVAL,connection_recovery_min_interval:n.CONNECTION_RECOVERY_MIN_INTERVAL,extra_headers:null,via_host:`${t.createRandomToken(12)}.invalid`};var s={mandatory:{sockets(e){let t=[];if(a.isSocket(e))t.push({socket:e});else if(Array.isArray(e)&&e.length)for(let n of e)Object.prototype.hasOwnProperty.call(n,`socket`)&&a.isSocket(n.socket)?t.push(n):a.isSocket(n)&&t.push({socket:n});else return;return t},uri(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&t.user)return t}},optional:{authorization_user(e){if(r.parse(`"${e}"`,`quoted_string`)!==-1)return e},authorization_jwt(e){if(typeof e==`string`)return e},user_agent(e){if(typeof e==`string`)return e},connection_recovery_max_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},connection_recovery_min_interval(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},contact_uri(e){if(typeof e==`string`){let t=r.parse(e,`SIP_URI`);if(t!==-1)return t}},display_name(e){return e},instance_id(e){if(/^uuid:/i.test(e)&&(e=e.substr(5)),r.parse(e,`uuid`)!==-1)return e},no_answer_timeout(e){if(t.isDecimal(e)){let t=Number(e);if(t>0)return t}},session_timers(e){if(typeof e==`boolean`)return e},session_timers_refresh_method(e){if(typeof e==`string`&&(e=e.toUpperCase(),e===n.INVITE||e===n.UPDATE))return e},session_timers_force_refresher(e){if(typeof e==`boolean`)return e},password(e){return String(e)},realm(e){return String(e)},ha1(e){return String(e)},register(e){if(typeof e==`boolean`)return e},register_expires(e){if(t.isDecimal(e)){let t=Number(e);if(t>=0)return t}},register_from_tag_trail(e){return typeof e==`function`?e:String(e)},registrar_server(e){/^sip:/i.test(e)||(e=`${n.SIP}:${e}`);let t=i.parse(e);if(t&&!t.user)return t},use_preloaded_route(e){if(typeof e==`boolean`)return e},extra_headers(e){let t=[];if(Array.isArray(e)&&e.length)for(let n of e)typeof n==`string`&&t.push(n);else return;return t}}};e.load=(e,n)=>{for(let t in s.mandatory)if(n.hasOwnProperty(t)){let r=n[t],i=s.mandatory[t](r);if(i!==void 0)e[t]=i;else throw new o.ConfigurationError(t,r)}else throw new o.ConfigurationError(t);for(let r in s.optional)if(n.hasOwnProperty(r)){let i=n[r];if(t.isEmpty(i))continue;let a=s.optional[r](i);if(a!==void 0)e[r]=a;else throw new o.ConfigurationError(r,i)}}})),hD=o(((e,t)=>{var n=RE().EventEmitter,r=HE(),i=ME(),a=QE(),o=aD(),s=oD(),c=sD(),l=cD(),u=lD(),d=XE(),f=dD(),p=LE(),m=NE(),h=IE(),g=fD(),_=qE(),v=pD(),y=mD(),b=new r(`UA`),x={STATUS_INIT:0,STATUS_READY:1,STATUS_USER_CLOSED:2,STATUS_NOT_READY:3,CONFIGURATION_ERROR:1,NETWORK_ERROR:2};t.exports=class extends n{static get C(){return x}constructor(e){if(!e)throw TypeError(`Not enough arguments`);let t=[`password`,`ha1`,`authorization_jwt`];b.debug(`new() [configuration:%o]`,Object.entries(e).filter(([e])=>!t.includes(e))),super(),this._cache={credentials:{}},this._configuration=Object.assign({},y.settings),this._dynConfiguration={},this._dialogs={},this._applicants={},this._sessions={},this._transport=null,this._contact=null,this._status=x.STATUS_INIT,this._error=null,this._transactions={nist:{},nict:{},ist:{},ict:{}},this._data={},this._closeTimer=null;try{this._loadConfig(e)}catch(e){throw this._status=x.STATUS_NOT_READY,this._error=x.CONFIGURATION_ERROR,e}this._registrator=new a(this)}get C(){return x}get status(){return this._status}get contact(){return this._contact}get configuration(){return this._configuration}get transport(){return this._transport}start(){b.debug(`start()`),this._status===x.STATUS_INIT?this._transport.connect():this._status===x.STATUS_USER_CLOSED?(b.debug(`restarting UA`),this._closeTimer!==null&&(clearTimeout(this._closeTimer),this._closeTimer=null,this._transport.disconnect()),this._status=x.STATUS_INIT,this._transport.connect()):this._status===x.STATUS_READY?b.debug(`UA is in READY status, not restarted`):b.debug(`ERROR: connection is down, Auto-Recovery system is trying to reconnect`),this._dynConfiguration.register=this._configuration.register}register(){b.debug(`register()`),this._dynConfiguration.register=!0,this._registrator.register()}unregister(e){b.debug(`unregister()`),this._dynConfiguration.register=!1,this._registrator.unregister(e)}registrator(){return this._registrator}isRegistered(){return this._registrator.registered}isConnected(){return this._transport.isConnected()}call(e,t){b.debug(`call()`);let n=new o(this);return n.connect(e,t),n}sendMessage(e,t,n){b.debug(`sendMessage()`);let r=new l(this);return r.send(e,t,n),r}subscribe(e,t,n,r){return b.debug(`subscribe()`),new s(this,e,t,n,r)}notify(e,t,n){return b.debug(`notify()`),new c(this,e,t,n)}sendOptions(e,t,n){b.debug(`sendOptions()`);let r=new u(this);return r.send(e,t,n),r}terminateSessions(e){b.debug(`terminateSessions()`);for(let t in this._sessions)this._sessions[t].isEnded()||this._sessions[t].terminate(e)}stop(){if(b.debug(`stop()`),this._dynConfiguration={},this._status===x.STATUS_USER_CLOSED){b.debug(`UA already closed`);return}this._registrator.close();let e=Object.keys(this._sessions).length;for(let e in this._sessions)if(Object.prototype.hasOwnProperty.call(this._sessions,e)){b.debug(`closing session ${e}`);try{this._sessions[e].terminate()}catch{}}for(let e in this._applicants)if(Object.prototype.hasOwnProperty.call(this._applicants,e))try{this._applicants[e].close()}catch{}this._status=x.STATUS_USER_CLOSED,Object.keys(this._transactions.nict).length+Object.keys(this._transactions.nist).length+Object.keys(this._transactions.ict).length+Object.keys(this._transactions.ist).length===0&&e===0?this._transport.disconnect():this._closeTimer=setTimeout(()=>{this._closeTimer=null,this._transport.disconnect()},2e3)}normalizeTarget(e){return p.normalizeTarget(e,this._configuration.hostport_params)}get(e){switch(e){case`authorization_user`:return this._configuration.authorization_user;case`realm`:return this._configuration.realm;case`ha1`:return this._configuration.ha1;case`authorization_jwt`:return this._configuration.authorization_jwt;default:b.warn(`get() | cannot get "%s" parameter in runtime`,e);return}}set(e,t){switch(e){case`authorization_user`:this._configuration.authorization_user=String(t);break;case`password`:this._configuration.password=String(t);break;case`realm`:this._configuration.realm=String(t);break;case`ha1`:this._configuration.ha1=String(t),this._configuration.password=null;break;case`authorization_jwt`:this._configuration.authorization_jwt=String(t);break;case`display_name`:this._configuration.display_name=t;break;case`extra_headers`:this._configuration.extra_headers=t;break;default:return b.warn(`set() | cannot set "%s" parameter in runtime`,e),!1}return!0}newTransaction(e){this._transactions[e.type][e.id]=e,this.emit(`newTransaction`,{transaction:e})}destroyTransaction(e){delete this._transactions[e.type][e.id],this.emit(`transactionDestroyed`,{transaction:e})}newDialog(e){this._dialogs[e.id]=e}destroyDialog(e){delete this._dialogs[e.id]}newMessage(e,t){this._applicants[e]=e,this.emit(`newMessage`,t)}newOptions(e,t){this._applicants[e]=e,this.emit(`newOptions`,t)}destroyMessage(e){delete this._applicants[e]}newRTCSession(e,t){this._sessions[e.id]=e,this.emit(`newRTCSession`,t)}destroyRTCSession(e){delete this._sessions[e.id]}registered(e){this.emit(`registered`,e)}unregistered(e){this.emit(`unregistered`,e)}registrationFailed(e){this.emit(`registrationFailed`,e)}receiveRequest(e){let t=e.method;if(e.ruri.user!==this._configuration.uri.user&&e.ruri.user!==this._contact.uri.user){b.debug(`Request-URI does not point to us`),e.method!==i.ACK&&e.reply_sl(404);return}if(e.ruri.scheme===i.SIPS){e.reply_sl(416);return}if(d.checkTransaction(this,e))return;if(t===i.INVITE?new d.InviteServerTransaction(this,this._transport,e):t!==i.ACK&&t!==i.CANCEL&&new d.NonInviteServerTransaction(this,this._transport,e),t===i.OPTIONS){if(this.listeners(`newOptions`).length===0){e.reply(200);return}new u(this).init_incoming(e)}else if(t===i.MESSAGE){if(this.listeners(`newMessage`).length===0){e.reply(405);return}new l(this).init_incoming(e)}else if(t===i.SUBSCRIBE){if(this.listeners(`newSubscribe`).length===0){e.reply(405);return}}else if(t===i.INVITE&&!e.to_tag&&this.listeners(`newRTCSession`).length===0){e.reply(405);return}let n,r;if(e.to_tag)n=this._findDialog(e.call_id,e.from_tag,e.to_tag),n?n.receiveRequest(e):t===i.NOTIFY?(r=this._findSession(e),r?r.receiveRequest(e):(b.debug(`received NOTIFY request for a non existent subscription`),e.reply(481,`Subscription does not exist`))):t!==i.ACK&&e.reply(481);else switch(t){case i.INVITE:if(window.RTCPeerConnection)if(e.hasHeader(`replaces`)){let t=e.replaces;n=this._findDialog(t.call_id,t.from_tag,t.to_tag),n?(r=n.owner,r.isEnded()?e.reply(603):r.receiveRequest(e)):e.reply(481)}else r=new o(this),r.init_incoming(e);else b.warn(`INVITE received but WebRTC is not supported`),e.reply(488);break;case i.BYE:e.reply(481);break;case i.CANCEL:r=this._findSession(e),r?r.receiveRequest(e):b.debug(`received CANCEL request for a non existent session`);break;case i.ACK:break;case i.NOTIFY:this.emit(`sipEvent`,{event:e.event,request:e}),e.reply(200);break;case i.SUBSCRIBE:c.init_incoming(e,()=>{this.emit(`newSubscribe`,{event:e.event,request:e})});break;default:e.reply(405);break}}_findSession({call_id:e,from_tag:t,to_tag:n}){let r=e+t,i=this._sessions[r],a=e+n,o=this._sessions[a];return i||o||null}_findDialog(e,t,n){let r=e+t+n,i=this._dialogs[r];return i||(r=e+n+t,i=this._dialogs[r],i||null)}_loadConfig(e){y.load(this._configuration,e),this._configuration.display_name===0&&(this._configuration.display_name=`0`),this._configuration.instance_id||(this._configuration.instance_id=p.newUUID()),this._configuration.jssip_id=p.createRandomToken(5);let t=this._configuration.uri.clone();t.user=null,this._configuration.hostport_params=t.toString().replace(/^sip:/i,``);try{this._transport=new f(this._configuration.sockets,{max_interval:this._configuration.connection_recovery_max_interval,min_interval:this._configuration.connection_recovery_min_interval}),this._transport.onconnecting=S.bind(this),this._transport.onconnect=C.bind(this),this._transport.ondisconnect=w.bind(this),this._transport.ondata=T.bind(this)}catch(e){throw b.warn(e),new m.ConfigurationError(`sockets`,this._configuration.sockets)}if(delete this._configuration.sockets,this._configuration.authorization_user||(this._configuration.authorization_user=this._configuration.uri.user),!this._configuration.registrar_server){let e=this._configuration.uri.clone();e.user=null,e.clearParams(),e.clearHeaders(),this._configuration.registrar_server=e}this._configuration.no_answer_timeout*=1e3,this._configuration.contact_uri?this._configuration.via_host=this._configuration.contact_uri.host:this._configuration.contact_uri=new h(`sip`,p.createRandomToken(8),this._configuration.via_host,null,{transport:`ws`}),this._contact={pub_gruu:null,temp_gruu:null,uri:this._configuration.contact_uri,toString(e={}){let t=e.anonymous||null,n=e.outbound||null,r=`<`;return t?r+=this.temp_gruu||`sip:anonymous@anonymous.invalid;transport=ws`:r+=this.pub_gruu||this.uri.toString(),n&&(t?!this.temp_gruu:!this.pub_gruu)&&(r+=`;ob`),r+=`>`,r}};let n=[`authorization_user`,`password`,`realm`,`ha1`,`authorization_jwt`,`display_name`,`register`,`extra_headers`];for(let e in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,e)&&(n.indexOf(e)===-1?Object.defineProperty(this._configuration,e,{writable:!1,configurable:!1}):Object.defineProperty(this._configuration,e,{writable:!0,configurable:!1}));b.debug(`configuration parameters after validation:`);for(let e in this._configuration)if(Object.prototype.hasOwnProperty.call(y.settings,e))switch(e){case`uri`:case`registrar_server`:b.debug(`- ${e}: ${this._configuration[e]}`);break;case`password`:case`ha1`:case`authorization_jwt`:b.debug(`- ${e}: NOT SHOWN`);break;default:b.debug(`- ${e}: ${JSON.stringify(this._configuration[e])}`)}}};function S(e){this.emit(`connecting`,e)}function C(e){this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_READY,this._error=null,this.emit(`connected`,e),this._dynConfiguration.register&&this._registrator.register())}function w(e){for(let e of[`nict`,`ict`,`nist`,`ist`])for(let t in this._transactions[e])Object.prototype.hasOwnProperty.call(this._transactions[e],t)&&this._transactions[e][t].onTransportError();this.emit(`disconnected`,e),this._registrator.onTransportClosed(),this._status!==x.STATUS_USER_CLOSED&&(this._status=x.STATUS_NOT_READY,this._error=x.NETWORK_ERROR)}function T(e){let t=e.transport,n=e.message;if(n=g.parseMessage(n,this),n&&!(this._status===x.STATUS_USER_CLOSED&&n instanceof _.IncomingRequest)&&v(n,this,t)){if(n instanceof _.IncomingRequest)n.transport=t,this.receiveRequest(n);else if(n instanceof _.IncomingResponse){let e;switch(n.method){case i.INVITE:e=this._transactions.ict[n.via_branch],e&&e.receiveResponse(n);break;case i.ACK:break;default:e=this._transactions.nict[n.via_branch],e&&e.receiveResponse(n);break}}}}})),gD=o(((e,t)=>{var n=HE(),r=FE(),i=new n(`WebSocketInterface`);t.exports=class{constructor(e){i.debug(`new() [url:"%s"]`,e),this._url=e,this._sip_uri=null,this._via_transport=null,this._ws=null;let t=r.parse(e,`absoluteURI`);if(t===-1)throw i.warn(`invalid WebSocket URI: ${e}`),TypeError(`Invalid argument: ${e}`);if(t.scheme!==`wss`&&t.scheme!==`ws`)throw i.warn(`invalid WebSocket URI scheme: ${t.scheme}`),TypeError(`Invalid argument: ${e}`);this._sip_uri=`sip:${t.host}${t.port?`:${t.port}`:``};transport=ws`,this._via_transport=t.scheme.toUpperCase()}get via_transport(){return this._via_transport}set via_transport(e){this._via_transport=e.toUpperCase()}get sip_uri(){return this._sip_uri}get url(){return this._url}connect(){if(i.debug(`connect()`),this.isConnected()){i.debug(`WebSocket ${this._url} is already connected`);return}else if(this.isConnecting()){i.debug(`WebSocket ${this._url} is connecting`);return}this._ws&&this.disconnect(),i.debug(`connecting to WebSocket ${this._url}`);try{this._ws=new WebSocket(this._url,`sip`),this._ws.binaryType=`arraybuffer`,this._ws.onopen=this._onOpen.bind(this),this._ws.onclose=this._onClose.bind(this),this._ws.onmessage=this._onMessage.bind(this),this._ws.onerror=this._onError.bind(this)}catch(e){this._onError(e)}}disconnect(){i.debug(`disconnect()`),this._ws&&=(this._ws.onopen=()=>{},this._ws.onclose=()=>{},this._ws.onmessage=()=>{},this._ws.onerror=()=>{},this._ws.close(),null)}send(e){return i.debug(`send()`),this.isConnected()?(this._ws.send(e),!0):(i.warn(`unable to send message, WebSocket is not open`),!1)}isConnected(){return this._ws&&this._ws.readyState===this._ws.OPEN}isConnecting(){return this._ws&&this._ws.readyState===this._ws.CONNECTING}_onOpen(){i.debug(`WebSocket ${this._url} connected`),this.onconnect()}_onClose({wasClean:e,code:t,reason:n}){i.debug(`WebSocket ${this._url} closed`),e===!1&&i.debug(`WebSocket abrupt disconnection`),this.ondisconnect(!e,t,n)}_onMessage({data:e}){i.debug(`received WebSocket message`),this.ondata(e)}_onError(e){i.warn(`WebSocket ${this._url} error: `,e)}}})),_D=o(((e,t)=>{var n=(jE(),l(mE).default),r=ME(),i=NE(),a=LE(),o=hD(),s=IE(),c=PE(),u=FE(),d=gD(),f=VE()(`JsSIP`),p=aD();f(`version %s`,n.version),t.exports={C:r,Exceptions:i,Utils:a,UA:o,URI:s,NameAddrHeader:c,WebSocketInterface:d,Grammar:u,RTCSession:p,debug:VE(),get name(){return n.title},get version(){return n.version}}}))(),vD=null,yD=new Map,bD=new Map,xD=e=>(vD&&=(vD.stop(),null),vD=new _D.UA({sockets:[new _D.WebSocketInterface(e.server)],uri:e.uri,password:e.password,display_name:e.displayName,register:!0,...e.iceServers&&{pcConfig:{iceServers:e.iceServers}}}),vD),SD=()=>vD,CD=()=>{yD.forEach(e=>{try{e.terminate()}catch{}}),yD.clear(),bD.forEach(e=>e.remove()),bD.clear(),vD?.stop(),vD=null},wD=(e,t)=>{yD.set(e,t)},TD=e=>yD.get(e),ED=e=>{yD.delete(e)},DD=(e,t)=>{let n=bD.get(e);if(n){n.srcObject!==t&&(n.srcObject=t),n.paused&&n.play().catch(()=>{});return}let r=document.createElement(`audio`);r.autoplay=!0,r.style.display=`none`,document.body.appendChild(r),r.srcObject=t,r.play().catch(e=>console.warn(`[webphone] audio play blocked:`,e)),bD.set(e,r)},OD=e=>{let t=bD.get(e);t&&(t.pause(),t.srcObject=null,t.remove(),bD.delete(e))},kD=async e=>{for(let t of bD.values())await t.setSinkId?.(e)},AD=e=>{let t=Math.max(0,Math.min(1,e/100));for(let e of bD.values())e.volume=t},jD=e=>{for(let t of bD.values())t.muted=e},MD=`webphone`,ND=4,PD=`call-history`,FD=`phone-notes`,ID=`contacts`,LD=`scheduled-calls`,RD=null,zD=()=>RD||(RD=new Promise((e,t)=>{let n=indexedDB.open(MD,ND);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(PD)||e.createObjectStore(PD,{keyPath:`id`}),e.objectStoreNames.contains(FD)||e.createObjectStore(FD,{keyPath:`id`}).createIndex(`remoteUri`,`remoteUri`,{unique:!1}),e.objectStoreNames.contains(ID)||e.createObjectStore(ID,{keyPath:`id`}),e.objectStoreNames.contains(LD)||e.createObjectStore(LD,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>{RD=null,t(n.error)},n.onblocked=()=>{RD=null,t(Error(`IndexedDB upgrade blocked`))}}),RD),BD=e=>new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)}),VD=async()=>{let e=await zD(),t=(await BD(e.transaction(PD,`readonly`).objectStore(PD).getAll())).map(e=>({...e,endedAt:new Date(e.endedAt)})).sort((e,t)=>t.endedAt.getTime()-e.endedAt.getTime());if(t.length>50){let n=e.transaction(PD,`readwrite`).objectStore(PD);await Promise.all(t.slice(50).map(e=>BD(n.delete(e.id))))}return t.slice(0,50)},HD=async e=>{await BD((await zD()).transaction(PD,`readwrite`).objectStore(PD).put({...e,endedAt:e.endedAt.toISOString()}))},UD=async()=>(await BD((await zD()).transaction(FD,`readonly`).objectStore(FD).getAll())).map(e=>({...e,createdAt:new Date(e.createdAt)})).sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),WD=async e=>{await BD((await zD()).transaction(FD,`readwrite`).objectStore(FD).put({...e,createdAt:e.createdAt.toISOString()}))},GD=async e=>{await BD((await zD()).transaction(FD,`readwrite`).objectStore(FD).delete(e))},KD=async()=>BD((await zD()).transaction(ID,`readonly`).objectStore(ID).getAll()),qD=async e=>{await BD((await zD()).transaction(ID,`readwrite`).objectStore(ID).put(e))},JD=async e=>{await BD((await zD()).transaction(ID,`readwrite`).objectStore(ID).delete(e))},YD=async()=>(await BD((await zD()).transaction(LD,`readonly`).objectStore(LD).getAll())).map(e=>({...e,scheduledAt:new Date(e.scheduledAt)})).sort((e,t)=>e.scheduledAt.getTime()-t.scheduledAt.getTime()),XD=async e=>{await BD((await zD()).transaction(LD,`readwrite`).objectStore(LD).put({...e,scheduledAt:e.scheduledAt.toISOString()}))},ZD=async e=>{await BD((await zD()).transaction(LD,`readwrite`).objectStore(LD).delete(e))},QD=A_(`webphone`,()=>{let e=L([]),t=L(!1),n=L(!1),r=L([]),i=L([]),a=L([]);VD().then(e=>{r.value=e}).catch(()=>{}),UD().then(e=>{i.value=e}).catch(()=>{}),YD().then(e=>{a.value=e}).catch(()=>{});let o=new Map,s=Y(()=>e.value.filter(e=>e.status===`ringing`)),c=Y(()=>e.value.filter(e=>e.status===`active`||e.status===`held`||e.status===`remote_held`)),l=Y(()=>r.value.find(e=>e.direction===`outgoing`)?.remoteUri??null),u=e=>{r.value.unshift(e),r.value.length>50&&(r.value.length=50),HD(e).catch(()=>{})},d=t=>{e.value.filter(e=>e.id!==t&&e.status===`active`).forEach(e=>{TD(e.id)?.hold(),e.status=`held`})};return{channels:e,isRegistered:t,isConnecting:n,history:r,notes:i,lastDialed:l,incomingChannels:s,activeChannels:c,addChannel:t=>e.value.length>=3?!1:(t.status===`active`&&d(t.id),e.value.push(t),!0),updateStatus:(t,n)=>{n===`active`&&d(t);let r=e.value.find(e=>e.id===t);r&&(r.status=n)},updateMute:(t,n)=>{let r=e.value.find(e=>e.id===t);r&&(r.isMuted=n)},startTimer:t=>{let n=e.value.find(e=>e.id===t);n&&(n.startTime=new Date,o.set(t,setInterval(()=>{n.startTime&&(n.duration=Math.floor((Date.now()-n.startTime.getTime())/1e3))},1e3)))},removeChannel:t=>{let n=o.get(t);n&&(clearInterval(n),o.delete(t));let r=e.value.find(e=>e.id===t);if(r){let e;e=r.startTime===null?r.direction===`incoming`?`missed`:`failed`:`answered`,u({id:t,direction:r.direction,remoteUri:r.remoteUri,remoteName:r.remoteName,duration:r.duration,outcome:e,endedAt:new Date})}let i=e.value.findIndex(e=>e.id===t);i!==-1&&e.value.splice(i,1)},addNote:(e,t,n,r)=>{let a={id:crypto.randomUUID(),remoteUri:e,remoteName:t,text:n.trim(),color:r,createdAt:new Date};i.value.unshift(a),WD(a).catch(()=>{})},removeNote:e=>{let t=i.value.findIndex(t=>t.id===e);t!==-1&&i.value.splice(t,1),GD(e).catch(()=>{})},scheduledCalls:a,addScheduledCall:e=>{let t={id:crypto.randomUUID(),...e};a.value.push(t),a.value.sort((e,t)=>e.scheduledAt.getTime()-t.scheduledAt.getTime()),XD(t).catch(()=>{})},removeScheduledCall:e=>{let t=a.value.findIndex(t=>t.id===e);t!==-1&&a.value.splice(t,1),ZD(e).catch(()=>{})}}}),$D={audio:!0,video:!1},eO=e=>{let t=new URL(e.server).hostname,n=e.uri.split(`:`)[1]?.split(`@`)[0];!t||!n||fetch(`https://${t}/api/webphone/ip`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extension:n})}).catch(()=>{})},tO=async()=>{try{return await navigator.mediaDevices.getUserMedia($D)}catch(e){return console.warn(`[webphone] microphone access denied`,e),null}},nO=()=>{let e=QD();return{channels:Y(()=>e.channels),isRegistered:Y(()=>e.isRegistered),isConnecting:Y(()=>e.isConnecting),history:Y(()=>e.history),notes:Y(()=>e.notes),lastDialed:Y(()=>e.lastDialed),connect:t=>{let n=xD(t);e.isConnecting=!0,n.on(`registered`,()=>{e.isRegistered=!0,e.isConnecting=!1,eO(t)}),n.on(`unregistered`,()=>{e.isRegistered=!1}),n.on(`registrationFailed`,()=>{e.isRegistered=!1,e.isConnecting=!1}),n.on(`newRTCSession`,t=>{let{session:n,originator:r}=t,i=`ch-${Date.now()}-${Math.random().toString(36).slice(2,7)}`;wD(i,n),e.addChannel({id:i,direction:r===`remote`?`incoming`:`outgoing`,status:r===`remote`?`ringing`:`connecting`,remoteUri:n.remote_identity.uri.user??n.remote_identity.uri.toString(),remoteName:n.remote_identity.display_name??``,startTime:null,duration:0,isMuted:!1});let a=e=>{e.addEventListener(`track`,e=>{DD(i,e.streams[0]??new MediaStream([e.track]))})};n.connection?a(n.connection):n.on(`peerconnection`,e=>{a(e.peerconnection)});let o=!1,s=()=>{o||(o=!0,e.channels.filter(e=>e.id!==i&&e.status===`active`).forEach(t=>{TD(t.id)?.hold(),e.updateStatus(t.id,`held`)}),e.updateStatus(i,`active`),e.startTimer(i))};n.on(`accepted`,s),n.on(`confirmed`,s),n.on(`hold`,t=>{e.updateStatus(i,t.originator===`local`?`held`:`remote_held`)}),n.on(`unhold`,()=>{e.updateStatus(i,`active`)}),n.on(`muted`,()=>e.updateMute(i,!0)),n.on(`unmuted`,()=>e.updateMute(i,!1)),n.on(`ended`,()=>{OD(i),ED(i),e.removeChannel(i)}),n.on(`failed`,()=>{OD(i),ED(i),e.removeChannel(i)})}),n.start()},disconnect:()=>{CD(),e.isRegistered=!1,e.isConnecting=!1},call:async t=>{let n=SD();if(!n||!e.isRegistered)return;let r=await tO();r&&n.call(t,{mediaConstraints:$D,mediaStream:r,rtcOfferConstraints:{offerToReceiveAudio:!0,offerToReceiveVideo:!1}})},answer:async e=>{let t=await tO();t&&TD(e)?.answer({mediaConstraints:$D,mediaStream:t})},hangup:t=>{TD(t)?.terminate(),TD(t)||e.removeChannel(t)},hold:t=>{TD(t)?.hold(),e.updateStatus(t,`held`)},resume:t=>{TD(t)?.unhold(),e.updateStatus(t,`active`)},mute:t=>{TD(t)?.mute({audio:!0,video:!1}),e.updateMute(t,!0)},unmute:t=>{TD(t)?.unmute({audio:!0,video:!1}),e.updateMute(t,!1)},addNote:(t,n,r,i)=>{e.addNote(t,n,r,i)},removeNote:t=>{e.removeNote(t)},sendDTMF:(e,t)=>{TD(e)?.sendDTMF(t)}}},rO=L(`unknown`),iO=L([]),aO=L(``),oO=L(``),sO=L(100),cO=L(100),lO=Y(()=>iO.value.filter(e=>e.kind===`audioinput`)),uO=Y(()=>iO.value.filter(e=>e.kind===`audiooutput`)),dO=async()=>{iO.value=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`||e.kind===`audiooutput`),!aO.value&&lO.value[0]&&(aO.value=lO.value[0].deviceId),!oO.value&&uO.value[0]&&(oO.value=uO.value[0].deviceId)},fO=async()=>{try{(await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})).getTracks().forEach(e=>e.stop()),rO.value=`granted`,await dO()}catch{rO.value=`denied`}},pO=async()=>{if(!navigator.permissions){await dO();return}let e=await navigator.permissions.query({name:`microphone`});rO.value=e.state,e.state===`granted`&&await dO(),e.addEventListener(`change`,async()=>{rO.value=e.state,e.state===`granted`&&await dO()})};wi(oO,e=>{e&&kD(e).catch(()=>{})}),wi(cO,e=>AD(e));var mO=()=>({permission:rO,inputDevices:lO,outputDevices:uO,selectedInputId:aO,selectedOutputId:oO,inputVolume:sO,outputVolume:cO,requestPermission:fO,checkPermission:pO}),hO=Rv(`webphone-sip-config`,{server:``,uri:``,password:``,displayName:``});function gO(){return{sipConfig:hO,isConfigured:Y(()=>!!hO.value.server&&!!hO.value.uri&&!!hO.value.password)}}var _O=null,vO=()=>(_O||=new AudioContext,_O.state===`suspended`&&_O.resume().catch(()=>{}),_O),yO={1:[697,1209],2:[697,1336],3:[697,1477],4:[770,1209],5:[770,1336],6:[770,1477],7:[852,1209],8:[852,1336],9:[852,1477],"*":[941,1209],0:[941,1336],"#":[941,1477]},bO=(e,t,n,r,i=.08)=>{let a=e.createOscillator(),o=e.createGain();a.type=`sine`,a.frequency.value=t,o.gain.setValueAtTime(i,n),o.gain.setValueAtTime(0,r-.005),a.connect(o),o.connect(e.destination),a.start(n),a.stop(r)},xO=e=>{let t=yO[e];if(!t)return;let n=vO(),r=n.currentTime;t.forEach(e=>bO(n,e,r,r+.12))},SO=(e,t,n)=>{let r=!0,i=t/1e3,a=n/1e3,o=()=>{if(!r)return;let t=vO(),n=t.currentTime;e.forEach(e=>bO(t,e,n,n+i)),setTimeout(o,(i+a)*1e3)};return o(),()=>{r=!1}},CO=()=>SO([440,480],1e3,3e3),wO=()=>SO([440,480],2e3,4e3),TO=()=>{let e=vO(),t=e.currentTime;[480,620].forEach(n=>bO(e,n,t,t+.3,.06))},EO=U({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=ib(e,t);return(e,t)=>(G(),K(R(Mb),sl({"data-slot":`dialog`},R(n)),{default:H(t=>[W(e.$slots,`default`,Te(Qc(t)))]),_:3},16))}}),DO=U({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=ev(t,`class`);return(e,r)=>(G(),K(R(mx),sl({"data-slot":`dialog-overlay`},R(n),{class:R(cE)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),OO=U({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(t,r)=>(G(),K(R(gx),null,{default:H(()=>[J(DO),J(R(dx),sl({"data-slot":`dialog-content`},{...t.$attrs,...R(i)},{class:R(cE)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,n.class)}),{default:H(()=>[W(t.$slots,`default`),e.showCloseButton?(G(),K(R(Nb),{key:0,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`},{default:H(()=>[J(R(wy)),r[0]||=q(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):rl(``,!0)]),_:3},16,[`class`])]),_:3}))}}),kO=U({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=rb(ev(t,`class`));return(e,r)=>(G(),K(R(fx),sl({"data-slot":`dialog-description`},R(n),{class:R(cE)(`text-muted-foreground text-sm`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),AO=U({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(G(),Uc(`div`,{"data-slot":`dialog-header`,class:we(R(cE)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[W(e.$slots,`default`)],2))}}),jO=U({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=rb(ev(t,`class`));return(e,r)=>(G(),K(R(_x),sl({"data-slot":`dialog-title`},R(n),{class:R(cE)(`text-lg leading-none font-semibold`,t.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`]))}}),MO=U({__name:`DialogTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(G(),K(R(vx),sl({"data-slot":`dialog-trigger`},t),{default:H(()=>[W(e.$slots,`default`)]),_:3},16))}}),NO=U({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=ib(e,t);return(e,t)=>(G(),K(R(ww),sl({"data-slot":`popover`},R(n)),{default:H(t=>[W(e.$slots,`default`,Te(Qc(t)))]),_:3},16))}}),PO=U({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(e,t)=>(G(),K(R(kw),null,{default:H(()=>[J(R(Ow),sl({"data-slot":`popover-content`},{...e.$attrs,...R(i)},{class:R(cE)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md origin-(--reka-popover-content-transform-origin) outline-hidden`,n.class)}),{default:H(()=>[W(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),FO=U({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(G(),K(R(Aw),sl({"data-slot":`popover-trigger`},t),{default:H(()=>[W(e.$slots,`default`)]),_:3},16))}}),IO=U({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=zv(n,`modelValue`,t,{passive:!0,defaultValue:n.defaultValue});return(e,t)=>mi((G(),Uc(`input`,{"onUpdate:modelValue":t[0]||=e=>kn(r)?r.value=e:null,"data-slot":`input`,class:we(R(cE)(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n.class))},null,2)),[[Ad,R(r)]])}}),LO={class:`group/native-select relative w-fit has-[select:disabled]:opacity-50`,"data-slot":`native-select-wrapper`},RO=U({inheritAttrs:!1,__name:`NativeSelect`,props:{modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=zv(n,`modelValue`,t,{passive:!0,defaultValue:``}),i=ev(n,`class`);return(e,t)=>(G(),Uc(`div`,LO,[mi(q(`select`,sl({...e.$attrs,...R(i)},{"onUpdate:modelValue":t[0]||=e=>kn(r)?r.value=e:null,"data-slot":`native-select`,class:R(cE)(`border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n.class)}),[W(e.$slots,`default`)],16),[[Pd,R(r)]]),J(R(Zv),{class:`text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none`,"aria-hidden":`true`,"data-slot":`native-select-icon`})]))}}),zO=U({__name:`NativeSelectOption`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(G(),Uc(`option`,{"data-slot":`native-select-option`,class:we(R(cE)(`bg-popover text-popover-foreground`,t.class))},[W(e.$slots,`default`)],2))}}),BO=U({__name:`Slider`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},orientation:{},dir:{},inverted:{type:Boolean},min:{},max:{},step:{},minStepsBetweenThumbs:{},thumbAlignment:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`,`valueCommit`],setup(e,{emit:t}){let n=e,r=t,i=ib(ev(n,`class`),r);return(e,t)=>(G(),K(R(gw),sl({"data-slot":`slider`,class:R(cE)(`relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col`,n.class)},R(i)),{default:H(({modelValue:e})=>[J(R(xw),{"data-slot":`slider-track`,class:`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`},{default:H(()=>[J(R(vw),{"data-slot":`slider-range`,class:`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`})]),_:1}),(G(!0),Uc(Nc,null,mo(e,(e,t)=>(G(),K(R(bw),{key:t,"data-slot":`slider-thumb`,class:`bg-white border-primary ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`}))),128))]),_:1},16,[`class`]))}}),VO={key:0,class:`w-full min-w-0 space-y-5 pt-2`},HO={class:`space-y-2`},UO={class:`text-xs font-medium text-muted-foreground flex items-center gap-1.5`},WO={class:`w-full`},GO={class:`flex items-center gap-2 px-1`},KO={class:`text-xs tabular-nums text-muted-foreground w-7 text-right shrink-0`},qO={class:`space-y-2`},JO={class:`text-xs font-medium text-muted-foreground flex items-center gap-1.5`},YO={class:`w-full`},XO={class:`flex items-center gap-2 px-1`},ZO={class:`text-xs tabular-nums text-muted-foreground w-7 text-right shrink-0`},QO={key:1,class:`pt-2`},$O=U({__name:`AudioSettings`,setup(e){let{permission:t,inputDevices:n,outputDevices:r,selectedInputId:i,selectedOutputId:a,inputVolume:o,outputVolume:s,requestPermission:c}=mO();return(e,l)=>R(t)===`granted`?(G(),Uc(`div`,VO,[q(`div`,HO,[q(`label`,UO,[J(R(oy),{class:`size-3.5`}),l[4]||=tl(` Micrófono `,-1)]),q(`div`,WO,[J(R(RO),{modelValue:R(i),"onUpdate:modelValue":l[0]||=e=>kn(i)?i.value=e:null,class:`w-full truncate`},{default:H(()=>[(G(!0),Uc(Nc,null,mo(R(n),e=>(G(),K(R(zO),{key:e.deviceId,value:e.deviceId},{default:H(()=>[tl(We(e.label||`Micrófono ${e.deviceId.slice(0,6)}`),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),q(`div`,GO,[J(R(oy),{class:`size-3 text-muted-foreground shrink-0`}),J(R(BO),{"model-value":[R(o)],min:0,max:100,step:1,class:`flex-1 min-w-0`,"onUpdate:modelValue":l[1]||=e=>o.value=e?.[0]??R(o)},null,8,[`model-value`]),q(`span`,KO,We(R(o))+`%`,1)])]),q(`div`,qO,[q(`label`,JO,[J(R(Sy),{class:`size-3.5`}),l[5]||=tl(` Altavoz `,-1)]),q(`div`,YO,[J(R(RO),{modelValue:R(a),"onUpdate:modelValue":l[2]||=e=>kn(a)?a.value=e:null,class:`w-full truncate`},{default:H(()=>[(G(!0),Uc(Nc,null,mo(R(r),e=>(G(),K(R(zO),{key:e.deviceId,value:e.deviceId},{default:H(()=>[tl(We(e.label||`Altavoz ${e.deviceId.slice(0,6)}`),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),q(`div`,XO,[J(R(Sy),{class:`size-3 text-muted-foreground shrink-0`}),J(R(BO),{"model-value":[R(s)],min:0,max:100,step:1,class:`flex-1 min-w-0`,"onUpdate:modelValue":l[3]||=e=>s.value=e?.[0]??R(s)},null,8,[`model-value`]),q(`span`,ZO,We(R(s))+`%`,1)])])])):(G(),Uc(`div`,QO,[J(R(lE),{class:`w-full gap-2`,variant:`outline`,onClick:R(c)},{default:H(()=>[J(R(oy),{class:`size-4`}),l[6]||=tl(` Permitir micrófono `,-1)]),_:1},8,[`onClick`])]))}}),ek={class:`flex items-center gap-2`},tk={class:`text-xs text-muted-foreground`},nk={class:`text-muted-foreground hover:text-foreground transition-colors`},rk={class:`flex flex-col`},ik={class:`text-muted-foreground hover:text-foreground transition-colors`},ak={class:`flex gap-1 bg-muted rounded-lg p-1`},ok={key:0,class:`space-y-3`},sk={class:`space-y-1.5`},ck={class:`space-y-1.5`},lk={class:`space-y-1.5`},uk={class:`space-y-1.5`},dk={class:`pt-1`},fk={key:1},pk=U({__name:`PhoneHeader`,props:{isRegistered:{type:Boolean},isConnecting:{type:Boolean},isDark:{type:Boolean},rootEl:{},floating:{type:Boolean},isDragging:{type:Boolean}},emits:[`toggle-dark`,`open-history`,`open-notes`,`open-contacts`,`open-calendar`],setup(e,{emit:t}){let n=t,r=L(!1),i=L(`account`),a=()=>{r.value=!1,n(`open-history`)},o=()=>{r.value=!1,n(`open-notes`)},s=()=>{r.value=!1,n(`open-contacts`)},c=()=>{r.value=!1,n(`open-calendar`)},{sipConfig:l,isConfigured:u}=gO(),{connect:d,disconnect:f}=nO();return(t,p)=>(G(),Uc(`div`,{class:we([`flex items-center justify-between px-5 py-3 bg-muted/70`,e.floating?e.isDragging?`cursor-grabbing`:`cursor-grab`:``])},[p[22]||=q(`span`,{class:`text-xs font-medium text-muted-foreground`},`Webphone`,-1),q(`div`,ek,[q(`span`,{class:we([`size-2 rounded-full`,e.isRegistered?`bg-green-500`:e.isConnecting?`bg-amber-400 animate-pulse`:`bg-muted-foreground/30`])},null,2),q(`span`,tk,We(e.isConnecting?`Conectando…`:e.isRegistered?`Registrado`:`Sin conexión`),1),q(`button`,{class:`text-muted-foreground hover:text-foreground transition-colors`,onClick:p[0]||=e=>n(`toggle-dark`)},[e.isDark?(G(),K(R(vy),{key:0,class:`size-3.5`})):(G(),K(R(sy),{key:1,class:`size-3.5`}))]),J(R(NO),{open:r.value,"onUpdate:open":p[1]||=e=>r.value=e},{default:H(()=>[J(R(FO),{"as-child":``},{default:H(()=>[q(`button`,nk,[J(R(ty),{class:`size-3.5`})])]),_:1}),J(R(PO),{class:`w-44 p-1`,side:`bottom`,align:`end`},{default:H(()=>[q(`div`,rk,[q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:a},[J(R($v),{class:`size-3.5 text-muted-foreground`}),p[11]||=tl(` Historial `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:o},[J(R(ly),{class:`size-3.5 text-muted-foreground`}),p[12]||=tl(` Notas `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:s},[J(R(xy),{class:`size-3.5 text-muted-foreground`}),p[13]||=tl(` Contactos `,-1)]),q(`button`,{class:`flex items-center gap-2.5 px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors text-left`,onClick:c},[J(R(Xv),{class:`size-3.5 text-muted-foreground`}),p[14]||=tl(` Agenda `,-1)])])]),_:1})]),_:1},8,[`open`]),J(R(EO),{"onUpdate:open":p[10]||=e=>{e&&(i.value=`account`)}},{default:H(()=>[J(R(MO),{"as-child":``},{default:H(()=>[q(`button`,ik,[J(R(gy),{class:`size-3.5`})])]),_:1}),J(R(OO),{class:`sm:max-w-xs`,to:e.rootEl??void 0},{default:H(()=>[J(R(AO),null,{default:H(()=>[J(R(jO),null,{default:H(()=>[...p[15]||=[tl(`Ajustes`,-1)]]),_:1}),J(R(kO),{class:`sr-only`},{default:H(()=>[...p[16]||=[tl(`Configuración de cuenta SIP y audio.`,-1)]]),_:1})]),_:1}),q(`div`,ak,[q(`button`,{class:we([`flex-1 py-1.5 text-sm font-medium rounded-md transition-colors`,i.value===`account`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`]),onClick:p[2]||=e=>i.value=`account`},` Cuenta SIP `,2),q(`button`,{class:we([`flex-1 py-1.5 text-sm font-medium rounded-md transition-colors`,i.value===`audio`?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`]),onClick:p[3]||=e=>i.value=`audio`},` Audio `,2)]),i.value===`account`?(G(),Uc(`div`,ok,[q(`div`,sk,[p[17]||=q(`label`,{class:`text-xs text-muted-foreground`},`Servidor WebSocket`,-1),J(R(IO),{modelValue:R(l).server,"onUpdate:modelValue":p[4]||=e=>R(l).server=e,placeholder:`wss://sip.ejemplo.com`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,ck,[p[18]||=q(`label`,{class:`text-xs text-muted-foreground`},`URI SIP`,-1),J(R(IO),{modelValue:R(l).uri,"onUpdate:modelValue":p[5]||=e=>R(l).uri=e,placeholder:`sip:usuario@dominio.com`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,lk,[p[19]||=q(`label`,{class:`text-xs text-muted-foreground`},`Contraseña`,-1),J(R(IO),{modelValue:R(l).password,"onUpdate:modelValue":p[6]||=e=>R(l).password=e,type:`password`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,uk,[p[20]||=q(`label`,{class:`text-xs text-muted-foreground`},`Nombre visible (opcional)`,-1),J(R(IO),{modelValue:R(l).displayName,"onUpdate:modelValue":p[7]||=e=>R(l).displayName=e,placeholder:`Ej. Juan García`,disabled:e.isRegistered||e.isConnecting},null,8,[`modelValue`,`disabled`])]),q(`div`,dk,[!e.isRegistered&&!e.isConnecting?(G(),K(R(lE),{key:0,class:`w-full`,disabled:!R(u),onClick:p[8]||=e=>R(d)({...R(l)})},{default:H(()=>[...p[21]||=[tl(` Conectar `,-1)]]),_:1},8,[`disabled`])):(G(),K(R(lE),{key:1,class:`w-full`,variant:`outline`,onClick:p[9]||=e=>R(f)()},{default:H(()=>[tl(We(e.isConnecting?`Cancelar`:`Desconectar`),1)]),_:1}))])])):(G(),Uc(`div`,fk,[J($O)]))]),_:1},8,[`to`])]),_:1})])],2))}}),mk=U({__name:`ToggleGroup`,props:{rovingFocus:{type:Boolean},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},type:{},modelValue:{},defaultValue:{},class:{type:[Boolean,null,String,Object,Array]},variant:{},size:{},spacing:{default:0}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t;gi(`toggleGroup`,{variant:n.variant,size:n.size,spacing:n.spacing});let i=ib(ev(n,`class`,`size`,`variant`),r);return(t,r)=>(G(),K(R(Nw),sl({"data-slot":`toggle-group`,"data-size":e.size,"data-variant":e.variant,"data-spacing":e.spacing,style:{"--gap":e.spacing}},R(i),{class:R(cE)(`group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs`,n.class)}),{default:H(e=>[W(t.$slots,`default`,Te(Qc(e)))]),_:3},16,[`data-size`,`data-variant`,`data-spacing`,`style`,`class`]))}}),hk=ky(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),gk=U({__name:`ToggleGroupItem`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{},size:{}},setup(e){let t=e,n=_i(`toggleGroup`),r=rb(ev(t,`class`,`size`,`variant`));return(i,a)=>(G(),K(R(Fw),sl({"data-slot":`toggle-group-item`,"data-variant":R(n)?.variant||e.variant,"data-size":R(n)?.size||e.size,"data-spacing":R(n)?.spacing},R(r),{class:R(cE)(R(hk)({variant:R(n)?.variant||e.variant,size:R(n)?.size||e.size}),`w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10`,`data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l`,t.class)}),{default:H(e=>[W(i.$slots,`default`,Te(Qc(e)))]),_:3},16,[`data-variant`,`data-size`,`data-spacing`,`class`]))}}),_k={class:`px-3 pt-2`},vk={class:`truncate max-w-20`},yk=U({__name:`ChannelTabs`,props:{channels:{},selectedId:{}},emits:[`select`],setup(e,{emit:t}){let n={ringing:`bg-blue-500`,connecting:`bg-amber-400`,active:`bg-green-500`,held:`bg-amber-500`,remote_held:`bg-amber-500`,ended:`bg-muted-foreground`,failed:`bg-destructive`},r=t,i=e=>e.remoteName||e.remoteUri;return(t,a)=>(G(),Uc(`div`,_k,[J(R(mk),{type:`single`,"model-value":e.selectedId??``,class:`w-full gap-1`,"onUpdate:modelValue":a[0]||=e=>r(`select`,e?String(e):null)},{default:H(()=>[(G(!0),Uc(Nc,null,mo(e.channels,e=>(G(),K(R(gk),{key:e.id,value:e.id,class:`flex-1 gap-1.5 text-xs h-8 rounded-full`},{default:H(()=>[q(`span`,{class:we([`size-1.5 rounded-full shrink-0`,n[e.status]])},null,2),q(`span`,vk,We(i(e)),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`])]))}}),bk={class:`px-5 pt-4 pb-2 text-center`},xk={class:`font-semibold text-base truncate`},Sk={key:0,class:`text-xs text-muted-foreground truncate mt-0.5`},Ck={class:`font-semibold text-sm truncate`},wk={key:0,class:`text-xs text-muted-foreground truncate`},Tk=U({__name:`CallDisplay`,props:{channel:{}},setup(e){let t={ringing:`bg-blue-500`,connecting:`bg-amber-400`,active:`bg-green-500`,held:`bg-amber-500`,remote_held:`bg-amber-500`,ended:`bg-muted-foreground`,failed:`bg-destructive`},n=e=>e.remoteName||e.remoteUri,r=e=>`${Math.floor(e/60).toString().padStart(2,`0`)}:${(e%60).toString().padStart(2,`0`)}`,i=e=>e===`held`||e===`remote_held`;return(a,o)=>(G(),Uc(`div`,bk,[e.channel.status===`ringing`?(G(),Uc(Nc,{key:0},[J(R(dy),{class:`size-5 text-blue-500 mx-auto mb-1 animate-bounce`}),o[0]||=q(`p`,{class:`text-xs text-blue-500 font-medium mb-1`},`Llamada entrante`,-1),q(`p`,xk,We(n(e.channel)),1),e.channel.remoteName?(G(),Uc(`p`,Sk,We(e.channel.remoteUri),1)):rl(``,!0)],64)):(G(),Uc(Nc,{key:1},[q(`div`,{class:we([`size-12 rounded-full mx-auto mb-2 flex items-center justify-center text-white font-bold text-lg`,t[e.channel.status]])},We(n(e.channel).charAt(0).toUpperCase()),3),q(`p`,Ck,We(n(e.channel)),1),e.channel.remoteName?(G(),Uc(`p`,wk,We(e.channel.remoteUri),1)):rl(``,!0),q(`p`,{class:we([`text-sm mt-1 tabular-nums font-medium`,e.channel.status===`active`?`text-green-600 dark:text-green-400`:`text-amber-500`])},We(e.channel.startTime?r(e.channel.duration):e.channel.status===`connecting`?`Conectando…`:i(e.channel.status)?`En espera`:``),3)],64))]))}}),Ek={class:`flex items-center justify-center gap-4 pt-1 pb-2`},Dk={key:0,class:`size-1.5 rounded-full bg-amber-400 inline-block`},Ok=U({__name:`PanelToggle`,props:{showPad:{type:Boolean},hasNotes:{type:Boolean}},emits:[`toggle-pad`,`open-notes`],setup(e,{emit:t}){let n=t;return(t,r)=>(G(),Uc(`div`,Ek,[q(`button`,{class:we([`flex items-center gap-1.5 text-xs transition-colors`,e.showPad?`text-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:r[0]||=e=>n(`toggle-pad`)},[J(R(iy),{class:`size-3.5`}),r[2]||=tl(` Teclado `,-1),e.showPad?(G(),K(R(Qv),{key:0,class:`size-3`})):(G(),K(R(Zv),{key:1,class:`size-3`}))],2),q(`button`,{class:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors`,onClick:r[1]||=e=>n(`open-notes`)},[J(R(cy),{class:`size-3.5`}),r[3]||=tl(` Notas `,-1),e.hasNotes?(G(),Uc(`span`,Dk)):rl(``,!0)])]))}}),kk=L([]);KD().then(e=>{kk.value=e}).catch(()=>{});var Ak=e=>{let t={...e,id:crypto.randomUUID()};kk.value.push(t),qD(t).catch(()=>{})},jk=e=>{let t=kk.value.findIndex(t=>t.id===e.id);t!==-1&&(kk.value[t]=e),qD(e).catch(()=>{})},Mk=e=>{let t=kk.value.findIndex(t=>t.id===e);t!==-1&&kk.value.splice(t,1),JD(e).catch(()=>{})},Nk=()=>({contacts:kk,addContact:Ak,updateContact:jk,deleteContact:Mk}),Pk={class:`flex items-center gap-2 px-3 pt-2 pb-1`},Fk=[`onClick`],Ik={class:`min-w-0 flex-1`},Lk={class:`text-sm font-medium truncate`},Rk={class:`text-xs text-muted-foreground`},zk={class:`px-6`},Bk={class:`grid grid-cols-3 place-items-center gap-y-1`},Vk=[`onClick`],Hk=U({__name:`DialSection`,props:{modelValue:{},externalContacts:{},hasActiveCall:{type:Boolean}},emits:[`update:modelValue`,`digit`,`back`,`call`],setup(e,{emit:t}){let n=[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`*`,`0`,`#`],r={internal:{icon:by,bg:`bg-blue-100 dark:bg-blue-950`,color:`text-blue-600 dark:text-blue-400`},external:{icon:ny,bg:`bg-gray-100 dark:bg-gray-800`,color:`text-gray-600 dark:text-gray-400`},service:{icon:ry,bg:`bg-violet-100 dark:bg-violet-950`,color:`text-violet-600 dark:text-violet-400`},emergency:{icon:_y,bg:`bg-red-100 dark:bg-red-950`,color:`text-red-600 dark:text-red-400`}},i=e,{contacts:a}=Nk(),o=t,s=L(!1),{bottom:c,left:l,width:u}=Lv(oa(`dialInput`)),d=Y(()=>({position:`fixed`,top:`${c.value+4}px`,left:`${l.value}px`,width:`${u.value}px`,zIndex:50})),f=Y(()=>{let e=a.value,t=i.externalContacts??[],n=new Set(e.map(e=>e.phone));return[...e,...t.filter(e=>!n.has(e.phone))]}),p=Y(()=>{if(!s.value||!i.modelValue||i.hasActiveCall)return[];let e=i.modelValue.toLowerCase();return f.value.filter(t=>t.name.toLowerCase().includes(e)||t.phone.toLowerCase().includes(e)).slice(0,5)}),m=e=>r[e.type??`internal`],h=e=>{o(`update:modelValue`,e.phone),s.value=!1},g=e=>{o(`digit`,e),o(`update:modelValue`,i.modelValue+e)};return(t,r)=>(G(),Uc(`div`,null,[q(`div`,Pk,[J(R(IO),{ref:`dialInput`,"model-value":e.modelValue,placeholder:`Buscar o marcar…`,class:`flex-1 text-center`,"onUpdate:modelValue":r[0]||=e=>o(`update:modelValue`,String(e)),onFocus:r[1]||=e=>s.value=!0,onBlur:r[2]||=e=>s.value=!1,onKeydown:r[3]||=Kd(Wd(e=>o(`call`),[`prevent`]),[`enter`])},null,8,[`model-value`]),e.modelValue?(G(),Uc(`button`,{key:0,class:`text-muted-foreground hover:text-foreground transition-colors shrink-0`,onClick:r[4]||=e=>o(`back`)},[J(R(ey),{class:`size-4`})])):rl(``,!0)]),J(cu,{"enter-from-class":`opacity-0 -translate-y-1`,"enter-active-class":`transition-all duration-150`,"leave-to-class":`opacity-0 -translate-y-1`,"leave-active-class":`transition-all duration-100`},{default:H(()=>[p.value.length?(G(),Uc(`div`,{key:0,style:ve(d.value),class:`bg-background border border-border/60 rounded-2xl shadow-lg overflow-hidden`},[(G(!0),Uc(Nc,null,mo(p.value,e=>(G(),Uc(`button`,{key:e.id,class:`w-full flex items-center gap-3 px-3 py-2.5 hover:bg-muted transition-colors text-left`,onMousedown:r[5]||=Wd(()=>{},[`prevent`]),onClick:t=>h(e)},[q(`div`,{class:we([`size-7 rounded-full flex items-center justify-center shrink-0`,m(e).bg])},[(G(),K(lo(m(e).icon),{class:we([`size-3.5`,m(e).color])},null,8,[`class`]))],2),q(`div`,Ik,[q(`p`,Lk,We(e.name),1),q(`p`,Rk,We(e.phone),1)])],40,Fk))),128))],4)):rl(``,!0)]),_:1}),q(`div`,zk,[q(`div`,Bk,[(G(),Uc(Nc,null,mo(n,e=>q(`button`,{key:e,class:`size-12 flex items-center justify-center rounded-full hover:bg-muted active:scale-95 transition-all text-lg font-light`,onClick:t=>g(e)},We(e),9,Vk)),64))])])]))}}),Uk={class:`flex items-center justify-center gap-3 px-6 py-4`},Wk=[`title`,`disabled`],Gk=[`title`],Kk=U({__name:`CallControls`,props:{selected:{},callBtnMode:{},isSpeakerMuted:{type:Boolean},lastDialed:{}},emits:[`call`,`answer`,`hangup`,`mute`,`unmute`,`hold`,`resume`,`toggle-speaker`],setup(e,{emit:t}){let n=t,r=e=>e===`held`||e===`remote_held`;return(t,i)=>(G(),Uc(`div`,Uk,[e.selected?e.selected.status===`ringing`?(G(),Uc(Nc,{key:1},[q(`button`,{class:`size-11 rounded-full bg-green-500 hover:bg-green-600 text-white flex items-center justify-center transition-colors active:scale-95`,title:`Contestar`,onClick:i[1]||=t=>n(`answer`,e.selected.id)},[J(R(my),{class:`size-4`})]),q(`button`,{class:`size-11 rounded-full bg-destructive hover:bg-destructive/90 text-white flex items-center justify-center transition-colors active:scale-95`,title:`Rechazar`,onClick:i[2]||=t=>n(`hangup`,e.selected.id)},[J(R(fy),{class:`size-4`})])],64)):(G(),Uc(Nc,{key:2},[q(`button`,{class:we([`size-11 rounded-full flex items-center justify-center transition-colors active:scale-95`,e.selected.isMuted?`bg-foreground text-background`:`bg-muted hover:bg-muted/70`]),title:`Silenciar / Activar`,onClick:i[3]||=t=>e.selected.isMuted?n(`unmute`,e.selected.id):n(`mute`,e.selected.id)},[e.selected.isMuted?(G(),K(R(ay),{key:0,class:`size-4`})):(G(),K(R(oy),{key:1,class:`size-4`}))],2),q(`button`,{class:`size-11 rounded-full flex items-center justify-center bg-muted hover:bg-muted/70 transition-colors active:scale-95`,title:r(e.selected.status)?`Reanudar`:`Espera`,onClick:i[4]||=t=>r(e.selected.status)?n(`resume`,e.selected.id):n(`hold`,e.selected.id)},[r(e.selected.status)?(G(),K(R(hy),{key:0,class:`size-4`})):(G(),K(R(uy),{key:1,class:`size-4`}))],8,Gk),q(`button`,{class:we([`size-11 rounded-full flex items-center justify-center transition-colors active:scale-95`,e.isSpeakerMuted?`bg-foreground text-background`:`bg-muted hover:bg-muted/70`]),title:`Silenciar altavoz`,onClick:i[5]||=e=>n(`toggle-speaker`)},[e.isSpeakerMuted?(G(),K(R(Cy),{key:0,class:`size-4`})):(G(),K(R(Sy),{key:1,class:`size-4`}))],2),q(`button`,{class:`size-11 rounded-full flex items-center justify-center bg-destructive hover:bg-destructive/90 text-white transition-colors active:scale-95`,title:`Colgar`,onClick:i[6]||=t=>n(`hangup`,e.selected.id)},[J(R(py),{class:`size-4`})])],64)):(G(),Uc(`button`,{key:0,class:we([`size-11 rounded-full flex items-center justify-center transition-all active:scale-95`,e.callBtnMode===`call`?`bg-green-500 hover:bg-green-600 text-white`:`bg-muted text-muted-foreground cursor-not-allowed`]),title:e.lastDialed?`Rellamar: ${e.lastDialed}`:`Llamar`,disabled:e.callBtnMode!==`call`,onClick:i[0]||=e=>n(`call`)},[J(R(my),{class:`size-4`})],10,Wk))]))}}),qk={ref:`handle`},Jk={key:0,class:`px-4 pt-3`},Yk=U({__name:`WebPhone`,props:{config:{},floating:{type:Boolean},contacts:{}},emits:[`open-history`,`open-notes`,`open-contacts`,`open-calendar`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=oa(`root`),{x:o,y:s,isDragging:c}=Fv(a,{handle:oa(`handle`),initialValue:{x:20,y:20}}),l=Y(()=>r.floating?{position:`fixed`,left:`${o.value}px`,top:`${s.value}px`}:{}),u=L(null),d=Mv({storageKey:`webphone-color-scheme`}),f=ov(d);wi(d,e=>{u.value?.classList.toggle(`dark`,e)},{immediate:!0});let{channels:p,isRegistered:m,isConnecting:h,notes:g,lastDialed:_,connect:v,call:y,answer:b,hangup:x,hold:S,resume:C,mute:w,unmute:T,sendDTMF:E}=nO(),{permission:D,checkPermission:O,requestPermission:k}=mO();Xa(async()=>{let e=a.value?.getRootNode();if(e instanceof ShadowRoot&&(u.value=e.host),await O(),r.config)v(r.config);else{let{sipConfig:e,isConfigured:t}=gO();t.value&&v({...e.value})}});let ee=L(null),A=Y(()=>p.value.find(e=>e.id===ee.value)??p.value[0]);wi(p,e=>{if(!e.length){ee.value=null;return}ee.value&&e.find(e=>e.id===ee.value)||(ee.value=(e.find(e=>e.status===`ringing`)??e.find(e=>e.status===`active`)??e[0])?.id??null)},{deep:!0});let te=e=>{if(!e||e===ee.value)return;let t=p.value.find(t=>t.id===e);if(t&&(t.status===`active`||t.status===`held`||t.status===`remote_held`)){let n=p.value.find(e=>e.id===ee.value);n?.status===`active`&&S(n.id),(t.status===`held`||t.status===`remote_held`)&&C(e)}ee.value=e},ne=L(``),re=L(!0),ie=Y(()=>!A.value&&m.value&&(ne.value||_.value)?`call`:`disabled`),j=Y(()=>A.value?g.value.some(e=>e.remoteUri===A.value.remoteUri):!1),M=L(!1),ae=()=>{M.value=!M.value,jD(M.value)},oe=null,se=null;wi(()=>p.value.some(e=>e.status===`ringing`),e=>{e&&!oe?oe=CO():!e&&oe&&(oe(),oe=null)}),wi(()=>p.value.some(e=>e.status===`connecting`),e=>{e&&!se?se=wO():!e&&se&&(se(),se=null)}),wi(()=>p.value.length,(e,t)=>{e<t&&(TO(),e===0&&(M.value=!1))}),eo(()=>{oe?.(),se?.()}),t({el:a});let ce=e=>{xO(e),A.value&&E(A.value.id,e)},N=()=>{ne.value=ne.value.slice(0,-1)},P=()=>{if(ie.value!==`call`)return;let e=ne.value.trim()||_.value;e&&(y(e),ne.value=``)},le=e=>{if(!(e.target instanceof HTMLInputElement)){if(/^[0-9*#]$/.test(e.key)){xO(e.key),ne.value+=e.key,A.value&&E(A.value.id,e.key);return}if(e.key===`Backspace`){N();return}e.key===`Enter`&&P()}};return(e,t)=>(G(),Uc(`div`,{ref:`root`,style:ve(l.value),class:we([`w-full max-w-[18rem] rounded-3xl bg-background shadow-md overflow-hidden select-none flex flex-col border`,{"z-50":r.floating}]),onKeydown:le,tabindex:`-1`},[q(`div`,qk,[J(pk,{"is-registered":R(m),"is-connecting":R(h),"is-dark":R(d),"root-el":a.value,floating:r.floating,"is-dragging":R(c),onToggleDark:t[0]||=()=>R(f)(),onOpenHistory:t[1]||=e=>i(`open-history`),onOpenNotes:t[2]||=e=>i(`open-notes`,A.value?.remoteUri),onOpenContacts:t[3]||=e=>i(`open-contacts`),onOpenCalendar:t[4]||=e=>i(`open-calendar`)},null,8,[`is-registered`,`is-connecting`,`is-dark`,`root-el`,`floating`,`is-dragging`])],512),R(D)===`denied`?(G(),Uc(`div`,Jk,[J(R(dE),{variant:`destructive`},{default:H(()=>[J(R(yy),{class:`size-4`}),J(R(fE),{class:`text-xs`},{default:H(()=>[...t[8]||=[tl(`Permiso de micrófono denegado.`,-1)]]),_:1})]),_:1})])):R(D)===`prompt`||R(D)===`unknown`?(G(),K(R(lE),{key:1,variant:`outline`,class:`mx-4 mt-3 gap-2 text-sm`,onClick:R(k)},{default:H(()=>[J(R(oy),{class:`size-4`}),t[9]||=tl(` Permitir micrófono `,-1)]),_:1},8,[`onClick`])):rl(``,!0),R(p).length?(G(),K(yk,{key:2,channels:R(p),"selected-id":ee.value,onSelect:te},null,8,[`channels`,`selected-id`])):rl(``,!0),A.value?(G(),K(Tk,{key:3,channel:A.value},null,8,[`channel`])):rl(``,!0),R(p).length&&A.value?.status!==`ringing`?(G(),K(Ok,{key:4,"show-pad":re.value,"has-notes":j.value,onTogglePad:t[5]||=e=>re.value=!re.value,onOpenNotes:t[6]||=e=>i(`open-notes`,A.value?.remoteUri)},null,8,[`show-pad`,`has-notes`])):rl(``,!0),A.value?.status!==`ringing`&&(!R(p).length||re.value)?(G(),K(Hk,{key:5,modelValue:ne.value,"onUpdate:modelValue":t[7]||=e=>ne.value=e,"external-contacts":r.contacts,"has-active-call":!!A.value,onDigit:ce,onBack:N,onCall:P},null,8,[`modelValue`,`external-contacts`,`has-active-call`])):rl(``,!0),J(Kk,{selected:A.value,"call-btn-mode":ie.value,"is-speaker-muted":M.value,"last-dialed":R(_),onCall:P,onAnswer:R(b),onHangup:R(x),onMute:R(w),onUnmute:R(T),onHold:R(S),onResume:R(C),onToggleSpeaker:ae},null,8,[`selected`,`call-btn-mode`,`is-speaker-muted`,`last-dialed`,`onAnswer`,`onHangup`,`onMute`,`onUnmute`,`onHold`,`onResume`])],38))}}),Xk=`@import "https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Raleway", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-950:oklch(25.8% .092 26.042);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-900:oklch(40.8% .153 2.432);--color-pink-950:oklch(28.4% .109 3.907);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Raleway", ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer utilities{.\\@container\\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\\[50\\%\\]{top:50%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3\\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0\\.5{bottom:calc(var(--spacing) * .5)}.left-1\\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-\\[50\\%\\]{left:50%}.z-40{z-index:40}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.size-1\\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-\\[var\\(--reka-select-trigger-height\\)\\]{height:var(--reka-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\\(--reka-select-content-available-height\\){max-height:var(--reka-select-content-available-height)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\\[300px\\]{max-height:300px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-44{width:calc(var(--spacing) * 44)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\\[8rem\\]{min-width:8rem}.min-w-\\[var\\(--reka-select-trigger-width\\)\\]{min-width:var(--reka-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-\\(--reka-popover-content-transform-origin\\){transform-origin:var(--reka-popover-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-2{--tw-translate-x:calc(var(--spacing) * -2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\[0_1fr\\]{grid-template-columns:0 1fr}.grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\\[--spacing\\(var\\(--gap\\)\\)\\]{gap:calc(var(--spacing) * var(--gap))}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\\/50>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\\/50>:not(:last-child)){border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-border,.border-border\\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-foreground{border-color:var(--foreground)}.border-gray-200{border-color:var(--color-gray-200)}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-violet-200{border-color:var(--color-violet-200)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--background)}.bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-green-500{background-color:var(--color-green-500)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted\\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-muted\\/60{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/60{background-color:color-mix(in oklab, var(--muted) 60%, transparent)}}.bg-muted\\/70{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/70{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-200{background-color:var(--color-orange-200)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-pink-200{background-color:var(--color-pink-200)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-100{background-color:var(--color-violet-100)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-200{background-color:var(--color-yellow-200)}.p-0{padding:calc(var(--spacing) * 0)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2\\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[0\\.8rem\\]{font-size:.8rem}.text-\\[10px\\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.wrap-break-word{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-background{color:var(--background)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--card-foreground)}.text-current\\/40{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\\/40{color:color-mix(in oklab, currentcolor 40%, transparent)}}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/40{color:color-mix(in oklab, var(--muted-foreground) 40%, transparent)}}.text-muted-foreground\\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/50{color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)}}.text-muted-foreground\\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-transparent{color:#0000}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring\\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\\:bg-primary ::selection{background-color:var(--primary)}.selection\\:bg-primary::selection{background-color:var(--primary)}.selection\\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\\:inline-flex::file-selector-button{display:inline-flex}.file\\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\:bg-transparent::file-selector-button{background-color:#0000}.file\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.focus-within\\:relative:focus-within{position:relative}.focus-within\\:z-20:focus-within{z-index:20}@media (hover:hover){.hover\\:bg-accent:hover{background-color:var(--accent)}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\\:bg-muted:hover,.hover\\:bg-muted\\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted\\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\\:bg-muted\\/70:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted\\/70:hover{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\\:bg-secondary:hover,.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-amber-400:hover{color:var(--color-amber-400)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-green-500:hover{color:var(--color-green-500)}.hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\\:text-red-500:hover{color:var(--color-red-500)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-90:hover{opacity:.9}.hover\\:opacity-100:hover{opacity:1}.hover\\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\\:z-10:focus{z-index:10}.focus\\:bg-accent:focus{background-color:var(--accent)}.focus\\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\\:z-10:focus-visible{z-index:10}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\\[select\\:disabled\\]\\:opacity-50:has(:is(select:disabled)){opacity:.5}.has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\\[\\>svg\\]\\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-disabled\\:text-muted-foreground[data-disabled]{color:var(--muted-foreground)}.data-disabled\\:opacity-40[data-disabled]{opacity:.4}.data-outside-view\\:text-muted-foreground[data-outside-view]{color:var(--muted-foreground)}.data-outside-view\\:opacity-40[data-outside-view]{opacity:.4}.data-selected\\:bg-primary[data-selected]{background-color:var(--primary)}.data-selected\\:text-primary-foreground[data-selected]{color:var(--primary-foreground)}.data-unavailable\\:line-through[data-unavailable]{text-decoration-line:line-through}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[highlighted\\]\\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-\\[highlighted\\]\\:text-accent-foreground[data-highlighted]{color:var(--accent-foreground)}.data-\\[orientation\\=horizontal\\]\\:h-1\\.5[data-orientation=horizontal]{height:calc(var(--spacing) * 1.5)}.data-\\[orientation\\=horizontal\\]\\:h-full[data-orientation=horizontal]{height:100%}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing) * 44)}.data-\\[orientation\\=vertical\\]\\:w-1\\.5[data-orientation=vertical]{width:calc(var(--spacing) * 1.5)}.data-\\[orientation\\=vertical\\]\\:w-auto[data-orientation=vertical]{width:auto}.data-\\[orientation\\=vertical\\]\\:w-full[data-orientation=vertical]{width:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[orientation\\=vertical\\]\\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\\[placeholder\\]\\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\\[size\\=default\\]\\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\\[size\\=sm\\]\\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}:is(.\\*\\*\\:data-\\[slot\\=native-select-icon\\]\\:right-1 *)[data-slot=native-select-icon]{right:calc(var(--spacing) * 1)}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\\[spacing\\=0\\]\\:rounded-none[data-spacing="0"]{border-radius:0}.data-\\[spacing\\=0\\]\\:shadow-none[data-spacing="0"]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\\[spacing\\=0\\]\\:first\\:rounded-l-md[data-spacing="0"]:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\\[spacing\\=0\\]\\:last\\:rounded-r-md[data-spacing="0"]:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=on\\]\\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-l-0[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-l[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\\[spacing\\=default\\]\\:data-\\[variant\\=outline\\]\\:shadow-xs[data-spacing=default][data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (width>=40rem){.sm\\:w-96{width:calc(var(--spacing) * 96)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-xs{max-width:var(--container-xs)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\\:gap-y-0{row-gap:calc(var(--spacing) * 0)}.sm\\:rounded-lg{border-radius:var(--radius)}.sm\\:text-left{text-align:left}}@media (width>=48rem){.md\\:w-full{width:100%}.md\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\\:border-violet-800:is(.dark *){border-color:var(--color-violet-800)}.dark\\:bg-blue-900\\/70:is(.dark *){background-color:#1c398eb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-900) 70%, transparent)}}.dark\\:bg-blue-950:is(.dark *){background-color:var(--color-blue-950)}.dark\\:bg-blue-950\\/80:is(.dark *){background-color:#162456cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 80%, transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\\:bg-green-900\\/70:is(.dark *){background-color:#0d542bb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-green-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-green-900) 70%, transparent)}}.dark\\:bg-green-950\\/80:is(.dark *){background-color:#032e15cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-green-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 80%, transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\\:bg-orange-900\\/70:is(.dark *){background-color:#7e2a0cb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-orange-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-900) 70%, transparent)}}.dark\\:bg-orange-950\\/80:is(.dark *){background-color:#441306cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-orange-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 80%, transparent)}}.dark\\:bg-pink-900\\/70:is(.dark *){background-color:#861043b3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-pink-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-pink-900) 70%, transparent)}}.dark\\:bg-pink-950\\/80:is(.dark *){background-color:#510424cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-pink-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-pink-950) 80%, transparent)}}.dark\\:bg-purple-900\\/70:is(.dark *){background-color:#59168bb3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-purple-900) 70%, transparent)}}.dark\\:bg-purple-950\\/80:is(.dark *){background-color:#3c0366cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-purple-950) 80%, transparent)}}.dark\\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\\:bg-violet-950:is(.dark *){background-color:var(--color-violet-950)}.dark\\:bg-yellow-900\\/70:is(.dark *){background-color:#733e0ab3}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-yellow-900\\/70:is(.dark *){background-color:color-mix(in oklab, var(--color-yellow-900) 70%, transparent)}}.dark\\:bg-yellow-950\\/80:is(.dark *){background-color:#432004cc}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-yellow-950\\/80:is(.dark *){background-color:color-mix(in oklab, var(--color-yellow-950) 80%, transparent)}}.dark\\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\\:text-violet-400:is(.dark *){color:var(--color-violet-400)}@media (hover:hover){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\\[\\&_p\\]\\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]),.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'size-\\\\\\'\\]\\)\\]\\:size-4 svg:not([class*="'size-'"]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'text-\\\\\\'\\]\\)\\]\\:text-muted-foreground svg:not([class*="'text-'"]){color:var(--muted-foreground)}.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:hidden::-webkit-calendar-picker-indicator{display:none}.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:appearance-none::-webkit-calendar-picker-indicator{appearance:none}.\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\\[\\&\\>svg\\]\\:pointer-events-none>svg{pointer-events:none}.\\[\\&\\>svg\\]\\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:translate-y-0\\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\\[\\&\\>svg\\]\\:text-current>svg{color:currentColor}.\\[\\&\\[data-today\\]\\:not\\(\\[data-selected\\]\\)\\]\\:bg-accent[data-today]:not([data-selected]){background-color:var(--accent)}.\\[\\&\\[data-today\\]\\:not\\(\\[data-selected\\]\\)\\]\\:text-accent-foreground[data-today]:not([data-selected]){color:var(--accent-foreground)}@media (hover:hover){a.\\[a\\&\\]\\:hover\\:bg-accent:hover{background-color:var(--accent)}a.\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\\[a\\&\\]\\:hover\\:bg-secondary\\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\\[a\\&\\]\\:hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}`,Zk=h_(),Qk=cd(Yk,{styles:[(e=>e.replace(/:root\s*\{/g,`:host {`).replace(/\.dark\s*\{/g,`:host(.dark) {`).replace(/:is\(\.dark \*\)/g,`:is(:host(.dark) *)`))(Xk)],configureApp(e){e.use(Zk)}});return customElements.define(`web-phone`,Qk),e.WebPhoneElement=Qk,e})({});