@miravo/cli-linux-arm64-musl 0.7.2 → 0.7.3

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.
Files changed (87) hide show
  1. package/console-dist/assets/{AnimatePresence-DOKfbxUr.js → AnimatePresence-CPmH1DMY.js} +1 -1
  2. package/console-dist/assets/{activity-CHJbwIn_.js → activity-Cy_niK56.js} +1 -1
  3. package/console-dist/assets/{api-DUOCKS6t.js → api-B8Cqrm2G.js} +1 -1
  4. package/console-dist/assets/arrow-right-BjBb4z7g.js +1 -0
  5. package/console-dist/assets/{arrow-up-down-Dpy1cI5X.js → arrow-up-down-C1oJAmrw.js} +1 -1
  6. package/console-dist/assets/{auth-screen-backdrop-UsGua6Zt.js → auth-screen-backdrop-Cr8qBSXP.js} +1 -1
  7. package/console-dist/assets/{badge-Dl0qmCnt.js → badge-eIn_7YrK.js} +1 -1
  8. package/console-dist/assets/catalog-C4iFSXl0.js +1 -0
  9. package/console-dist/assets/catalog-CvtaOpMA.js +1 -0
  10. package/console-dist/assets/{catalog-source-m5FRUDDK.js → catalog-source-B_3_Upeh.js} +1 -1
  11. package/console-dist/assets/{catalog-template-icons-MOd-xD7l.js → catalog-template-icons-3S8RvUxD.js} +1 -1
  12. package/console-dist/assets/{checkbox-_saaQAja.js → checkbox-C_4HRnS_.js} +1 -1
  13. package/console-dist/assets/{chunk-OE4NN4TA-m2UhO8Q2.js → chunk-OE4NN4TA-DBWZidbW.js} +1 -1
  14. package/console-dist/assets/{circle-question-mark-BwjC8Yj-.js → circle-question-mark-CJvcT6V6.js} +1 -1
  15. package/console-dist/assets/{combobox-BqGaRFom.js → combobox-BCaV1Wbo.js} +1 -1
  16. package/console-dist/assets/control-CvQvIf00.js +1 -0
  17. package/console-dist/assets/control-DL1KRHz-.js +1 -0
  18. package/console-dist/assets/{copy-button-BYq-qqmM.js → copy-button-BvU3RDZa.js} +1 -1
  19. package/console-dist/assets/{dist-jROhexoH.js → dist-xY0pK9Wy.js} +1 -1
  20. package/console-dist/assets/{download-BP5RD-RZ.js → download-DmUZKo9N.js} +1 -1
  21. package/console-dist/assets/{dropdown-menu-6JrsGi7P.js → dropdown-menu-CrPXVXpG.js} +1 -1
  22. package/console-dist/assets/{engine-store-BXfht5ME.js → engine-store-DMULdR_V.js} +1 -1
  23. package/console-dist/assets/events-BZaBqF9J.js +1 -0
  24. package/console-dist/assets/events-BdFbWiaW.js +1 -0
  25. package/console-dist/assets/fleet-B7pD7lbL.js +1 -0
  26. package/console-dist/assets/fleet-efugggyV.js +1 -0
  27. package/console-dist/assets/{format-B243kebG.js → format-CshN6yEB.js} +1 -1
  28. package/console-dist/assets/index-D1lU9Fg9.css +2 -0
  29. package/console-dist/assets/index-DWUbVyod.js +12 -0
  30. package/console-dist/assets/instance-detail-CmF_Rznd.js +1 -0
  31. package/console-dist/assets/{label-CM_MIru8.js → label-CMBWxUhA.js} +1 -1
  32. package/console-dist/assets/{layers-Cg3yeSqL.js → layers-1figUpjG.js} +1 -1
  33. package/console-dist/assets/{login-DG5yhrqi.js → login-KqoOCjoH.js} +1 -1
  34. package/console-dist/assets/{models-CZEVv1PS.js → models-Dn9__adB.js} +1 -1
  35. package/console-dist/assets/models-IiGAU-LZ.js +1 -0
  36. package/console-dist/assets/{not-found-49MUUPk7.js → not-found-D0nX2nrf.js} +1 -1
  37. package/console-dist/assets/{platform-targets-DkU1GIU_.js → platform-targets-BIQ1lKOg.js} +1 -1
  38. package/console-dist/assets/platforms-B52boh2S.js +1 -0
  39. package/console-dist/assets/platforms-CleAbZI5.js +1 -0
  40. package/console-dist/assets/{proxy-Dd7NWn5E.js → proxy-Be4WzmcS.js} +1 -1
  41. package/console-dist/assets/query-fetch-error-B6y_Rlj9.js +1 -0
  42. package/console-dist/assets/route-preload-BOrx0jh2.js +2 -0
  43. package/console-dist/assets/{select-TsdpHrOx.js → select-CmlY1M1a.js} +1 -1
  44. package/console-dist/assets/{select-display-items-C6R8SaIm.js → select-display-items-Bqb6Sbg6.js} +1 -1
  45. package/console-dist/assets/{shallow-ODRQsuRf.js → shallow-Cin0mLuv.js} +1 -1
  46. package/console-dist/assets/{tabs-CrmZxWmX.js → tabs-4SeH2unv.js} +1 -1
  47. package/console-dist/assets/tags-C6UILCQv.js +4 -0
  48. package/console-dist/assets/tags-CFcLbtJE.js +1 -0
  49. package/console-dist/assets/{tooltip-5y0snV5M.js → tooltip-D1ydB4g3.js} +1 -1
  50. package/console-dist/assets/{transition-nav-link-rkgf5kGR.js → transition-nav-link-LpMCFklr.js} +1 -1
  51. package/console-dist/assets/{triangle-alert-B7bgkvtE.js → triangle-alert-BXrJNk3g.js} +1 -1
  52. package/console-dist/assets/{use-engine-command-mutation-BHd8IkoT.js → use-engine-command-mutation-dw_B-1qa.js} +1 -1
  53. package/console-dist/assets/use-platform-stream-DAr3QTPE.js +2 -0
  54. package/console-dist/assets/use-transition-navigate-Fgz_LNAd.js +1 -0
  55. package/console-dist/assets/{utils-CH98NBUe.js → utils-XFKvwlFT.js} +1 -1
  56. package/console-dist/assets/{validation-CEcQWBjy.js → validation-eLNuMo9E.js} +1 -1
  57. package/console-dist/assets/{vendor-charts-CAZdaPlq.js → vendor-charts-95ykyDlI.js} +1 -1
  58. package/console-dist/assets/{vendor-table-CymGcez5.js → vendor-table-BAHQgdwg.js} +1 -1
  59. package/console-dist/assets/{vendor-ui-BcvPjvmT.js → vendor-ui-CWUk2ulb.js} +1 -1
  60. package/console-dist/index.html +52 -53
  61. package/miravo +0 -0
  62. package/package.json +1 -1
  63. package/console-dist/assets/arrow-right-DzTjpAuX.js +0 -1
  64. package/console-dist/assets/catalog-CJE-3rom.js +0 -1
  65. package/console-dist/assets/catalog-D7hkpcg7.js +0 -1
  66. package/console-dist/assets/control-C3s_d_cd.js +0 -1
  67. package/console-dist/assets/control-CVg7wZ1b.js +0 -1
  68. package/console-dist/assets/events-PFkU6dri.js +0 -1
  69. package/console-dist/assets/events-uH2B0ni-.js +0 -1
  70. package/console-dist/assets/fleet-B1apknqo.js +0 -1
  71. package/console-dist/assets/fleet-CdoQJU1v.js +0 -1
  72. package/console-dist/assets/index-CTIFAVGZ.js +0 -12
  73. package/console-dist/assets/index-DUzq1mEZ.css +0 -2
  74. package/console-dist/assets/instance-detail-BH62ZPtN.js +0 -1
  75. package/console-dist/assets/models-S3NJFuma.js +0 -1
  76. package/console-dist/assets/platforms-Czbg-aTO.js +0 -1
  77. package/console-dist/assets/platforms-DbF8XkYf.js +0 -1
  78. package/console-dist/assets/query-fetch-error-B2TVF0yM.js +0 -1
  79. package/console-dist/assets/route-preload-iLKZvgav.js +0 -2
  80. package/console-dist/assets/skeleton-BK5ydi_g.js +0 -1
  81. package/console-dist/assets/tags-Burz8TZx.js +0 -4
  82. package/console-dist/assets/tags-zlkQYLKu.js +0 -1
  83. package/console-dist/assets/use-platform-stream-EUBU4hC1.js +0 -2
  84. package/console-dist/assets/use-transition-navigate-BQAQi11k.js +0 -1
  85. /package/console-dist/assets/{get-error-message-CCNo4ZY0.js → get-error-message-Dk8elqEP.js} +0 -0
  86. /package/console-dist/assets/{runtime-link-ocutSVA8.js → runtime-link-PMxeHxd6.js} +0 -0
  87. /package/console-dist/assets/{transition-types-BNgNegH3.js → transition-types-2i1blGlR.js} +0 -0
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{at as n}from"./vendor-ui-CWUk2ulb.js";import{A as r,B as i,F as a,G as o,H as s,I as c,K as l,L as u,M as d,N as f,O as ee,P as p,R as te,U as m,V as h,W as ne,j as g,k as re,q as _,z as v}from"./api-B8Cqrm2G.js";import{t as y}from"./proxy-Be4WzmcS.js";import{t as b}from"./AnimatePresence-CPmH1DMY.js";import{i as ie,r as ae}from"./dist-xY0pK9Wy.js";import{a as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./copy-button-BvU3RDZa.js";import{t as x}from"./shallow-Cin0mLuv.js";import{S,d as pe,l as C,u as me,w as he,x as ge}from"./format-CshN6yEB.js";import{n as w,t as T}from"./utils-XFKvwlFT.js";import{t as _e}from"./activity-Cy_niK56.js";import{t as ve}from"./arrow-right-BjBb4z7g.js";import{c as ye,i as be,l as xe,n as Se,s as Ce,t as we}from"./select-CmlY1M1a.js";import{a as Te,c as E,i as Ee,n as De,o as Oe,r as ke,s as Ae,t as je}from"./tabs-4SeH2unv.js";import{a as D,c as Me,i as Ne,l as Pe,n as Fe,r as Ie,s as O,t as Le}from"./validation-eLNuMo9E.js";import{i as Re,n as ze,r as Be,t as Ve}from"./checkbox-C_4HRnS_.js";import{t as He}from"./layers-1figUpjG.js";import{c as Ue,r as We,t as k}from"./use-engine-command-mutation-dw_B-1qa.js";import{t as Ge}from"./triangle-alert-BXrJNk3g.js";import{i as Ke,n as qe,t as Je}from"./tooltip-D1ydB4g3.js";import{r as A}from"./engine-store-DMULdR_V.js";import{t as Ye}from"./transition-nav-link-LpMCFklr.js";import{t as j}from"./badge-eIn_7YrK.js";import{t as M}from"./label-CMBWxUhA.js";import{a as N,c as P,i as Xe,l as F,n as Ze,o as I,r as Qe,s as L,t as $e}from"./combobox-BCaV1Wbo.js";var et=w(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),tt=w(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),nt=w(`octagon-alert`,[[`path`,{d:`M12 16h.01`,key:`1drbdi`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z`,key:`1fd625`}]]),rt=w(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),it=w(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),at=w(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),ot=w(`radio-tower`,[[`path`,{d:`M4.9 16.1C1 12.2 1 5.8 4.9 1.9`,key:`s0qx1y`}],[`path`,{d:`M7.8 4.7a6.14 6.14 0 0 0-.8 7.5`,key:`1idnkw`}],[`circle`,{cx:`12`,cy:`9`,r:`2`,key:`1092wv`}],[`path`,{d:`M16.2 4.8c2 2 2.26 5.11.8 7.47`,key:`ojru2q`}],[`path`,{d:`M19.1 1.9a9.96 9.96 0 0 1 0 14.1`,key:`rhi7fg`}],[`path`,{d:`M9.5 18h5`,key:`mfy3pd`}],[`path`,{d:`m8 22 4-11 4 11`,key:`25yftu`}]]),st=w(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ct=w(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),lt=w(`trash`,[[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);h({path:m().min(1),name:m().min(1),description:m().optional(),memberCount:i().int().nonnegative(),methodCount:i().int().nonnegative(),faultCount:i().int().nonnegative(),hasLifecycle:a(),lifecycleStageCount:i().int().nonnegative()}),h({path:m().min(1),id:m().min(1),name:m().min(1),description:m().optional(),areaCount:i().int().nonnegative(),twinAssignmentCount:i().int().nonnegative(),uniqueModelCount:i().int().nonnegative(),modelNames:p(m().min(1)),totalTwinCount:i().int().nonnegative()});var ut=h({severity:u([`error`,`warning`]),message:m(),fix:m()});h({valid:a(),templatePath:m(),issues:p(ut)});var dt=`%.A.Hz.L.L/h.L/min.L/s.N.V.bar.cfm.count.degC.h.kN.kVA.kW.kWh.m.m/s.m3.m3/h.mm.mm/min.mm/s.ppm.pu.rpm.s`.split(`.`),R=u(dt);new Set(dt);var ft=m().min(1).max(128).regex(/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/),pt=u([`Boolean`,`Int32`,`UInt16`,`UInt32`,`Double`,`Float`,`String`]);u([`variable`,`property`]);var mt=u([`read`,`readwrite`,`write`]),ht=u([`>`,`>=`,`<`,`<=`,`==`,`!=`]),gt=`Must be 1-64 chars and contain only letters, numbers, underscores, or hyphens.`,_t=c(`type`,[h({type:v(`threshold`),member:m().regex(g,gt),operator:ht,threshold:i().finite()}).strict(),h({type:v(`lifecycle-stage`)}).strict(),h({type:v(`health-state`)}).strict(),h({type:v(`fault-active`)}).strict(),h({type:v(`fault-count`)}).strict(),h({type:v(`active-fault-code`),fallback:m().default(``)}).strict(),h({type:v(`availability-state`),member:m().regex(g,gt),operator:ht.default(`>`),threshold:i().finite().default(0),running_state:m().default(`running`),stopped_state:m().default(`stopped`),faulted_state:m().default(`faulted`)}).strict()]),z=`Must be 1-64 chars and contain only letters, numbers, underscores, or hyphens.`,B=p(m().min(1)).min(1),vt=h({data_type:pt,unit:R.optional(),description:m().optional(),enum_values:B.optional()}).strict(),yt=o([h({member:m().regex(g,z),value:o([i(),m(),a()])}).strict(),h({member:m().regex(g,z),argument:m().regex(g,z)}).strict()]),bt=h({type:v(`set-members`),writes:p(yt).min(1)}).strict(),xt=o([h({parameter:m().regex(g,z),value:i().finite()}).strict(),h({parameter:m().regex(g,z),argument:m().regex(g,z)}).strict()]),St=c(`type`,[bt,h({type:v(`set-parameters`),writes:p(xt).min(1)}).strict(),h({type:v(`clear-faults`)}).strict()]),Ct=h({description:m().optional(),input_arguments:s(m().regex(g,z),vt).optional(),output_arguments:s(m().regex(g,z),vt).optional(),runtime:St.optional()}).strict(),wt=s(m().regex(g,z),Ct);function V(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Tt(e){if(typeof e==`string`)return f.exec(e)?.[1]}function Et(e,t,n){if(!V(e)||e.type!==`weighted-sum`)return;let r=e.terms;if(Array.isArray(r))for(let e=0;e<r.length;e++){let i=r[e];V(i)&&n(i,[...t,`terms`,e])}}function Dt(e,t,n){if(!V(e))return;let r=[...t,`member`],i=[...t,`previous_member`],a=[...t,`param`],o=[...t,`generator`];typeof e.member==`string`&&n.onMember?.(e.member,r),typeof e.previous_member==`string`&&n.onPreviousMember?.(e.previous_member,i),typeof e.param==`string`&&n.onParam?.(e.param,a),`generator`in e&&n.onGenerator?.(e.generator,o)}function Ot(e,t,n,r){return{onMember:e,onPreviousMember:t,onParam:n,onGenerator:r}}function kt(e,t,n,r,i,a){Dt(e,t,Ot(n,r,i,a))}function H(e){return e===`Double`||e===`Float`||e===`Int32`||e===`UInt16`||e===`UInt32`}function At(e){return e===`Int32`||e===`UInt16`||e===`UInt32`}function U(e,t){switch(t){case`Boolean`:return typeof e==`boolean`;case`String`:return typeof e==`string`;case`Double`:case`Float`:return typeof e==`number`&&Number.isFinite(e);case`Int32`:return typeof e==`number`&&Number.isSafeInteger(e)&&e>=-2147483648&&e<=2147483647;case`UInt16`:return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0&&e<=65535;case`UInt32`:return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0&&e<=4294967295;default:return!1}}function jt(e,t,n){e.unit!==void 0&&(e.data_type===`Boolean`||e.data_type===`String`)&&t.addIssue({code:_.custom,path:[...n,`unit`],message:`Members with data_type "${e.data_type}" must not declare engineering units. Fix: remove the unit or use a numeric data_type.`}),e.enum_values&&e.data_type!==`String`&&t.addIssue({code:_.custom,path:[...n,`enum_values`],message:`enum_values is only valid for String members. Fix: remove enum_values or change data_type to "String".`})}function W(e,t,n,r){if(V(e)&&typeof e.type==`string`)switch(e.type){case`correlated`:typeof e.source==`string`&&n.push({member:e.source,path:[...t,`source`],previousTick:!1}),K(e.factor,[...t,`factor`],r),K(e.offset,[...t,`offset`],r);return;case`sine`:case`noise`:case`waveform`:case`chirp`:K(e.center,[...t,`center`],r);return;case`mean-reverting-noise`:K(e.mean,[...t,`mean`],r);return;case`first-order-lag`:case`second-order`:K(e.gain,[...t,`gain`],r),K(e.bias,[...t,`bias`],r),G(e.input,[...t,`input`],n,r);return;case`transport-delay`:K(e.delay,[...t,`delay`],r),G(e.input,[...t,`input`],n,r);return;case`slew-rate-limiter`:case`integrator`:G(e.input,[...t,`input`],n,r);return;case`hysteresis-relay`:K(e.on_threshold,[...t,`on_threshold`],r),K(e.off_threshold,[...t,`off_threshold`],r),G(e.input,[...t,`input`],n,r);return;case`weighted-sum`:K(e.bias,[...t,`bias`],r),Et(e,t,(e,t)=>{K(e.weight,[...t,`weight`],r),G(e.input,[...t,`input`],n,r)});return;case`gate`:n.push({member:String(e.enabled_member),path:[...t,`enabled_member`],previousTick:!1}),G(e.input,[...t,`input`],n,r);return;case`health-dependent`:{let i=e.stages;if(!V(i))return;for(let[e,a]of Object.entries(i))W(a,[...t,`stages`,e],n,r);return}default:return}}function G(e,t,n,r){kt(e,t,(e,t)=>n.push({member:e,path:t,previousTick:!1}),(e,t)=>n.push({member:e,path:t,previousTick:!0}),(e,t)=>r.push({param:e,path:t}),(e,t)=>W(e,t,n,r))}function K(e,t,n){let r=Tt(e);r!==void 0&&n.push({param:r,path:t})}function Mt(e,t,n){if(!V(e))return;let r=e.type;(r===`threshold`||r===`availability-state`)&&typeof e.member==`string`&&n.push({member:e.member,path:[...t,`member`],previousTick:!1})}function Nt(e,t,n){if(!V(e))return;let r=e.type;if(typeof r!=`string`)return;if(r===`integrator`&&e.wrap===!0&&(typeof e.wrap_at!=`number`||!Number.isFinite(e.wrap_at)||e.wrap_at<=0)&&n.addIssue({code:_.custom,path:[...t,`wrap_at`],message:`wrap_at must be a finite number greater than 0 when wrap is true. Fix: Set wrap_at to a positive number, or set wrap to false.`}),r===`health-dependent`){let r=e.stages;if(V(r))for(let[e,i]of Object.entries(r))Nt(i,[...t,`stages`,e],n)}function i(e,t){!V(e)||!(`generator`in e)||Nt(e.generator,[...t,`generator`],n)}i(e.input,[...t,`input`]),Et(e,t,(e,t)=>{i(e.input,[...t,`input`])})}function Pt(e){switch(e){case`Boolean`:return!1;case`String`:return``;case`Double`:case`Float`:case`Int32`:case`UInt16`:case`UInt32`:return 0;default:return 0}}var Ft=p(c(`type`,[h({type:v(`white_noise`),strength:i().min(0).max(1),scale:i().positive().optional()}).strict(),h({type:v(`drift`),tau:i().positive(),sigma:i().min(0).max(1),scale:i().positive().optional()}).strict(),h({type:v(`outlier`),probability:i().min(0).max(1),magnitude:i().positive(),scale:i().positive().optional()}).strict(),h({type:v(`gap`),probability:i().min(0).max(1),duration:i().int().positive().default(10)}).strict(),h({type:v(`noise_burst`),probability:i().min(0).max(1),duration:i().int().positive().default(5),strength:i().min(0).max(1),scale:i().positive().optional()}).strict()])).min(1).optional(),It=`Must be 1-64 chars and contain only letters, numbers, underscores, or hyphens.`;u([`float`,`int`,`string`,`bool`]);var Lt=c(`type`,[h({type:v(`float`),default:i().finite(),min:i().finite().optional(),max:i().finite().optional(),unit:R.optional()}),h({type:v(`int`),default:i().int().safe(),min:i().int().safe().optional(),max:i().int().safe().optional(),unit:R.optional()}),h({type:v(`string`),default:m(),unit:R.optional()}),h({type:v(`bool`),default:a(),unit:R.optional()})]),q=o([h({member:m()}).strict(),h({previous_member:m()}).strict(),h({param:m()}).strict(),h({generator:te(()=>pn)}).strict()]),Rt=m().regex(f,`Must be a $param.X parameter reference`),J=o([i(),Rt]),zt=o([i().finite(),Rt]),Bt={initial_value:i().default(0),gain:J.default(1),bias:J.default(0),min:i().nullable().default(null),max:i().nullable().default(null),input:q},Vt=h({type:v(`sine`),center:J,amplitude:i().positive(),period:i().positive()}).strict(),Ht=h({type:v(`random-walk`),min:i(),max:i(),step:i().positive()}).strict(),Ut=h({type:v(`noise`),center:J,stddev:i().positive()}).strict(),Wt=h({type:v(`step`),values:p(i()).min(1),interval:i().positive()}).strict(),Gt=h({type:v(`correlated`),source:m().regex(g,It),factor:zt,offset:zt,power:i().int().positive().optional()}).strict(),Kt=h({from:m(),to:m(),probability:i().min(0).max(1).optional(),on:m().optional()}).strict(),qt=h({type:v(`state-machine`),states:p(m()).min(1),initial:m(),transitions:p(Kt).min(1)}).strict();function Jt(e,t){let n=new Set(e.states);n.has(e.initial)||t.addIssue({code:_.custom,path:[`initial`],message:`State machine initial state "${e.initial}" is not in states. Fix: Set initial to one of: ${e.states.join(`, `)}.`});for(let r=0;r<e.transitions.length;r++){let i=e.transitions[r];i&&(n.has(i.from)||t.addIssue({code:_.custom,path:[`transitions`,r,`from`],message:`State machine transition from "${i.from}" references a state that is not in states. Fix: Add "${i.from}" to states or change transition.from to one of: ${e.states.join(`, `)}.`}),n.has(i.to)||t.addIssue({code:_.custom,path:[`transitions`,r,`to`],message:`State machine transition to "${i.to}" references a state that is not in states. Fix: Add "${i.to}" to states or change transition.to to one of: ${e.states.join(`, `)}.`}))}}qt.superRefine(Jt);var Yt=h({type:v(`ramp`),start_value:i().default(0),rate:i(),duration:i().nonnegative(),start_time:i().default(0),min:i().nullable().default(null),max:i().nullable().default(null)}).strict(),Xt=h({type:v(`mean-reverting-noise`),mean:J,tau:i().positive(),sigma:i().positive(),initial_value:i().optional(),min:i().nullable().default(null),max:i().nullable().default(null)}).strict(),Zt=h({time:i().nonnegative(),value:i()}),Qt=h({type:v(`timetable`),points:p(Zt).min(2),repeat:a().default(!1),interpolation:u([`linear`,`step`]).default(`linear`)}).strict(),$t=h({type:v(`waveform`),shape:u([`sawtooth`,`triangle`,`square`,`pulse`]),center:J,amplitude:i().positive(),period:i().positive(),duty_cycle:i().min(0).max(1).default(.5)}).strict(),en=h({type:v(`chirp`),center:J,amplitude:i().positive(),start_freq_hz:i().positive(),end_freq_hz:i().positive(),sweep_duration:i().positive(),sweep:u([`linear`,`exponential`]).default(`linear`),repeat:a().default(!0)}).strict(),Y=h({type:v(`impulse`),baseline:i().default(0),amplitude:i(),probability:i().min(0).max(1).optional(),interval:i().positive().optional(),decay:i().min(0).max(1).optional(),duration:i().int().positive().default(1)}).strict();function tn(e,t){e.probability===void 0&&e.interval===void 0&&t.addIssue({code:_.custom,path:[`probability`],message:`Impulse generator requires either probability or interval. Fix: Add probability: 0.01 (per-tick chance) or interval: 60 (seconds between triggers).`}),e.probability!==void 0&&e.interval!==void 0&&t.addIssue({code:_.custom,path:[`interval`],message:`Impulse generator cannot have both probability and interval. Fix: Remove one: use probability for random triggers, or interval for periodic triggers.`})}Y.superRefine(tn);var nn=h({type:v(`first-order-lag`),tau:i().positive(),...Bt}).strict(),rn=h({type:v(`integrator`),initial_value:i().default(0),gain:i().default(1),bias_rate:i().default(0),min:i().default(-1/0),max:i().default(1/0),wrap:a().default(!1),wrap_at:i().nullable().default(null),input:q}).strict(),an=h({type:v(`transport-delay`),delay:o([i().nonnegative(),Rt]),initial_value:i().default(0),interpolation:u([`linear`,`zoh`]).default(`linear`),input:q}).strict(),on=h({type:v(`slew-rate-limiter`),rate_up:i().positive(),rate_down:i().positive().optional(),initial_value:i().default(0),min:i().nullable().default(null),max:i().nullable().default(null),input:q}).strict(),sn=h({type:v(`second-order`),natural_freq_hz:i().positive(),damping_ratio:i().positive(),initial_velocity:i().default(0),...Bt}).strict(),cn=h({type:v(`hysteresis-relay`),on_threshold:J,off_threshold:J,output_on:o([i(),m()]).default(1),output_off:o([i(),m()]).default(0),initial_state:u([`on`,`off`]).default(`off`),mode:u([`rising`,`falling`]).default(`rising`),input:q}).strict(),ln=h({weight:J.default(1),input:q}),un=h({type:v(`weighted-sum`),bias:J.default(0),terms:p(ln).min(1),min:i().nullable().default(null),max:i().nullable().default(null)}).strict(),dn=h({type:v(`gate`),enabled_member:m().regex(g,It),input:q,disabled_value:o([i(),m(),a()])}).strict(),fn=c(`type`,[Vt,Ht,Ut,Wt,Gt,qt,Yt,Xt,Qt,$t,en,Y]).superRefine((e,t)=>{e.type===`state-machine`&&Jt(e,t),e.type===`impulse`&&tn(e,t)}),pn=c(`type`,[Vt,Ht,Ut,Wt,Gt,qt,Yt,Xt,Qt,$t,en,Y,h({type:v(`health-dependent`),stages:s(m(),fn)}).strict(),nn,rn,an,on,sn,cn,un,dn]).superRefine((e,t)=>{e.type===`state-machine`&&Jt(e,t),e.type===`impulse`&&tn(e,t)}),mn=h({multiplier:i().finite().optional(),offset:i().finite().optional()}).strict(),hn=h({stages:p(h({name:m().min(1),duration_hours:ne([i().nonnegative(),i().nonnegative()]).refine(([e,t])=>e<=t,{message:`duration_hours max must be greater than or equal to min.`}),effects:s(m(),mn)})).min(1)}).superRefine((e,t)=>{let n=new Set;for(let r=0;r<e.stages.length;r++){let i=e.stages[r];i&&(n.has(i.name)&&t.addIssue({code:_.custom,path:[`stages`,r,`name`],message:`Lifecycle stage names must be unique. Duplicate "${i.name}". Fix: Rename one stage so each lifecycle stage has a unique name.`}),n.add(i.name))}}),gn=h({multiplier:i().finite().optional(),offset:i().finite().optional(),spike:i().finite().optional(),duration_ticks:i().int().positive().optional(),onset_ticks:i().int().positive().optional(),recovery_ticks:i().int().positive().optional()}).strict(),_n=h({condition:m().optional(),lifecycle_stage:m().optional(),probability:i().min(0).max(1)}),vn=h({name:m().regex(g,It),trigger:_n,effects:s(m(),o([gn,m()]))}),yn=`Must be 1-64 chars and contain only letters, numbers, underscores, or hyphens.`,bn=m().regex(f,`Must be a $param.X parameter reference`),xn=o([i(),m(),a()]),Sn=h({name:m().regex(g,yn),description:m().optional(),namespace:m().optional()}).strict(),Cn=c(`kind`,[h({kind:v(`variable`),data_type:pt,access:mt,unit:R.optional(),enum_values:B.optional(),eu_range:ne([i(),i()]).refine(([e,t])=>e<=t,{message:`eu_range[0] (min) must be <= eu_range[1] (max).`}).optional(),generator:pn.optional(),binding:_t.optional(),default:xn.optional(),observation_effects:Ft}).strict(),h({kind:v(`property`),data_type:pt,access:mt,unit:R.optional(),enum_values:B.optional(),default:o([xn,bn]).optional()}).strict()]),wn=s(m().regex(g,yn),Cn).refine(e=>Object.keys(e).length>=1,{message:`Members map must have at least 1 member.`}).refine(e=>Object.keys(e).length<=256,{message:`Members map must have at most 256 members.`});h({schema_version:v(`2`),model:Sn,parameters:s(m(),Lt).optional(),members:wn,methods:wt.optional(),lifecycle:hn.optional(),faults:p(vn).optional()}).strict().superRefine((e,t)=>{let n=Object.keys(e.members),r=new Map;for(let e=0;e<n.length;e++){let t=n[e];t!==void 0&&r.set(t,e)}let i=new Set(Object.keys(e.parameters??{})),a=new Set(Object.entries(e.parameters??{}).filter(([,e])=>e.type===`float`||e.type===`int`).map(([e])=>e));for(let o=0;o<n.length;o++){let s=n[o];if(s===void 0)continue;let c=e.members[s];if(!c||(jt(c,t,[`members`,s]),c.kind===`variable`&&c.generator!==void 0&&c.binding!==void 0&&t.addIssue({code:_.custom,path:[`members`,s,`binding`],message:`Variable members cannot define both "generator" and "binding". Fix: keep one source of value generation.`}),c.kind===`variable`&&c.binding!==void 0&&c.access!==`read`&&t.addIssue({code:_.custom,path:[`members`,s,`access`],message:`Variable members with a "binding" must use access "read". Fix: change access to "read" or remove the binding.`}),c.kind!==`variable`||!c.generator&&!c.binding))continue;let l=[],u=[],d=[`members`,s,`generator`];if(c.generator&&W(c.generator,d,l,u),c.binding&&Mt(c.binding,[`members`,s,`binding`],l),c.generator&&(Nt(c.generator,d,t),c.generator.type===`gate`)){let n=e.members[c.generator.enabled_member];n&&n.data_type!==`Boolean`&&t.addIssue({code:_.custom,path:[`members`,s,`generator`,`enabled_member`],message:`Gate generator for "${s}" references "${c.generator.enabled_member}", but "${c.generator.enabled_member}" is not Boolean. Fix: use a Boolean command/state member for enabled_member.`}),U(c.generator.disabled_value,c.data_type)||t.addIssue({code:_.custom,path:[`members`,s,`generator`,`disabled_value`],message:`Gate generator disabled_value for "${s}" does not match data_type "${c.data_type}". Fix: use a compatible disabled_value literal.`})}for(let e of l){let n=r.get(e.member);if(n===void 0){t.addIssue({code:_.custom,path:[...e.path],message:`Member "${s}" references member "${e.member}", but "${e.member}" is not defined. Fix: Define "${e.member}" in members, or change the reference to a parameter.`});continue}!e.previousTick&&n>=o&&t.addIssue({code:_.custom,path:[...e.path],message:`Member "${s}" references member "${e.member}" which is defined later (or is itself). Members are evaluated in declaration order. Fix: Move "${e.member}" above "${s}".`})}for(let n of u)i.has(n.param)?a.has(n.param)||t.addIssue({code:_.custom,path:[...n.path],message:`Member "${s}" references parameter "${n.param}" in a numeric position, but "${n.param}" has type "${e.parameters?.[n.param]?.type}". Only float and int parameters can be used as generator coefficients or inputs. Fix: Change "${n.param}" to type "float" or "int".`}):t.addIssue({code:_.custom,path:[...n.path],message:`Member "${s}" references parameter "${n.param}", but "${n.param}" is not defined. Fix: Define "${n.param}" under parameters, or replace "$param.${n.param}" with a literal value.`});if(c.binding)switch(c.binding.type){case`threshold`:c.data_type!==`Boolean`&&t.addIssue({code:_.custom,path:[`members`,s,`data_type`],message:`Members using binding.type "threshold" must use data_type "Boolean". Fix: change data_type to "Boolean".`}),Tn(s,c.binding.member,e,t,[`members`,s,`binding`,`member`]);break;case`availability-state`:c.data_type!==`String`&&t.addIssue({code:_.custom,path:[`members`,s,`data_type`],message:`Members using binding.type "availability-state" must use data_type "String". Fix: change data_type to "String".`}),Tn(s,c.binding.member,e,t,[`members`,s,`binding`,`member`]);break;case`lifecycle-stage`:case`health-state`:case`active-fault-code`:c.data_type!==`String`&&t.addIssue({code:_.custom,path:[`members`,s,`data_type`],message:`Members using binding.type "${c.binding.type}" must use data_type "String". Fix: change data_type to "String".`});break;case`fault-active`:c.data_type!==`Boolean`&&t.addIssue({code:_.custom,path:[`members`,s,`data_type`],message:`Members using binding.type "fault-active" must use data_type "Boolean". Fix: change data_type to "Boolean".`});break;case`fault-count`:c.data_type!==`Int32`&&c.data_type!==`UInt16`&&c.data_type!==`UInt32`&&t.addIssue({code:_.custom,path:[`members`,s,`data_type`],message:`Members using binding.type "fault-count" must use an integer data_type (Int32, UInt16, or UInt32). Fix: change data_type to an integer type.`});break;default:c.binding}if(c.kind===`variable`&&c.observation_effects){H(c.data_type)||t.addIssue({code:_.custom,path:[`members`,s,`observation_effects`],message:`Observation effects on "${s}" require a numeric data_type (Double, Float, Int32, UInt16, or UInt32). Member has data_type "${c.data_type}", which cannot be degraded by noise, gaps, or drift. Fix: remove observation_effects, or change data_type to a numeric type.`}),c.access!==`read`&&t.addIssue({code:_.custom,path:[`members`,s,`observation_effects`],message:`Observation effects on "${s}" require access "read". Observation effects corrupt values — they must not be applied to command targets or setpoints. Fix: change access to "read" or remove observation_effects.`});for(let e=0;e<c.observation_effects.length;e++){let n=c.observation_effects[e];n&&(n.type===`white_noise`||n.type===`drift`||n.type===`outlier`||n.type===`noise_burst`)&&!(`scale`in n&&n.scale!==void 0)&&!c.eu_range&&t.addIssue({code:_.custom,path:[`members`,s,`observation_effects`,e],message:`Member "${s}" uses relative observation effect "${n.type}" but has no eu_range and no explicit scale. Fix: add eu_range: [min, max] to the member, or add scale: <number> to the effect.`})}}}function o(n,i,a){if(!r.has(n)){t.addIssue({code:_.custom,path:[...i],message:`${a} has effect on "${n}", but "${n}" is not a defined member. Fix: Change "${n}" to a valid member name.`});return}let o=e.members[n];o&&o.kind!==`variable`&&t.addIssue({code:_.custom,path:[...i],message:`${a} has effect on "${n}", but "${n}" is a property (kind: "property"). Effects can only target variable members.`})}if(e.lifecycle){let t=[`lifecycle`,`stages`];for(let n of e.lifecycle.stages)for(let e of Object.keys(n.effects))o(e,t,`Lifecycle stage "${n.name}"`)}if(e.faults){let n=new Set;for(let r=0;r<e.faults.length;r++){let i=e.faults[r];if(!i)continue;n.has(i.name)&&t.addIssue({code:_.custom,path:[`faults`,r,`name`],message:`Fault names must be unique. Duplicate "${i.name}". Fix: Rename one fault so each fault has a unique name.`}),n.add(i.name);let a=[`faults`,r,`effects`];for(let e of Object.keys(i.effects))o(e,a,`Fault "${i.name}"`)}}for(let r of n){let n=e.members[r];if(!n||n.kind!==`property`||typeof n.default!=`string`)continue;let a=Tt(n.default);a!==void 0&&!i.has(a)&&t.addIssue({code:_.custom,path:[`members`,r,`default`],message:`Property "${r}" default references parameter "${a}", but "${a}" is not defined. Fix: Define "${a}" under parameters, or use a literal value.`})}if(e.methods)for(let[n,r]of Object.entries(e.methods))En(n,r.input_arguments,t,[`methods`,n,`input_arguments`]),En(n,r.output_arguments,t,[`methods`,n,`output_arguments`]),Dn(n,r,e,t,[`methods`,n,`runtime`])});function Tn(e,t,n,r,i){let a=n.members[t];a&&(H(a.data_type)||r.addIssue({code:_.custom,path:[...i],message:`Member "${e}" binding references "${t}", but "${t}" is not numeric. Fix: bind to a numeric member or change the source member data_type.`}))}function En(e,t,n,r){if(t)for(let[i,a]of Object.entries(t))a.unit!==void 0&&(a.data_type===`Boolean`||a.data_type===`String`)&&n.addIssue({code:_.custom,path:[...r,i,`unit`],message:`Method "${e}" argument "${i}" uses data_type "${a.data_type}" and must not declare an engineering unit. Fix: remove the unit or use a numeric data_type.`}),a.enum_values&&a.data_type!==`String`&&n.addIssue({code:_.custom,path:[...r,i,`enum_values`],message:`Method "${e}" argument "${i}" can only use enum_values with data_type "String". Fix: remove enum_values or change the data_type.`})}function Dn(e,t,n,r,i){let a=t.runtime;if(a)switch(a.type){case`clear-faults`:return;case`set-parameters`:for(let o=0;o<a.writes.length;o++){let s=a.writes[o];if(!s)continue;let c=[...i,`writes`,o],l=n.parameters?.[s.parameter];if(!l){r.addIssue({code:_.custom,path:[...c,`parameter`],message:`Method "${e}" runtime targets parameter "${s.parameter}", but "${s.parameter}" is not defined. Fix: target a declared parameter.`});continue}if(l.type!==`float`&&l.type!==`int`){r.addIssue({code:_.custom,path:[...c,`parameter`],message:`Method "${e}" runtime targets parameter "${s.parameter}" of type "${l.type}". Fix: use set-parameters only with float or int parameters.`});continue}if(`argument`in s){let n=t.input_arguments?.[s.argument];if(!n){r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime references input argument "${s.argument}", but that argument is not defined. Fix: declare the input argument or use a literal value.`});continue}H(n.data_type)||r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime argument "${s.argument}" must be numeric to write parameter "${s.parameter}". Fix: use Double, Float, Int32, UInt16, or UInt32.`}),l.type===`int`&&!At(n.data_type)&&r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime argument "${s.argument}" uses data_type "${n.data_type}" but parameter "${s.parameter}" is type "int". Fix: use Int32, UInt16, or UInt32 so runtime writes stay integer-safe.`});continue}l.type===`int`&&!Number.isSafeInteger(s.value)&&r.addIssue({code:_.custom,path:[...c,`value`],message:`Method "${e}" runtime literal for integer parameter "${s.parameter}" must be a safe integer. Fix: use a whole-number literal.`})}return;case`set-members`:for(let o=0;o<a.writes.length;o++){let s=a.writes[o];if(!s)continue;let c=[...i,`writes`,o],l=n.members[s.member];if(!l){r.addIssue({code:_.custom,path:[...c,`member`],message:`Method "${e}" runtime targets member "${s.member}", but "${s.member}" is not defined. Fix: target a declared member.`});continue}if(l.kind!==`variable`&&r.addIssue({code:_.custom,path:[...c,`member`],message:`Method "${e}" runtime targets "${s.member}", but "${s.member}" is a property. Fix: target a writable variable member.`}),l.access!==`readwrite`&&l.access!==`write`&&r.addIssue({code:_.custom,path:[...c,`member`],message:`Method "${e}" runtime targets "${s.member}", but "${s.member}" is not writable. Fix: set access to "readwrite" or "write".`}),l.kind===`variable`&&l.binding&&r.addIssue({code:_.custom,path:[...c,`member`],message:`Method "${e}" runtime targets "${s.member}", but bound members are computed at runtime. Fix: write to a command/setpoint member without a binding.`}),`argument`in s){let n=t.input_arguments?.[s.argument];if(!n){r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime references input argument "${s.argument}", but that argument is not defined. Fix: declare the input argument or use a literal value.`});continue}if(U(Pt(n.data_type),l.data_type)||r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime argument "${s.argument}" uses data_type "${n.data_type}" which does not match target member "${s.member}" data_type "${l.data_type}". Fix: align the argument and target member data types.`}),n.enum_values&&l.enum_values){let t=n.enum_values.filter(e=>!l.enum_values?.includes(e));t.length>0&&r.addIssue({code:_.custom,path:[...c,`argument`],message:`Method "${e}" runtime argument "${s.argument}" allows values [${t.join(`, `)}] that are not valid for target member "${s.member}". Fix: align enum_values between the argument and target member.`})}continue}U(s.value,l.data_type)||r.addIssue({code:_.custom,path:[...c,`value`],message:`Method "${e}" runtime literal for "${s.member}" does not match data_type "${l.data_type}". Fix: use a compatible literal value.`}),l.enum_values&&typeof s.value==`string`&&!l.enum_values.includes(s.value)&&r.addIssue({code:_.custom,path:[...c,`value`],message:`Method "${e}" runtime literal "${s.value}" is not allowed for member "${s.member}". Fix: use one of [${l.enum_values.join(`, `)}].`})}return;default:}}var On=o([i().finite(),m(),a()]),kn=m().regex(/^[a-f0-9]{64}$/),An=h({id:m().min(1),model:m().min(1),browsePath:p(m().min(1)).min(1),parameters:s(m(),On),lifecycleStage:m().min(1),operatingHours:i().finite().nonnegative(),activeFaults:p(m().min(1)),templateRunId:i().int().positive().optional(),observationState:s(m(),s(m(),l())).optional().default({}),faultState:s(m(),h({remaining:i().int(),elapsed:i().int(),recovering:a(),recoveryElapsed:i().int(),recoveryTicks:i().int()})).optional().default({})}),jn=h({templateRunId:i().int().positive(),templateName:m().min(1),templatePath:m(),entryHash:kn.optional()}),Mn=h({name:m().min(1),enabled:a(),config:s(m(),l())});h({version:v(1),savedAt:m().min(1),environmentName:ft,models:p(m().min(1)),instances:p(An),templateRuns:p(jn),adapters:p(Mn).default([])});var X=e(t(),1),Z=n(),Nn={mqtt:Te,opcua:ze,modbus:tt},Pn={mqtt:`MQTT`,opcua:`OPC UA`,modbus:`Modbus TCP`},Fn={mqtt:re,opcua:r,modbus:ee};function In({adapter:e}){let t=e.pending?`pending`:e.enabled?`enabled`:`disabled`;return(0,Z.jsx)(b,{mode:`wait`,initial:!1,children:(0,Z.jsx)(y.div,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{type:`spring`,stiffness:500,damping:30},children:e.pending?(0,Z.jsxs)(j,{className:`gap-1 bg-info/20 text-info hover:bg-info/20`,children:[(0,Z.jsx)(Oe,{className:`size-3 animate-spin`}),e.enabled?`Disabling...`:`Enabling...`]}):e.enabled?(0,Z.jsxs)(j,{className:`gap-1 bg-success/20 text-success hover:bg-success/20`,children:[(0,Z.jsx)(E,{className:`size-3`}),`Enabled`]}):(0,Z.jsxs)(j,{variant:`outline`,className:`gap-1 text-muted-foreground`,children:[(0,Z.jsx)(et,{className:`size-2`}),`Disabled`]})},t)})}function Ln({metrics:e}){return e?e.connected?null:(0,Z.jsxs)(j,{variant:`destructive`,className:`gap-1`,children:[(0,Z.jsx)(Ae,{className:`size-3`}),`Disconnected`]}):null}function Rn({health:e}){if(!e)return null;let t={healthy:`bg-success/20 text-success hover:bg-success/20`,busy:`bg-warning/20 text-warning hover:bg-warning/20`,saturated:`bg-destructive/20 text-destructive hover:bg-destructive/20`},n=e.state,r=`size-3 shrink-0`,i=n===`healthy`?(0,Z.jsx)(E,{className:r,"aria-hidden":!0}):n===`busy`?(0,Z.jsx)(_e,{className:r,"aria-hidden":!0}):n===`saturated`?(0,Z.jsx)(Ge,{className:r,"aria-hidden":!0}):null;return(0,Z.jsxs)(j,{className:T(`gap-1`,t[n]??``),children:[i,n]})}function Q({label:e,value:t,valueClassName:n}){return(0,Z.jsxs)(`div`,{className:`flex min-h-[3.35rem] flex-col justify-center rounded-[var(--miravo-radius-stadium-sm)] border border-border/55 px-3 py-2 transition-colors hover:border-muted-foreground/25`,children:[(0,Z.jsx)(`span`,{className:`blueprint-title text-[10px] leading-tight text-muted-foreground`,children:e}),(0,Z.jsx)(`span`,{className:T(`mt-1.5 font-mono text-[13px] leading-none tabular-nums tracking-tight text-foreground`,n),children:t})]})}function zn({metrics:e}){return(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:[(0,Z.jsx)(Q,{label:`Messages sent`,value:C(e.messagesPublished)}),(0,Z.jsx)(Q,{label:`Attempted`,value:C(e.messagesAttempted)}),(0,Z.jsx)(Q,{label:`Skipped (unchanged)`,value:C(e.messagesFiltered)}),(0,Z.jsx)(Q,{label:`Errors`,value:C(e.errorsCount),valueClassName:e.errorsCount>0?`text-destructive`:void 0}),(0,Z.jsx)(Q,{label:`Publish latency`,value:`${e.lastPublishMs.toFixed(1)} ms`}),e.health?(0,Z.jsx)(Q,{label:`Queued messages`,value:String(e.health.pendingWorkCount)}):null]})}function Bn({port:e}){return(0,Z.jsxs)(`div`,{className:`flex gap-2 rounded-[var(--miravo-radius-stadium-sm)] border border-warning/30 bg-warning/10 p-3 text-sm text-warning`,children:[(0,Z.jsx)(Ge,{className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`font-medium`,children:`Before enabling`}),(0,Z.jsxs)(`p`,{className:`mt-1 text-warning`,children:[`Ensure port `,(0,Z.jsx)(`code`,{className:`font-mono font-bold`,children:e}),` is available on the host.`]}),(0,Z.jsxs)(`ul`,{className:`mt-1 list-inside list-disc space-y-0.5 text-warning`,children:[(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`strong`,{children:`Docker:`}),` Restart with`,` `,(0,Z.jsxs)(`code`,{className:`font-mono`,children:[`-p `,e,`:`,e]}),` `,`to expose the port.`]}),(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`strong`,{children:`Bare metal:`}),` Run `,(0,Z.jsxs)(`code`,{className:`font-mono`,children:[`lsof -i :`,e]}),` to check availability.`]})]})]})]})}function Vn({adapter:e,metrics:t}){let[n,r]=(0,X.useState)(!1),[i,a]=(0,X.useState)(``),[o,s]=(0,X.useState)(!1),c=k(),l=Nn[e.name]??ze,u=Pn[e.name]??e.name,d=Fn[e.name]??0,f=o||e.pending===!0,ee=(0,X.useMemo)(()=>{let t=e.config?.port;return typeof t==`number`?t:d},[e.config,d]);return(0,Z.jsxs)(`div`,{className:`protocol-card-art min-w-0 border`,children:[(0,Z.jsxs)(`div`,{className:`relative z-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-expanded":n,className:`group/row flex w-full min-w-0 cursor-pointer gap-3 px-4 py-3 text-left transition-colors duration-[var(--miravo-duration-base)] ease-[var(--miravo-ease)] hover:bg-muted/35`,onClick:()=>r(!n),children:[(0,Z.jsx)(l,{className:`mt-0.5 size-5 shrink-0 text-muted-foreground transition-[transform,color] duration-[var(--miravo-duration-base)] ease-[var(--miravo-ease)] group-hover/row:-rotate-[8deg] group-hover/row:scale-[1.08] group-hover/row:text-primary motion-reduce:transition-none motion-reduce:group-hover/row:rotate-0 motion-reduce:group-hover/row:scale-100`,"aria-hidden":!0}),(0,Z.jsx)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:(0,Z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-wrap items-start justify-between gap-x-3 gap-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[e.enabled&&!e.pending&&(0,Z.jsx)(`span`,{className:`protocol-card-live-dot`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`whitespace-nowrap font-medium tracking-tight`,children:u}),(0,Z.jsx)(In,{adapter:e}),e.enabled&&!e.pending&&t&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Ln,{metrics:t}),t.health?(0,Z.jsx)(Rn,{health:t.health}):(0,Z.jsxs)(j,{className:`gap-1 bg-success/20 text-success hover:bg-success/20`,children:[(0,Z.jsx)(E,{className:`size-3 shrink-0`,"aria-hidden":!0}),`healthy`]})]})]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[e.enabled&&t&&!e.pending&&(0,Z.jsxs)(`span`,{className:`protocol-card-metric-readout text-muted-foreground`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-normal uppercase tracking-[0.12em] text-muted-foreground`,children:`out`}),` `,(0,Z.jsx)(`span`,{className:`text-foreground`,children:C(t.messagesPublished)}),(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:` msgs`}),t.errorsCount>0&&(0,Z.jsxs)(`span`,{className:`ml-1.5 text-destructive`,children:[t.errorsCount,` err`]})]}),(0,Z.jsx)(xe,{className:`size-4 shrink-0 text-muted-foreground transition-[transform,color] duration-[var(--miravo-duration-base)] ease-[var(--miravo-ease)] group-hover/row:translate-y-0.5 group-hover/row:text-primary motion-reduce:transition-none motion-reduce:group-hover/row:translate-y-0 ${n?`rotate-180`:``}`})]})]})})]}),e.enabled&&!e.pending&&e.endpoint&&(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 px-4 pb-2 pl-11`,children:[(0,Z.jsx)(`code`,{className:`min-w-0 truncate font-mono text-xs text-muted-foreground`,children:e.endpoint}),(0,Z.jsx)(fe,{value:e.endpoint,label:`Copy endpoint URL`})]})]}),(0,Z.jsx)(b,{initial:!1,children:n&&(0,Z.jsx)(y.div,{initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:`easeOut`},className:`overflow-hidden`,children:(0,Z.jsx)(`div`,{className:`protocol-card-art-body border-t`,children:e.enabled&&t?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`section`,{className:`px-4 pb-4 pt-4`,"aria-labelledby":`protocol-telemetry-${e.name}`,children:[(0,Z.jsxs)(`div`,{className:`mb-3 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3`,children:[(0,Z.jsx)(`h4`,{id:`protocol-telemetry-${e.name}`,className:`blueprint-title shrink-0 text-muted-foreground`,children:`Telemetry`}),(0,Z.jsxs)(Ye,{to:`/tags?protocol=${e.name}`,className:`group/footer-link inline-flex w-full min-h-8 min-w-0 max-w-full shrink-0 items-center justify-start gap-1.5 rounded-[var(--miravo-radius-pill)] border border-primary/25 bg-primary/5 px-2.5 py-1.5 text-xs font-medium leading-tight text-primary transition-colors hover:border-primary/40 hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background sm:w-fit`,children:[(0,Z.jsx)(`span`,{className:`whitespace-nowrap`,children:`Browse Tags`}),(0,Z.jsx)(ve,{className:`size-3 shrink-0 text-primary transition-transform group-hover/footer-link:translate-x-0.5`})]})]}),(0,Z.jsx)(zn,{metrics:t})]}),(0,Z.jsx)(`footer`,{className:`protocol-card-art-footer flex flex-col gap-4 border-t border-border/80 px-4 pb-4 pt-4`,children:(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Z.jsxs)(S,{variant:`destructive`,size:`sm`,className:`gap-1.5`,disabled:f,onClick:async()=>{s(!0);try{await c.mutateAsync({type:`disableAdapter`,adapter:e.name})}catch{}finally{s(!1)}},children:[f?(0,Z.jsx)(Oe,{className:`size-3.5 animate-spin`}):(0,Z.jsx)(it,{className:`size-3.5`}),f?`Disabling...`:`Disable ${u}`]}),!f&&(0,Z.jsx)(`span`,{className:`text-xs leading-snug text-muted-foreground`,children:`Active connections will be dropped.`})]})})]}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4 px-4 py-4`,children:[!f&&(0,Z.jsx)(Bn,{port:i&&Number(i)||ee}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(M,{htmlFor:`port-${e.name}`,className:`text-xs`,children:`Port`}),(0,Z.jsx)(ge,{id:`port-${e.name}`,type:`number`,placeholder:String(ee),value:i,onChange:e=>a(e.target.value),className:`w-28`,disabled:f})]}),(0,Z.jsxs)(S,{size:`sm`,className:`gap-1.5`,disabled:f,onClick:async()=>{s(!0);try{let t=i?Number(i):void 0,n={};t&&Number.isFinite(t)&&(n.port=t),await c.mutateAsync({type:`enableAdapter`,adapter:e.name,...Object.keys(n).length>0?{config:n}:{}})}catch{}finally{s(!1)}},children:[f?(0,Z.jsx)(Oe,{className:`size-3.5 animate-spin`}):(0,Z.jsx)(at,{className:`size-3.5`}),f?`Enabling...`:`Enable ${u}`]})]})]})})},`panel`)})]})}function Hn(){let{instances:e,models:t,templateRuns:n}=A(x(e=>({instances:e.instances,models:e.models,templateRuns:e.templateRuns}))),r=k(),[i,a]=(0,X.useState)(``),[o,s]=(0,X.useState)(`1`),[c,l]=(0,X.useState)(``),u=(0,X.useMemo)(()=>c?t.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())):t,[t,c]);return(0,Z.jsxs)(I,{className:`h-full min-w-0`,children:[(0,Z.jsx)(P,{className:`pb-3`,children:(0,Z.jsxs)(F,{className:`flex items-center gap-2 text-xs font-medium uppercase tracking-wider`,children:[(0,Z.jsx)(He,{className:`size-3.5 text-muted-foreground`,"aria-hidden":!0}),`Fleet Management`]})}),(0,Z.jsxs)(L,{className:`flex flex-1 flex-col gap-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:`Spawn Instances`}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,Z.jsx)(`div`,{className:`min-w-0 w-full sm:min-w-0 sm:flex-1`,children:(0,Z.jsxs)($e,{value:i||null,onValueChange:e=>a(e??``),onInputValueChange:l,children:[(0,Z.jsx)(Qe,{placeholder:`Select model`,className:`h-8 w-full min-w-0`,showClear:!!i}),(0,Z.jsx)(Ze,{children:(0,Z.jsxs)(N,{children:[u.map(e=>(0,Z.jsx)(Xe,{value:e.name,children:e.name},e.name)),u.length===0&&(0,Z.jsx)(`p`,{className:`py-2 text-center text-xs text-muted-foreground`,children:`No models found`})]})})]})}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Z.jsx)(ge,{type:`number`,value:o,onChange:e=>s(e.target.value),className:`h-8 w-16 text-xs`,min:`1`,"aria-label":`Number of instances to spawn`}),(0,Z.jsx)(S,{size:`sm`,className:`h-8`,onClick:()=>{let e=D(Ne,{model:i,count:Number(o)});e&&r.mutate({type:`spawn`,...e})},children:`Spawn`})]})]}),(0,Z.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[t.length,` models · `,e.length,` running`]})]}),n.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(O,{}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:`Environment Runs`}),(0,Z.jsx)(b,{initial:!1,children:n.map(e=>(0,Z.jsx)(y.div,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4,transition:{duration:.12}},transition:{type:`spring`,stiffness:400,damping:30},children:(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-[var(--miravo-radius-tight)] border px-2.5 py-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 overflow-hidden`,children:[(0,Z.jsx)(`span`,{className:`truncate text-xs font-medium`,children:me(e.templateName)}),(0,Z.jsxs)(j,{variant:`secondary`,className:`shrink-0 text-[10px]`,children:[e.instanceIds.length,` inst`]})]}),(0,Z.jsx)(S,{size:`sm`,variant:`ghost`,className:`h-6 shrink-0 px-1.5 text-destructive hover:text-destructive`,"aria-label":`Unload environment run`,onClick:()=>r.mutate({type:`unloadTemplateRun`,templateRunId:e.templateRunId}),children:(0,Z.jsx)(he,{className:`size-3`})})]})},e.templateRunId))})]})]})]})]})}function Un(){let{instances:e,models:t}=A(x(e=>({instances:e.instances,models:e.models}))),n=k(),[r,i]=(0,X.useState)(``),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(``),l=(0,X.useMemo)(()=>s?e.filter(e=>e.id.toLowerCase().includes(s.toLowerCase())):e,[e,s]),u=(0,X.useMemo)(()=>{let n=e.find(e=>e.id===r);return n?t.find(e=>e.name===n.model)?.faultNames??[]:[]},[r,e,t]),d=(0,X.useMemo)(()=>e.filter(e=>e.activeFaults.length>0),[e]),f=d.reduce((e,t)=>e+t.activeFaults.length,0);return(0,Z.jsxs)(I,{className:`h-full min-w-0`,children:[(0,Z.jsx)(P,{className:`pb-3`,children:(0,Z.jsxs)(F,{className:`flex items-center gap-2 text-xs font-medium uppercase tracking-wider`,children:[(0,Z.jsx)(Ge,{className:`size-3.5 ${f>0?`text-destructive`:`text-muted-foreground`}`}),`Fault Lab`,(0,Z.jsx)(b,{children:f>0&&(0,Z.jsx)(y.div,{initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},exit:{scale:0,opacity:0},transition:{type:`spring`,stiffness:500,damping:30},children:(0,Z.jsxs)(j,{variant:`destructive`,className:`text-[10px]`,children:[f,` active`]})},`fault-count`)})]})}),(0,Z.jsxs)(L,{className:`flex flex-1 flex-col gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,Z.jsxs)($e,{value:r||null,onValueChange:e=>{i(e??``),o(``)},onInputValueChange:c,children:[(0,Z.jsx)(Qe,{placeholder:`Select instance`,className:`h-8 min-h-11 w-full min-w-0 touch-manipulation sm:min-h-8`,showClear:!!r}),(0,Z.jsx)(Ze,{children:(0,Z.jsxs)(N,{children:[l.map(e=>(0,Z.jsxs)(Xe,{value:e.id,children:[(0,Z.jsx)(`span`,{className:`font-mono`,children:e.id}),e.activeFaults.length>0&&(0,Z.jsx)(j,{variant:`destructive`,className:`ml-auto text-[10px]`,children:e.activeFaults.length})]},e.id)),l.length===0&&(0,Z.jsx)(`p`,{className:`py-2 text-center text-xs text-muted-foreground`,children:`No instances found`})]})})]}),(0,Z.jsxs)(we,{value:a,onValueChange:e=>o(e??``),children:[(0,Z.jsx)(Ce,{className:`h-8 min-h-11 w-full touch-manipulation sm:min-h-8`,"aria-label":`Fault type`,children:(0,Z.jsx)(ye,{placeholder:r?`Select fault`:`Pick instance first`})}),(0,Z.jsx)(Se,{alignItemWithTrigger:!1,align:`start`,children:u.map(e=>(0,Z.jsx)(be,{value:e,children:e},e))})]})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(S,{variant:`destructive`,size:`sm`,className:`h-7 min-h-11 touch-manipulation text-xs sm:min-h-7`,disabled:!r||!a,onClick:()=>{let e=D(Le,{instanceId:r,fault:a});e&&n.mutate({type:`triggerFault`,...e})},children:`Trigger`}),(0,Z.jsx)(S,{variant:`secondary`,size:`sm`,className:`h-7 min-h-11 touch-manipulation text-xs sm:min-h-7`,disabled:!r||!a,onClick:()=>{let e=D(Le,{instanceId:r,fault:a});e&&n.mutate({type:`clearFault`,...e})},children:`Clear`})]}),(0,Z.jsx)(O,{}),(0,Z.jsx)(b,{mode:`wait`,initial:!1,children:d.length>0?(0,Z.jsxs)(y.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:`Faulted Instances`}),(0,Z.jsx)(b,{initial:!1,children:d.map(e=>(0,Z.jsx)(y.div,{initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0,x:6,transition:{duration:.1}},transition:{type:`spring`,stiffness:400,damping:35},children:(0,Z.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full touch-manipulation items-center justify-between rounded-[var(--miravo-radius-tight)] border border-destructive/20 bg-destructive/5 px-2.5 py-1.5 text-left transition-colors hover:bg-destructive/10 sm:min-h-0`,onClick:()=>{i(e.id),o(``)},children:[(0,Z.jsx)(`span`,{className:`truncate font-mono text-xs`,children:e.id}),(0,Z.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-destructive`,children:e.activeFaults.join(`, `)})]})},e.id))})]},`faulted`):(0,Z.jsxs)(y.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:`flex items-center gap-2 py-1 text-xs text-muted-foreground`,children:[(0,Z.jsx)(E,{className:`size-3.5 text-success`}),`All clear — no active faults`]},`all-clear`)})]})]})}function Wn(){let e=A(e=>e.instances),t=k(),[n,r]=(0,X.useState)(``),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(``),c=(0,X.useMemo)(()=>o?e.filter(e=>e.id.toLowerCase().includes(o.toLowerCase())):e,[e,o]),l=(0,X.useMemo)(()=>e.filter(e=>e.isQuarantined),[e]),u=(0,X.useMemo)(()=>e.filter(e=>!e.isQuarantined&&e.activeFaults.length===0).length,[e]),d=(0,X.useMemo)(()=>e.filter(e=>!e.isQuarantined&&e.activeFaults.length>0).length,[e]);return(0,Z.jsxs)(I,{className:`h-full min-w-0`,children:[(0,Z.jsx)(P,{className:`pb-3`,children:(0,Z.jsxs)(F,{className:`flex items-center gap-2 text-xs font-medium uppercase tracking-wider`,children:[(0,Z.jsx)(st,{className:`size-3.5 text-muted-foreground`}),`Instance Actions`]})}),(0,Z.jsxs)(L,{className:`flex flex-1 flex-col gap-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:`Remove Instance`}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start`,children:[(0,Z.jsx)(`div`,{className:`min-w-0 w-full sm:min-w-0 sm:flex-1`,children:(0,Z.jsxs)($e,{value:n||null,onValueChange:e=>{r(e??``),a(!1)},onInputValueChange:s,children:[(0,Z.jsx)(Qe,{placeholder:`Select instance`,className:`h-8 w-full min-w-0`,showClear:!!n}),(0,Z.jsx)(Ze,{children:(0,Z.jsxs)(N,{children:[c.map(e=>(0,Z.jsx)(Xe,{value:e.id,children:(0,Z.jsx)(`span`,{className:`font-mono`,children:e.id})},e.id)),c.length===0&&(0,Z.jsx)(`p`,{className:`py-2 text-center text-xs text-muted-foreground`,children:`No instances found`})]})})]})}),i&&n?(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 sm:shrink-0`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] text-destructive`,children:`Remove?`}),(0,Z.jsx)(S,{size:`sm`,variant:`destructive`,className:`h-7 text-xs`,onClick:()=>{t.mutate({type:`removeInstance`,instanceId:n}),a(!1),r(``)},children:`Confirm`}),(0,Z.jsx)(S,{size:`sm`,variant:`ghost`,className:`h-7 text-xs`,onClick:()=>a(!1),children:`Cancel`})]}):(0,Z.jsxs)(S,{className:`h-8 w-full shrink-0 gap-1.5 sm:w-auto`,variant:`destructive`,size:`sm`,disabled:!n,onClick:()=>{D(Fe,{instanceId:n})&&a(!0)},children:[(0,Z.jsx)(lt,{className:`size-3`}),`Remove`]})]})]}),(0,Z.jsx)(O,{}),(0,Z.jsx)(b,{mode:`wait`,initial:!1,children:l.length>0?(0,Z.jsxs)(y.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:`flex flex-col gap-2`,children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[10px] font-medium uppercase tracking-wider text-warning`,children:[`Quarantined`,(0,Z.jsx)(j,{variant:`secondary`,className:`text-[10px] text-warning`,children:l.length})]}),(0,Z.jsx)(b,{initial:!1,children:l.map(e=>(0,Z.jsx)(y.div,{initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0,transition:{duration:.1}},transition:{type:`spring`,stiffness:400,damping:35},children:(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-[var(--miravo-radius-tight)] border border-warning/20 bg-warning/5 px-2.5 py-1.5`,children:[(0,Z.jsx)(`span`,{className:`truncate font-mono text-xs`,children:e.id}),(0,Z.jsx)(S,{size:`sm`,variant:`outline`,className:`h-6 shrink-0 text-[10px]`,onClick:()=>t.mutate({type:`unquarantine`,instanceId:e.id}),children:`Unquarantine`})]})},e.id))})]},`quarantined`):(0,Z.jsxs)(y.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:`Fleet Health`}),(0,Z.jsx)(`div`,{className:`flex items-center gap-4 text-xs`,children:e.length>0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`size-2 rounded-full bg-success`}),(0,Z.jsx)(`span`,{className:`font-mono tabular-nums`,children:u}),(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`healthy`})]}),d>0&&(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`size-2 rounded-full bg-warning`}),(0,Z.jsx)(`span`,{className:`font-mono tabular-nums`,children:d}),(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`faulted`})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(ct,{className:`size-3 text-success`}),(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`0 quarantined`})]})]}):(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:`No instances running`})})]},`fleet-health`)})]})]})}function Gn(e){let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function Kn(e){if(!Number.isFinite(e)||e<=0)return`0s`;if(e<60)return`${e.toFixed(1)}s`;let t=Math.floor(e),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60),a=t%60;return n>0?r>0?`${n}d ${r}h`:i>0?`${n}d ${i}m`:`${n}d`:r>0?`${r}h ${i}m`:i>0?`${i}m ${a}s`:`${a}s`}function qn({data:e}){let t=(0,X.useMemo)(()=>{if(e.length<2)return null;let t=e.map(e=>e.tps),n=Math.max(...t,.1),r=Math.min(...t,0),i=n-r||1;return{points:t.map((e,n)=>{let a=n/(t.length-1)*200,o=2+(1-(e-r)/i)*28;return`${n===0?`M`:`L`}${a.toFixed(1)},${o.toFixed(1)}`}).join(` `),min:r,max:n}},[e]);return t?(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsxs)(`svg`,{viewBox:`0 0 200 32`,className:`h-8 w-full`,preserveAspectRatio:`none`,role:`img`,"aria-label":`TPS trend sparkline`,children:[(0,Z.jsx)(`line`,{x1:`0`,y1:`10.7`,x2:`200`,y2:`10.7`,stroke:`currentColor`,strokeWidth:`0.5`,strokeDasharray:`3,2`,className:`text-border`}),(0,Z.jsx)(`line`,{x1:`0`,y1:`21.3`,x2:`200`,y2:`21.3`,stroke:`currentColor`,strokeWidth:`0.5`,strokeDasharray:`3,2`,className:`text-border`}),(0,Z.jsx)(`path`,{d:t.points,fill:`none`,stroke:`var(--primary)`,strokeWidth:`1.5`})]}),(0,Z.jsxs)(`div`,{className:`flex justify-between text-[9px] text-muted-foreground`,children:[(0,Z.jsxs)(`span`,{children:[`60s ago · `,t.min.toFixed(1)]}),(0,Z.jsxs)(`span`,{children:[t.max.toFixed(1),` · now`]})]})]}):(0,Z.jsx)(`div`,{className:`flex h-8 items-center text-[10px] text-muted-foreground`,children:`Collecting...`})}var Jn={running:`bg-success`,paused:`bg-warning`,idle:`bg-muted-foreground`,stopped:`bg-destructive`};function Yn({state:e}){let t=Jn[e]??`bg-muted-foreground`,n=e===`running`;return(0,Z.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Z.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,Z.jsx)(`span`,{className:`size-2.5 rounded-full ${t}`}),n&&(0,Z.jsx)(`span`,{className:`absolute size-2.5 animate-ping rounded-full ${t} opacity-40`})]}),(0,Z.jsx)(b,{mode:`wait`,initial:!1,children:(0,Z.jsx)(y.span,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},exit:{opacity:0,y:5},transition:{type:`spring`,stiffness:500,damping:30},className:`font-mono text-lg font-bold uppercase tracking-wider`,children:e},e)})]})}function $({label:e,tooltip:t,tooltipClassName:n}){return(0,Z.jsxs)(`div`,{className:`inline-flex w-fit min-w-0 max-w-full items-center gap-1`,children:[(0,Z.jsx)(`span`,{className:`blueprint-title min-w-0 shrink text-[11px] leading-tight text-muted-foreground`,children:e}),(0,Z.jsxs)(Je,{children:[(0,Z.jsx)(Ke,{className:`inline-flex size-4 shrink-0 items-center justify-center rounded-[var(--miravo-radius-tight)] border-0 bg-transparent p-0 text-muted-foreground shadow-none outline-none hover:text-foreground focus-visible:ring-1 focus-visible:ring-ring`,render:(0,Z.jsx)(`button`,{type:`button`}),"aria-label":`About ${e}`,children:(0,Z.jsx)(Re,{className:`size-3`,"aria-hidden":!0})}),(0,Z.jsx)(qe,{side:`top`,className:T(`max-w-xs`,n),children:t})]})]})}function Xn(){let{engineState:e,connectionState:t}=A(x(e=>({engineState:e.engineState,connectionState:e.connectionState}))),n=k();return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)($,{label:`Run state`,tooltip:(0,Z.jsx)(`p`,{className:`text-[11px] leading-snug`,children:`Whether the scheduler is running, paused, idle, or stopped. Pause freezes simulated time; resume continues from the same tick.`})}),(0,Z.jsx)(Yn,{state:e}),t===`live`&&(e===`running`||e===`paused`)&&(0,Z.jsx)(`div`,{className:`mt-1 flex items-center gap-2`,children:(0,Z.jsxs)(S,{type:`button`,size:`sm`,variant:e===`paused`?`default`:`outline`,className:T(`h-8 min-h-11 w-fit touch-manipulation gap-1.5 px-3 text-xs sm:min-h-8`,e===`running`&&`border-warning/40 bg-warning/10 text-warning hover:bg-warning/20 hover:text-warning focus-visible:border-warning/50 focus-visible:ring-warning/25 border-warning/35`),onClick:()=>n.mutate({type:e===`paused`?`resume`:`pause`}),children:[e===`paused`?(0,Z.jsx)(Ue,{className:`size-3`}):(0,Z.jsx)(rt,{className:`size-3`}),e===`paused`?`Resume`:`Pause`]})})]})}function Zn(){let{speedMultiplier:e,connectionState:t}=A(x(e=>({speedMultiplier:e.speedMultiplier,connectionState:e.connectionState}))),n=k(),[r,i]=(0,X.useState)(String(e)),a=t===`live`;return(0,X.useEffect)(()=>{i(String(e))},[e]),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)($,{label:`Speed`,tooltip:(0,Z.jsx)(`p`,{className:`text-[11px] leading-snug`,children:`Runs the environment at this multiple of real time. 1× is real time; higher values speed up the model. Change it with the field and Set.`})}),(0,Z.jsxs)(`span`,{className:`w-fit font-mono text-lg font-bold tabular-nums`,children:[e,`x`]}),(0,Z.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(M,{htmlFor:`speed-multiplier`,className:`sr-only`,children:`Speed multiplier`}),(0,Z.jsx)(ge,{id:`speed-multiplier`,type:`number`,value:r,onChange:e=>i(e.target.value),className:`h-8 min-h-11 w-[4.75rem] touch-manipulation font-mono text-xs tabular-nums sm:min-h-8`,min:`1`,max:`1000`,disabled:!a}),(0,Z.jsx)(S,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 min-h-11 touch-manipulation px-3 text-xs sm:min-h-8`,disabled:!a,onClick:()=>{let e=D(Ie,{multiplier:Number(r)});e&&n.mutate({type:`setSpeed`,multiplier:e.multiplier})},children:`Set`})]})]})}function Qn(){let{tick:e,simulationTime:t,tps:n,tpsHistory:r,uptimeMs:i,instanceCount:a,memberValueCount:o}=A(x(e=>({tick:e.tick,simulationTime:e.simulationTime,tps:e.tps,tpsHistory:e.tpsHistory,uptimeMs:e.uptimeMs,instanceCount:e.instanceCount,memberValueCount:e.memberValueCount})));return(0,Z.jsxs)(`div`,{className:T(We,`px-4 py-3`),children:[(0,Z.jsxs)(`header`,{className:`mb-3 border-b border-border/60 pb-2`,children:[(0,Z.jsx)(`h2`,{className:`font-heading text-sm font-semibold tracking-tight text-foreground`,children:`Engine vitals`}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:`Scheduler, speed, cycle count, and throughput for this session.`})]}),(0,Z.jsxs)(`div`,{className:`grid min-w-0 grid-cols-2 gap-3 @2xl/main:gap-4 @3xl/main:grid-cols-3 @5xl/main:grid-cols-6`,children:[(0,Z.jsx)(Xn,{}),(0,Z.jsx)(Zn,{}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)($,{label:`Cycle`,tooltipClassName:`flex flex-col items-start gap-2 text-left`,tooltip:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`p`,{className:`text-[11px] leading-snug`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Cycle`}),` compares simulated progress with wall time: how many steps ran, how much model time advanced, and how long this session has been open.`]}),(0,Z.jsxs)(`p`,{className:`text-[11px] leading-snug`,children:[`The number is `,(0,Z.jsx)(`span`,{className:`font-medium`,children:`tick`}),` count — completed scheduler steps since this run. Each tick refreshes the plant model and live tags.`]}),(0,Z.jsxs)(`p`,{className:`text-[11px] leading-snug`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Sim`}),` is simulated elapsed time. Each tick adds (tick interval × speed) to this clock. Generators, lifecycle, and in-model timestamps use Sim, not your system clock. It stops advancing while paused.`]}),(0,Z.jsxs)(`p`,{className:`text-[11px] leading-snug`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Real`}),` is wall-clock uptime since the run started (real time).`]})]})}),(0,Z.jsx)(`span`,{className:`w-fit font-mono text-lg font-bold tabular-nums`,children:C(e)}),(0,Z.jsxs)(`div`,{className:`mt-1 flex w-full min-w-0 flex-col gap-0.5 leading-tight`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Z.jsx)(`span`,{className:`w-10 shrink-0 text-[9px] font-semibold uppercase tracking-wide text-muted-foreground`,children:`Sim`}),(0,Z.jsx)(`span`,{className:`min-w-0 font-mono text-[10px] tabular-nums text-muted-foreground`,children:Kn(t)})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Z.jsx)(`span`,{className:`w-10 shrink-0 text-[9px] font-semibold uppercase tracking-wide text-muted-foreground`,children:`Real`}),(0,Z.jsx)(`span`,{className:`min-w-0 font-mono text-[10px] tabular-nums text-muted-foreground`,children:Gn(i)})]})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)($,{label:`Throughput`,tooltip:(0,Z.jsx)(`p`,{className:`text-[11px] leading-snug`,children:`Ticks per second: how fast the engine is stepping. Rises and falls with workload, speed setting, and CPU headroom.`})}),(0,Z.jsxs)(`span`,{className:`w-fit font-mono text-lg font-bold tabular-nums`,children:[n.toFixed(1),` tps`]}),(0,Z.jsxs)(`span`,{className:`mt-1 text-[10px] text-muted-foreground`,children:[a,` inst · `,pe(o),` tags`]})]}),(0,Z.jsxs)(`div`,{className:`col-span-2 flex flex-col gap-2`,children:[(0,Z.jsx)($,{label:`TPS Trend`,tooltip:(0,Z.jsx)(`p`,{className:`text-[11px] leading-snug`,children:`Recent ticks-per-second samples over about the last minute. Flat or noisy lines usually mean load or speed changes.`})}),(0,Z.jsx)(qn,{data:r})]})]})]})}var $n=[`MQTT Sparkplug B`,`EtherNet/IP`,`Siemens S7`];function er({enabled:e,total:t}){let n=t===0?`empty`:e===0?`idle`:`live`;return(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 rounded-[var(--miravo-radius-pill)] border border-border/60 bg-background/60 px-2.5 py-1 backdrop-blur-sm`,children:[(0,Z.jsxs)(`span`,{className:`relative flex size-1.5 items-center justify-center`,children:[(0,Z.jsx)(`span`,{className:T(`size-1.5 rounded-full`,n===`live`?`bg-success shadow-[0_0_0_1px_color-mix(in_srgb,var(--success)_50%,transparent),0_0_12px_color-mix(in_srgb,var(--success)_42%,transparent)]`:n===`idle`?`bg-warning/85 shadow-[0_0_0_1px_color-mix(in_srgb,var(--warning)_50%,transparent),0_0_12px_color-mix(in_srgb,var(--warning)_38%,transparent)]`:`bg-muted-foreground/55`)}),n===`live`&&(0,Z.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-success/60`})]}),(0,Z.jsxs)(`span`,{className:`text-[11px] leading-none text-muted-foreground`,children:[(0,Z.jsx)(`span`,{className:`font-mono font-semibold tabular-nums text-foreground`,children:e}),(0,Z.jsx)(`span`,{className:`mx-1 text-muted-foreground/60`,children:`/`}),(0,Z.jsx)(`span`,{className:`font-mono tabular-nums`,children:t}),(0,Z.jsx)(`span`,{className:`ml-1.5 text-[10px] uppercase tracking-[0.14em]`,children:`active`})]})]})}function tr(){let{availableAdapters:e,adapterMetrics:t}=A(x(e=>({availableAdapters:e.availableAdapters,adapterMetrics:e.adapterMetrics}))),n=e.filter(e=>e.enabled).length;return(0,Z.jsxs)(`section`,{className:T(We,`flex min-w-0 flex-col hover:border-border`),children:[(0,Z.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-border/60 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,Z.jsx)(`div`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-[var(--miravo-radius-tight)] border border-border/60 bg-background/70 text-muted-foreground`,"aria-hidden":!0,children:(0,Z.jsx)(ot,{className:`size-3.5`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`font-heading text-sm font-semibold tracking-tight text-foreground`,children:`Protocol Gateway`}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-pretty text-xs text-muted-foreground`,children:`Northbound adapters publishing engine telemetry to external systems.`})]})]}),(0,Z.jsx)(er,{enabled:n,total:e.length})]}),e.length>0&&(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-4`,children:(0,Z.jsx)(b,{children:e.map((e,n)=>{let r=t.find(t=>t.name===e.name)?.metrics;return(0,Z.jsx)(y.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0},transition:{type:`spring`,stiffness:380,damping:30,delay:n*.05},children:(0,Z.jsx)(Vn,{adapter:e,metrics:r})},e.name)})})}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-2 border-t border-border/60 bg-background/40 px-4 py-2.5`,role:`status`,"aria-label":`Upcoming protocol adapters: ${$n.join(`, `)}, and more`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Z.jsx)(Be,{className:`size-3 text-muted-foreground/70`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-[0.14em] text-muted-foreground`,children:`Roadmap`})]}),(0,Z.jsxs)(`ul`,{className:`flex min-w-0 flex-wrap items-center gap-1.5`,children:[$n.map(e=>(0,Z.jsx)(`li`,{className:`rounded-[var(--miravo-radius-tight)] border border-dashed border-border/70 bg-background/40 px-2 py-0.5 font-mono text-[10px] leading-[15px] tracking-tight text-muted-foreground`,children:e},e)),(0,Z.jsx)(`li`,{className:`font-mono text-[10px] leading-[15px] tracking-tight text-muted-foreground/75`,children:`+ more`})]})]})]})}function nr(){let e=A(e=>e.instances),t=k(),[n,r]=(0,X.useState)(!1),[i,a]=(0,X.useState)(!1),[o,s]=(0,X.useState)(!1);return(0,Z.jsxs)(`div`,{className:`flex h-full min-w-0 flex-col`,children:[(0,Z.jsxs)(I,{className:`h-full min-w-0`,children:[(0,Z.jsx)(P,{className:`pb-3`,children:(0,Z.jsxs)(F,{className:`flex items-center gap-2 text-xs font-medium uppercase tracking-wider`,children:[(0,Z.jsx)(nt,{className:`size-3.5 text-muted-foreground`,"aria-hidden":!0}),`Danger Zone`]})}),(0,Z.jsx)(L,{className:`flex flex-1 flex-col`,children:(0,Z.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-3 rounded-[var(--miravo-radius-stadium-sm)] border border-dashed border-border p-3 @2xl/main:flex-row @2xl/main:items-center @2xl/main:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:`Reset environment`}),(0,Z.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Removes `,e.length,` running instance`,e.length===1?``:`s`,` and all loaded environments.`]})]}),(0,Z.jsx)(S,{className:`min-h-11 w-full shrink-0 touch-manipulation @2xl/main:w-auto sm:min-h-7`,variant:`destructive`,size:`sm`,onClick:()=>r(!0),children:`Reset`})]})})]}),(0,Z.jsx)(ce,{open:n,onOpenChange:e=>{r(e),e||a(!1)},children:(0,Z.jsxs)(ue,{children:[(0,Z.jsxs)(le,{children:[(0,Z.jsx)(de,{children:`Reset Environment`}),(0,Z.jsx)(se,{children:`Removes all running instances and loaded environments.`})]}),(0,Z.jsx)(`div`,{className:`space-y-3 text-sm`,children:(0,Z.jsx)(`div`,{className:`rounded-[var(--miravo-radius-stadium-sm)] border p-3`,children:(0,Z.jsxs)(M,{htmlFor:`clear-persisted-state`,className:`items-start`,children:[(0,Z.jsx)(Ve,{id:`clear-persisted-state`,checked:i,onCheckedChange:e=>a(e===!0)}),(0,Z.jsxs)(`span`,{className:`space-y-1`,children:[(0,Z.jsx)(`span`,{className:`block font-medium text-foreground`,children:`Also clear persisted state`}),(0,Z.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:`Start empty on the next restart.`})]})]})})}),(0,Z.jsxs)(oe,{children:[(0,Z.jsx)(S,{variant:`outline`,className:`min-h-11 w-full touch-manipulation sm:min-h-8 sm:w-auto`,onClick:()=>{r(!1),a(!1)},disabled:o,children:`Cancel`}),(0,Z.jsx)(S,{variant:`destructive`,className:`min-h-11 w-full touch-manipulation sm:min-h-8 sm:w-auto`,disabled:o,onClick:async()=>{s(!0);try{await t.mutateAsync({type:`resetEnvironment`,...i?{clearPersistence:!0}:{}}),r(!1),a(!1)}catch{}finally{s(!1)}},children:o?`Resetting...`:`Confirm Reset`})]})]})})]})}function rr(){let[e,t]=ie(`tab`,ae([`monitor`,`operate`]).withDefault(`monitor`));return(0,Z.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-screen-2xl flex-col gap-5 p-4 sm:gap-6 sm:p-6`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`h1`,{className:`font-heading text-2xl font-semibold tracking-tight`,children:`Mission Control`}),(0,Z.jsxs)(j,{variant:`outline`,title:`Miravo version ${d}`,className:`font-mono text-[10px] leading-none text-muted-foreground`,children:[`v`,d]})]}),(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Engine telemetry, protocol management, and fleet operations.`})]}),(0,Z.jsxs)(je,{value:e,onValueChange:e=>{t(e)},className:`min-h-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`shrink-0 overflow-x-auto`,children:(0,Z.jsxs)(ke,{variant:`line`,className:`h-10! min-w-max gap-0.5`,children:[(0,Z.jsxs)(Ee,{value:`monitor`,className:`gap-1.5 px-3 text-sm`,children:[(0,Z.jsx)(Pe,{className:`size-3.5 shrink-0`}),`Monitor`]}),(0,Z.jsxs)(Ee,{value:`operate`,className:`gap-1.5 px-3 text-sm`,children:[(0,Z.jsx)(Me,{className:`size-3.5 shrink-0`}),`Operate`]})]})}),(0,Z.jsx)(De,{value:`monitor`,className:`flex-1 py-2`,children:(0,Z.jsxs)(y.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.15,ease:`easeOut`},className:`flex flex-col gap-5 sm:gap-6`,children:[(0,Z.jsx)(Qn,{}),(0,Z.jsx)(tr,{})]},`monitor`)}),(0,Z.jsx)(De,{value:`operate`,className:`flex-1 py-2`,children:(0,Z.jsxs)(y.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.15,ease:`easeOut`},className:`grid min-h-0 min-w-0 grid-cols-1 items-stretch gap-5 @2xl/main:grid-cols-2 @2xl/main:gap-4`,children:[(0,Z.jsx)(Hn,{}),(0,Z.jsx)(Wn,{}),(0,Z.jsx)(Un,{}),(0,Z.jsx)(nr,{})]},`operate`)})]})]})}export{ot as n,rr as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./control-CvQvIf00.js";export{e as ControlPage};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{s as t}from"./vendor-charts-CAZdaPlq.js";import{$ as n,J as r,Q as i,X as a,Y as o,Z as s,at as c,ot as l,q as u}from"./vendor-ui-BcvPjvmT.js";import{S as d,T as ee,w as f}from"./format-B243kebG.js";import{n as p,t as m}from"./utils-CH98NBUe.js";import{i as h,n as g,t as _}from"./tooltip-5y0snV5M.js";var v=c(),y=e(t(),1),b=e(l(),1);function te(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var x=e=>{switch(e){case`success`:return w;case`info`:return ne;case`warning`:return T;case`error`:return E;default:return null}},S=Array(12).fill(0),C=({visible:e,className:t})=>y.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},y.createElement(`div`,{className:`sonner-spinner`},S.map((e,t)=>y.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),w=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),T=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),ne=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),E=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),D=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},y.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),y.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),O=()=>{let[e,t]=y.useState(document.hidden);return y.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},k=1,A=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:k++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],y.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(M(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||k++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},j=(e,t)=>{let n=t?.id||k++;return A.addToast({title:e,...t,id:n}),n},M=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,N=Object.assign(j,{success:A.success,info:A.info,warning:A.warning,error:A.error,custom:A.custom,message:A.message,promise:A.promise,dismiss:A.dismiss,loading:A.loading},{getHistory:()=>A.toasts,getToasts:()=>A.getActiveToasts()});te(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function P(e){return e.label!==void 0}var F=3,I=`24px`,L=`16px`,R=4e3,z=356,re=14,ie=45,ae=200;function B(...e){return e.filter(Boolean).join(` `)}function oe(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var se=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:ee,closeButton:f,style:p,cancelButtonStyle:m,actionButtonStyle:h,className:g=``,descriptionClassName:_=``,duration:v,position:b,gap:te,expandByDefault:S,classNames:w,icons:T,closeButtonAriaLabel:ne=`Close toast`}=e,[E,k]=y.useState(null),[A,j]=y.useState(null),[M,N]=y.useState(!1),[F,I]=y.useState(!1),[L,z]=y.useState(!1),[re,se]=y.useState(!1),[V,H]=y.useState(!1),[ce,U]=y.useState(0),[le,W]=y.useState(0),G=y.useRef(n.duration||v||R),K=y.useRef(null),q=y.useRef(null),ue=c===0,de=c+1<=o,J=n.type,Y=n.dismissible!==!1,fe=n.className||``,pe=n.descriptionClassName||``,X=y.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),me=y.useMemo(()=>n.closeButton??f,[n.closeButton,f]),he=y.useMemo(()=>n.duration||v||R,[n.duration,v]),ge=y.useRef(0),Z=y.useRef(0),_e=y.useRef(0),Q=y.useRef(null),[ve,ye]=b.split(`-`),be=y.useMemo(()=>s.reduce((e,t,n)=>n>=X?e:e+t.height,0),[s,X]),xe=O(),Se=n.invert||t,Ce=J===`loading`;Z.current=y.useMemo(()=>X*te+be,[X,be]),y.useEffect(()=>{G.current=he},[he]),y.useEffect(()=>{N(!0)},[]),y.useEffect(()=>{let e=q.current;if(e){let t=e.getBoundingClientRect().height;return W(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),y.useLayoutEffect(()=>{if(!M)return;let e=q.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,W(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[M,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let $=y.useCallback(()=>{I(!0),U(Z.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},ae)},[n,d,a,Z]);y.useEffect(()=>{if(n.promise&&J===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||xe?(()=>{if(_e.current<ge.current){let e=new Date().getTime()-ge.current;G.current-=e}_e.current=new Date().getTime()})():G.current!==1/0&&(ge.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),$()},G.current)),()=>clearTimeout(e)},[u,i,n,J,xe,$]),y.useEffect(()=>{n.delete&&($(),n.onDismiss==null||n.onDismiss.call(n,n))},[$,n.delete]);function we(){return T?.loading?y.createElement(`div`,{className:B(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":J===`loading`},T.loading):y.createElement(C,{className:B(w?.loader,n?.classNames?.loader),visible:J===`loading`})}let Te=n.icon||T?.[J]||x(J);return y.createElement(`li`,{tabIndex:0,ref:q,className:B(g,fe,w?.toast,n?.classNames?.toast,w?.default,w?.[J],n?.classNames?.[J]),"data-sonner-toast":``,"data-rich-colors":n.richColors??ee,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":M,"data-promise":!!n.promise,"data-swiped":V,"data-removed":F,"data-visible":de,"data-y-position":ve,"data-x-position":ye,"data-index":c,"data-front":ue,"data-swiping":L,"data-dismissible":Y,"data-type":J,"data-invert":Se,"data-swipe-out":re,"data-swipe-direction":A,"data-expanded":!!(u||S&&M),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${F?ce:Z.current}px`,"--initial-height":S?`auto`:`${le}px`,...p,...n.style},onDragEnd:()=>{z(!1),k(null),Q.current=null},onPointerDown:e=>{e.button!==2&&(Ce||!Y||(K.current=new Date,U(Z.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(z(!0),Q.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(re||!Y)return;Q.current=null;let e=Number(q.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(q.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-K.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=ie||a>.11){U(Z.current),n.onDismiss==null||n.onDismiss.call(n,n),j(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),$(),se(!0);return}else{var o,s;(o=q.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=q.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}H(!1),z(!1),k(null)},onPointerMove:t=>{var n,r;if(!Q.current||!Y||window.getSelection()?.toString().length>0)return;let i=t.clientY-Q.current.y,a=t.clientX-Q.current.x,o=e.swipeDirections??oe(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&k(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(E===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&H(!0),(n=q.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=q.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},me&&!n.jsx&&J!==`loading`?y.createElement(`button`,{"aria-label":ne,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!Y?()=>{}:()=>{$(),n.onDismiss==null||n.onDismiss.call(n,n)},className:B(w?.closeButton,n?.classNames?.closeButton)},T?.close??D):null,(J||n.icon||n.promise)&&n.icon!==null&&(T?.[J]!==null||n.icon)?y.createElement(`div`,{"data-icon":``,className:B(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||we():null,n.type===`loading`?null:Te):null,y.createElement(`div`,{"data-content":``,className:B(w?.content,n?.classNames?.content)},y.createElement(`div`,{"data-title":``,className:B(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?y.createElement(`div`,{"data-description":``,className:B(_,pe,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),y.isValidElement(n.cancel)?n.cancel:n.cancel&&P(n.cancel)?y.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||m,onClick:e=>{P(n.cancel)&&Y&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),$())},className:B(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,y.isValidElement(n.action)?n.action:n.action&&P(n.action)?y.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||h,onClick:e=>{P(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&$())},className:B(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function V(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function H(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?L:I;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var ce=y.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:ee,duration:f,style:p,visibleToasts:m=F,toastOptions:h,dir:g=V(),gap:_=re,icons:v,containerAriaLabel:te=`Notifications`}=e,[x,S]=y.useState([]),C=y.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),w=y.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[T,ne]=y.useState([]),[E,D]=y.useState(!1),[O,k]=y.useState(!1),[j,M]=y.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),N=y.useRef(null),P=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),I=y.useRef(null),L=y.useRef(!1),R=y.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||A.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return y.useEffect(()=>A.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{b.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),y.useEffect(()=>{if(d!==`system`){M(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?M(`dark`):M(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{M(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{M(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),y.useEffect(()=>{x.length<=1&&D(!1)},[x]),y.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;D(!0),(t=N.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===N.current||N.current?.contains(document.activeElement))&&D(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),y.useEffect(()=>{if(N.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,L.current=!1)}},[N.current]),y.createElement(`section`,{ref:t,"aria-label":`${te} ${P}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},w.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?y.createElement(`ol`,{key:t,dir:g===`auto`?V():g,tabIndex:-1,ref:N,className:c,"data-sonner-toaster":!0,"data-sonner-theme":j,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${T[0]?.height||0}px`,"--width":`${z}px`,"--gap":`${_}px`,...p,...H(l,u)},onBlur:e=>{L.current&&!e.currentTarget.contains(e.relatedTarget)&&(L.current=!1,I.current&&=(I.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||L.current||(L.current=!0,I.current=e.relatedTarget)},onMouseEnter:()=>D(!0),onMouseMove:()=>D(!0),onMouseLeave:()=>{O||D(!1)},onDragEnd:()=>D(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||k(!0)},onPointerUp:()=>k(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>y.createElement(se,{key:n.id,icons:v,index:i,toast:n,defaultRichColors:ee,duration:h?.duration??f,className:h?.className,descriptionClassName:h?.descriptionClassName,invert:r,visibleToasts:m,closeButton:h?.closeButton??s,interacting:O,position:t,style:h?.style,unstyled:h?.unstyled,classNames:h?.classNames,cancelButtonStyle:h?.cancelButtonStyle,actionButtonStyle:h?.actionButtonStyle,closeButtonAriaLabel:h?.closeButtonAriaLabel,removeToast:R,toasts:C.filter(e=>e.position==n.position),heights:T.filter(e=>e.position==n.position),setHeights:ne,expandByDefault:o,gap:_,expanded:E,swipeDirections:e.swipeDirections}))):null}))}),U=p(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]);function le({...e}){return(0,v.jsx)(r,{"data-slot":`dialog`,...e})}function W({...e}){return(0,v.jsx)(o,{"data-slot":`dialog-portal`,...e})}function G({className:e,...t}){return(0,v.jsx)(n,{"data-slot":`dialog-overlay`,className:m(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...t})}function K({className:e,children:t,showCloseButton:n=!0,...r}){return(0,v.jsxs)(W,{children:[(0,v.jsx)(G,{}),(0,v.jsxs)(a,{"data-slot":`dialog-content`,className:m(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-[var(--miravo-radius-stadium-sm)] bg-background p-4 text-sm ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r,children:[t,n&&(0,v.jsxs)(i,{"data-slot":`dialog-close`,render:(0,v.jsx)(d,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`}),children:[(0,v.jsx)(f,{}),(0,v.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function q({className:e,...t}){return(0,v.jsx)(`div`,{"data-slot":`dialog-header`,className:m(`flex flex-col gap-2`,e),...t})}function ue({className:e,showCloseButton:t=!1,children:n,...r}){return(0,v.jsxs)(`div`,{"data-slot":`dialog-footer`,className:m(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-[var(--miravo-radius-stadium-sm)] border-t p-4 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,v.jsx)(i,{render:(0,v.jsx)(d,{variant:`outline`}),children:`Close`})]})}function de({className:e,...t}){return(0,v.jsx)(u,{"data-slot":`dialog-title`,className:m(`text-base leading-none font-medium`,e),...t})}function J({className:e,...t}){return(0,v.jsx)(s,{"data-slot":`dialog-description`,className:m(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...t})}function Y(e,t){if(!t?.body||!t.createElement||typeof t.execCommand!=`function`)return!1;let n=t.createElement(`textarea`),r=t.activeElement;n.value=e,n.setAttribute(`readonly`,``),n.setAttribute(`aria-hidden`,`true`),n.style.position=`fixed`,n.style.top=`0`,n.style.left=`-9999px`,n.style.opacity=`0`,t.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);try{return t.execCommand(`copy`)}finally{t.body.removeChild(n),r?.focus?.()}}async function fe(e,t=globalThis){let n=t.navigator?.clipboard?.writeText;if(n)try{await n(e);return}catch{if(Y(e,t.document))return;throw Error(`Clipboard write failed`)}if(!Y(e,t.document))throw Error(`Clipboard API unavailable`)}function pe({value:e,label:t=`Copy`,className:n,successMessage:r=`Copied to clipboard`,successDescription:i,tooltipSide:a=`right`,render:o}){let[s,c]=(0,y.useState)(!1),l=(0,y.useRef)(void 0);(0,y.useEffect)(()=>()=>clearTimeout(l.current),[]);let u=(0,y.useCallback)(async t=>{t.stopPropagation();try{await fe(e),c(!0),N.success(r,{description:i}),clearTimeout(l.current),l.current=setTimeout(()=>c(!1),1500)}catch{N.error(`Failed to copy`)}},[i,r,e]),d=s?(0,v.jsx)(ee,{className:`size-3 text-success`}):(0,v.jsx)(U,{className:`size-3`}),f=o?.({copied:s,icon:d});return(0,v.jsxs)(_,{children:[(0,v.jsx)(h,{className:f?void 0:m(`relative inline-flex size-6 items-center justify-center rounded-[var(--miravo-radius-tight)] text-muted-foreground hover:bg-muted hover:text-foreground before:absolute before:inset-[-10px] before:content-['']`,n),onClick:u,closeOnClick:!1,"aria-label":t,render:f,children:d}),(0,v.jsx)(g,{side:a,children:s?`Copied!`:t})]})}export{ue as a,ce as c,J as i,N as l,le as n,q as o,K as r,de as s,pe as t};
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{$ as n,J as r,Q as i,X as a,Y as o,Z as s,at as c,ot as l,q as u}from"./vendor-ui-CWUk2ulb.js";import{S as d,T as ee,w as f}from"./format-CshN6yEB.js";import{n as p,t as m}from"./utils-XFKvwlFT.js";import{i as h,n as g,t as _}from"./tooltip-D1ydB4g3.js";var v=c(),y=e(t(),1),b=e(l(),1);function te(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var x=e=>{switch(e){case`success`:return w;case`info`:return ne;case`warning`:return T;case`error`:return E;default:return null}},S=Array(12).fill(0),C=({visible:e,className:t})=>y.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},y.createElement(`div`,{className:`sonner-spinner`},S.map((e,t)=>y.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),w=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),T=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),ne=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),E=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),D=y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},y.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),y.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),O=()=>{let[e,t]=y.useState(document.hidden);return y.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},k=1,A=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:k++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],y.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(M(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||k++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},j=(e,t)=>{let n=t?.id||k++;return A.addToast({title:e,...t,id:n}),n},M=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,N=Object.assign(j,{success:A.success,info:A.info,warning:A.warning,error:A.error,custom:A.custom,message:A.message,promise:A.promise,dismiss:A.dismiss,loading:A.loading},{getHistory:()=>A.toasts,getToasts:()=>A.getActiveToasts()});te(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function P(e){return e.label!==void 0}var F=3,I=`24px`,L=`16px`,R=4e3,z=356,re=14,ie=45,ae=200;function B(...e){return e.filter(Boolean).join(` `)}function oe(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var se=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:ee,closeButton:f,style:p,cancelButtonStyle:m,actionButtonStyle:h,className:g=``,descriptionClassName:_=``,duration:v,position:b,gap:te,expandByDefault:S,classNames:w,icons:T,closeButtonAriaLabel:ne=`Close toast`}=e,[E,k]=y.useState(null),[A,j]=y.useState(null),[M,N]=y.useState(!1),[F,I]=y.useState(!1),[L,z]=y.useState(!1),[re,se]=y.useState(!1),[V,H]=y.useState(!1),[ce,U]=y.useState(0),[le,W]=y.useState(0),G=y.useRef(n.duration||v||R),K=y.useRef(null),q=y.useRef(null),ue=c===0,de=c+1<=o,J=n.type,Y=n.dismissible!==!1,fe=n.className||``,pe=n.descriptionClassName||``,X=y.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),me=y.useMemo(()=>n.closeButton??f,[n.closeButton,f]),he=y.useMemo(()=>n.duration||v||R,[n.duration,v]),ge=y.useRef(0),Z=y.useRef(0),_e=y.useRef(0),Q=y.useRef(null),[ve,ye]=b.split(`-`),be=y.useMemo(()=>s.reduce((e,t,n)=>n>=X?e:e+t.height,0),[s,X]),xe=O(),Se=n.invert||t,Ce=J===`loading`;Z.current=y.useMemo(()=>X*te+be,[X,be]),y.useEffect(()=>{G.current=he},[he]),y.useEffect(()=>{N(!0)},[]),y.useEffect(()=>{let e=q.current;if(e){let t=e.getBoundingClientRect().height;return W(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),y.useLayoutEffect(()=>{if(!M)return;let e=q.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,W(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[M,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let $=y.useCallback(()=>{I(!0),U(Z.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},ae)},[n,d,a,Z]);y.useEffect(()=>{if(n.promise&&J===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||xe?(()=>{if(_e.current<ge.current){let e=new Date().getTime()-ge.current;G.current-=e}_e.current=new Date().getTime()})():G.current!==1/0&&(ge.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),$()},G.current)),()=>clearTimeout(e)},[u,i,n,J,xe,$]),y.useEffect(()=>{n.delete&&($(),n.onDismiss==null||n.onDismiss.call(n,n))},[$,n.delete]);function we(){return T?.loading?y.createElement(`div`,{className:B(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":J===`loading`},T.loading):y.createElement(C,{className:B(w?.loader,n?.classNames?.loader),visible:J===`loading`})}let Te=n.icon||T?.[J]||x(J);return y.createElement(`li`,{tabIndex:0,ref:q,className:B(g,fe,w?.toast,n?.classNames?.toast,w?.default,w?.[J],n?.classNames?.[J]),"data-sonner-toast":``,"data-rich-colors":n.richColors??ee,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":M,"data-promise":!!n.promise,"data-swiped":V,"data-removed":F,"data-visible":de,"data-y-position":ve,"data-x-position":ye,"data-index":c,"data-front":ue,"data-swiping":L,"data-dismissible":Y,"data-type":J,"data-invert":Se,"data-swipe-out":re,"data-swipe-direction":A,"data-expanded":!!(u||S&&M),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${F?ce:Z.current}px`,"--initial-height":S?`auto`:`${le}px`,...p,...n.style},onDragEnd:()=>{z(!1),k(null),Q.current=null},onPointerDown:e=>{e.button!==2&&(Ce||!Y||(K.current=new Date,U(Z.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(z(!0),Q.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(re||!Y)return;Q.current=null;let e=Number(q.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(q.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-K.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=ie||a>.11){U(Z.current),n.onDismiss==null||n.onDismiss.call(n,n),j(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),$(),se(!0);return}else{var o,s;(o=q.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=q.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}H(!1),z(!1),k(null)},onPointerMove:t=>{var n,r;if(!Q.current||!Y||window.getSelection()?.toString().length>0)return;let i=t.clientY-Q.current.y,a=t.clientX-Q.current.x,o=e.swipeDirections??oe(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&k(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(E===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&H(!0),(n=q.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=q.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},me&&!n.jsx&&J!==`loading`?y.createElement(`button`,{"aria-label":ne,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!Y?()=>{}:()=>{$(),n.onDismiss==null||n.onDismiss.call(n,n)},className:B(w?.closeButton,n?.classNames?.closeButton)},T?.close??D):null,(J||n.icon||n.promise)&&n.icon!==null&&(T?.[J]!==null||n.icon)?y.createElement(`div`,{"data-icon":``,className:B(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||we():null,n.type===`loading`?null:Te):null,y.createElement(`div`,{"data-content":``,className:B(w?.content,n?.classNames?.content)},y.createElement(`div`,{"data-title":``,className:B(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?y.createElement(`div`,{"data-description":``,className:B(_,pe,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),y.isValidElement(n.cancel)?n.cancel:n.cancel&&P(n.cancel)?y.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||m,onClick:e=>{P(n.cancel)&&Y&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),$())},className:B(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,y.isValidElement(n.action)?n.action:n.action&&P(n.action)?y.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||h,onClick:e=>{P(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&$())},className:B(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function V(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function H(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?L:I;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var ce=y.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:ee,duration:f,style:p,visibleToasts:m=F,toastOptions:h,dir:g=V(),gap:_=re,icons:v,containerAriaLabel:te=`Notifications`}=e,[x,S]=y.useState([]),C=y.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),w=y.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[T,ne]=y.useState([]),[E,D]=y.useState(!1),[O,k]=y.useState(!1),[j,M]=y.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),N=y.useRef(null),P=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),I=y.useRef(null),L=y.useRef(!1),R=y.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||A.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return y.useEffect(()=>A.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{b.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),y.useEffect(()=>{if(d!==`system`){M(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?M(`dark`):M(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{M(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{M(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),y.useEffect(()=>{x.length<=1&&D(!1)},[x]),y.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;D(!0),(t=N.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===N.current||N.current?.contains(document.activeElement))&&D(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),y.useEffect(()=>{if(N.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,L.current=!1)}},[N.current]),y.createElement(`section`,{ref:t,"aria-label":`${te} ${P}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},w.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?y.createElement(`ol`,{key:t,dir:g===`auto`?V():g,tabIndex:-1,ref:N,className:c,"data-sonner-toaster":!0,"data-sonner-theme":j,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${T[0]?.height||0}px`,"--width":`${z}px`,"--gap":`${_}px`,...p,...H(l,u)},onBlur:e=>{L.current&&!e.currentTarget.contains(e.relatedTarget)&&(L.current=!1,I.current&&=(I.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||L.current||(L.current=!0,I.current=e.relatedTarget)},onMouseEnter:()=>D(!0),onMouseMove:()=>D(!0),onMouseLeave:()=>{O||D(!1)},onDragEnd:()=>D(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||k(!0)},onPointerUp:()=>k(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>y.createElement(se,{key:n.id,icons:v,index:i,toast:n,defaultRichColors:ee,duration:h?.duration??f,className:h?.className,descriptionClassName:h?.descriptionClassName,invert:r,visibleToasts:m,closeButton:h?.closeButton??s,interacting:O,position:t,style:h?.style,unstyled:h?.unstyled,classNames:h?.classNames,cancelButtonStyle:h?.cancelButtonStyle,actionButtonStyle:h?.actionButtonStyle,closeButtonAriaLabel:h?.closeButtonAriaLabel,removeToast:R,toasts:C.filter(e=>e.position==n.position),heights:T.filter(e=>e.position==n.position),setHeights:ne,expandByDefault:o,gap:_,expanded:E,swipeDirections:e.swipeDirections}))):null}))}),U=p(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]);function le({...e}){return(0,v.jsx)(r,{"data-slot":`dialog`,...e})}function W({...e}){return(0,v.jsx)(o,{"data-slot":`dialog-portal`,...e})}function G({className:e,...t}){return(0,v.jsx)(n,{"data-slot":`dialog-overlay`,className:m(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...t})}function K({className:e,children:t,showCloseButton:n=!0,...r}){return(0,v.jsxs)(W,{children:[(0,v.jsx)(G,{}),(0,v.jsxs)(a,{"data-slot":`dialog-content`,className:m(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-[var(--miravo-radius-stadium-sm)] bg-background p-4 text-sm ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r,children:[t,n&&(0,v.jsxs)(i,{"data-slot":`dialog-close`,render:(0,v.jsx)(d,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`}),children:[(0,v.jsx)(f,{}),(0,v.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function q({className:e,...t}){return(0,v.jsx)(`div`,{"data-slot":`dialog-header`,className:m(`flex flex-col gap-2`,e),...t})}function ue({className:e,showCloseButton:t=!1,children:n,...r}){return(0,v.jsxs)(`div`,{"data-slot":`dialog-footer`,className:m(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-[var(--miravo-radius-stadium-sm)] border-t p-4 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,v.jsx)(i,{render:(0,v.jsx)(d,{variant:`outline`}),children:`Close`})]})}function de({className:e,...t}){return(0,v.jsx)(u,{"data-slot":`dialog-title`,className:m(`text-base leading-none font-medium`,e),...t})}function J({className:e,...t}){return(0,v.jsx)(s,{"data-slot":`dialog-description`,className:m(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...t})}function Y(e,t){if(!t?.body||!t.createElement||typeof t.execCommand!=`function`)return!1;let n=t.createElement(`textarea`),r=t.activeElement;n.value=e,n.setAttribute(`readonly`,``),n.setAttribute(`aria-hidden`,`true`),n.style.position=`fixed`,n.style.top=`0`,n.style.left=`-9999px`,n.style.opacity=`0`,t.body.appendChild(n),n.focus(),n.select(),n.setSelectionRange(0,n.value.length);try{return t.execCommand(`copy`)}finally{t.body.removeChild(n),r?.focus?.()}}async function fe(e,t=globalThis){let n=t.navigator?.clipboard?.writeText;if(n)try{await n(e);return}catch{if(Y(e,t.document))return;throw Error(`Clipboard write failed`)}if(!Y(e,t.document))throw Error(`Clipboard API unavailable`)}function pe({value:e,label:t=`Copy`,className:n,successMessage:r=`Copied to clipboard`,successDescription:i,tooltipSide:a=`right`,render:o}){let[s,c]=(0,y.useState)(!1),l=(0,y.useRef)(void 0);(0,y.useEffect)(()=>()=>clearTimeout(l.current),[]);let u=(0,y.useCallback)(async t=>{t.stopPropagation();try{await fe(e),c(!0),N.success(r,{description:i}),clearTimeout(l.current),l.current=setTimeout(()=>c(!1),1500)}catch{N.error(`Failed to copy`)}},[i,r,e]),d=s?(0,v.jsx)(ee,{className:`size-3 text-success`}):(0,v.jsx)(U,{className:`size-3`}),f=o?.({copied:s,icon:d});return(0,v.jsxs)(_,{children:[(0,v.jsx)(h,{className:f?void 0:m(`relative inline-flex size-6 items-center justify-center rounded-[var(--miravo-radius-tight)] text-muted-foreground hover:bg-muted hover:text-foreground before:absolute before:inset-[-10px] before:content-['']`,n),onClick:u,closeOnClick:!1,"aria-label":t,render:f,children:d}),(0,v.jsx)(g,{side:a,children:s?`Copied!`:t})]})}export{ue as a,ce as c,J as i,N as l,le as n,q as o,K as r,de as s,pe as t};
@@ -1,2 +1,2 @@
1
- import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{s as t}from"./vendor-charts-CAZdaPlq.js";var n=e(t(),1),r=s();function i(e,...t){if(!r)return;let n=o(e,...t);performance.mark(n);try{console.log(e,...t)}catch{console.log(n)}}function a(e,...t){r&&console.warn(e,...t)}function o(e,...t){return e.replace(/%[sfdO]/g,e=>{let n=t.shift();return e===`%O`&&n?JSON.stringify(n).replace(/"([^"]+)":/g,`$1:`):String(n)})}function s(){if(typeof window>`u`)return({}.DEBUG||``).includes(`nuqs`);try{let e=`nuqs-localStorage-test`;if(typeof localStorage>`u`)return!1;localStorage.setItem(e,e);let t=localStorage.getItem(e)===e;return localStorage.removeItem(e),t&&(localStorage.getItem(`debug`)||``).includes(`nuqs`)}catch{return!1}}var c={303:`Multiple adapter contexts detected. This might happen in monorepos.`,404:`nuqs requires an adapter to work with your framework.`,409:"Multiple versions of the library are loaded. This may lead to unexpected behavior. Currently using `%s`, but `%s` (via the %s adapter) was about to load on top.",414:`Max safe URL length exceeded. Some browsers may not be able to accept this URL. Consider limiting the amount of state stored in the URL.`,422:"Invalid options combination: `limitUrlUpdates: debounce` should be used in SSR scenarios, with `shallow: false`",429:"URL update rate-limited by the browser. Consider increasing `throttleMs` for key(s) `%s`. %O",500:`Empty search params cache. Search params can't be accessed in Layouts.`,501:"Search params cache already populated. Have you called `parse` twice?"};function l(e){return`[nuqs] ${c[e]}
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";var n=e(t(),1),r=s();function i(e,...t){if(!r)return;let n=o(e,...t);performance.mark(n);try{console.log(e,...t)}catch{console.log(n)}}function a(e,...t){r&&console.warn(e,...t)}function o(e,...t){return e.replace(/%[sfdO]/g,e=>{let n=t.shift();return e===`%O`&&n?JSON.stringify(n).replace(/"([^"]+)":/g,`$1:`):String(n)})}function s(){if(typeof window>`u`)return({}.DEBUG||``).includes(`nuqs`);try{let e=`nuqs-localStorage-test`;if(typeof localStorage>`u`)return!1;localStorage.setItem(e,e);let t=localStorage.getItem(e)===e;return localStorage.removeItem(e),t&&(localStorage.getItem(`debug`)||``).includes(`nuqs`)}catch{return!1}}var c={303:`Multiple adapter contexts detected. This might happen in monorepos.`,404:`nuqs requires an adapter to work with your framework.`,409:"Multiple versions of the library are loaded. This may lead to unexpected behavior. Currently using `%s`, but `%s` (via the %s adapter) was about to load on top.",414:`Max safe URL length exceeded. Some browsers may not be able to accept this URL. Consider limiting the amount of state stored in the URL.`,422:"Invalid options combination: `limitUrlUpdates: debounce` should be used in SSR scenarios, with `shallow: false`",429:"URL update rate-limited by the browser. Consider increasing `throttleMs` for key(s) `%s`. %O",500:`Empty search params cache. Search params can't be accessed in Layouts.`,501:"Search params cache already populated. Have you called `parse` twice?"};function l(e){return`[nuqs] ${c[e]}
2
2
  See https://nuqs.dev/NUQS-${e}`}function u(e){if(e.size===0)return``;let t=[];for(let[n,r]of e.entries()){let e=n.replace(/#/g,`%23`).replace(/&/g,`%26`).replace(/\+/g,`%2B`).replace(/=/g,`%3D`).replace(/\?/g,`%3F`);t.push(`${e}=${d(r)}`)}return`?`+t.join(`&`)}function d(e){return e.replace(/%/g,`%25`).replace(/\+/g,`%2B`).replace(/ /g,`+`).replace(/#/g,`%23`).replace(/&/g,`%26`).replace(/"/g,`%22`).replace(/'/g,`%27`).replace(/`/g,`%60`).replace(/</g,`%3C`).replace(/>/g,`%3E`).replace(/[\x00-\x1F]/g,e=>encodeURIComponent(e))}var f=(0,n.createContext)({useAdapter(){throw Error(l(404))}});f.displayName=`NuqsAdapterContext`,r&&typeof window<`u`&&(window.__NuqsAdapterContext&&window.__NuqsAdapterContext!==f&&console.error(l(303)),window.__NuqsAdapterContext=f);function p(e){return({children:t,defaultOptions:r,processUrlSearchParams:i,...a})=>(0,n.createElement)(f.Provider,{...a,value:{useAdapter:e,defaultOptions:r,processUrlSearchParams:i}},t)}function m(e){let t=(0,n.useContext)(f);if(!(`useAdapter`in t))throw Error(l(404));return t.useAdapter(e)}var h=()=>(0,n.useContext)(f).defaultOptions,g=()=>(0,n.useContext)(f).processUrlSearchParams;function _(){if(typeof window>`u`||!window.GestureEvent)return 50;try{let e=navigator.userAgent?.match(/version\/([\d\.]+) safari/i);return parseFloat(e[1])>=17?120:320}catch{return 320}}function v(e){return{method:`throttle`,timeMs:e}}var y=v(_());function b(e){return e===null||Array.isArray(e)&&e.length===0}function x(e,t,n){if(typeof e==`string`)n.set(t,e);else{n.delete(t);for(let r of e)n.append(t,r);n.has(t)||n.set(t,``)}return n}function S(){let e=new Map;return{on(t,n){let r=e.get(t)||[];return r.push(n),e.set(t,r),()=>this.off(t,n)},off(t,n){let r=e.get(t);r&&e.set(t,r.filter(e=>e!==n))},emit(t,n){e.get(t)?.forEach(e=>e(n))}}}function C(e,t,n){function r(){e(),n.removeEventListener(`abort`,a)}let i=setTimeout(r,t);function a(){clearTimeout(i),n.removeEventListener(`abort`,a)}n.addEventListener(`abort`,a)}function w(){let e=Promise;if(Promise.hasOwnProperty(`withResolvers`))return Promise.withResolvers();let t=()=>{},n=()=>{};return{promise:new e((e,r)=>{t=e,n=r}),resolve:t,reject:n}}function T(e,t){let n=t;for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r)continue;let i=n;n=()=>r(i)}n()}function E(){return new URLSearchParams(location.search)}var D=class{updateMap=new Map;options={history:`replace`,scroll:!1,shallow:!0};timeMs=y.timeMs;transitions=new Set;resolvers=null;controller=null;lastFlushedAt=0;resetQueueOnNextPush=!1;push({key:e,query:t,options:n},r=y.timeMs){this.resetQueueOnNextPush&&=(this.reset(),!1),i(`[nuqs gtq] Enqueueing %s=%s %O`,e,t,n),this.updateMap.set(e,t),n.history===`push`&&(this.options.history=`push`),n.scroll&&(this.options.scroll=!0),n.shallow===!1&&(this.options.shallow=!1),n.startTransition&&this.transitions.add(n.startTransition),(!Number.isFinite(this.timeMs)||r>this.timeMs)&&(this.timeMs=r)}getQueuedQuery(e){return this.updateMap.get(e)}getPendingPromise({getSearchParamsSnapshot:e=E}){return this.resolvers?.promise??Promise.resolve(e())}flush({getSearchParamsSnapshot:e=E,rateLimitFactor:t=1,...n},r){if(this.controller??=new AbortController,!Number.isFinite(this.timeMs))return i(`[nuqs gtq] Skipping flush due to throttleMs=Infinity`),Promise.resolve(e());if(this.resolvers)return this.resolvers.promise;this.resolvers=w();let a=()=>{this.lastFlushedAt=performance.now();let[t,i]=this.applyPendingUpdates({...n,autoResetQueueOnUpdate:n.autoResetQueueOnUpdate??!0,getSearchParamsSnapshot:e},r);i===null?(this.resolvers.resolve(t),this.resetQueueOnNextPush=!0):this.resolvers.reject(t),this.resolvers=null};return C(()=>{let e=performance.now()-this.lastFlushedAt,n=this.timeMs,r=t*Math.max(0,n-e);i(`[nuqs gtq] Scheduling flush in %f ms. Throttled at %f ms (x%f)`,r,n,t),r===0?a():C(a,r,this.controller.signal)},0,this.controller.signal),this.resolvers.promise}abort(){return this.controller?.abort(),this.controller=new AbortController,this.resolvers?.resolve(new URLSearchParams),this.resolvers=null,this.reset()}reset(){let e=Array.from(this.updateMap.keys());return i(`[nuqs gtq] Resetting queue %s`,JSON.stringify(Object.fromEntries(this.updateMap))),this.updateMap.clear(),this.transitions.clear(),this.options={history:`replace`,scroll:!1,shallow:!0},this.timeMs=y.timeMs,e}applyPendingUpdates(e,t){let{updateUrl:n,getSearchParamsSnapshot:r}=e,a=r();if(i(`[nuqs gtq] Applying %d pending update(s) on top of %s`,this.updateMap.size,a.toString()),this.updateMap.size===0)return[a,null];let o=Array.from(this.updateMap.entries()),s={...this.options},c=Array.from(this.transitions);e.autoResetQueueOnUpdate&&this.reset(),i(`[nuqs gtq] Flushing queue %O with options %O`,o,s);for(let[e,t]of o)t===null?a.delete(e):a=x(t,e,a);t&&(a=t(a));try{return T(c,()=>{n(a,s)}),[a,null]}catch(e){return console.error(l(429),o.map(([e])=>e).join(),e),[a,e]}}},O=new D;function k(e,t,r){let i=(0,n.useCallback)(()=>{let t=Object.fromEntries(e.map(e=>[e,r(e)]));return[JSON.stringify(t),t]},[e.join(`,`),r]),a=(0,n.useRef)(null);return a.current===null&&(a.current=i()),(0,n.useSyncExternalStore)((0,n.useCallback)(n=>{let r=e.map(e=>t(e,n));return()=>r.forEach(e=>e())},[e.join(`,`),t]),()=>{let[e,t]=i();return a.current[0]===e?a.current[1]:(a.current=[e,t],t)},()=>a.current[1])}var A=class{callback;resolvers=w();controller=new AbortController;queuedValue=void 0;constructor(e){this.callback=e}abort(){this.controller.abort(),this.queuedValue=void 0}push(e,t){return this.queuedValue=e,this.controller.abort(),this.controller=new AbortController,C(()=>{let t=this.resolvers;try{i(`[nuqs dq] Flushing debounce queue`,e);let n=this.callback(e);i(`[nuqs dq] Reset debounce queue %O`,this.queuedValue),this.queuedValue=void 0,this.resolvers=w(),n.then(e=>t.resolve(e)).catch(e=>t.reject(e))}catch(e){this.queuedValue=void 0,t.reject(e)}},t,this.controller.signal),this.resolvers.promise}},j=new class{throttleQueue;queues=new Map;queuedQuerySync=S();constructor(e=new D){this.throttleQueue=e}useQueuedQueries(e){return k(e,(e,t)=>this.queuedQuerySync.on(e,t),e=>this.getQueuedQuery(e))}push(e,t,n,r){if(!Number.isFinite(t)){let e=n.getSearchParamsSnapshot??E;return Promise.resolve(e())}let a=e.key;if(!this.queues.has(a)){i("[nuqs dqc] Creating debounce queue for `%s`",a);let e=new A(e=>(this.throttleQueue.push(e),this.throttleQueue.flush(n,r).finally(()=>{this.queues.get(e.key)?.queuedValue===void 0&&(i("[nuqs dqc] Cleaning up empty queue for `%s`",e.key),this.queues.delete(e.key)),this.queuedQuerySync.emit(e.key)})));this.queues.set(a,e)}i(`[nuqs dqc] Enqueueing debounce update %O`,e);let o=this.queues.get(a).push(e,t);return this.queuedQuerySync.emit(a),o}abort(e){let t=this.queues.get(e);return t?(i(`[nuqs dqc] Aborting debounce queue %s=%s`,e,t.queuedValue?.query),this.queues.delete(e),t.abort(),this.queuedQuerySync.emit(e),e=>(e.then(t.resolvers.resolve,t.resolvers.reject),e)):e=>e}abortAll(){for(let[e,t]of this.queues.entries())i(`[nuqs dqc] Aborting debounce queue %s=%s`,e,t.queuedValue?.query),t.abort(),t.resolvers.resolve(new URLSearchParams),this.queuedQuerySync.emit(e);this.queues.clear()}getQueuedQuery(e){let t=this.queues.get(e)?.queuedValue?.query;return t===void 0?this.throttleQueue.getQueuedQuery(e):t}}(O);function M(e,t){return e===t?!0:e===null||t===null||typeof e==`string`||typeof t==`string`||e.length!==t.length?!1:e.every((e,n)=>e===t[n])}function N(e,t,n){try{return e(t)}catch(e){return a("[nuqs] Error while parsing value `%s`: %O"+(n?" (for key `%s`)":``),t,e,n),null}}function P(e){function t(t){if(t===void 0)return null;let n=``;if(Array.isArray(t)){if(t[0]===void 0)return null;n=t[0]}return typeof t==`string`&&(n=t),N(e.parse,n)}return{type:`single`,eq:(e,t)=>e===t,...e,parseServerSide:t,withDefault(e){return{...this,defaultValue:e,parseServerSide(n){return t(n)??e}}},withOptions(e){return{...this,...e}}}}var F=P({parse:e=>e,serialize:String}),I=P({parse:e=>{let t=parseInt(e);return t==t?t:null},serialize:e=>``+Math.round(e)});P({parse:e=>{let t=parseInt(e);return t==t?t-1:null},serialize:e=>``+Math.round(e+1)}),P({parse:e=>{let t=parseInt(e,16);return t==t?t:null},serialize:e=>{let t=Math.round(e).toString(16);return(t.length&1?`0`:``)+t}}),P({parse:e=>{let t=parseFloat(e);return t==t?t:null},serialize:String}),P({parse:e=>e.toLowerCase()===`true`,serialize:String});function L(e,t){return e.valueOf()===t.valueOf()}P({parse:e=>{let t=parseInt(e);return t==t?new Date(t):null},serialize:e=>``+e.valueOf(),eq:L}),P({parse:e=>{let t=new Date(e);return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString(),eq:L}),P({parse:e=>{let t=new Date(e.slice(0,10));return t.valueOf()==t.valueOf()?t:null},serialize:e=>e.toISOString().slice(0,10),eq:L});function R(e){return P({parse:t=>{let n=t;return e.includes(n)?n:null},serialize:String})}var z=S(),B={};function V(e,t={}){let r=(0,n.useId)(),a=h(),o=g(),{history:s=`replace`,scroll:c=a?.scroll??!1,shallow:u=a?.shallow??!0,throttleMs:d=y.timeMs,limitUrlUpdates:f=a?.limitUrlUpdates,clearOnDefault:p=a?.clearOnDefault??!0,startTransition:_,urlKeys:v=B}=t,b=Object.keys(e).join(`,`),x=(0,n.useMemo)(()=>Object.fromEntries(Object.keys(e).map(e=>[e,v[e]??e])),[b,JSON.stringify(v)]),S=m(Object.values(x)),C=S.searchParams,w=(0,n.useRef)({}),T=(0,n.useMemo)(()=>Object.fromEntries(Object.keys(e).map(t=>[t,e[t].defaultValue??null])),[Object.values(e).map(({defaultValue:e})=>e).join(`,`)]),E=j.useQueuedQueries(Object.values(x)),[D,k]=(0,n.useState)(()=>H(e,v,C??new URLSearchParams,E).state),A=(0,n.useRef)(D);if(i("[nuq+ %s `%s`] render - state: %O, iSP: %s",r,b,D,C),Object.keys(w.current).join(`&`)!==Object.values(x).join(`&`)){let{state:t,hasChanged:n}=H(e,v,C,E,w.current,A.current);n&&(i("[nuq+ %s `%s`] State changed: %O",r,b,{state:t,initialSearchParams:C,queuedQueries:E,queryRef:w.current,stateRef:A.current}),A.current=t,k(t)),w.current=Object.fromEntries(Object.entries(x).map(([t,n])=>[n,e[t]?.type===`multi`?C?.getAll(n):C?.get(n)??null]))}(0,n.useEffect)(()=>{let{state:t,hasChanged:n}=H(e,v,C,E,w.current,A.current);n&&(i("[nuq+ %s `%s`] State changed: %O",r,b,{state:t,initialSearchParams:C,queuedQueries:E,queryRef:w.current,stateRef:A.current}),A.current=t,k(t))},[Object.values(x).map(e=>`${e}=${C?.getAll(e)}`).join(`&`),JSON.stringify(E)]),(0,n.useEffect)(()=>{let t=Object.keys(e).reduce((t,n)=>(t[n]=({state:t,query:a})=>{k(o=>{let{defaultValue:s}=e[n],c=x[n],l=t??s??null,u=o[n]??s??null;return Object.is(u,l)?(i("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). no change, skipping, resolved: %O",r,b,c,t,s,A.current),o):(A.current={...A.current,[n]:l},w.current[c]=a,i("[nuq+ %s `%s`] Cross-hook key sync %s: %O (default: %O). updateInternalState, resolved: %O",r,b,c,t,s,A.current),A.current)})},t),{});for(let n of Object.keys(e)){let e=x[n];i("[nuq+ %s `%s`] Subscribing to sync for `%s`",r,e,b),z.on(e,t[n])}return()=>{for(let n of Object.keys(e)){let e=x[n];i("[nuq+ %s `%s`] Unsubscribing to sync for `%s`",r,e,b),z.off(e,t[n])}}},[b,x]);let M=(0,n.useCallback)((t,n={})=>{let a=Object.fromEntries(Object.keys(e).map(e=>[e,null])),m=typeof t==`function`?t(U(A.current,T))??a:t??a;i("[nuq+ %s `%s`] setState: %O",r,b,m);let h,g=0,v=!1,C=[];for(let[t,r]of Object.entries(m)){let i=e[t],a=x[t];if(!i||r===void 0)continue;(n.clearOnDefault??i.clearOnDefault??p)&&r!==null&&i.defaultValue!==void 0&&(i.eq??((e,t)=>e===t))(r,i.defaultValue)&&(r=null);let m=r===null?null:(i.serialize??String)(r);z.emit(a,{state:r,query:m});let b={key:a,query:m,options:{history:n.history??i.history??s,shallow:n.shallow??i.shallow??u,scroll:n.scroll??i.scroll??c,startTransition:n.startTransition??i.startTransition??_}};if(n?.limitUrlUpdates?.method===`debounce`||f?.method===`debounce`||i.limitUrlUpdates?.method===`debounce`){b.options.shallow===!0&&console.warn(l(422));let e=n?.limitUrlUpdates?.timeMs??f?.timeMs??i.limitUrlUpdates?.timeMs??y.timeMs,t=j.push(b,e,S,o);g<e&&(h=t,g=e)}else{let e=n?.limitUrlUpdates?.timeMs??i?.limitUrlUpdates?.timeMs??f?.timeMs??n.throttleMs??i.throttleMs??d;C.push(j.abort(a)),O.push(b,e),v=!0}}let w=C.reduce((e,t)=>t(e),v?O.flush(S,o):O.getPendingPromise(S));return h??w},[b,s,u,c,d,f?.method,f?.timeMs,_,x,S.updateUrl,S.getSearchParamsSnapshot,S.rateLimitFactor,o,T]);return[(0,n.useMemo)(()=>U(D,T),[D,T]),M]}function H(e,t,n,r,i,a){let o=!1,s=Object.entries(e).reduce((e,[s,c])=>{let l=t?.[s]??s,u=r[l],d=c.type===`multi`?[]:null,f=u===void 0?(c.type===`multi`?n?.getAll(l):n?.get(l))??d:u;return i&&a&&M(i[l]??d,f)?(e[s]=a[s]??null,e):(o=!0,e[s]=(b(f)?null:N(c.parse,f,l))??null,i&&(i[l]=f),e)},{});if(!o){let t=Object.keys(e),n=Object.keys(a??{});o=t.length!==n.length||t.some(e=>!n.includes(e))}return{state:s,hasChanged:o}}function U(e,t){return Object.fromEntries(Object.keys(e).map(n=>[n,e[n]??t[n]??null]))}function W(e,t={}){let{parse:r,type:i,serialize:a,eq:o,defaultValue:s,...c}=t,[{[e]:l},u]=V({[e]:{parse:r??(e=>e),type:i,serialize:a,eq:o,defaultValue:s}},c);return[l,(0,n.useCallback)((t,n={})=>u(n=>({[e]:typeof t==`function`?t(n[e]):t}),n),[e,u])]}export{M as a,O as c,l as d,u as f,W as i,p as l,F as n,S as o,R as r,j as s,I as t,i as u};
@@ -1 +1 @@
1
- import{n as e}from"./utils-CH98NBUe.js";var t=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]);export{t};
1
+ import{n as e}from"./utils-XFKvwlFT.js";var t=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]);export{t};
@@ -1 +1 @@
1
- import{A as e,F as t,I as n,L as r,M as i,N as a,P as o,at as s,et as c,j as l}from"./vendor-ui-BcvPjvmT.js";import{t as u}from"./utils-CH98NBUe.js";var d=s();function f({...e}){return(0,d.jsx)(l,{"data-slot":`dropdown-menu`,...e})}function p({...t}){return(0,d.jsx)(e,{"data-slot":`dropdown-menu-trigger`,...t})}function m({align:e=`start`,alignOffset:t=0,side:n=`bottom`,sideOffset:r=4,className:s,...c}){return(0,d.jsx)(a,{children:(0,d.jsx)(i,{className:`isolate z-50 outline-none`,align:e,alignOffset:t,side:n,sideOffset:r,children:(0,d.jsx)(o,{"data-slot":`dropdown-menu-content`,className:u(`z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-[var(--miravo-radius-stadium-sm)] bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95`,s),...c})})})}function h({...e}){return(0,d.jsx)(r,{"data-slot":`dropdown-menu-group`,...e})}function g({className:e,inset:t,...r}){return(0,d.jsx)(n,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:u(`px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7`,e),...r})}function _({className:e,inset:n,variant:r=`default`,...i}){return(0,d.jsx)(t,{"data-slot":`dropdown-menu-item`,"data-inset":n,"data-variant":r,className:u(`group/dropdown-menu-item relative flex cursor-pointer items-center gap-1.5 rounded-[var(--miravo-radius-tight)] px-1.5 py-1 text-sm outline-hidden select-none data-[highlighted]:bg-sidebar-accent data-[highlighted]:text-sidebar-accent-foreground not-data-[variant=destructive]:data-[highlighted]:**:text-sidebar-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:data-[highlighted]:bg-destructive/10 data-[variant=destructive]:data-[highlighted]:text-destructive data-[variant=destructive]:data-[highlighted]:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive`,e),...i})}function v({className:e,...t}){return(0,d.jsx)(c,{"data-slot":`dropdown-menu-separator`,className:u(`-mx-1 my-1 h-px bg-border`,e),...t})}export{g as a,_ as i,m as n,v as o,h as r,p as s,f as t};
1
+ import{A as e,F as t,I as n,L as r,M as i,N as a,P as o,at as s,et as c,j as l}from"./vendor-ui-CWUk2ulb.js";import{t as u}from"./utils-XFKvwlFT.js";var d=s();function f({...e}){return(0,d.jsx)(l,{"data-slot":`dropdown-menu`,...e})}function p({...t}){return(0,d.jsx)(e,{"data-slot":`dropdown-menu-trigger`,...t})}function m({align:e=`start`,alignOffset:t=0,side:n=`bottom`,sideOffset:r=4,className:s,...c}){return(0,d.jsx)(a,{children:(0,d.jsx)(i,{className:`isolate z-50 outline-none`,align:e,alignOffset:t,side:n,sideOffset:r,children:(0,d.jsx)(o,{"data-slot":`dropdown-menu-content`,className:u(`z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-[var(--miravo-radius-stadium-sm)] bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95`,s),...c})})})}function h({...e}){return(0,d.jsx)(r,{"data-slot":`dropdown-menu-group`,...e})}function g({className:e,inset:t,...r}){return(0,d.jsx)(n,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:u(`px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7`,e),...r})}function _({className:e,inset:n,variant:r=`default`,...i}){return(0,d.jsx)(t,{"data-slot":`dropdown-menu-item`,"data-inset":n,"data-variant":r,className:u(`group/dropdown-menu-item relative flex cursor-pointer items-center gap-1.5 rounded-[var(--miravo-radius-tight)] px-1.5 py-1 text-sm outline-hidden select-none data-[highlighted]:bg-sidebar-accent data-[highlighted]:text-sidebar-accent-foreground not-data-[variant=destructive]:data-[highlighted]:**:text-sidebar-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:data-[highlighted]:bg-destructive/10 data-[variant=destructive]:data-[highlighted]:text-destructive data-[variant=destructive]:data-[highlighted]:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive`,e),...i})}function v({className:e,...t}){return(0,d.jsx)(c,{"data-slot":`dropdown-menu-separator`,className:u(`-mx-1 my-1 h-px bg-border`,e),...t})}export{g as a,_ as i,m as n,v as o,h as r,p as s,f as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{s as t}from"./vendor-charts-CAZdaPlq.js";var n=e(t(),1),r=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},i=(e=>e?r(e):r),a=e=>e;function o(e,t=a){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r}var s=e=>{let t=i(e),n=e=>o(t,e);return Object.assign(n,t),n},c=(e=>e?s(e):s),l=200,u=60,d=1e3,f=`miravo:runtime-snapshot`;function p(e){try{sessionStorage.setItem(f,JSON.stringify(e))}catch{}}function m(){try{sessionStorage.removeItem(f)}catch{}}function h(e){if(typeof e!=`object`||!e)return!1;let t=e;if(typeof t.revision!=`number`||typeof t.state!=`object`||t.state===null||typeof t.metrics!=`object`||t.metrics===null)return!1;let n=t.metrics;return typeof n.core!=`object`||n.core===null?!1:Array.isArray(t.runningTemplates)}function g(){try{let e=sessionStorage.getItem(f);if(!e)return null;let t=JSON.parse(e);return h(t)?t:(m(),null)}catch{return m(),null}}function _(e){let t=e.metrics.core.tickCount,n=e.metrics.core.actualTicksPerSecond,r=Date.now();return{connectionState:`live`,connectionStateSince:r,reconnectAttempts:0,fatalError:null,lastRevision:e.revision,environmentName:e.state.environmentName??e.metrics.environmentName??``,seed:e.state.config.seed,engineState:e.metrics.core.state,tick:t,simulationTime:e.metrics.core.simulationTimeSeconds,tickIntervalMs:e.state.config.tickIntervalMs,lastTickReceivedAt:r,instanceCount:e.metrics.core.instanceCount,memberValueCount:e.metrics.core.memberValueCount,quarantinedInstanceCount:e.metrics.core.quarantinedInstanceCount,engineErrorsCount:e.metrics.core.engineErrorsCount,tickOverrunsCount:e.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:e.metrics.core.circuitBreakerTripsCount,tps:n,uptimeMs:e.metrics.core.uptimeMs,speedMultiplier:e.state.config.timeMultiplier,instances:[...e.state.instances],models:[...e.state.models],tpsHistory:[{tick:t,tps:n,sampledAtMs:r}],templateRuns:[...e.runningTemplates],availableAdapters:e.state.availableAdapters??[],adapterMetrics:e.metrics.adapters??[],memberValues:new Map,events:[]}}function v(e,t){return{connectionState:`live`,connectionStateSince:e.connectionState===`live`?e.connectionStateSince:t,reconnectAttempts:0,fatalError:null}}var y=c((e,t)=>({connectionState:`booting`,connectionStateSince:Date.now(),reconnectAttempts:0,fatalError:null,lastRevision:0,environmentName:``,seed:null,engineState:`idle`,tick:0,simulationTime:0,tickIntervalMs:1e3,lastTickReceivedAt:0,instanceCount:0,memberValueCount:0,quarantinedInstanceCount:0,engineErrorsCount:0,tickOverrunsCount:0,circuitBreakerTripsCount:0,tps:0,uptimeMs:0,speedMultiplier:1,instances:[],models:[],tpsHistory:[],templateRuns:[],availableAdapters:[],adapterMetrics:[],memberValues:new Map,events:[],replaceRuntime:(n,r)=>{let i=t().lastRevision;i>0&&(n.revision<i&&!r?.allowRevisionRewind||n.revision===i&&!r?.allowSameRevision)||(e(()=>_(n)),p(n))},applyTick:n=>{let r=t();if(n.revision<=r.lastRevision)return;let i=n.delta??[],a=n.tick??r.tick,o=n.simulationTime??r.simulationTime,s=n.instanceCount??r.instanceCount,c=n.metrics.core.actualTicksPerSecond,l=Date.now();if(!(i.length>0||a!==r.tick||o!==r.simulationTime||s!==r.instanceCount||n.metrics.adapters!==r.adapterMetrics||n.metrics.core.engineErrorsCount!==r.engineErrorsCount||n.metrics.core.tickOverrunsCount!==r.tickOverrunsCount||n.metrics.core.circuitBreakerTripsCount!==r.circuitBreakerTripsCount||n.metrics.core.memberValueCount!==r.memberValueCount||n.metrics.core.quarantinedInstanceCount!==r.quarantinedInstanceCount||c!==r.tps)){e({...v(r,l),lastTickReceivedAt:l,lastRevision:n.revision});return}let f={...v(r,l),tick:a,simulationTime:o,lastTickReceivedAt:l,instanceCount:s,memberValueCount:n.metrics.core.memberValueCount,quarantinedInstanceCount:n.metrics.core.quarantinedInstanceCount,engineErrorsCount:n.metrics.core.engineErrorsCount,tickOverrunsCount:n.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:n.metrics.core.circuitBreakerTripsCount,tps:c,uptimeMs:n.metrics.core.uptimeMs,adapterMetrics:n.metrics.adapters,lastRevision:n.revision},p=r.tpsHistory.at(-1),m={tps:c,tick:a,sampledAtMs:l};if(!p||l-p.sampledAtMs>=d?f.tpsHistory=[...r.tpsHistory,m].slice(-u):f.tpsHistory=[...r.tpsHistory.slice(0,-1),m],i.length>0){let e=new Map(r.memberValues),t=new Set;for(let n of i){if(!t.has(n.instanceId)){let r=e.get(n.instanceId);e.set(n.instanceId,new Map(r)),t.add(n.instanceId)}e.get(n.instanceId)?.set(n.memberName,{value:n.value,quality:n.quality})}f.memberValues=e}e(f)},applyEvent:(n,r)=>{let i=t();if(r<=i.lastRevision)return;let a=Date.now(),o=[n,...i.events].slice(0,l),s={...v(i,a),events:o,lastRevision:r};if(n.kind===`instance:removed`){let t=new Map(i.memberValues);t.delete(n.id),e({...s,memberValues:t});return}if(n.kind===`fault:triggered`||n.kind===`fault:cleared`){let t=i.instances.map(e=>{if(e.id!==n.instanceId)return e;let t=n.kind===`fault:triggered`?[...e.activeFaults,n.fault]:e.activeFaults.filter(e=>e!==n.fault);return{...e,activeFaults:t}});e({...s,instances:t});return}if(n.kind===`lifecycle:changed`){let t=i.instances.map(e=>e.id===n.instanceId?{...e,lifecycleStage:n.to,operatingHours:n.operatingHours}:e);e({...s,instances:t});return}if(n.kind===`engine:state`){e({...s,engineState:n.to});return}e(s)},markConnection:n=>{t().connectionState!==n&&e({connectionState:n,connectionStateSince:Date.now()})},markFatal:t=>{e({connectionState:`fatal`,connectionStateSince:Date.now(),fatalError:t})},markUnauthenticated:()=>{t().connectionState!==`unauthenticated`&&e({connectionState:`unauthenticated`,connectionStateSince:Date.now()})},noteReconnectAttempt:()=>{e(e=>({reconnectAttempts:e.reconnectAttempts+1}))},resetReconnectAttempts:()=>{t().reconnectAttempts!==0&&e({reconnectAttempts:0})}}));export{c as i,g as n,y as r,m as t};
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";var n=e(t(),1),r=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},i=(e=>e?r(e):r),a=e=>e;function o(e,t=a){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r}var s=e=>{let t=i(e),n=e=>o(t,e);return Object.assign(n,t),n},c=(e=>e?s(e):s),l=200,u=60,d=1e3,f=`miravo:runtime-snapshot`;function p(e){try{sessionStorage.setItem(f,JSON.stringify(e))}catch{}}function m(){try{sessionStorage.removeItem(f)}catch{}}function h(e){if(typeof e!=`object`||!e)return!1;let t=e;if(typeof t.revision!=`number`||typeof t.state!=`object`||t.state===null||typeof t.metrics!=`object`||t.metrics===null)return!1;let n=t.metrics;return typeof n.core!=`object`||n.core===null?!1:Array.isArray(t.runningTemplates)}function g(){try{let e=sessionStorage.getItem(f);if(!e)return null;let t=JSON.parse(e);return h(t)?t:(m(),null)}catch{return m(),null}}function _(e){let t=e.metrics.core.tickCount,n=e.metrics.core.actualTicksPerSecond,r=Date.now();return{connectionState:`live`,connectionStateSince:r,reconnectAttempts:0,fatalError:null,lastRevision:e.revision,environmentName:e.state.environmentName??e.metrics.environmentName??``,seed:e.state.config.seed,engineState:e.metrics.core.state,tick:t,simulationTime:e.metrics.core.simulationTimeSeconds,tickIntervalMs:e.state.config.tickIntervalMs,lastTickReceivedAt:r,instanceCount:e.metrics.core.instanceCount,memberValueCount:e.metrics.core.memberValueCount,quarantinedInstanceCount:e.metrics.core.quarantinedInstanceCount,engineErrorsCount:e.metrics.core.engineErrorsCount,tickOverrunsCount:e.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:e.metrics.core.circuitBreakerTripsCount,tps:n,uptimeMs:e.metrics.core.uptimeMs,speedMultiplier:e.state.config.timeMultiplier,instances:[...e.state.instances],models:[...e.state.models],tpsHistory:[{tick:t,tps:n,sampledAtMs:r}],templateRuns:[...e.runningTemplates],availableAdapters:e.state.availableAdapters??[],adapterMetrics:e.metrics.adapters??[],memberValues:new Map,events:[]}}function v(e,t){return{connectionState:`live`,connectionStateSince:e.connectionState===`live`?e.connectionStateSince:t,reconnectAttempts:0,fatalError:null}}var y=c((e,t)=>({connectionState:`booting`,connectionStateSince:Date.now(),reconnectAttempts:0,fatalError:null,lastRevision:0,environmentName:``,seed:null,engineState:`idle`,tick:0,simulationTime:0,tickIntervalMs:1e3,lastTickReceivedAt:0,instanceCount:0,memberValueCount:0,quarantinedInstanceCount:0,engineErrorsCount:0,tickOverrunsCount:0,circuitBreakerTripsCount:0,tps:0,uptimeMs:0,speedMultiplier:1,instances:[],models:[],tpsHistory:[],templateRuns:[],availableAdapters:[],adapterMetrics:[],memberValues:new Map,events:[],replaceRuntime:(n,r)=>{let i=t().lastRevision;i>0&&(n.revision<i&&!r?.allowRevisionRewind||n.revision===i&&!r?.allowSameRevision)||(e(()=>_(n)),p(n))},applyTick:n=>{let r=t();if(n.revision<=r.lastRevision)return;let i=n.delta??[],a=n.tick??r.tick,o=n.simulationTime??r.simulationTime,s=n.instanceCount??r.instanceCount,c=n.metrics.core.actualTicksPerSecond,l=Date.now();if(!(i.length>0||a!==r.tick||o!==r.simulationTime||s!==r.instanceCount||n.metrics.adapters!==r.adapterMetrics||n.metrics.core.engineErrorsCount!==r.engineErrorsCount||n.metrics.core.tickOverrunsCount!==r.tickOverrunsCount||n.metrics.core.circuitBreakerTripsCount!==r.circuitBreakerTripsCount||n.metrics.core.memberValueCount!==r.memberValueCount||n.metrics.core.quarantinedInstanceCount!==r.quarantinedInstanceCount||c!==r.tps)){e({...v(r,l),lastTickReceivedAt:l,lastRevision:n.revision});return}let f={...v(r,l),tick:a,simulationTime:o,lastTickReceivedAt:l,instanceCount:s,memberValueCount:n.metrics.core.memberValueCount,quarantinedInstanceCount:n.metrics.core.quarantinedInstanceCount,engineErrorsCount:n.metrics.core.engineErrorsCount,tickOverrunsCount:n.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:n.metrics.core.circuitBreakerTripsCount,tps:c,uptimeMs:n.metrics.core.uptimeMs,adapterMetrics:n.metrics.adapters,lastRevision:n.revision},p=r.tpsHistory.at(-1),m={tps:c,tick:a,sampledAtMs:l};if(!p||l-p.sampledAtMs>=d?f.tpsHistory=[...r.tpsHistory,m].slice(-u):f.tpsHistory=[...r.tpsHistory.slice(0,-1),m],i.length>0){let e=new Map(r.memberValues),t=new Set;for(let n of i){if(!t.has(n.instanceId)){let r=e.get(n.instanceId);e.set(n.instanceId,new Map(r)),t.add(n.instanceId)}e.get(n.instanceId)?.set(n.memberName,{value:n.value,quality:n.quality})}f.memberValues=e}e(f)},applyEvent:(n,r)=>{let i=t();if(r<=i.lastRevision)return;let a=Date.now(),o=[n,...i.events].slice(0,l),s={...v(i,a),events:o,lastRevision:r};if(n.kind===`instance:removed`){let t=new Map(i.memberValues);t.delete(n.id),e({...s,memberValues:t});return}if(n.kind===`fault:triggered`||n.kind===`fault:cleared`){let t=i.instances.map(e=>{if(e.id!==n.instanceId)return e;let t=n.kind===`fault:triggered`?[...e.activeFaults,n.fault]:e.activeFaults.filter(e=>e!==n.fault);return{...e,activeFaults:t}});e({...s,instances:t});return}if(n.kind===`lifecycle:changed`){let t=i.instances.map(e=>e.id===n.instanceId?{...e,lifecycleStage:n.to,operatingHours:n.operatingHours}:e);e({...s,instances:t});return}if(n.kind===`engine:state`){e({...s,engineState:n.to});return}e(s)},markConnection:n=>{t().connectionState!==n&&e({connectionState:n,connectionStateSince:Date.now()})},markFatal:t=>{e({connectionState:`fatal`,connectionStateSince:Date.now(),fatalError:t})},markUnauthenticated:()=>{t().connectionState!==`unauthenticated`&&e({connectionState:`unauthenticated`,connectionStateSince:Date.now()})},noteReconnectAttempt:()=>{e(e=>({reconnectAttempts:e.reconnectAttempts+1}))},resetReconnectAttempts:()=>{t().reconnectAttempts!==0&&e({reconnectAttempts:0})}}));export{c as i,g as n,y as r,m as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{at as n}from"./vendor-ui-CWUk2ulb.js";import{S as r,b as i,o as a}from"./api-B8Cqrm2G.js";import{i as o,s as ee,t as s}from"./query-fetch-error-B6y_Rlj9.js";import{t as c}from"./proxy-Be4WzmcS.js";import{t as te}from"./AnimatePresence-CPmH1DMY.js";import{u as ne}from"./chunk-OE4NN4TA-DBWZidbW.js";import{S as re,g as l,t as u}from"./format-CshN6yEB.js";import{c as ie,i as d,n as f,s as p,t as ae}from"./select-CmlY1M1a.js";import{r as m}from"./engine-store-DMULdR_V.js";import{t as h}from"./route-preload-BOrx0jh2.js";import{t as oe}from"./use-transition-navigate-Fgz_LNAd.js";import{t as se}from"./badge-eIn_7YrK.js";import{n as ce}from"./transition-types-2i1blGlR.js";import{n as le}from"./auth-screen-backdrop-Cr8qBSXP.js";import{t as g}from"./get-error-message-Dk8elqEP.js";import{r as ue}from"./runtime-link-PMxeHxd6.js";import{a as de,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./combobox-BCaV1Wbo.js";import{a as _,c as v,i as y,o as b,r as ve,s as ye,t as be}from"./select-display-items-Bqb6Sbg6.js";var x=e(t(),1);function xe(e){return e.includes(`triggered`)?`destructive`:e.includes(`cleared`)||e.includes(`created`)?`default`:e.includes(`removed`)||e.includes(`lifecycle`)?`secondary`:(e.includes(`state-changed`),`outline`)}function Se(e){return e.includes(`state-changed`)?`border-info/30 bg-info/20 text-info hover:bg-info/20`:e===`platform:operation`?`border-chart-4/30 bg-chart-4/20 text-chart-4 hover:bg-chart-4/20`:e===`platform:resource`?`border-chart-4/30 bg-chart-4/15 text-chart-4 hover:bg-chart-4/15`:``}function S(e){if(`targetLabel`in e)return typeof e.targetLabel==`string`?e.targetLabel:void 0}function C(e){if(e.type===`platform:operation`){let t=e.operationType===`apply`?`Apply`:`Cleanup`,n=e.applied,r=e.operationType===`apply`?`applied`:`deleted`,i=e.failed>0?`, ${e.failed} failed`:``,a=S(e)??`Unknown target`;return`${t} ${e.templateId} \u2192 ${a} (${n} ${r}${i})`}return e.type===`platform:resource`?`${e.status===`success`?`✓`:`✗`} ${e.action} ${e.resourceType} ${e.resourceName}`:``}function Ce(e,t){let n=new Date(e);return n.toDateString()===t.toDateString()?n.toLocaleTimeString(u):n.toLocaleString(u,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function w(e){if(`instanceId`in e&&typeof e.instanceId==`string`)return e.instanceId}function T(e){return e.type===`platform:operation`||e.type===`platform:resource`?S(e):w(e)}function E(e){return`fault`in e?l(e.fault):e.type===`platform:operation`||e.type===`platform:resource`?C(e):`from`in e&&`to`in e?`${l(e.from)} \u2192 ${l(e.to)}`:``}function D(e,t,n){let r=new URLSearchParams;return r.set(`limit`,`50`),e!==`all`&&r.set(`type`,e),t&&r.set(`instanceId`,t),n!==null&&r.set(`cursor`,String(n)),`/events?${r.toString()}`}var O=n(),k=1500;function A(){let e=ee(),[t]=ne(),n=t.get(`type`)??`all`,l=t.get(`instanceId`)??``,[u,S]=(0,x.useState)(n),[C,A]=(0,x.useState)(l),[j,we]=(0,x.useState)(!0),M=ue(m(e=>e.connectionState))===null,N=m(e=>e.events.length),P=(0,x.useRef)(!1),F=m(e=>e.instances),Te=oe(),I=o({queryKey:i.events(u,C),queryFn:()=>a(D(u,C,null),r.events),refetchInterval:j&&M?k:!1,staleTime:5e3}),[Ee,L]=(0,x.useState)([]),[De,R]=(0,x.useState)(!1),[Oe,z]=(0,x.useState)(null),B=`${u}::${C}`,V=(0,x.useRef)(B);(0,x.useEffect)(()=>{B!==V.current&&(V.current=B,L([]),z(null),U(!1))},[B]),(0,x.useEffect)(()=>{S(e=>e===n?e:n)},[n]),(0,x.useEffect)(()=>{A(e=>e===l?e:l)},[l]);let[H,U]=(0,x.useState)(()=>(I.data?.events.length??0)>0),W=I.data?[I.data,...Ee]:[],G=W.flatMap(e=>e.events),K=W[W.length-1],q=K?.hasMore??!1;(0,x.useEffect)(()=>{G.length>0&&!H&&U(!0)},[G.length,H]);let J=(0,x.useRef)(N);(0,x.useEffect)(()=>{N!==J.current&&(J.current=N,j&&M?(e.invalidateQueries({queryKey:i.events(u,C)}),P.current=!1):j&&(P.current=!0))},[N,j,M,e,u,C]),(0,x.useEffect)(()=>{!j||!M||!P.current||(P.current=!1,e.invalidateQueries({queryKey:i.events(u,C)}))},[j,M,e,u,C]);let[Y,ke]=(0,x.useState)(``),X=(0,x.useMemo)(()=>Y?F.filter(e=>e.id.toLowerCase().includes(Y.toLowerCase())):F,[F,Y]),Z=I.isPending&&!I.data&&!I.isError,Ae=j&&!Z&&!H&&G.length===0,Q=I.error??Oe,je=I.isError&&!I.data,$=(0,x.useCallback)(()=>{I.refetch()},[I]),Me=async()=>{if(K?.nextCursor){R(!0),z(null);try{let e=await a(D(u,C,K.nextCursor),r.events);L(t=>[...t,e])}catch(e){z(e instanceof Error?e:Error(g(e,`Failed to fetch events.`)))}finally{R(!1)}}};if(je)return(0,O.jsx)(le,{className:`min-h-full`,children:(0,O.jsx)(`div`,{className:`flex min-h-[40vh] flex-col items-center justify-center p-6 sm:p-12`,children:(0,O.jsx)(`div`,{className:`w-full max-w-md`,children:(0,O.jsx)(s,{message:g(Q,`Failed to fetch events.`),onRetry:$,isRetrying:I.isFetching})})})});let Ne=new Date;return(0,O.jsxs)(`div`,{className:`mx-auto flex w-full max-w-screen-2xl flex-col gap-5 p-4 sm:gap-6 sm:p-6`,children:[Q&&G.length>0?(0,O.jsx)(s,{message:`${g(Q,`Failed to fetch events.`)} Showing cached events.`,onRetry:$,isRetrying:I.isFetching}):null,(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 lg:flex-row lg:items-center lg:justify-between lg:gap-4`,children:[(0,O.jsxs)(`div`,{className:`min-w-0 flex flex-col gap-1`,children:[(0,O.jsx)(`h1`,{className:`font-heading text-2xl font-semibold tracking-tight`,children:`Event Log`}),(0,O.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Real-time event stream from the engine.`}),j&&!M?(0,O.jsx)(`p`,{className:`text-xs text-warning`,role:`status`,children:`Live refresh pauses until the Miravo link is live again.`}):null]}),(0,O.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-2 sm:flex-row sm:flex-nowrap sm:items-center sm:gap-2 lg:w-auto lg:max-w-full`,children:[(0,O.jsx)(`button`,{type:`button`,onClick:()=>we(e=>!e),className:`flex h-7 shrink-0 items-center self-start overflow-hidden rounded-[var(--miravo-radius-tight)] border border-border/40 px-2 py-1 text-xs transition-colors hover:bg-muted sm:self-auto`,children:(0,O.jsx)(te,{mode:`wait`,initial:!1,children:j?(0,O.jsxs)(c.span,{initial:{opacity:0,y:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:6},transition:{type:`spring`,stiffness:500,damping:35},className:`flex items-center gap-1.5`,children:[(0,O.jsx)(`span`,{className:`size-1.5 animate-pulse rounded-full bg-success`}),(0,O.jsx)(`span`,{className:`font-medium text-success`,children:`LIVE`})]},`live`):(0,O.jsxs)(c.span,{initial:{opacity:0,y:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:6},transition:{type:`spring`,stiffness:500,damping:35},className:`flex items-center gap-1.5`,children:[(0,O.jsx)(`span`,{className:`size-1.5 rounded-full bg-muted-foreground`}),(0,O.jsx)(`span`,{className:`text-muted-foreground`,children:`Paused`})]},`paused`)})}),(0,O.jsx)(`div`,{className:`min-w-0 flex-1 lg:w-48 lg:flex-none`,children:(0,O.jsxs)(_e,{value:C||null,onValueChange:e=>{A(e??``)},onInputValueChange:ke,children:[(0,O.jsx)(he,{placeholder:`All instances`,className:`h-8 w-full min-w-0`,showClear:!!C}),(0,O.jsx)(pe,{children:(0,O.jsxs)(de,{children:[X.map(e=>(0,O.jsx)(fe,{value:e.id,children:(0,O.jsx)(`span`,{className:`font-mono`,children:e.id})},e.id)),X.length===0&&(0,O.jsx)(`p`,{className:`py-2 text-center text-xs text-muted-foreground`,children:`No instances found`})]})})]})}),(0,O.jsx)(`div`,{className:`min-w-0 flex-1 lg:w-48 lg:flex-none`,children:(0,O.jsxs)(ae,{value:u,onValueChange:e=>{S(e??`all`)},items:be,children:[(0,O.jsx)(p,{className:`w-full min-w-0 lg:w-48`,"aria-label":`Event type filter`,children:(0,O.jsx)(ie,{placeholder:`Filter by type`})}),(0,O.jsxs)(f,{alignItemWithTrigger:!1,align:`start`,children:[(0,O.jsx)(d,{value:`all`,children:`All events`}),(0,O.jsx)(d,{value:`fault:triggered`,children:`Fault Triggered`}),(0,O.jsx)(d,{value:`fault:cleared`,children:`Fault Cleared`}),(0,O.jsx)(d,{value:`lifecycle:changed`,children:`Lifecycle Changed`}),(0,O.jsx)(d,{value:`instance:created`,children:`Instance Created`}),(0,O.jsx)(d,{value:`instance:removed`,children:`Instance Removed`}),(0,O.jsx)(d,{value:`engine:state-changed`,children:`Engine State`}),(0,O.jsx)(d,{value:`platform:resource`,children:`Platform Resource`}),(0,O.jsx)(d,{value:`platform:operation`,children:`Platform Operation`})]})]})})]})]}),(0,O.jsx)(me,{className:`min-w-0 py-0`,children:(0,O.jsx)(ge,{className:`p-0`,children:(0,O.jsxs)(ve,{children:[(0,O.jsx)(ye,{children:(0,O.jsxs)(v,{children:[(0,O.jsx)(b,{className:`hidden w-12 sm:table-cell`,children:`#`}),(0,O.jsx)(b,{children:`Type`}),(0,O.jsx)(b,{children:`Context`}),(0,O.jsx)(b,{children:`Details`}),(0,O.jsx)(b,{className:`hidden text-right md:table-cell`,children:`Cycle #`}),(0,O.jsx)(b,{className:`hidden text-right sm:table-cell`,children:`Wall Clock`})]})}),(0,O.jsxs)(y,{children:[G.map(e=>{let t=w(e),n=T(e),r=e.type===`platform:resource`||e.type===`platform:operation`;return(0,O.jsxs)(v,{className:t?`transition-colors`:``,onMouseEnter:t?()=>h(`/instance/${t}`):void 0,children:[(0,O.jsx)(_,{className:`hidden font-mono text-xs text-muted-foreground sm:table-cell`,children:e.id}),(0,O.jsx)(_,{children:(0,O.jsx)(se,{variant:xe(e.type),className:`text-xs ${Se(e.type)}`,children:r?e.type===`platform:operation`?`platform:${e.operationType}`:`${e.action}:${e.resourceType}`:e.type})}),(0,O.jsx)(_,{className:`font-mono text-xs`,children:t?(0,O.jsx)(`button`,{type:`button`,className:`rounded-[var(--miravo-radius-tight)] text-left text-primary outline-none underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-ring/70 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,onFocus:()=>h(`/instance/${t}`),onClick:()=>Te(`/instance/${t}`,{transitionType:ce}),children:n??t}):n??`—`}),(0,O.jsx)(_,{className:`max-w-xs truncate font-mono text-xs`,children:E(e)||(0,O.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})}),(0,O.jsx)(_,{className:`hidden text-right font-mono text-xs md:table-cell`,children:e.tick}),(0,O.jsx)(_,{className:`hidden text-right text-xs text-muted-foreground sm:table-cell`,children:Ce(e.timestamp,Ne)})]},e.id)}),!Z&&G.length===0&&(0,O.jsx)(v,{children:(0,O.jsx)(_,{colSpan:6,className:`py-8 text-center text-muted-foreground`,children:Ae?`Listening for events…`:`No events`})})]})]})})}),q&&(0,O.jsx)(`div`,{className:`flex justify-center border-t border-border/40 pt-4`,children:(0,O.jsx)(re,{variant:`outline`,size:`sm`,onClick:()=>void Me(),disabled:De,children:`Load older events`})})]})}export{A as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./events-BZaBqF9J.js";export{e as EventsPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./fleet-efugggyV.js";export{e as FleetPage};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{at as n}from"./vendor-ui-CWUk2ulb.js";import{S as r,b as i,o as a,x as o}from"./api-B8Cqrm2G.js";import{i as s,n as c}from"./dist-xY0pK9Wy.js";import{c as l,n as u}from"./chunk-OE4NN4TA-DBWZidbW.js";import{t as d}from"./shallow-Cin0mLuv.js";import{c as f,d as p,g as m,l as h,p as ee,s as g,u as _,v as te,w as ne,x as re,y as v}from"./format-CshN6yEB.js";import{t as y}from"./utils-XFKvwlFT.js";import{t as b}from"./arrow-right-BjBb4z7g.js";import{t as x}from"./arrow-up-down-C1oJAmrw.js";import{c as S,i as C,n as w,s as T,t as E}from"./select-CmlY1M1a.js";import{t as ie}from"./circle-question-mark-CJvcT6V6.js";import{i as D,n as O,t as k}from"./tooltip-D1ydB4g3.js";import{r as A}from"./engine-store-DMULdR_V.js";import{t as j}from"./route-preload-BOrx0jh2.js";import{t as ae}from"./badge-eIn_7YrK.js";import{n as oe}from"./transition-types-2i1blGlR.js";import{a as se,i as ce,n as le,o as ue,r as de,s as fe,t as pe}from"./combobox-BCaV1Wbo.js";import{a as M,c as N,i as me,n as he,o as P,r as ge,s as _e}from"./select-display-items-Bqb6Sbg6.js";var F=e(t(),1);function I(e){return o.prefetchQuery({queryKey:i.instances.detail(e),queryFn:()=>a(`/instances/${e}`,r.instanceDetail),staleTime:2e3})}var L=n(),R={success:`bg-success`,warning:`bg-warning`,destructive:`bg-destructive`,foreground:`bg-foreground/60`,primary:`bg-primary`},z={success:`text-success`,warning:`text-warning`,destructive:`text-destructive`,foreground:`text-foreground`,primary:`text-primary`},B={mqtt:`MQTT`,opcua:`OPC UA`,modbus:`Modbus`};function V({label:e,pip:t,pulse:n}){return(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t&&(n?(0,L.jsxs)(`span`,{"aria-hidden":!0,className:`relative flex size-1.5 shrink-0 items-center justify-center`,children:[(0,L.jsx)(`span`,{className:y(`absolute inline-flex h-full w-full animate-ping rounded-full opacity-75`,R[t])}),(0,L.jsx)(`span`,{className:y(`relative inline-flex size-1.5 rounded-full`,R[t])})]}):(0,L.jsx)(`span`,{"aria-hidden":!0,className:y(`size-1.5 shrink-0 rounded-full`,R[t])})),(0,L.jsx)(`span`,{className:`truncate text-[10px] font-medium uppercase tracking-(--miravo-tracking-eyebrow) text-muted-foreground`,children:e})]})}function H({children:e,tone:t=`foreground`,live:n}){return(0,L.jsx)(`span`,{...n?{role:`status`,"aria-live":`polite`}:{},className:y(`mt-1 block min-w-0 truncate font-mono text-2xl font-semibold tabular-nums leading-none transition-colors duration-300`,z[t]),children:e})}function U({children:e}){return(0,L.jsx)(`span`,{className:`mt-1 min-w-0 truncate text-[10px] text-muted-foreground`,children:e})}function W(e,t){return e===t?``:t}function ve({statusFilter:e,onStatusFilter:t}){let{instances:n,tps:r,memberValueCount:i,availableAdapters:a,adapterMetrics:o}=A(d(e=>({instances:e.instances,tps:e.tps,memberValueCount:e.memberValueCount,availableAdapters:e.availableAdapters,adapterMetrics:e.adapterMetrics}))),s=(0,F.useMemo)(()=>{let e=n.filter(e=>!e.isQuarantined&&e.activeFaults.length===0).length,t=n.filter(e=>!e.isQuarantined&&e.activeFaults.length>0).length,r=n.filter(e=>e.isQuarantined).length,i=n.length;return{healthy:e,faulted:t,quarantined:r,total:i,pct:i>0?Math.round(e/i*100):100,activeFaultCount:n.reduce((e,t)=>e+t.activeFaults.length,0),modelCount:new Set(n.map(e=>e.model)).size,affectedCount:new Set(n.filter(e=>e.activeFaults.length>0).map(e=>e.id)).size}},[n]),c=(0,F.useMemo)(()=>{let e=a.filter(e=>e.enabled);return{enabled:e,totalMessages:e.reduce((e,t)=>e+(o.find(e=>e.name===t.name)?.metrics?.messagesPublished??0),0),totalErrors:e.reduce((e,t)=>e+(o.find(e=>e.name===t.name)?.metrics?.errorsCount??0),0),labels:e.map(e=>B[e.name]??e.name)}},[a,o]),l=s.activeFaultCount>0,f=l?`destructive`:s.quarantined>0?`warning`:`success`,m=l?`faulted`:`healthy`;return(0,L.jsxs)(`section`,{"aria-label":`Fleet status`,className:`flex w-full min-w-0 max-w-full flex-col divide-y divide-border/40 overflow-hidden rounded-(--miravo-radius-stadium-sm) border sm:flex-row sm:divide-x sm:divide-y-0`,children:[(0,L.jsxs)(`button`,{type:`button`,onClick:()=>t(W(e,m)),"aria-pressed":e===`healthy`||e===`faulted`,"aria-label":l?`Filter to faulted instances`:`Filter to healthy instances`,className:y(`flex min-w-0 flex-1 flex-col overflow-hidden px-4 py-3 text-left outline-none transition-colors duration-150`,`hover:bg-muted/40 focus-visible:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,(e===`healthy`||e===`faulted`)&&`bg-muted/50`),children:[(0,L.jsx)(V,{label:`Health`,pip:f}),(0,L.jsxs)(H,{tone:l?`destructive`:`success`,children:[s.pct,`%`]}),(0,L.jsx)(U,{children:s.total===0?`No instances`:[`${s.total} instance${s.total===1?``:`s`}`,s.faulted>0&&`${s.faulted} faulted`,s.quarantined>0&&`${s.quarantined} quarantined`,`${s.modelCount} model${s.modelCount===1?``:`s`}`].filter(Boolean).join(` · `)})]}),(0,L.jsxs)(`button`,{type:`button`,onClick:()=>t(e===`faulted`?``:`faulted`),"aria-pressed":e===`faulted`,"aria-label":`Filter to faulted instances`,className:y(`flex min-w-0 flex-1 flex-col overflow-hidden px-4 py-3 text-left outline-none transition-colors duration-150`,`hover:bg-muted/40 focus-visible:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,e===`faulted`&&`bg-muted/50`),children:[(0,L.jsx)(V,{label:`Faults`,pip:l?`destructive`:`success`}),(0,L.jsx)(H,{tone:l?`destructive`:`foreground`,live:!0,children:s.activeFaultCount}),(0,L.jsx)(U,{children:l?`${s.affectedCount} instance${s.affectedCount===1?``:`s`} affected`:`all clear`})]}),(0,L.jsxs)(k,{children:[(0,L.jsxs)(D,{render:(0,L.jsx)(u,{to:`/tags`,"aria-label":`Open tag stream`,className:`flex min-w-0 flex-1 flex-col overflow-hidden px-4 py-3 outline-none transition-colors duration-150 hover:bg-muted/40 focus-visible:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`}),children:[(0,L.jsx)(V,{label:`Tags`,pip:`primary`,pulse:!0}),(0,L.jsx)(H,{children:p(i)}),(0,L.jsxs)(U,{children:[(0,L.jsx)(`span`,{className:`font-mono tabular-nums`,children:r.toFixed(1)}),` tps · live`]})]}),(0,L.jsx)(O,{side:`bottom`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-0.5 text-[11px]`,children:[(0,L.jsx)(`span`,{children:`Live tags tracked across the fleet.`}),i>=1e6&&(0,L.jsxs)(`span`,{className:`font-mono tabular-nums text-muted-foreground`,children:[h(i),` tags`]}),(0,L.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Updating at `,(0,L.jsx)(`span`,{className:`font-mono tabular-nums`,children:r.toFixed(1)}),` per second.`]})]})})]}),c.enabled.length>0&&(0,L.jsx)(G,{labels:c.labels,totalMessages:c.totalMessages,totalErrors:c.totalErrors,perAdapter:c.enabled.map(e=>({name:B[e.name]??e.name,metrics:o.find(t=>t.name===e.name)?.metrics}))})]})}function G({labels:e,totalMessages:t,totalErrors:n,perAdapter:r}){return(0,L.jsxs)(k,{children:[(0,L.jsxs)(D,{render:(0,L.jsx)(u,{to:`/control`,"aria-label":`Open control — protocol adapters`,className:`flex min-w-0 flex-1 flex-col overflow-hidden px-4 py-3 outline-none transition-colors duration-150 hover:bg-muted/40 focus-visible:bg-muted/40 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`}),children:[(0,L.jsx)(V,{label:`Protocol`,pip:`primary`,pulse:!0}),(0,L.jsx)(H,{tone:n>0?`warning`:`foreground`,live:!0,children:p(t)}),(0,L.jsxs)(U,{children:[e.join(` · `),n>0&&` · ${n} error${n===1?``:`s`}`]})]}),(0,L.jsx)(O,{side:`bottom`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 text-[11px]`,children:[(0,L.jsx)(`span`,{children:`Messages published since session start.`}),t>=1e6&&(0,L.jsxs)(`span`,{className:`font-mono tabular-nums text-muted-foreground`,children:[h(t),` total`]}),(0,L.jsx)(`div`,{className:`flex flex-col gap-0.5 border-t border-tooltip-border/60 pt-1`,children:r.map(e=>(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,L.jsxs)(`span`,{className:`font-mono tabular-nums`,children:[h(e.metrics?.messagesPublished??0),` msg`]}),e.metrics&&e.metrics.errorsCount>0&&(0,L.jsxs)(`span`,{className:`font-mono tabular-nums text-destructive`,children:[`· `,e.metrics.errorsCount,` err`]})]},e.name))})]})})]})}var K=`Commissioning → instance is running startup diagnostics. Operating → running normally. Decommissioning → winding down.`;function ye(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{switch(t){case`id`:return e.id.localeCompare(n.id)*r;case`model`:return e.model.localeCompare(n.model)*r;case`lifecycle`:return e.lifecycleStage.localeCompare(n.lifecycleStage)*r;case`hours`:return(e.operatingHours-n.operatingHours)*r;case`faults`:return(e.activeFaults.length-n.activeFaults.length)*r;case`status`:{let t=e=>e.isQuarantined?2:+(e.activeFaults.length>0);return(t(e)-t(n))*r}default:return 0}})}function be(e){return e===``||e===`healthy`||e===`faulted`||e===`quarantined`}function xe(e){return e.isQuarantined?`quarantined`:e.activeFaults.length>0?`faulted`:`healthy`}var q={healthy:{pip:`bg-success`,ring:`border-success/40 text-success`,label:`healthy`,help:`No active faults, not quarantined.`},faulted:{pip:`bg-warning`,ring:`border-warning/40 text-warning`,label:`faulted`,help:`One or more active faults; instance is still running.`},quarantined:{pip:`bg-destructive`,ring:`border-destructive/40 text-destructive`,label:`quarantined`,help:`Instance isolated from production flows pending review.`}};function Se({state:e}){let t=q[e];return(0,L.jsxs)(k,{children:[(0,L.jsxs)(D,{render:(0,L.jsx)(`span`,{className:y(`inline-flex h-5 items-center gap-1.5 rounded-(--miravo-radius-pill) border bg-background/30 px-2 text-[11px] font-medium`,t.ring)}),children:[(0,L.jsx)(`span`,{"aria-hidden":!0,className:y(`size-1.5 shrink-0 rounded-full`,t.pip)}),(0,L.jsx)(`span`,{children:g(t.label)})]}),(0,L.jsx)(O,{side:`top`,children:t.help})]})}function J({label:e,sortKey:t,subtitle:n,tooltip:r,current:i,direction:a,onSort:o,className:s}){let c=i===t,l=c?a===`asc`?`ascending`:`descending`:`none`,u=(0,L.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 whitespace-nowrap rounded-(--miravo-radius-tight) text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,onClick:()=>o(t),children:[(0,L.jsxs)(`span`,{className:`inline-flex items-baseline gap-1`,children:[(0,L.jsx)(`span`,{children:e}),n&&(0,L.jsx)(`span`,{className:`text-[10px] font-normal text-muted-foreground`,children:n})]}),(0,L.jsx)(x,{className:y(`size-3`,c?`text-foreground`:`text-muted-foreground`),"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`sr-only`,children:c?`, sorted ${a===`asc`?`ascending`:`descending`}. Click to toggle.`:`, click to sort`})]});return(0,L.jsx)(P,{className:s,"aria-sort":l,children:r?(0,L.jsxs)(k,{children:[(0,L.jsx)(D,{render:u}),(0,L.jsx)(O,{side:`top`,children:r})]}):u})}function Y({title:e,body:t,action:n}){return(0,L.jsx)(N,{children:(0,L.jsx)(M,{colSpan:7,className:`py-10`,children:(0,L.jsxs)(`div`,{className:`mx-auto flex max-w-sm flex-col items-center gap-2 text-center`,children:[(0,L.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:e}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t}),n&&(0,L.jsxs)(u,{to:n.href,className:`mt-1 inline-flex items-center gap-1 rounded-(--miravo-radius-tight) text-xs font-medium text-primary outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring`,children:[n.label,(0,L.jsx)(b,{className:`size-3`,"aria-hidden":!0})]})]})})})}function X(){let{instances:e,connectionState:t}=A(d(e=>({instances:e.instances,connectionState:e.connectionState}))),[n,r]=s(`q`,c.withDefault(``)),[i,a]=s(`model`,c.withDefault(``)),[o,u]=s(`lifecycle`,c.withDefault(``)),[p,h]=s(`status`,c.withDefault(``)),g=be(p)?p:``,[x,R]=(0,F.useState)(`id`),[z,B]=(0,F.useState)(`asc`),V=(0,F.useRef)(null),H=l(),[U,W]=(0,F.useState)(``);(0,F.useEffect)(()=>{let e=e=>{if(e.key!==`/`||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target.tagName;t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||(e.preventDefault(),V.current?.focus())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let G=(0,F.useCallback)(e=>{e===x?B(e=>e===`asc`?`desc`:`asc`):(R(e),B(`asc`))},[x]),q=(0,F.useCallback)(e=>{h(e===``?``:e)},[h]),X=(0,F.useMemo)(()=>{let t=new Map;for(let n of e)t.set(n.model,(t.get(n.model)??0)+1);return[...t.entries()].sort((e,t)=>e[0].localeCompare(t[0]))},[e]),Z=(0,F.useMemo)(()=>[...new Set(e.map(e=>e.lifecycleStage))].sort(),[e]),Ce=(0,F.useMemo)(()=>[{value:`all`,label:`All stages`},...Z.map(e=>({value:e,label:m(e)}))],[Z]),Q=(0,F.useMemo)(()=>U?X.filter(([e])=>v(e,U)):X,[X,U]),we=(0,F.useMemo)(()=>i?{value:i,label:_(i)}:null,[i]),$=(0,F.useMemo)(()=>{let t=e;return i&&(t=t.filter(e=>e.model===i)),o&&(t=t.filter(e=>e.lifecycleStage===o)),n&&(t=t.filter(e=>te(e.id,n)||v(e.model,n))),g===`faulted`&&(t=t.filter(e=>e.activeFaults.length>0)),g===`quarantined`&&(t=t.filter(e=>e.isQuarantined)),g===`healthy`&&(t=t.filter(e=>e.activeFaults.length===0&&!e.isQuarantined)),ye(t,x,z)},[e,n,g,i,o,x,z]),Te=g!==``||i!==``||o!==``||n!==``,Ee=(0,F.useCallback)(()=>{r(``),h(``),a(``),u(``)},[r,h,a,u]),De=(0,F.useCallback)(e=>{(0,F.startTransition)(()=>{(0,F.addTransitionType)(oe),H(`/instance/${e}`)})},[H]),Oe=e.length===0&&t!==`live`,ke=e.length===0&&t===`live`;return(0,L.jsxs)(`div`,{className:`mx-auto flex w-full max-w-screen-2xl flex-col gap-5 p-4 sm:gap-6 sm:p-6`,children:[(0,L.jsx)(`h1`,{className:`font-heading text-2xl font-semibold tracking-tight`,children:`Fleet Overview`}),(0,L.jsx)(ve,{statusFilter:g,onStatusFilter:q}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsxs)(pe,{value:we,onValueChange:e=>void a(e?.value??``),isItemEqualToValue:(e,t)=>e?.value===t?.value,onInputValueChange:W,children:[(0,L.jsx)(de,{placeholder:`All models`,className:`h-8 w-48`,showClear:!!i}),(0,L.jsx)(le,{children:(0,L.jsxs)(se,{children:[Q.map(([e,t])=>(0,L.jsxs)(ce,{value:{value:e,label:_(e)},children:[(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:_(e)}),(0,L.jsxs)(`span`,{className:`shrink-0 tabular-nums text-muted-foreground`,children:[`(`,t,`)`]})]},e)),Q.length===0&&(0,L.jsx)(`p`,{className:`py-2 text-center text-xs text-muted-foreground`,children:`No models found`})]})})]}),Z.length>1&&(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,L.jsxs)(E,{value:o||`all`,onValueChange:e=>void u(!e||e===`all`?``:e),items:Ce,children:[(0,L.jsx)(T,{className:`h-8 w-36`,"aria-label":`Lifecycle stage`,children:(0,L.jsx)(S,{placeholder:`All stages`})}),(0,L.jsxs)(w,{alignItemWithTrigger:!1,align:`start`,children:[(0,L.jsx)(C,{value:`all`,children:`All stages`}),Z.map(e=>(0,L.jsx)(C,{value:e,children:m(e)},e))]})]}),(0,L.jsxs)(k,{children:[(0,L.jsx)(D,{render:(0,L.jsx)(`button`,{type:`button`,"aria-label":`About lifecycle stages`,className:`flex size-6 items-center justify-center rounded-(--miravo-radius-tight) text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`}),children:(0,L.jsx)(ie,{className:`size-3.5`,"aria-hidden":!0})}),(0,L.jsx)(O,{side:`top`,children:K})]})]}),(0,L.jsxs)(E,{value:g||`all`,onValueChange:e=>void h(!e||e===`all`?``:e),items:he,children:[(0,L.jsx)(T,{className:`h-8 w-32`,"aria-label":`Status filter`,children:(0,L.jsx)(S,{placeholder:`All status`})}),(0,L.jsxs)(w,{alignItemWithTrigger:!1,align:`start`,children:[(0,L.jsx)(C,{value:`all`,children:`All status`}),(0,L.jsx)(C,{value:`healthy`,children:`Healthy`}),(0,L.jsx)(C,{value:`faulted`,children:`Faulted`}),(0,L.jsx)(C,{value:`quarantined`,children:`Quarantined`})]})]}),(0,L.jsxs)(`div`,{className:`relative`,children:[(0,L.jsx)(re,{ref:V,placeholder:`Search...`,value:n,onChange:e=>void r(e.target.value),"aria-label":`Search instances by id or model`,className:`h-8 w-40 pr-7 text-xs`}),!n&&(0,L.jsx)(`kbd`,{className:`pointer-events-none absolute top-1/2 right-2 -translate-y-1/2 rounded-(--miravo-radius-tight) border border-border bg-muted px-1 font-mono text-[10px] text-muted-foreground`,children:`/`})]}),Te&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`button`,{type:`button`,onClick:Ee,className:`flex items-center gap-1 rounded-(--miravo-radius-tight) px-1 text-xs text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,L.jsx)(ne,{className:`size-3`,"aria-hidden":!0}),`Clear`]}),(0,L.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,"aria-live":`polite`,children:[$.length,` of `,e.length]})]})]}),(0,L.jsx)(ue,{className:`py-0`,children:(0,L.jsx)(fe,{className:`p-0 [&_thead_tr_th:last-child]:w-6 [&_thead_tr_th:last-child]:px-1 sm:[&_thead_tr_th:last-child]:w-8 sm:[&_thead_tr_th:last-child]:px-2 [&_tbody_tr_td:last-child]:px-1 sm:[&_tbody_tr_td:last-child]:px-2`,children:(0,L.jsxs)(ge,{children:[(0,L.jsx)(_e,{children:(0,L.jsxs)(N,{children:[(0,L.jsx)(J,{label:`Instance`,sortKey:`id`,current:x,direction:z,onSort:G}),(0,L.jsx)(J,{label:`Model`,sortKey:`model`,current:x,direction:z,onSort:G,className:`hidden sm:table-cell`}),(0,L.jsx)(J,{label:`Lifecycle`,sortKey:`lifecycle`,current:x,direction:z,onSort:G,tooltip:K}),(0,L.jsx)(J,{label:`Operating age`,sortKey:`hours`,current:x,direction:z,onSort:G,tooltip:`Cumulative operating hours since the instance started running.`,className:`hidden text-right md:table-cell`}),(0,L.jsx)(J,{label:`Faults`,sortKey:`faults`,current:x,direction:z,onSort:G,tooltip:`Count of active (uncleared) faults on this instance.`}),(0,L.jsx)(J,{label:`Status`,sortKey:`status`,current:x,direction:z,onSort:G}),(0,L.jsx)(P,{children:(0,L.jsx)(`span`,{className:`sr-only`,children:`Navigate to instance`})})]})}),(0,L.jsx)(me,{children:Oe?(0,L.jsx)(Y,{title:`Connecting to runtime`,body:`Live fleet data will appear once the connection is up.`}):ke?(0,L.jsx)(Y,{title:`No running instances`,body:`Start an environment from the Catalog to see instances.`,action:{label:`Open Catalog`,href:`/catalog`}}):$.length===0?(0,L.jsx)(Y,{title:`No matches`,body:`Adjust filters or clear them to see the full fleet.`}):$.map(e=>{let t=xe(e),n=f(e.id);return(0,L.jsxs)(N,{tabIndex:0,"aria-label":`Open instance ${n}`,className:y(`group cursor-pointer outline-none transition-colors`,`focus-visible:bg-sidebar-accent focus-visible:ring-2 focus-visible:ring-ring/70 focus-visible:ring-inset`),onClick:()=>De(e.id),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),De(e.id))},onMouseEnter:()=>{j(`/instance/${e.id}`),I(e.id)},onFocus:()=>{j(`/instance/${e.id}`),I(e.id)},children:[(0,L.jsx)(M,{className:`text-sm`,children:(0,L.jsx)(F.ViewTransition,{name:`instance-${e.id}`,default:`none`,children:(0,L.jsx)(`span`,{className:`inline-flex max-w-full rounded-(--miravo-radius-tight) text-left`,children:n})})}),(0,L.jsx)(M,{className:`hidden text-sm sm:table-cell`,children:_(e.model)}),(0,L.jsx)(M,{children:(0,L.jsx)(ae,{variant:`secondary`,className:`text-xs`,children:m(e.lifecycleStage)})}),(0,L.jsx)(M,{className:`hidden font-mono text-sm md:table-cell`,children:ee(e.operatingHours)}),(0,L.jsx)(M,{children:e.activeFaults.length>0?(0,L.jsxs)(k,{children:[(0,L.jsx)(D,{render:(0,L.jsx)(`span`,{className:`inline-flex h-5 min-w-5 items-center justify-center rounded-(--miravo-radius-pill) bg-destructive/15 px-1.5 font-mono text-[11px] font-semibold tabular-nums text-destructive`}),children:e.activeFaults.length}),(0,L.jsxs)(O,{side:`top`,children:[e.activeFaults.slice(0,4).join(`, `),e.activeFaults.length>4&&` + ${e.activeFaults.length-4} more`]})]}):(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[(0,L.jsx)(`span`,{className:`sr-only`,children:`no faults`}),(0,L.jsx)(`span`,{"aria-hidden":!0,children:`—`})]})}),(0,L.jsx)(M,{children:(0,L.jsx)(Se,{state:t})}),(0,L.jsx)(M,{children:(0,L.jsx)(b,{className:`size-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100`,"aria-hidden":!0})})]},e.id)})})]})})})]})}export{X as t};
@@ -1 +1 @@
1
- import"./rolldown-runtime-COnpUsM8.js";import{o as e,s as t}from"./vendor-charts-CAZdaPlq.js";import{at as n,nt as r,tt as i}from"./vendor-ui-BcvPjvmT.js";import{n as a,t as o}from"./utils-CH98NBUe.js";var s=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,c=e,l=(e,t)=>n=>{if(t?.variants==null)return c(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=s(t)||s(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return c(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},u=a(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),d=a(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),f=n(),p=l(`group/button inline-flex shrink-0 items-center justify-center rounded-[var(--miravo-radius-stadium-sm)] border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/50 aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,outline:`border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground border-input bg-input/30 hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground`,ghost:`hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground hover:bg-muted/50`,destructive:`bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 bg-destructive/20 hover:bg-destructive/30 focus-visible:ring-destructive/40`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,xs:`h-6 gap-1 rounded-[var(--miravo-radius-tight)] px-2 text-xs in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-7 gap-1 rounded-[var(--miravo-radius-tight)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,lg:`h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,icon:`size-8`,"icon-xs":`relative size-6 rounded-[var(--miravo-radius-tight)] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] [&_svg:not([class*='size-'])]:size-3 before:absolute before:inset-[-10px] before:content-['']`,"icon-sm":`relative size-7 rounded-[var(--miravo-radius-tight)] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] before:absolute before:inset-[-10px] before:content-['']`,"icon-lg":`size-9`}},defaultVariants:{variant:`default`,size:`default`}});function m({className:e,variant:t=`default`,size:n=`default`,...i}){return(0,f.jsx)(r,{"data-slot":`button`,className:o(p({variant:t,size:n,className:e})),...i})}t();function h({className:e,type:t,...n}){return(0,f.jsx)(i,{type:t,"data-slot":`input`,className:o(`h-8 w-full min-w-0 rounded-[var(--miravo-radius-stadium-sm)] border border-input bg-input/30 px-2.5 py-1 text-xs transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs file:font-medium file:text-foreground placeholder:text-muted-foreground hover:bg-input/50 focus-visible:border-primary/35 focus-visible:ring-2 focus-visible:ring-primary/22 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...n})}function g(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function _(e,t){let n=t.trim().toLowerCase();return n?e.toLowerCase().includes(n)||g(e).toLowerCase().includes(n):!0}function v(e,t){let n=t.trim().toLowerCase();return n?e.toLowerCase().includes(n)||O(e).toLowerCase().includes(n):!0}function y(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function b(e){let t=e.trim();return t&&(t.includes(`_`)?y(t):/^[A-Z][A-Z0-9_-]*$/.test(t)?t:t.charAt(0).toUpperCase()+t.slice(1).toLowerCase())}function x(e){return e.includes(`_`)?b(e):g(e)}var S={degC:`°C`,"m3/h":`m³/h`,"mm/s":`mm/s`,pu:`pu`,"%":`%`};function C(e){return e?S[e]??e:``}var w=`en-US`;function T(e){let t=Math.max(0,Math.trunc(e));return t<1e6?t.toLocaleString(w):new Intl.NumberFormat(w,{notation:`compact`,compactDisplay:`short`,maximumFractionDigits:1}).format(t)}function E(e){return Number.isInteger(e)?Math.abs(e)>=1e4?e.toLocaleString(w):String(e):Math.abs(e)>=100?e.toFixed(1):Math.abs(e)>=1?e.toFixed(2):e.toFixed(3)}function D(e){return e.toLocaleString(w)}function O(e){let t=e.match(/^(.+)-(\d{3,})$/);if(!t)return g(e);let[,n,r]=t;return n?`${g(n)} ${r}`:g(e)}function k(e){return e.join(`/`)}function A(e,t){return`${k(e)}/${t}`}function j(e){let t=Math.round((Number.isFinite(e)&&e>=0?e:0)*60),n=1440,r=Math.floor(t/n),i=t%n,a=Math.floor(i/60),o=i%60;if(r>=365){let e=Math.floor(r/365),t=r%365,n=[`${e}y`];return t>0&&n.push(`${t}d`),a>0&&n.push(`${a}h`),o>0&&n.push(`${o}m`),n.join(` `)}if(r>0){let e=[`${r}d`];return a>0&&e.push(`${a}h`),o>0&&e.push(`${o}m`),e.join(` `)}return a>0?o>0?`${a}h ${o}m`:`${a}h`:o>0?`${o}m`:`0h`}function M(e){return new Date(e).toLocaleString(w)}function N(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<30?`${i}d ago`:new Date(e).toLocaleDateString(w,{month:`short`,day:`numeric`})}var P=new Set([`faulted`,`critical`,`stopped`,`emergency`]),F=new Set([`degraded`,`uncertain`]);function I(e){return P.has(e)?`bad`:F.has(e)?`warn`:`neutral`}export{p as C,l as E,m as S,u as T,C as _,k as a,I as b,O as c,T as d,E as f,y as g,x as h,A as i,D as l,N as m,P as n,M as o,j as p,F as r,b as s,w as t,g as u,v,d as w,h as x,_ as y};
1
+ import"./rolldown-runtime-COnpUsM8.js";import{c as e,s as t}from"./vendor-charts-95ykyDlI.js";import{at as n,nt as r,tt as i}from"./vendor-ui-CWUk2ulb.js";import{n as a,t as o}from"./utils-XFKvwlFT.js";var s=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,c=t,l=(e,t)=>n=>{if(t?.variants==null)return c(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=s(t)||s(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return c(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},u=a(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),d=a(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),f=n(),p=l(`group/button inline-flex shrink-0 items-center justify-center rounded-[var(--miravo-radius-stadium-sm)] border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:border-destructive/50 aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,outline:`border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground border-input bg-input/30 hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground`,ghost:`hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground hover:bg-muted/50`,destructive:`bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 bg-destructive/20 hover:bg-destructive/30 focus-visible:ring-destructive/40`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,xs:`h-6 gap-1 rounded-[var(--miravo-radius-tight)] px-2 text-xs in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-7 gap-1 rounded-[var(--miravo-radius-tight)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,lg:`h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,icon:`size-8`,"icon-xs":`relative size-6 rounded-[var(--miravo-radius-tight)] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] [&_svg:not([class*='size-'])]:size-3 before:absolute before:inset-[-10px] before:content-['']`,"icon-sm":`relative size-7 rounded-[var(--miravo-radius-tight)] in-data-[slot=button-group]:rounded-[var(--miravo-radius-stadium-sm)] before:absolute before:inset-[-10px] before:content-['']`,"icon-lg":`size-9`}},defaultVariants:{variant:`default`,size:`default`}});function m({className:e,variant:t=`default`,size:n=`default`,...i}){return(0,f.jsx)(r,{"data-slot":`button`,className:o(p({variant:t,size:n,className:e})),...i})}e();function h({className:e,type:t,...n}){return(0,f.jsx)(i,{type:t,"data-slot":`input`,className:o(`h-8 w-full min-w-0 rounded-[var(--miravo-radius-stadium-sm)] border border-input bg-input/30 px-2.5 py-1 text-xs transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs file:font-medium file:text-foreground placeholder:text-muted-foreground hover:bg-input/50 focus-visible:border-primary/35 focus-visible:ring-2 focus-visible:ring-primary/22 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...n})}function g(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function _(e,t){let n=t.trim().toLowerCase();return n?e.toLowerCase().includes(n)||g(e).toLowerCase().includes(n):!0}function v(e,t){let n=t.trim().toLowerCase();return n?e.toLowerCase().includes(n)||O(e).toLowerCase().includes(n):!0}function y(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function b(e){let t=e.trim();return t&&(t.includes(`_`)?y(t):/^[A-Z][A-Z0-9_-]*$/.test(t)?t:t.charAt(0).toUpperCase()+t.slice(1).toLowerCase())}function x(e){return e.includes(`_`)?b(e):g(e)}var S={degC:`°C`,"m3/h":`m³/h`,"mm/s":`mm/s`,pu:`pu`,"%":`%`};function C(e){return e?S[e]??e:``}var w=`en-US`;function T(e){let t=Math.max(0,Math.trunc(e));return t<1e6?t.toLocaleString(w):new Intl.NumberFormat(w,{notation:`compact`,compactDisplay:`short`,maximumFractionDigits:1}).format(t)}function E(e){return Number.isInteger(e)?Math.abs(e)>=1e4?e.toLocaleString(w):String(e):Math.abs(e)>=100?e.toFixed(1):Math.abs(e)>=1?e.toFixed(2):e.toFixed(3)}function D(e){return e.toLocaleString(w)}function O(e){let t=e.match(/^(.+)-(\d{3,})$/);if(!t)return g(e);let[,n,r]=t;return n?`${g(n)} ${r}`:g(e)}function k(e){return e.join(`/`)}function A(e,t){return`${k(e)}/${t}`}function j(e){let t=Math.round((Number.isFinite(e)&&e>=0?e:0)*60),n=1440,r=Math.floor(t/n),i=t%n,a=Math.floor(i/60),o=i%60;if(r>=365){let e=Math.floor(r/365),t=r%365,n=[`${e}y`];return t>0&&n.push(`${t}d`),a>0&&n.push(`${a}h`),o>0&&n.push(`${o}m`),n.join(` `)}if(r>0){let e=[`${r}d`];return a>0&&e.push(`${a}h`),o>0&&e.push(`${o}m`),e.join(` `)}return a>0?o>0?`${a}h ${o}m`:`${a}h`:o>0?`${o}m`:`0h`}function M(e){return new Date(e).toLocaleString(w)}function N(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<30?`${i}d ago`:new Date(e).toLocaleDateString(w,{month:`short`,day:`numeric`})}var P=new Set([`faulted`,`critical`,`stopped`,`emergency`]),F=new Set([`degraded`,`uncertain`]);function I(e){return P.has(e)?`bad`:F.has(e)?`warn`:`neutral`}export{p as C,l as E,m as S,u as T,C as _,k as a,I as b,O as c,T as d,E as f,y as g,x as h,A as i,D as l,N as m,P as n,M as o,j as p,F as r,b as s,w as t,g as u,v,d as w,h as x,_ as y};