@devframes/hub-ui 0.9.0-beta.1 → 0.9.0-beta.2

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.
@@ -1,4 +1,4 @@
1
- import{i as e,r as t}from"./branding-V4rxaera.js";import{A as n,B as r,C as i,D as a,E as o,F as s,G as c,I as l,K as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,W as v,a as y,b,c as x,g as S,i as C,j as w,k as ee,o as te,p as ne,q as T,r as re,t as ie,u as ae,v as oe,w as se,x as ce,y as le}from"./keybindings-CRo5AVOI.js";import{$ as ue,A as E,B as de,C as D,D as O,E as k,F as A,G as fe,H as pe,I as me,J as j,K as M,L as he,M as N,N as ge,O as P,P as F,Q as I,R as _e,S as L,T as R,U as z,V as ve,W as ye,X as be,Y as xe,Z as B,_ as Se,a as Ce,b as we,c as Te,d as Ee,et as V,f as De,g as Oe,h as ke,i as Ae,j as je,k as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,q as Re,r as ze,s as Be,t as Ve,u as He,v as Ue,w as H,x as U,y as W,z as G}from"./color-mode-BPeeQXcs.js";var We=`devframe-remote-connection`,Ge=`/*
1
+ import{i as e,r as t}from"./branding-V4rxaera.js";import{A as n,B as r,C as i,D as a,E as o,F as s,G as c,I as l,K as u,M as d,N as f,O as p,P as m,R as h,S as g,T as _,W as v,a as y,b,c as x,g as S,i as C,j as w,k as ee,o as te,p as ne,q as T,r as re,t as ie,u as ae,v as oe,w as se,x as ce,y as le}from"./keybindings-CTWhgJUw.js";import{$ as ue,A as E,B as de,C as D,D as O,E as k,F as A,G as fe,H as pe,I as me,J as j,K as M,L as he,M as N,N as ge,O as P,P as F,Q as I,R as _e,S as L,T as R,U as z,V as ve,W as ye,X as be,Y as xe,Z as B,_ as Se,a as Ce,b as we,c as Te,d as Ee,et as V,f as De,g as Oe,h as ke,i as Ae,j as je,k as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,q as Re,r as ze,s as Be,t as Ve,u as He,v as Ue,w as H,x as U,y as W,z as G}from"./color-mode-BPeeQXcs.js";var We=`devframe-remote-connection`,Ge=`/*
2
2
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
3
3
  2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
4
4
  2. [UnoCSS]: allow to override the default border color with css var \`--un-hub-default-border-color\`
@@ -456,7 +456,7 @@ Make elements with the HTML hidden attribute stay hidden by default.
456
456
  }
457
457
 
458
458
  #devframes-anchor #devframes-dock {
459
- margin:auto;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:9999px;
459
+ margin:auto;height:100%;display:flex;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:9999px;
460
460
  ;background-color:rgb(255 255 255 / 1);--un-hub-backdrop-blur:blur(7px);-webkit-backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);--un-hub-text-opacity:1;color:rgb(51 51 51 / var(--un-hub-text-opacity));--un-hub-shadow:var(--un-hub-shadow-inset) 0 1px 3px 0 var(--un-hub-shadow-color, rgb(0 0 0 / 0.1)),var(--un-hub-shadow-inset) 0 1px 2px -1px var(--un-hub-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);
461
461
  transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:500ms;
462
462
  height: var(--devframes-dock-height, 40px);
@@ -608,21 +608,21 @@ Make elements with the HTML hidden attribute stay hidden by default.
608
608
  .btn-icon-compact{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:0.25rem;opacity:0.65;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
609
609
  .btn-action{display:flex;align-items:center;gap:0.5rem;border-width:1px;--un-hub-border-opacity:0.13;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));border-radius:0.25rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;opacity:0.75;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
610
610
  .btn-action-sm{display:flex;align-items:center;gap:0.5rem;border-width:1px;--un-hub-border-opacity:0.13;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));border-radius:0.25rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.875rem;line-height:1.25rem;opacity:0.75;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
611
- .btn-primary{display:flex;align-items:center;gap:0.5rem;border-radius:0.25rem;--un-hub-bg-opacity:1;background-color:rgb(87 136 97 / var(--un-hub-bg-opacity));padding-left:0.75rem;padding-right:0.75rem;padding-top:0.375rem;padding-bottom:0.375rem;--un-hub-text-opacity:1;color:rgb(255 255 255 / var(--un-hub-text-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
611
+ .btn-primary{display:flex;align-items:center;gap:0.5rem;border-radius:0.25rem;--un-hub-bg-opacity:1;background-color:rgb(from var(--colors-primary-500, #578861) r g b / var(--un-hub-bg-opacity));padding-left:0.75rem;padding-right:0.75rem;padding-top:0.375rem;padding-bottom:0.375rem;--un-hub-text-opacity:1;color:rgb(255 255 255 / var(--un-hub-text-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
612
612
  .badge{display:inline-flex;align-items:center;gap:0.25rem;border-radius:0.375rem;padding-left:0.375rem;padding-right:0.375rem;padding-top:0.125rem;padding-bottom:0.125rem;font-size:0.75rem;line-height:1rem;font-weight:500;line-height:1;}
613
613
  .border-base{--un-hub-border-opacity:0.13;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));}
614
614
  .border-mute{--un-hub-border-opacity:0.07;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));}
615
615
  .dark .data-\\[selected\\]\\:btn-action-active[data-selected],
616
- .dark .data-\\[state\\=on\\]\\:btn-action-active[data-state=on]{border-color:rgb(117 166 126 / 0.25) !important;background-color:rgb(58 106 69 / 0.15);--un-hub-text-opacity:1;color:rgb(147 198 157 / var(--un-hub-text-opacity));}
616
+ .dark .data-\\[state\\=on\\]\\:btn-action-active[data-state=on]{border-color:rgb(from var(--colors-primary-400, #75a67e) r g b / 0.25) !important;background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.15);--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-300, #93c69d) r g b / var(--un-hub-text-opacity));}
617
617
  .data-\\[selected\\]\\:btn-action-active[data-selected],
618
- .data-\\[state\\=on\\]\\:btn-action-active[data-state=on]{border-color:rgb(64 112 75 / 0.25) !important;background-color:rgb(58 106 69 / 0.1);--un-hub-text-opacity:1;color:rgb(64 112 75 / var(--un-hub-text-opacity));opacity:1 !important;}
618
+ .data-\\[state\\=on\\]\\:btn-action-active[data-state=on]{border-color:rgb(from var(--colors-primary-600, #40704b) r g b / 0.25) !important;background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.1);--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-text-opacity));opacity:1 !important;}
619
619
  .hover\\:border-base:hover{--un-hub-border-opacity:0.13;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));}
620
620
  .bg-active,
621
621
  .data-\\[state\\=checked\\]\\:bg-active[data-state=checked],
622
- .data-\\[state\\=open\\]\\:bg-active[data-state=open]{background-color:rgb(58 106 69 / 0.1);}
622
+ .data-\\[state\\=open\\]\\:bg-active[data-state=open]{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.1);}
623
623
  .dark .bg-active,
624
624
  .dark .data-\\[state\\=checked\\]\\:bg-active[data-state=checked],
625
- .dark .data-\\[state\\=open\\]\\:bg-active[data-state=open]{background-color:rgb(58 106 69 / 0.15);}
625
+ .dark .data-\\[state\\=open\\]\\:bg-active[data-state=open]{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.15);}
626
626
  .bg-ambient{--un-hub-bg-opacity:0.33;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));}
627
627
  .bg-base,
628
628
  .data-\\[state\\=active\\]\\:bg-base[data-state=active],
@@ -640,23 +640,23 @@ Make elements with the HTML hidden attribute stay hidden by default.
640
640
  .data-\\[highlighted\\]\\:bg-hover[data-highlighted]{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));}
641
641
  .bg-secondary{--un-hub-bg-opacity:1;background-color:rgb(246 246 246 / var(--un-hub-bg-opacity));}
642
642
  .dark .bg-secondary{--un-hub-bg-opacity:1;background-color:rgb(16 16 16 / var(--un-hub-bg-opacity));}
643
- .dark .hover\\:bg-active:hover{background-color:rgb(58 106 69 / 0.15);}
644
- .hover\\:bg-active:hover{background-color:rgb(58 106 69 / 0.1);}
643
+ .dark .hover\\:bg-active:hover{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.15);}
644
+ .hover\\:bg-active:hover{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.1);}
645
645
  .hover\\:bg-hover:hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));}
646
646
  .btn-action:hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));opacity:1;}
647
647
  .btn-action-sm:hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));opacity:1;}
648
648
  .btn-icon:hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));opacity:1;}
649
649
  .btn-icon-compact:hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));opacity:1;}
650
- .btn-primary:hover{--un-hub-bg-opacity:1;background-color:rgb(64 112 75 / var(--un-hub-bg-opacity));}
650
+ .btn-primary:hover{--un-hub-bg-opacity:1;background-color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-bg-opacity));}
651
651
  .bg-gradient-more{--un-hub-gradient-from-position:0%;--un-hub-gradient-from:rgb(255 255 255 / var(--un-hub-from-opacity, 1)) var(--un-hub-gradient-from-position);--un-hub-gradient-to-position:100%;--un-hub-gradient-to:rgb(255 255 255 / 0) var(--un-hub-gradient-to-position);--un-hub-gradient-stops:var(--un-hub-gradient-from), var(--un-hub-gradient-to);--un-hub-gradient-via-position:50%;--un-hub-gradient-to:rgb(255 255 255 / 0);--un-hub-gradient-stops:var(--un-hub-gradient-from), rgb(255 255 255 / 0.8) var(--un-hub-gradient-via-position), var(--un-hub-gradient-to);--un-hub-gradient-shape:to top in oklch;--un-hub-gradient:var(--un-hub-gradient-shape), var(--un-hub-gradient-stops);background-image:linear-gradient(var(--un-hub-gradient));}
652
652
  .dark .bg-gradient-more{--un-hub-gradient-from-position:0%;--un-hub-gradient-from:rgb(17 17 17 / var(--un-hub-from-opacity, 1)) var(--un-hub-gradient-from-position);--un-hub-gradient-to-position:100%;--un-hub-gradient-to:rgb(17 17 17 / 0) var(--un-hub-gradient-to-position);--un-hub-gradient-stops:var(--un-hub-gradient-from), var(--un-hub-gradient-to);--un-hub-gradient-via-position:50%;--un-hub-gradient-to:rgb(17 17 17 / 0);--un-hub-gradient-stops:var(--un-hub-gradient-from), rgb(17 17 17 / 0.8) var(--un-hub-gradient-via-position), var(--un-hub-gradient-to);}
653
653
  .text-micro{font-size:10px;line-height:1.4;}
654
654
  .color-active,
655
655
  .data-\\[state\\=active\\]\\:color-active[data-state=active],
656
- .data-\\[state\\=checked\\]\\:color-active[data-state=checked]{--un-hub-text-opacity:1;color:rgb(64 112 75 / var(--un-hub-text-opacity));}
656
+ .data-\\[state\\=checked\\]\\:color-active[data-state=checked]{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-text-opacity));}
657
657
  .dark .color-active,
658
658
  .dark .data-\\[state\\=active\\]\\:color-active[data-state=active],
659
- .dark .data-\\[state\\=checked\\]\\:color-active[data-state=checked]{--un-hub-text-opacity:1;color:rgb(147 198 157 / var(--un-hub-text-opacity));}
659
+ .dark .data-\\[state\\=checked\\]\\:color-active[data-state=checked]{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-300, #93c69d) r g b / var(--un-hub-text-opacity));}
660
660
  .color-base,
661
661
  .data-\\[state\\=active\\]\\:color-base[data-state=active],
662
662
  .data-\\[state\\=on\\]\\:color-base[data-state=on]{--un-hub-text-opacity:1;color:rgb(38 38 38 / var(--un-hub-text-opacity));}
@@ -667,8 +667,8 @@ Make elements with the HTML hidden attribute stay hidden by default.
667
667
  .dark .color-faint{--un-hub-text-opacity:1;color:rgb(115 115 115 / var(--un-hub-text-opacity));}
668
668
  .color-muted{--un-hub-text-opacity:1;color:rgb(82 82 82 / var(--un-hub-text-opacity));}
669
669
  .dark .color-muted{--un-hub-text-opacity:1;color:rgb(163 163 163 / var(--un-hub-text-opacity));}
670
- .dark .hover\\:color-active:hover{--un-hub-text-opacity:1;color:rgb(147 198 157 / var(--un-hub-text-opacity));}
671
- .hover\\:color-active:hover{--un-hub-text-opacity:1;color:rgb(64 112 75 / var(--un-hub-text-opacity));}
670
+ .dark .hover\\:color-active:hover{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-300, #93c69d) r g b / var(--un-hub-text-opacity));}
671
+ .hover\\:color-active:hover{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-text-opacity));}
672
672
  .dark .hover\\:color-base:hover{--un-hub-text-opacity:1;color:rgb(229 229 229 / var(--un-hub-text-opacity));}
673
673
  .hover\\:color-base:hover{--un-hub-text-opacity:1;color:rgb(38 38 38 / var(--un-hub-text-opacity));}
674
674
  .dark .btn-icon,
@@ -681,11 +681,11 @@ Make elements with the HTML hidden attribute stay hidden by default.
681
681
  .disabled\\:op-mute:disabled{opacity:0.3;}
682
682
  .dark .placeholder\\:op-mute::placeholder{opacity:0.25;}
683
683
  .placeholder\\:op-mute::placeholder{opacity:0.3;}
684
- .btn-action:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(87 136 97 / 0.4);}
685
- .btn-action-sm:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(87 136 97 / 0.4);}
686
- .btn-icon:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(87 136 97 / 0.4);}
687
- .btn-icon-compact:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(87 136 97 / 0.4);}
688
- .btn-primary:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(87 136 97 / 0.4);}
684
+ .btn-action:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
685
+ .btn-action-sm:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
686
+ .btn-icon:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
687
+ .btn-icon-compact:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
688
+ .btn-primary:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
689
689
  .dark .icon-catppuccin{--un-hub-brightness:brightness(1);filter:var(--un-hub-blur) var(--un-hub-brightness) var(--un-hub-contrast) var(--un-hub-drop-shadow) var(--un-hub-grayscale) var(--un-hub-hue-rotate) var(--un-hub-invert) var(--un-hub-saturate) var(--un-hub-sepia);--un-hub-hue-rotate:hue-rotate(0deg);--un-hub-invert:invert(0);}
690
690
  .icon-catppuccin{--un-hub-brightness:brightness(0.8);filter:var(--un-hub-blur) var(--un-hub-brightness) var(--un-hub-contrast) var(--un-hub-drop-shadow) var(--un-hub-grayscale) var(--un-hub-hue-rotate) var(--un-hub-invert) var(--un-hub-saturate) var(--un-hub-sepia);--un-hub-hue-rotate:hue-rotate(180deg);--un-hub-invert:invert(1);}
691
691
  @media (min-width: 640px){
@@ -978,20 +978,20 @@ Make elements with the HTML hidden attribute stay hidden by default.
978
978
  .border-current{border-color:currentColor;}
979
979
  .border-error\\!{--un-hub-border-opacity:1 !important;border-color:rgb(246 61 104 / var(--un-hub-border-opacity)) !important;}
980
980
  .border-green-500\\/20{border-color:rgb(34 197 94 / 0.2);}
981
- .border-primary-400\\/60{border-color:rgb(117 166 126 / 0.6);}
982
- .border-primary\\/30{border-color:rgb(58 106 69 / 0.3);}
981
+ .border-primary-400\\/60{border-color:rgb(from var(--colors-primary-400, #75a67e) r g b / 0.6);}
982
+ .border-primary\\/30{border-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.3);}
983
983
  .border-red-500\\/20{border-color:rgb(239 68 68 / 0.2);}
984
984
  .border-red-500\\/60{border-color:rgb(239 68 68 / 0.6);}
985
985
  .border-red-500\\/70{border-color:rgb(239 68 68 / 0.7);}
986
986
  .border-transparent{border-color:transparent;}
987
- .dark .dark\\:border-primary-400\\/50{border-color:rgb(117 166 126 / 0.5);}
988
- .dark .dark\\:data-\\[state\\=active\\]\\:border-primary-400[data-state=active]{--un-hub-border-opacity:1;border-color:rgb(117 166 126 / var(--un-hub-border-opacity));}
987
+ .dark .dark\\:border-primary-400\\/50{border-color:rgb(from var(--colors-primary-400, #75a67e) r g b / 0.5);}
988
+ .dark .dark\\:data-\\[state\\=active\\]\\:border-primary-400[data-state=active]{--un-hub-border-opacity:1;border-color:rgb(from var(--colors-primary-400, #75a67e) r g b / var(--un-hub-border-opacity));}
989
989
  .data-\\[state\\=active\\]\\:border-primary-500[data-state=active],
990
- .data-\\[state\\=checked\\]\\:border-primary-500[data-state=checked]{--un-hub-border-opacity:1;border-color:rgb(87 136 97 / var(--un-hub-border-opacity));}
990
+ .data-\\[state\\=checked\\]\\:border-primary-500[data-state=checked]{--un-hub-border-opacity:1;border-color:rgb(from var(--colors-primary-500, #578861) r g b / var(--un-hub-border-opacity));}
991
991
  .focus-within\\:border-gray\\/15:focus-within{border-color:rgb(156 163 175 / 0.15);}
992
992
  .hover\\:border-gray\\/10:hover{border-color:rgb(156 163 175 / 0.1);}
993
- .focus\\:border-primary-500:focus{--un-hub-border-opacity:1;border-color:rgb(87 136 97 / var(--un-hub-border-opacity));}
994
- .focus\\:border-primary\\/40:focus{border-color:rgb(58 106 69 / 0.4);}
993
+ .focus\\:border-primary-500:focus{--un-hub-border-opacity:1;border-color:rgb(from var(--colors-primary-500, #578861) r g b / var(--un-hub-border-opacity));}
994
+ .focus\\:border-primary\\/40:focus{border-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.4);}
995
995
  .border-t-transparent{border-top-color:transparent;}
996
996
  .rounded{border-radius:0.25rem;}
997
997
  .rounded-full{border-radius:9999px;}
@@ -1027,13 +1027,13 @@ Make elements with the HTML hidden attribute stay hidden by default.
1027
1027
  .bg-green{--un-hub-bg-opacity:1;background-color:rgb(74 222 128 / var(--un-hub-bg-opacity));}
1028
1028
  .bg-green-400\\/10{background-color:rgb(74 222 128 / 0.1);}
1029
1029
  .bg-orange\\/10{background-color:rgb(251 146 60 / 0.1);}
1030
- .bg-primary{--un-hub-bg-opacity:1;background-color:rgb(58 106 69 / var(--un-hub-bg-opacity));}
1030
+ .bg-primary{--un-hub-bg-opacity:1;background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / var(--un-hub-bg-opacity));}
1031
1031
  .bg-primary-500,
1032
- .data-\\[state\\=checked\\]\\:bg-primary-500[data-state=checked]{--un-hub-bg-opacity:1;background-color:rgb(87 136 97 / var(--un-hub-bg-opacity));}
1033
- .bg-primary-500\\/20{background-color:rgb(87 136 97 / 0.2);}
1034
- .bg-primary\\/10{background-color:rgb(58 106 69 / 0.1);}
1035
- .bg-primary\\/15{background-color:rgb(58 106 69 / 0.15);}
1036
- .bg-primary\\/20{background-color:rgb(58 106 69 / 0.2);}
1032
+ .data-\\[state\\=checked\\]\\:bg-primary-500[data-state=checked]{--un-hub-bg-opacity:1;background-color:rgb(from var(--colors-primary-500, #578861) r g b / var(--un-hub-bg-opacity));}
1033
+ .bg-primary-500\\/20{background-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.2);}
1034
+ .bg-primary\\/10{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.1);}
1035
+ .bg-primary\\/15{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.15);}
1036
+ .bg-primary\\/20{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.2);}
1037
1037
  .bg-red{--un-hub-bg-opacity:1;background-color:rgb(248 113 113 / var(--un-hub-bg-opacity));}
1038
1038
  .bg-red-400\\/10,
1039
1039
  .bg-red\\/10{background-color:rgb(248 113 113 / 0.1);}
@@ -1052,7 +1052,7 @@ Make elements with the HTML hidden attribute stay hidden by default.
1052
1052
  .hover\\:bg-gray\\/20:hover{background-color:rgb(156 163 175 / 0.2);}
1053
1053
  .hover\\:bg-gray\\/5:hover{background-color:rgb(156 163 175 / 0.05);}
1054
1054
  .hover\\:bg-orange\\/20:hover{background-color:rgb(251 146 60 / 0.2);}
1055
- .hover\\:bg-primary\\/25:hover{background-color:rgb(58 106 69 / 0.25);}
1055
+ .hover\\:bg-primary\\/25:hover{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.25);}
1056
1056
  .hover\\:bg-red-600\\!:hover{--un-hub-bg-opacity:1 !important;background-color:rgb(220 38 38 / var(--un-hub-bg-opacity)) !important;}
1057
1057
  .hover\\:bg-red\\/20:hover{background-color:rgb(248 113 113 / 0.2);}
1058
1058
  .stroke-current{stroke:currentColor;}
@@ -1135,7 +1135,7 @@ Make elements with the HTML hidden attribute stay hidden by default.
1135
1135
  .dark .dark\\:text-green-300{--un-hub-text-opacity:1;color:rgb(134 239 172 / var(--un-hub-text-opacity));}
1136
1136
  .dark .dark\\:text-green-400,
1137
1137
  .text-green{--un-hub-text-opacity:1;color:rgb(74 222 128 / var(--un-hub-text-opacity));}
1138
- .dark .dark\\:text-primary-300{--un-hub-text-opacity:1;color:rgb(147 198 157 / var(--un-hub-text-opacity));}
1138
+ .dark .dark\\:text-primary-300{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-300, #93c69d) r g b / var(--un-hub-text-opacity));}
1139
1139
  .dark .dark\\:text-red-300{--un-hub-text-opacity:1;color:rgb(252 165 165 / var(--un-hub-text-opacity));}
1140
1140
  .dark .dark\\:text-red-400,
1141
1141
  .text-red{--un-hub-text-opacity:1;color:rgb(248 113 113 / var(--un-hub-text-opacity));}
@@ -1148,8 +1148,8 @@ Make elements with the HTML hidden attribute stay hidden by default.
1148
1148
  .text-green-700{--un-hub-text-opacity:1;color:rgb(21 128 61 / var(--un-hub-text-opacity));}
1149
1149
  .text-orange{--un-hub-text-opacity:1;color:rgb(251 146 60 / var(--un-hub-text-opacity));}
1150
1150
  .text-primary,
1151
- .text-primary\\/bg-active{--un-hub-text-opacity:1;color:rgb(58 106 69 / var(--un-hub-text-opacity));}
1152
- .text-primary-600{--un-hub-text-opacity:1;color:rgb(64 112 75 / var(--un-hub-text-opacity));}
1151
+ .text-primary\\/bg-active{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / var(--un-hub-text-opacity));}
1152
+ .text-primary-600{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-text-opacity));}
1153
1153
  .text-red-500{--un-hub-text-opacity:1;color:rgb(239 68 68 / var(--un-hub-text-opacity));}
1154
1154
  .text-red-600{--un-hub-text-opacity:1;color:rgb(220 38 38 / var(--un-hub-text-opacity));}
1155
1155
  .text-red-700{--un-hub-text-opacity:1;color:rgb(185 28 28 / var(--un-hub-text-opacity));}
@@ -1172,7 +1172,7 @@ Make elements with the HTML hidden attribute stay hidden by default.
1172
1172
  .underline{text-decoration-line:underline;}
1173
1173
  .hover\\:underline:hover{text-decoration-line:underline;}
1174
1174
  .tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
1175
- .caret-primary-500{--un-hub-caret-opacity:1;caret-color:rgb(87 136 97 / var(--un-hub-caret-opacity));}
1175
+ .caret-primary-500{--un-hub-caret-opacity:1;caret-color:rgb(from var(--colors-primary-500, #578861) r g b / var(--un-hub-caret-opacity));}
1176
1176
  .data-\\[disabled\\]\\:op50[data-disabled],
1177
1177
  .op50,
1178
1178
  .group:hover .group-hover\\:op50{opacity:0.5;}
@@ -1213,14 +1213,14 @@ Make elements with the HTML hidden attribute stay hidden by default.
1213
1213
  .focus-visible\\:ring-2:focus-visible{--un-hub-ring-width:2px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);}
1214
1214
  .focus-visible\\:ring-3:focus-visible{--un-hub-ring-width:3px;--un-hub-ring-offset-shadow:var(--un-hub-ring-inset) 0 0 0 var(--un-hub-ring-offset-width) var(--un-hub-ring-offset-color);--un-hub-ring-shadow:var(--un-hub-ring-inset) 0 0 0 calc(var(--un-hub-ring-width) + var(--un-hub-ring-offset-width)) var(--un-hub-ring-color);box-shadow:var(--un-hub-ring-offset-shadow), var(--un-hub-ring-shadow), var(--un-hub-shadow);}
1215
1215
  .ring-purple\\/50{--un-hub-ring-color:rgb(192 132 252 / 0.5);}
1216
- .focus-within\\:ring-primary-500\\/40:focus-within{--un-hub-ring-color:rgb(87 136 97 / 0.4);}
1216
+ .focus-within\\:ring-primary-500\\/40:focus-within{--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
1217
1217
  .focus-within\\:ring-red-500\\/40:focus-within{--un-hub-ring-color:rgb(239 68 68 / 0.4);}
1218
- .focus\\:ring-primary-500\\/25:focus{--un-hub-ring-color:rgb(87 136 97 / 0.25);}
1219
- .focus\\:ring-primary-500\\/40:focus{--un-hub-ring-color:rgb(87 136 97 / 0.4);}
1220
- .focus\\:ring-primary\\/30:focus{--un-hub-ring-color:rgb(58 106 69 / 0.3);}
1218
+ .focus\\:ring-primary-500\\/25:focus{--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.25);}
1219
+ .focus\\:ring-primary-500\\/40:focus{--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
1220
+ .focus\\:ring-primary\\/30:focus{--un-hub-ring-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.3);}
1221
1221
  .focus\\:ring-red-500\\/40:focus{--un-hub-ring-color:rgb(239 68 68 / 0.4);}
1222
- .focus-visible\\:ring-primary-500\\/30:focus-visible{--un-hub-ring-color:rgb(87 136 97 / 0.3);}
1223
- .focus-visible\\:ring-primary-500\\/40:focus-visible{--un-hub-ring-color:rgb(87 136 97 / 0.4);}
1222
+ .focus-visible\\:ring-primary-500\\/30:focus-visible{--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.3);}
1223
+ .focus-visible\\:ring-primary-500\\/40:focus-visible{--un-hub-ring-color:rgb(from var(--colors-primary-500, #578861) r g b / 0.4);}
1224
1224
  .backdrop-blur-0{--un-hub-backdrop-blur:blur(0);-webkit-backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);}
1225
1225
  .backdrop-blur-1{--un-hub-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);}
1226
1226
  .backdrop-blur-sm{--un-hub-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);backdrop-filter:var(--un-hub-backdrop-blur) var(--un-hub-backdrop-brightness) var(--un-hub-backdrop-contrast) var(--un-hub-backdrop-grayscale) var(--un-hub-backdrop-hue-rotate) var(--un-hub-backdrop-invert) var(--un-hub-backdrop-opacity) var(--un-hub-backdrop-saturate) var(--un-hub-backdrop-sepia);}
@@ -1249,15 +1249,15 @@ Make elements with the HTML hidden attribute stay hidden by default.
1249
1249
  *,::before,::after{border-color:#8882}
1250
1250
  /* layer: shortcuts */
1251
1251
  .border-base{--un-hub-border-opacity:0.13;border-color:rgb(136 136 136 / var(--un-hub-border-opacity));}
1252
- .bg-active{background-color:rgb(58 106 69 / 0.1);}
1253
- .dark .bg-active{background-color:rgb(58 106 69 / 0.15);}
1252
+ .bg-active{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.1);}
1253
+ .dark .bg-active{background-color:rgb(from var(--colors-primary-DEFAULT, #3a6a45) r g b / 0.15);}
1254
1254
  .bg-base{--un-hub-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-hub-bg-opacity));}
1255
1255
  .dark .bg-base{--un-hub-bg-opacity:1;background-color:rgb(17 17 17 / var(--un-hub-bg-opacity));}
1256
1256
  .bg-hover{--un-hub-bg-opacity:0.13;background-color:rgb(136 136 136 / var(--un-hub-bg-opacity));}
1257
1257
  .bg-secondary{--un-hub-bg-opacity:1;background-color:rgb(246 246 246 / var(--un-hub-bg-opacity));}
1258
1258
  .dark .bg-secondary{--un-hub-bg-opacity:1;background-color:rgb(16 16 16 / var(--un-hub-bg-opacity));}
1259
- .color-active{--un-hub-text-opacity:1;color:rgb(64 112 75 / var(--un-hub-text-opacity));}
1260
- .dark .color-active{--un-hub-text-opacity:1;color:rgb(147 198 157 / var(--un-hub-text-opacity));}
1259
+ .color-active{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-600, #40704b) r g b / var(--un-hub-text-opacity));}
1260
+ .dark .color-active{--un-hub-text-opacity:1;color:rgb(from var(--colors-primary-300, #93c69d) r g b / var(--un-hub-text-opacity));}
1261
1261
  .color-base{--un-hub-text-opacity:1;color:rgb(38 38 38 / var(--un-hub-text-opacity));}
1262
1262
  .dark .color-base{--un-hub-text-opacity:1;color:rgb(229 229 229 / var(--un-hub-text-opacity));}
1263
1263
  .color-faint,
@@ -1271,11 +1271,11 @@ Make elements with the HTML hidden attribute stay hidden by default.
1271
1271
  * Primary color as a single overridable variable: \`--devframe-primary\`.
1272
1272
  *
1273
1273
  * Appended AFTER the UnoCSS output (see \`scripts/build-css.ts\`) so this block
1274
- * wins over Wind4's own \`:root, :host\` primary declarations, and imported after
1274
+ * wins over Wind3's own \`:root, :host\` primary declarations, and imported after
1275
1275
  * \`virtual:uno.css\` in the Storybook preview for the same reason.
1276
1276
  *
1277
- * Each Wind4 stop (\`--colors-primary-*\`) is derived from \`--devframe-primary\`
1278
- * via \`color-mix\`. When \`--devframe-primary\` is unset, the intermediate
1277
+ * Each stop (\`--colors-primary-*\`) is derived from \`--devframe-primary\` via
1278
+ * \`color-mix\`. When \`--devframe-primary\` is unset, the intermediate
1279
1279
  * \`--devframe-primary-<stop>\` vars become guaranteed-invalid (their \`color-mix\`
1280
1280
  * references an unset var with no fallback), so each \`--colors-primary-<stop>\`
1281
1281
  * falls back to the exact devframe default hex - the default look is preserved,
@@ -1284,6 +1284,16 @@ Make elements with the HTML hidden attribute stay hidden by default.
1284
1284
  * everything, and setting it on a group's chrome container retints just that
1285
1285
  * group (the group-accent mechanism).
1286
1286
  *
1287
+ * The dock's shadow root is built on Wind3, which bakes \`primary\`-based
1288
+ * utilities (\`text-primary\`, \`bg-primary\`, \`btn-primary\`, \`ring-primary-500\`,
1289
+ * …) to literal \`rgb()\` triplets rather than referencing these variables —
1290
+ * \`scripts/build-css.ts\` rewires those baked colors into CSS relative-color
1291
+ * syntax reading \`--colors-primary-<stop>\` (see \`rewireBakedPrimaryColors\` in
1292
+ * \`design/uno.config.ts\`) so this block actually retints them, not just the
1293
+ * handful of rules (the glow gradient below) that reference the variables
1294
+ * directly. The stops declared here (\`DEFAULT\`/\`600\`/\`500\`/\`400\`/\`300\`) must
1295
+ * match \`OVERRIDABLE_PRIMARY_STOPS\` there.
1296
+ *
1287
1297
  * \`:host\` is the effective selector inside the dock's shadow root; \`:root\` is
1288
1298
  * for the light-DOM Storybook preview (it matches nothing in the shadow root).
1289
1299
  *
@@ -1 +1 @@
1
- import{r as e}from"./branding-V4rxaera.js";import{B as t,F as n,H as r,I as i,J as a,K as o,L as s,N as c,U as l,V as u,_ as d,d as f,f as p,g as m,h,j as g,l as _,m as v,n as y,p as b,q as x,r as S,s as C,z as w}from"./keybindings-CRo5AVOI.js";import{t as T}from"./preload-helper-CyyvF4ac.js";import{n as E,t as ee}from"./client-BN8PboYb.js";import{B as D,G as O,J as k,V as A,X as te,q as j,x as M}from"./color-mode-BPeeQXcs.js";var N=new WeakMap;async function ne(e,t,n,r){if(N.has(t))return N.get(t);let i=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),a=m(i),s=j(new Map),c=m(n),l=M(()=>c.value.commandShortcuts??{}),u=k(!1),d=b(),f=()=>r?r():{clientType:e,dockOpen:!1,paletteOpen:u.value,dockSelectedId:``,popupOpen:d.value},p=M(()=>[...a.value,...Array.from(s.values())]),h=M(()=>{let e=f();return S(p.value,e).filter(e=>e.showInPalette!==!1)});function g(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function _(e){let t=p.value.find(t=>t.id===e);if(t)return t;for(let t of p.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function v(e,...n){let r=_(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=f();if(!o(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function y(e){let t=l.value[e];return t===void 0?_(e)?.keybindings??[]:t}typeof window<`u`&&P(f,p,y,v);let x=j({commands:p,paletteCommands:h,register:g,execute:v,getKeybindings:y,settings:O(n),paletteOpen:u});return N.set(t,x),x}function P(e,t,n,r){let i=i=>{let a=C(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let s=e(),c=y(t,n);for(let{id:e,keybinding:n}of c){if(n.key!==a)continue;let c=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(c?.when&&!o(c.when,s))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),D(p(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function F(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function I(e,t){return E({context:()=>e(),manifest:t})}function L(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function R(e,t){let n=L(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);try{let e=(await T(()=>import(n.importFrom),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${n.importFrom}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script`,e),e}}var z=new Map;function re(e,t){if(e.type!==`action`&&z.has(e.id))return z.get(e.id);let n=R(e,t);return e.type!==`action`&&z.set(e.id,n),n}var B=new WeakMap;async function V(o,p,y){if(B.has(p))return B.get(p);let S=await d(p),C=await p.sharedState.get(a,{initialValue:{}}),T=m(C),E=j(new Map),N=M(()=>{let e=S.value,t;if(E.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(E.get(t.id)??t);for(let[e,t]of E)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===r.id)?t:[...t,r]}),P=k(null),L=M(()=>N.value.find(e=>e.id===P.value)??u.find(e=>e.id===P.value)??null),R=j(new Map);A(()=>{for(let e of N.value){if(R.has(e.id)){R.get(e.id).entryMeta=e;continue}R.set(e.id,h(e,L))}});let z=(e,t=!1)=>{if(E.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return E.set(e.id,e),R.has(e.id)||R.set(e.id,h(e,L)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=E.get(e.id);n&&E.set(e.id,{...n,...t})},dispose:()=>{E.delete(e.id)&&(R.delete(e.id),P.value===e.id&&(P.value=null))}}},V=e=>{if(!E.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);E.set(e.id,e)};y||=k(v());let H,U,W=O(await(async()=>(U||=p.sharedState.get(`devframe:user-settings`,{initialValue:x()}),U))()),G=m(W),K,ie=b(),q=()=>({clientType:o,dockOpen:y.value.open,paletteOpen:K?.paletteOpen??!1,dockSelectedId:P.value??``,popupOpen:ie.value}),J=new Map,Y=async(e=null)=>{if(e==null)return P.value=null,y.value.open=!1,!0;if(e===`~client-auth-notice`)return P.value=e,y.value.open=!0,!0;let r=N.value.find(t=>t.id===e);if(!r)return!1;if(r.type===`group`){let e=t(N.value,r.id,r.defaultChildId,q())?.id??n(N.value,r.id)[0]?.id;return e?Y(e):!1}if(r.type===`iframe`&&r.subTabs){let t=r.frameId??r.id,n=J.get(t);if(n&&n!==e&&N.value.some(e=>e.id===n))return Y(n)}if(r.type===`action`&&await f(o,r.id)!=null)return!1;if(r.type===`action`||r.type===`custom-render`||r.type===`iframe`&&r.clientScript){let t=R.get(e),n=F(p);await re(r,j({...te(H),current:t,messages:n,logs:n}))}return r.type===`iframe`&&r.frameId&&!r.subTabs&&J.set(r.frameId,r.id),P.value=r.id,y.value.open=!0,!0},X=async e=>P.value===e?Y(null):Y(e),Z=new Map,Q=new Map,ae=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=Z.get(n);if(r){if(r.iframe===t)return;r.dispose(),Z.delete(n)}let i=ee({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:z,switchEntry:Y,getStateById:e=>R.get(e)}});Z.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};D(N,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Q.has(n.id)))continue;let e=R.get(n.id);e&&(Q.set(n.id,n.frameId??n.id),ae(n,e))}for(let[e,n]of[...Q])t.has(e)||(Q.delete(e),Z.get(n)?.dispose(),Z.delete(n))},{immediate:!0}),p.client.register({name:`devframe:docks:activate`,type:`action`,handler:e=>{e?.dockId&&Y(e.dockId)}});let oe=M(()=>g(N.value,G.value,{whenContext:q(),collapseGroups:!0}));K=await ne(o,p,W,q),K.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{K.paletteOpen=!K.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{y.value.open=!1,P.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{Y(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${e().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(l))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:o===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{y.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{y.value.mode=`edge`}}]}]);let $;return A(()=>{$?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:w(e.icon),action:()=>{X(e.id)}}),t=s(N.value),n=N.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=i(N.value,t.id,G.value,{whenContext:q()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:c(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&($=K.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))}),H=j({panel:{store:y,isDragging:!1,isResizing:!1,isVertical:M(()=>y.value.position===`left`||y.value.position===`right`)},docks:{selectedId:P,selected:L,entries:N,entryToStateMap:O(R),groupedEntries:oe,settings:W,getStateById:e=>R.get(e),switchEntry:Y,toggleEntry:X,register:z,update:V},commands:K,when:{get context(){return q()}},connection:{get status(){return p.status},get error(){return p.connectionError},events:p.events},renderers:O(I(()=>H,()=>T.value)),rpc:O(p),clientType:o}),_(o,async e=>{let t=N.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:Y(t.id)}),B.set(p,H),H}export{V as createDocksContext};
1
+ import{r as e}from"./branding-V4rxaera.js";import{B as t,F as n,H as r,I as i,J as a,K as o,L as s,N as c,U as l,V as u,_ as d,d as f,f as p,g as m,h,j as g,l as _,m as v,n as y,p as b,q as x,r as S,s as C,z as w}from"./keybindings-CTWhgJUw.js";import{t as T}from"./preload-helper-CyyvF4ac.js";import{n as E,t as ee}from"./client-BN8PboYb.js";import{B as D,G as O,J as k,V as A,X as te,q as j,x as M}from"./color-mode-BPeeQXcs.js";var N=new WeakMap;async function ne(e,t,n,r){if(N.has(t))return N.get(t);let i=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),a=m(i),s=j(new Map),c=m(n),l=M(()=>c.value.commandShortcuts??{}),u=k(!1),d=b(),f=()=>r?r():{clientType:e,dockOpen:!1,paletteOpen:u.value,dockSelectedId:``,popupOpen:d.value},p=M(()=>[...a.value,...Array.from(s.values())]),h=M(()=>{let e=f();return S(p.value,e).filter(e=>e.showInPalette!==!1)});function g(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function _(e){let t=p.value.find(t=>t.id===e);if(t)return t;for(let t of p.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function v(e,...n){let r=_(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=f();if(!o(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function y(e){let t=l.value[e];return t===void 0?_(e)?.keybindings??[]:t}typeof window<`u`&&P(f,p,y,v);let x=j({commands:p,paletteCommands:h,register:g,execute:v,getKeybindings:y,settings:O(n),paletteOpen:u});return N.set(t,x),x}function P(e,t,n,r){let i=i=>{let a=C(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let s=e(),c=y(t,n);for(let{id:e,keybinding:n}of c){if(n.key!==a)continue;let c=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(c?.when&&!o(c.when,s))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),D(p(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function F(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function I(e,t){return E({context:()=>e(),manifest:t})}function L(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function R(e,t){let n=L(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);try{let e=(await T(()=>import(n.importFrom),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${n.importFrom}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script`,e),e}}var z=new Map;function re(e,t){if(e.type!==`action`&&z.has(e.id))return z.get(e.id);let n=R(e,t);return e.type!==`action`&&z.set(e.id,n),n}var B=new WeakMap;async function V(o,p,y){if(B.has(p))return B.get(p);let S=await d(p),C=await p.sharedState.get(a,{initialValue:{}}),T=m(C),E=j(new Map),N=M(()=>{let e=S.value,t;if(E.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(E.get(t.id)??t);for(let[e,t]of E)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===r.id)?t:[...t,r]}),P=k(null),L=M(()=>N.value.find(e=>e.id===P.value)??u.find(e=>e.id===P.value)??null),R=j(new Map);A(()=>{for(let e of N.value){if(R.has(e.id)){R.get(e.id).entryMeta=e;continue}R.set(e.id,h(e,L))}});let z=(e,t=!1)=>{if(E.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return E.set(e.id,e),R.has(e.id)||R.set(e.id,h(e,L)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=E.get(e.id);n&&E.set(e.id,{...n,...t})},dispose:()=>{E.delete(e.id)&&(R.delete(e.id),P.value===e.id&&(P.value=null))}}},V=e=>{if(!E.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);E.set(e.id,e)};y||=k(v());let H,U,W=O(await(async()=>(U||=p.sharedState.get(`devframe:user-settings`,{initialValue:x()}),U))()),G=m(W),K,ie=b(),q=()=>({clientType:o,dockOpen:y.value.open,paletteOpen:K?.paletteOpen??!1,dockSelectedId:P.value??``,popupOpen:ie.value}),J=new Map,Y=async(e=null)=>{if(e==null)return P.value=null,y.value.open=!1,!0;if(e===`~client-auth-notice`)return P.value=e,y.value.open=!0,!0;let r=N.value.find(t=>t.id===e);if(!r)return!1;if(r.type===`group`){let e=t(N.value,r.id,r.defaultChildId,q())?.id??n(N.value,r.id)[0]?.id;return e?Y(e):!1}if(r.type===`iframe`&&r.subTabs){let t=r.frameId??r.id,n=J.get(t);if(n&&n!==e&&N.value.some(e=>e.id===n))return Y(n)}if(r.type===`action`&&await f(o,r.id)!=null)return!1;if(r.type===`action`||r.type===`custom-render`||r.type===`iframe`&&r.clientScript){let t=R.get(e),n=F(p);await re(r,j({...te(H),current:t,messages:n,logs:n}))}return r.type===`iframe`&&r.frameId&&!r.subTabs&&J.set(r.frameId,r.id),P.value=r.id,y.value.open=!0,!0},X=async e=>P.value===e?Y(null):Y(e),Z=new Map,Q=new Map,ae=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=Z.get(n);if(r){if(r.iframe===t)return;r.dispose(),Z.delete(n)}let i=ee({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:z,switchEntry:Y,getStateById:e=>R.get(e)}});Z.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};D(N,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Q.has(n.id)))continue;let e=R.get(n.id);e&&(Q.set(n.id,n.frameId??n.id),ae(n,e))}for(let[e,n]of[...Q])t.has(e)||(Q.delete(e),Z.get(n)?.dispose(),Z.delete(n))},{immediate:!0}),p.client.register({name:`devframe:docks:activate`,type:`action`,handler:e=>{e?.dockId&&Y(e.dockId)}});let oe=M(()=>g(N.value,G.value,{whenContext:q(),collapseGroups:!0}));K=await ne(o,p,W,q),K.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{K.paletteOpen=!K.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{y.value.open=!1,P.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{Y(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${e().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(l))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:o===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{y.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{y.value.mode=`edge`}}]}]);let $;return A(()=>{$?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:w(e.icon),action:()=>{X(e.id)}}),t=s(N.value),n=N.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=i(N.value,t.id,G.value,{whenContext:q()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:c(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&($=K.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))}),H=j({panel:{store:y,isDragging:!1,isResizing:!1,isVertical:M(()=>y.value.position===`left`||y.value.position===`right`)},docks:{selectedId:P,selected:L,entries:N,entryToStateMap:O(R),groupedEntries:oe,settings:W,getStateById:e=>R.get(e),switchEntry:Y,toggleEntry:X,register:z,update:V},commands:K,when:{get context(){return q()}},connection:{get status(){return p.status},get error(){return p.connectionError},events:p.events},renderers:O(I(()=>H,()=>T.value)),rpc:O(p),clientType:o}),_(o,async e=>{let t=N.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:Y(t.id)}),B.set(p,H),H}export{V as createDocksContext};
@@ -0,0 +1,4 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./branding-V4rxaera.js","./color-mode-BPeeQXcs.js","./context-64bG3l0N.js","./keybindings-CTWhgJUw.js","./preload-helper-CyyvF4ac.js","./client-BN8PboYb.js","./DockStandalone-zGNmPe_C.js"])))=>i.map(i=>d[i]);
2
+ import{n as e,t}from"./preload-helper-CyyvF4ac.js";import{r as n}from"./client-BN8PboYb.js";import{V as r,n as i}from"./color-mode-BPeeQXcs.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function a(e){return typeof e==`string`?`'${e}'`:new o().serialize(e)}var o=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}(),s=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],c=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],l=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,u=[],d=class{_data=new f;_hash=new f([...s]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],l=n[5],d=n[6],f=n[7];for(let n=0;n<64;n++){if(n<16)u[n]=e[t+n]|0;else{let e=u[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=u[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;u[n]=t+u[n-7]+i+u[n-16]}let p=s&l^~s&d,m=r&i^r&a^i&a,h=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),g=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),_=f+g+p+c[n]+u[n],v=h+m;f=d,d=l,l=s,s=o+_|0,o=a,a=i,i=r,r=_+v|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+l|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0}_append(e){typeof e==`string`&&(e=f.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e<r;e+=16)this._doProcessBlock(this._data.words,e);t=this._data.words.splice(0,r),this._data.sigBytes-=i}return new f(t,i)}},f=class e{words;sigBytes;constructor(e,t){e=this.words=e||[],this.sigBytes=t===void 0?e.length*4:t}static fromUtf8(t){let n=unescape(encodeURIComponent(t)),r=n.length,i=[];for(let e=0;e<r;e++)i[e>>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t<this.sigBytes;t+=3){let n=this.words[t>>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6<this.sigBytes*8;n++)e.push(l.charAt(a>>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<e.sigBytes;t++){let n=e.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<e.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function p(e){return new d().finalize(e).toBase64()}function m(e){return p(a(e))}function h(e){return m(e)}function g(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var _={blue:g(34,39),cyan:g(36,39),gray:g(90,39),green:g(32,39),red:g(31,39),yellow:g(33,39),bold:g(1,22),dim:g(2,22),reset:g(0,0),underline:g(4,24)},v=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function y(e=21){let t=``,n=e;for(;n--;)t+=v[Math.random()*64|0];return t}var b=Symbol.for(`immer-nothing`),x=Symbol.for(`immer-draftable`),S=Symbol.for(`immer-state`),C=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function w(e,...t){{let n=C[e],r=P(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var T=Object,E=T.getPrototypeOf,D=`constructor`,ee=`prototype`,te=`configurable`,ne=`enumerable`,re=`writable`,ie=`value`,O=e=>!!e&&!!e[S];function k(e){return e?se(e)||de(e)||!!e[x]||!!e[D]?.[x]||fe(e)||pe(e):!1}var ae=T[ee][D].toString(),oe=new WeakMap;function se(e){if(!e||!N(e))return!1;let t=E(e);if(t===null||t===T[ee])return!0;let n=T.hasOwnProperty.call(t,D)&&t[D];if(n===Object)return!0;if(!P(n))return!1;let r=oe.get(n);return r===void 0&&(r=Function.toString.call(n),oe.set(n,r)),r===ae}function ce(e,t,n=!0){A(e)===0?(n?Reflect.ownKeys(e):T.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function A(e){let t=e[S];return t?t.type_:de(e)?1:fe(e)?2:pe(e)?3:0}var j=(e,t,n=A(e))=>n===2?e.has(t):T[ee].hasOwnProperty.call(e,t),M=(e,t,n=A(e))=>n===2?e.get(t):e[t],le=(e,t,n,r=A(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function ue(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var de=Array.isArray,fe=e=>e instanceof Map,pe=e=>e instanceof Set,N=e=>typeof e==`object`,P=e=>typeof e==`function`,me=e=>typeof e==`boolean`;function he(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var ge=e=>N(e)?e?.[S]:null,F=e=>e.copy_||e.base_,_e=e=>e.modified_?e.copy_:e.base_;function ve(e,t){if(fe(e))return new Map(e);if(pe(e))return new Set(e);if(de(e))return Array[ee].slice.call(e);let n=se(e);if(t===!0||t===`class_only`&&!n){let t=T.getOwnPropertyDescriptors(e);delete t[S];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[re]===!1&&(a[re]=!0,a[te]=!0),(a.get||a.set)&&(t[i]={[te]:!0,[re]:!0,[ne]:a[ne],[ie]:e[i]})}return T.create(E(e),t)}{let t=E(e);if(t!==null&&n)return{...e};let r=T.create(t);return T.assign(r,e)}}function ye(e,t=!1){return Se(e)||O(e)||!k(e)?e:(A(e)>1&&T.defineProperties(e,{set:xe,add:xe,clear:xe,delete:xe}),T.freeze(e),t&&ce(e,(e,t)=>{ye(t,!0)},!1),e)}function be(){w(2)}var xe={[ie]:be};function Se(e){return e===null||!N(e)||T.isFrozen(e)}var Ce=`MapSet`,we=`Patches`,Te=`ArrayMethods`,Ee={};function I(e){let t=Ee[e];return t||w(0,e),t}var De=e=>!!Ee[e];function Oe(e,t){Ee[e]||(Ee[e]=t)}var ke,Ae=()=>ke,je=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:De(Ce)?I(Ce):void 0,arrayMethodsPlugin_:De(Te)?I(Te):void 0});function Me(e,t){t&&(e.patchPlugin_=I(we),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ne(e){Pe(e),e.drafts_.forEach(Ie),e.drafts_=null}function Pe(e){e===ke&&(ke=e.parent_)}var Fe=e=>ke=je(ke,e);function Ie(e){let t=e[S];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Le(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[S].modified_&&(Ne(t),w(4)),k(e)&&(e=Re(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[S].base_,e,t)}else e=Re(t,n);return ze(t,e,!0),Ne(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===b?void 0:e}function Re(e,t){if(Se(t))return t;let n=t[S];if(!n)return qe(t,e.handledSet_,e);if(!Ve(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);Ge(n,e)}return n.copy_}function ze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&ye(t,n)}function Be(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Ve=(e,t)=>e.scope_===t,He=[];function Ue(e,t,n,r){let i=F(e),a=e.type_;if(r!==void 0&&M(i,r,a)===t){le(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;ce(i,(e,n)=>{if(O(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??He;for(let e of o)le(i,e,n,a)}function We(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Ve(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=_e(i);Ue(e,i.draft_??i,a,n),Ge(i,r)})}function Ge(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Be(e)}}function Ke(e,t,n){let{scope_:r}=e;if(O(n)){let i=n[S];Ve(i,r)&&i.callbacks_.push(function(){nt(e),Ue(e,n,_e(i),t)})}else k(n)&&e.callbacks_.push(function(){let i=F(e);e.type_===3?i.has(n)&&qe(n,r.handledSet_,r):M(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&qe(M(e.copy_,t,e.type_),r.handledSet_,r)})}function qe(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||O(e)||t.has(e)||!k(e)||Se(e)?e:(t.add(e),ce(e,(r,i)=>{if(O(i)){let t=i[S];Ve(t,n)&&(le(e,r,_e(t),e.type_),Be(t))}else k(i)&&qe(i,t,n)}),e)}function Je(e,t){let n=de(e),r={type_:+!!n,scope_:t?t.scope_:Ae(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=Ye;n&&(i=[r],a=Xe);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Ye={get(e,t){if(t===S)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=F(e);if(!j(i,t,e.type_))return $e(e,i,t);let a=i[t];if(e.finalized_||!k(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&he(t))return a;if(a===Ze(e.base_,t)||Qe(e,t,a)){nt(e);let n=e.type_===1?+t:t,r=it(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in F(e)},ownKeys(e){return Reflect.ownKeys(F(e))},set(e,t,n){let r=et(F(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=Ze(F(e),t),i=r?.[S];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(ue(n,r)&&(n!==void 0||j(e.base_,t,e.type_)))return!0;nt(e),tt(e)}return e.copy_[t]===n&&(n!==void 0||j(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Ke(e,t,n),!0)},deleteProperty(e,t){return nt(e),Ze(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),tt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=F(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[re]:!0,[te]:e.type_!==1||t!==`length`,[ne]:r[ne],[ie]:n[t]}},defineProperty(){w(11)},getPrototypeOf(e){return E(e.base_)},setPrototypeOf(){w(12)}},Xe={};for(let e in Ye){let t=Ye[e];Xe[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}Xe.deleteProperty=function(e,t){return isNaN(parseInt(t))&&w(13),Xe.set.call(this,e,t,void 0)},Xe.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&w(14),Ye.set.call(this,e[0],t,n,e[0])};function Ze(e,t){let n=e[S];return(n?F(n):e)[t]}function Qe(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!k(n)||n[S]?!1:e.baseRefs_.has(n)}function $e(e,t,n){let r=et(t,n);return r?ie in r?r[ie]:r.get?.call(e.draft_):void 0}function et(e,t){if(!(t in e))return;let n=E(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=E(n)}}function tt(e){e.modified_||(e.modified_=!0,e.parent_&&tt(e.parent_))}function nt(e){e.copy_||=(e.assigned_=new Map,ve(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var rt=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(P(e)&&!P(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}P(t)||w(6),n!==void 0&&!P(n)&&w(7);let r;if(k(e)){let i=Fe(this),a=it(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Ne(i):Pe(i)}return Me(i,n),Le(r,i)}if(!e||!N(e)){if(r=t(e),r===void 0&&(r=e),r===b&&(r=void 0),this.autoFreeze_&&ye(r,!0),n){let t=[],i=[];I(we).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}w(1,e)},this.produceWithPatches=(e,t)=>{if(P(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},me(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),me(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),me(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){k(e)||w(8),O(e)&&(e=at(e));let t=Fe(this),n=it(t,e,void 0);return n[S].isManual_=!0,Pe(t),n}finishDraft(e,t){let n=e&&e[S];(!n||!n.isManual_)&&w(9);let{scope_:r}=n;return Me(r,t),Le(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=I(we).applyPatches_;return O(e)?r(e,t):this.produce(e,e=>r(e,t))}};function it(e,t,n,r){let[i,a]=fe(t)?I(Ce).proxyMap_(t,n):pe(t)?I(Ce).proxySet_(t,n):Je(t,n);return(n?.scope_??Ae()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?We(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function at(e){return O(e)||w(10,e),ot(e)}function ot(e){if(!k(e)||Se(e))return e;let t=e[S],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=ve(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=ve(e,!0);return ce(n,(e,t)=>{le(n,e,ot(t))},r),t&&(t.finalized_=!1),n}function st(){C.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=ge(M(e,n.key_)),i=M(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||j(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=M(n,r),!N(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[S];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;ce(e.assigned_,(e,l)=>{let u=M(o,e,c),f=M(s,e,c),p=l?j(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===b?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=A(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===D)&&w(19),P(o)&&n===ee&&w(19),o=M(o,n),(o===null||!N(o))&&w(18,i.join(`/`))}let s=A(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:w(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:w(17,a)}}),e}function u(e){if(!k(e))return e;if(de(e))return e.map(u);if(fe(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(pe(e))return new Set(Array.from(e).map(u));let t=Object.create(E(e));for(let n in e)t[n]=u(e[n]);return j(e,x)&&(t[x]=e[x]),t}function d(e){return O(e)?u(e):e}Oe(we,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var ct=new rt,lt=ct.produce,ut=ct.produceWithPatches.bind(ct),dt=ct.applyPatches.bind(ct),ft=1e3;function pt(e,t){if(e.add(t),e.size>ft){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function mt(t){let{enablePatches:n=!1}=t;n&&st();let r=e(),i=t.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=y())=>{a.has(t)||(st(),i=dt(i,e),pt(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,t=y())=>{if(!a.has(t)){if(pt(a,t),n){let[n,a]=ut(i,e);i=n,r.emit(`updated`,i,a,t)}else i=lt(i,e),r.emit(`updated`,i,void 0,t)}},syncIds:a}}var ht=typeof self==`object`?self:globalThis,gt=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),_t=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function vt(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=gt.has(e)?ht[e]:void 0;return n(new(r??ht.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&_t.has(a))return n(new ht[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function yt(e){return vt(new Map,e)(0)}var L=``,{toString:bt}={},{keys:xt}=Object;function St(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=bt.call(e).slice(8,-1);switch(n){case`Array`:return[1,L];case`Object`:return[2,L];case`Date`:return[3,L];case`RegExp`:return[4,L];case`Map`:return[5,L];case`Set`:return[6,L];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function Ct([e,t]){return e===0&&(t===`function`||t===`symbol`)}function wt(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=St(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of xt(r))(e||!Ct(St(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(Ct(St(n))||Ct(St(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!Ct(St(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Tt(e,t={}){let n=[];return wt(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Et,stringify:Dt}=JSON,Ot={json:!0,lossy:!0};function kt(e){return yt(Et(e))}function At(e){return Dt(Tt(e,Ot))}function jt(e){return yt(e)}function Mt(e){return At(e)}function Nt(e){return kt(e)}var Pt=256,Ft=class extends Error{name=`StreamClosedError`};function It(t={}){let n=t.id??y(),r=Math.max(0,t.replayWindow??0),i=e(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new Ft(`Cannot write to a closed stream "${n}"`);c+=1,r>0&&(o.push({seq:c,chunk:e}),o.length>r&&o.splice(0,o.length-r)),i.emit(`chunk`,c,e)}function u(e){if(s)return;s=!0;let t=Rt(e);a.abort(e),i.emit(`end`,t)}function d(){s||(s=!0,a.signal.aborted||a.abort(`stream closed`),i.emit(`end`,void 0))}function f(e){s||a.signal.aborted||a.abort(e??`aborted`)}let p=new WritableStream({write(e){l(e)},close(){d()},abort(e){u(e)}});return{id:n,signal:a.signal,get closed(){return s},get lastSeq(){return c},write:l,error:u,close:d,abort:f,writable:p,events:i,buffer:o}}function Lt(e={}){let t=e.id??y(),n=Math.max(1,e.highWaterMark??Pt),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function Rt(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}function zt(e,...t){return typeof e==`function`?e(...t):e}var Bt=Error.captureStackTrace,Vt=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,Bt?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function Ht(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function Ut(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||Ht(r,i),s=(e={},n={})=>{let r=new Vt({code:i,why:zt(a.why,e),fix:zt(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function Wt(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(`
3
+ `)}}String.fromCharCode;var Gt=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Kt=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,qt=/^([/\\]\s*){2,}[^/\\]/,Jt=/\/$|\/\?|\/#/,Yt=/^\.?\//;function Xt(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?Gt.test(e):Kt.test(e)||(t.acceptRelative?qt.test(e):!1)}function Zt(e=``,t){return t?Jt.test(e):e.endsWith(`/`)}function Qt(e=``,t){if(!t)return(Zt(e)?e.slice(0,-1):e)||`/`;if(!Zt(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function $t(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(Zt(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function en(e,t){if(tn(t)||Xt(e))return e;let n=Qt(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return rn(n,e)}function tn(e){return!e||e===`/`}function nn(e){return e&&e!==`/`}function rn(e,...t){let n=e||``;for(let e of t.filter(e=>nn(e)))if(n){let t=e.replace(Yt,``);n=$t(n)+t}else n=e;return n}function an(e,t){let n=e.match(Kt);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function on(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var sn=Math.random.bind(Math),cn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function ln(e=21){let t=``,n=e;for(;n--;)t+=cn[sn()*64|0];return t}var un=6e4,dn=e=>e,fn=dn,{clearTimeout:pn,setTimeout:mn}=globalThis;function hn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=dn,deserialize:s=fn,resolver:c,bind:l=`rpc`,timeout:u=un,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=on(),_=ln();s.i=_;let v;async function y(n=s){return u>=0&&(v=mn(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{pn(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(pn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var gn=`__connection.json`,_n=`__DEVFRAME_CONNECTION__`,vn=`x-birpc-session`,yn=`__rpc-dump/index.json`,bn=`devframe_otp`,xn=`devframe_auth_token`,Sn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>h(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},Cn=Wt(_);function wn(e,{method:t=`warn`}={}){console[t](Cn(e))}var R=Ut({docsBase:`https://devfra.me/errors`,reporters:[wn],codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,fix:"Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});async function Tn(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function En(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function Dn(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await Tn(i,n[r]);if(a.issues)throw R.DF0043({name:e,index:r,issues:En(a.issues)})}return r}async function On(e,t,n){if(!t)return n;let r=await Tn(t,n);if(r.issues)throw R.DF0044({name:e,issues:En(r.issues)});return n}async function kn(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function An(e,t){let n=e.handler;if(!n){let r=await kn(e,t);if(!r.handler)throw R.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await Dn(e.name,r,t),o=await a(...n);return await On(e.name,i,o)}}var jn=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return An(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw R.DF0021({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw R.DF0022({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await An(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw R.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function Mn(e){if(e.agent&&e.jsonSerializable!==!0)throw R.DF0019({name:e.name})}function Nn(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw z(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw z(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw z(t,`Map`,r,e);if(i instanceof Set)throw z(t,`Set`,r,e);if(i instanceof Date)throw z(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw z(t,i.constructor?.name??`class instance`,r,e)}return n})}function z(e,t,n,r){let i=Pn(n,r);return R.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Pn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var Fn=`__DEVFRAME_CONNECTION_META__`,In=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Ln(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Rn(){return Ln(_n)}function zn(){return Ln(Fn)}function B(e){if(e)return e;try{let e=localStorage.getItem(In);if(e)return e}catch{}return Ln(In)}function Bn(e){globalThis[_n]=e,globalThis[Fn]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Vn(e.authToken)}function Vn(e){try{localStorage.setItem(In,e)}catch{}globalThis[In]=e;let t=Rn();t&&(globalThis[_n]={...t,authToken:e})}function Hn(e){let t=en(gn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Un(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Wn(){let e=Rn();if(e)return Un(e,B()??e.authToken??e.connectionMeta.authToken);let t=zn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Hn(`./`),authToken:B(t.authToken)}}async function Gn(e={}){if(e.connection){let t=Un(e.connection,B(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Bn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Hn(t[0]??`./`),authToken:B(e.authToken??e.connectionMeta.authToken)};return Bn(n),n}let n=Wn();if(n){let t=Un(n,B(e.authToken??n.authToken??n.connectionMeta.authToken));return Bn(t),t}let r=[];for(let n of t){let t=en(gn,n),i=Hn(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a={connectionMeta:r,metaBaseUrl:n.url||i,authToken:B(e.authToken??r.authToken)};return Bn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var V=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Kn(e=bn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function qn(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Jn(e=bn){let t=Kn(e);return t&&qn(e),t}async function Yn(e,t={}){let n=Jn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Xn(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=e.connectionMeta.backend===`static`;function o(e,t){let n=r.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:`devframe:rpc:client-state:updated`,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.mutate(()=>o(e,n),r)}}),e.client.register({name:`devframe:rpc:client-state:patch`,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.patch(n,r)}});function s(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{a||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return i.add(e),()=>{i.delete(e)}},delete(e){let i=n.get(e);n.delete(e);let a=t.delete(e);return r.delete(e),i?.(),a},get:async(c,l)=>{if(l?.initialValue!==void 0&&r.set(c,l.initialValue),t.has(c))return t.get(c);let u=mt({initialValue:l?.initialValue,enablePatches:!1});async function d(){if(a||e.callEvent(`devframe:rpc:server-state:subscribe`,c),l?.initialValue!==void 0){t.set(c,u);for(let e of i)e(c);return e.call(`devframe:rpc:server-state:get`,c).then(e=>{e!==void 0&&u.mutate(()=>o(c,e))}).catch(e=>{console.error(`Error getting server state`,e)}),n.set(c,s(c,u)),u}{let r=await e.call(`devframe:rpc:server-state:get`,c);u.mutate(()=>o(c,r)),t.set(c,u);for(let e of i)e(c);return n.set(c,s(c,u)),u}}return new Promise(t=>{if(e.isTrusted)d().then(t);else{t(u);let n=!1;e.events.on(`rpc:is-trusted:updated`,e=>{e&&!n&&(n=!0,d())})}})}}}var Zn=new Map;function Qn(e=Zn){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?Nn(n,r??``):`s:${Mt(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Nt(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function $n(){}function er(e){let{onConnected:t=$n,onError:n=$n,onDisconnected:r=$n,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${xn}=${encodeURIComponent(e.authToken)}`);let s=Qn(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=r.search(/\n\n|\r\n\r\n/);if(e<0)break;let t=r.slice(0,e);r=r.slice(e+(r[e]===`\r`?4:2));let n=`message`,i=[];for(let e of t.split(/\r?\n/))e.startsWith(`:`)||(e.startsWith(`event:`)?n=e.slice(6).trimStart():e.startsWith(`data:`)&&i.push(e.slice(5).replace(/^ /,``)));i.length>0&&_(n,i.join(`
4
+ `))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[vn]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function tr(e,t){let{channel:n,rpcOptions:r={}}=t;return hn(e,{...n,timeout:-1,...r,proxify:!1})}var nr=``,rr=`?`,ir=`major`,H=`model`,U=`name`,W=`type`,G=`vendor`,K=`version`,q=`architecture`,ar=`console`,J=`mobile`,Y=`tablet`,X=`smarttv`,Z=`wearable`,or=`embedded`,sr=500,cr=`Amazon`,lr=`Apple`,ur=`ASUS`,dr=`BlackBerry`,Q=`Browser`,fr=`Chrome`,pr=`Edge`,mr=`Firefox`,hr=`Google`,gr=`Huawei`,_r=`LG`,vr=`Microsoft`,yr=`Motorola`,br=`Opera`,xr=`Samsung`,Sr=`Sharp`,Cr=`Sony`,wr=`Xiaomi`,Tr=`Zebra`,Er=`Facebook`,Dr=`Chromium OS`,Or=`Mac OS`;function kr(e,t={}){let n={};for(let r of Object.keys(e)){let i=t[r];n[r]=i&&i.length%2==0?[...i,...e[r]]:e[r]}return n}function Ar(e){let t={};for(let n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t}function jr(e){return e.toLowerCase()}function Mr(e,t){return typeof e==`string`&&jr(t).includes(jr(e))}function Nr(e){return typeof e==`string`?e.replace(/[^\d.]/g,nr).split(`.`)[0]:void 0}function Pr(e,t){let n=e.replace(/^\s+/,nr);return t===void 0?n:n.substring(0,t)}function Fr(e,t,n){let r=n??{};for(let n=0;n<t.length;n+=2){let i=t[n],a=t[n+1];for(let t=0;t<i.length;t++){let n=i[t];if(!n)break;let o=n.exec(e);if(o){for(let e=0;e<a.length;e++){let t=o[e+1],n=a[e];if(Array.isArray(n)){let e=n[0],i=n.length;if(i===2){let i=n[1];r[e]=typeof i==`function`?i(t,void 0,r):i}else if(i===3){let i=n[1],a=n[2];r[e]=typeof i==`function`&&!(`exec`in i)&&!(`test`in i)?t?i(t,a,r):void 0:t?t.replace(i,a):void 0}else i===4&&(r[e]=t?n[3](t.replace(n[1],n[2]),void 0,r):void 0)}else r[n]=t||void 0}return r}}}return r}function Ir(e,t){for(let n in t){let r=t[n];if(Array.isArray(r)&&r.length>0){for(let t=0;t<r.length;t++)if(Mr(r[t],e))return n===rr?void 0:n}else if(Mr(r,e))return n===rr?void 0:n}return e}var Lr={"1.0":`/8`,"1.2":`/1`,"1.3":`/3`,"2.0":`/412`,"2.0.2":`/416`,"2.0.3":`/417`,"2.0.4":`/419`,"?":`/`},Rr={ME:`4.90`,"NT 3.11":`NT3.51`,"NT 4.0":`NT4.0`,2e3:`NT 5.0`,XP:[`NT 5.1`,`NT 5.2`],Vista:`NT 6.0`,7:`NT 6.1`,8:`NT 6.2`,"8.1":`NT 6.3`,10:[`NT 6.4`,`NT 10.0`],RT:`ARM`},zr={browser:[[/\b(?:crmo|crios)\/([\w.]+)/i],[K,[U,`Chrome`]],[/edg(?:e|ios|a)?\/([\w.]+)/i],[K,[U,`Edge`]],[/(opera mini)\/([-\w.]+)/i,/(opera [mobileta]{3,6})\b.+version\/([-\w.]+)/i,/(opera)(?:.+version\/|[/ ]+)([\w.]+)/i],[U,K],[/opios[/ ]+([\w.]+)/i],[K,[U,`${br} Mini`]],[/\bop(?:rg)?x\/([\w.]+)/i],[K,[U,`${br} GX`]],[/\bopr\/([\w.]+)/i],[K,[U,br]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[/ ]?([\w.]+)/i],[K,[U,`Baidu`]],[/(kindle)\/([\w.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[/ ]?([\w.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[/ ]?([\w.]*)/i,/(?:ms|\()(ie) ([\w.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w.]+)/i,/(heytap|ovi)browser\/([\d.]+)/i,/(weibo)__([\d.]+)/i],[U,K],[/\bddg\/([\w.]+)/i],[K,[U,`DuckDuckGo`]],[/(?:\buc? ?browser|juc.+ucweb)[/ ]?([\w.]+)/i],[K,[U,`UC${Q}`]],[/microm.+\bqbcore\/([\w.]+)/i,/\bqbcore\/([\w.]+).+microm/i,/micromessenger\/([\w.]+)/i],[K,[U,`WeChat`]],[/konqueror\/([\w.]+)/i],[K,[U,`Konqueror`]],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i],[K,[U,`IE`]],[/ya(?:search)?browser\/([\w.]+)/i],[K,[U,`Yandex`]],[/slbrowser\/([\w.]+)/i],[K,[U,`Smart Lenovo ${Q}`]],[/(avast|avg)\/([\w.]+)/i],[[U,/(.+)/,`$1 Secure ${Q}`],K],[/\bfocus\/([\w.]+)/i],[K,[U,`${mr} Focus`]],[/\bopt\/([\w.]+)/i],[K,[U,`${br} Touch`]],[/coc_coc\w+\/([\w.]+)/i],[K,[U,`Coc Coc`]],[/dolfin\/([\w.]+)/i],[K,[U,`Dolphin`]],[/coast\/([\w.]+)/i],[K,[U,`${br} Coast`]],[/miuibrowser\/([\w.]+)/i],[K,[U,`MIUI ${Q}`]],[/fxios\/([-\w.]+)/i],[K,[U,mr]],[/\bqihu|(qi?ho{0,2}|360)browser/i],[[U,`360 ${Q}`]],[/(oculus|sailfish|huawei|vivo)browser\/([\w.]+)/i],[[U,/(.+)/,`$1 ${Q}`],K],[/samsungbrowser\/([\w.]+)/i],[K,[U,`${xr} Internet`]],[/(comodo_dragon)\/([\w.]+)/i],[[U,/_/g,` `],K],[/metasr[/ ]?([\d.]+)/i],[K,[U,`Sogou Explorer`]],[/(sogou)mo\w+\/([\d.]+)/i],[[U,`Sogou Mobile`],K],[/(electron)\/([\w.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w.]+))/i,/m?(qqbrowser|2345Explorer)[/ ]?([\w.]+)/i],[U,K],[/(lbbrowser)/i,/\[(linkedin)app\]/i],[U],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w.]+);)/i],[[U,Er],K],[/(Klarna)\/([\w.]+)/i,/(kakao(?:talk|story))[/ ]([\w.]+)/i,/(naver)\(.*?(\d+\.[\w.]+).*\)/i,/safari (line)\/([\w.]+)/i,/\b(line)\/([\w.]+)\/iab/i,/(alipay)client\/([\w.]+)/i,/(twitter)(?:and| f.+e\/([\w.]+))/i,/(chromium|instagram|snapchat)[/ ]([-\w.]+)/i],[U,K],[/\bgsa\/([\w.]+) .*safari\//i],[K,[U,`GSA`]],[/musical_ly(?:.+app_?version\/|_)([\w.]+)/i],[K,[U,`TikTok`]],[/headlesschrome(?:\/([\w.]+)| )/i],[K,[U,`${fr} Headless`]],[/ wv\).+(chrome)\/([\w.]+)/i],[[U,`${fr} WebView`],K],[/droid.+ version\/([\w.]+)\b.+(?:mobile safari|safari)/i],[K,[U,`Android ${Q}`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w.]+)/i],[U,K],[/version\/([\w.,]+) .*mobile\/\w+ (safari)/i],[K,[U,`Mobile Safari`]],[/version\/([\w(.|,)]+) .*(mobile ?safari|safari)/i],[K,U],[/webkit.+?(mobile ?safari|safari)(\/[\w.]+)/i],[U,[K,Ir,Lr]],[/(webkit|khtml)\/([\w.]+)/i],[U,K],[/(navigator|netscape\d?)\/([-\w.]+)/i],[[U,`Netscape`],K],[/mobile vr; rv:([\w.]+)\).+firefox/i],[K,[U,`${mr} Reality`]],[/ekiohf.+(flow)\/([\w.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[/ ]?([\w.+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w.]+)$/i,/(firefox)\/([\w.]+)/i,/(mozilla)\/([\w.]+) .+rv:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[. ]?browser)[-/ ]?v?([\w.]+)/i,/(links) \(([\w.]+)/i,/panasonic;(viera)/i],[U,K],[/(cobalt)\/([\w.]+)/i],[U,[K,/master.|lts./,``]]],cpu:[[/(amd|x(?:(?:86|64)[-_])?|wow|win)64[;)]/i],[[q,`amd64`]],[/(ia32(?=;))/i],[[q,jr]],[/((?:i[346]|x)86)[;)]/i],[[q,`ia32`]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[q,`arm64`]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[q,`armhf`]],[/windows (ce|mobile); ppc;/i],[[q,`arm`]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[q,/ower/,nr,jr]],[/(sun4\w)[;)]/i],[[q,`sparc`]],[/(avr32|ia64(?=;)|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[q,jr]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[H,[G,xr],[W,Y]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?\d+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[H,[G,xr],[W,J]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[H,[G,lr],[W,J]],[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[H,[G,lr],[W,Y]],[/(macintosh);/i],[H,[G,lr]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[H,[G,Sr],[W,J]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[H,[G,gr],[W,Y]],[/(?:huawei|honor)([-\w ]+)[;)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][0-359c][adn]?)\b(?!.+d\/s)/i],[H,[G,gr],[W,J]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?[\w ]+)(?: bui|\))/i,/oid[^)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?\d?\w?[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[H,/_/g,` `],[G,wr],[W,J]],[/oid[^)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?pad[\w ]+)(?: bui|\))/i],[[H,/_/g,` `],[G,wr],[W,Y]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[H,[G,`OPPO`],[W,J]],[/\b(opd2\d{3}a?) bui/i],[H,[G,`OPPO`],[W,Y]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[H,[G,`Vivo`],[W,J]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[H,[G,`Realme`],[W,J]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w() ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[H,[G,yr],[W,J]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[H,[G,yr],[W,Y]],[/((?=lg)?[vl]k-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[H,[G,_r],[W,Y]],[/(lm(?:-?f100[nv]?|-[\w.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?(\w+) bui/i],[H,[G,_r],[W,J]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab[\w ]+|yt[-\w]{6}|tb[-\w]{6})/i],[H,[G,`Lenovo`],[W,Y]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w.]*)/i],[[H,/_/g,` `],[G,`Nokia`],[W,J]],[/(pixel c)\b/i],[H,[G,hr],[W,Y]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[H,[G,hr],[W,J]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]?\d\.))/i],[H,[G,Cr],[W,J]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[H,`Xperia Tablet`],[G,Cr],[W,Y]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[H,[G,`OnePlus`],[W,J]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[H,[G,cr],[W,Y]],[/((?:sd|kf)[0349hijor-uw]+)( bui|\)).+silk\//i],[[H,/(.+)/g,`Fire Phone $1`],[G,cr],[W,J]],[/(playbook);[-\w),; ]+(rim)/i],[H,G,[W,Y]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[H,[G,dr],[W,J]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[H,[G,ur],[W,Y]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[H,[G,ur],[W,J]],[/(nexus 9)/i],[H,[G,`HTC`],[W,Y]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!;|\.)|sony(?!-bra))[-_ ]?([-\w]*)/i],[G,[H,/_/g,` `],[W,J]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[H,[G,`Acer`],[W,Y]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[H,[G,`Meizu`],[W,J]],[/; ((?:power )?armor[\w ]{0,8})(?: bui|\))/i],[H,[G,`Ulefone`],[W,J]],[/(blackberry|benq|palm(?=-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[G,H,[W,J]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[G,H,[W,Y]],[/(surface duo)/i],[H,[G,vr],[W,Y]],[/droid [\d.]+; (fp\du?)(?: b|\))/i],[H,[G,`Fairphone`],[W,J]],[/(u304aa)/i],[H,[G,`AT&T`],[W,J]],[/\bsie-(\w*)/i],[H,[G,`Siemens`],[W,J]],[/\b(rct\w+) b/i],[H,[G,`RCA`],[W,Y]],[/\b(venue[\d ]{2,7}) b/i],[H,[G,`Dell`],[W,Y]],[/\b(q(?:mv|ta)\w+) b/i],[H,[G,`Verizon`],[W,Y]],[/\b(?:barnes[& ]+noble |bn[rt])([\w+ ]*) b/i],[H,[G,`Barnes & Noble`],[W,Y]],[/\b(tm\d{3}\w+) b/i],[H,[G,`NuVision`],[W,Y]],[/\b(k88) b/i],[H,[G,`ZTE`],[W,Y]],[/\b(nx\d{3}j) b/i],[H,[G,`ZTE`],[W,J]],[/\b(gen\d{3}) b.+49h/i],[H,[G,`Swiss`],[W,J]],[/\b(zur\d{3}) b/i],[H,[G,`Swiss`],[W,Y]],[/\b((zeki)?tb.*\b) b/i],[H,[G,`Zeki`],[W,Y]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[G,`Dragon Touch`],H,[W,Y]],[/\b(ns-?\w{0,9}) b/i],[H,[G,`Insignia`],[W,Y]],[/\b((nxa|next)-?\w{0,9}) b/i],[H,[G,`NextBook`],[W,Y]],[/\b(xtreme_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[G,`Voice`],H,[W,J]],[/\b(lvtel-)?(v1[12]) b/i],[[G,`LvTel`],H,[W,J]],[/\b(ph-1) /i],[H,[G,`Essential`],[W,J]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[H,[G,`Envizen`],[W,Y]],[/\b(trio[-\w. ]+) b/i],[H,[G,`MachSpeed`],[W,Y]],[/\btu_(1491) b/i],[H,[G,`Rotor`],[W,Y]],[/(shield[\w ]+) b/i],[H,[G,`Nvidia`],[W,Y]],[/(sprint) (\w+)/i],[G,H,[W,J]],[/(kin\.[onetw]{3})/i],[[H,/\./g,` `],[G,vr],[W,J]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[H,[G,Tr],[W,Y]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[H,[G,Tr],[W,J]],[/smart-tv.+(samsung)/i],[G,[W,X]],[/hbbtv.+maple;(\d+)/i],[[H,/^/,`SmartTV`],[G,xr],[W,X]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[G,_r],[W,X]],[/(apple) ?tv/i],[G,[H,`${lr} TV`],[W,X]],[/crkey/i],[[H,`${fr}cast`],[G,hr],[W,X]],[/droid.+aft(\w+)( bui|\))/i],[H,[G,cr],[W,X]],[/\(dtv[);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[H,[G,Sr],[W,X]],[/(bravia[\w ]+)( bui|\))/i],[H,[G,Cr],[W,X]],[/(mitv-\w{5}) bui/i],[H,[G,wr],[W,X]],[/Hbbtv.*(technisat) (.*);/i],[G,H,[W,X]],[/\b(roku)[\dx]*[)/]((?:dvp-)?[\d.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w+ ]*; *(\w[^;]*);([^;]*)/i],[[G,Pr],[H,Pr],[W,X]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[W,X]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[G,H,[W,ar]],[/droid.+; (shield) bui/i],[H,[G,`Nvidia`],[W,ar]],[/(playstation [345portablevi]+)/i],[H,[G,Cr],[W,ar]],[/\b(xbox(?: one)?(?!; xbox))[); ]/i],[H,[G,vr],[W,ar]],[/((pebble))app/i],[G,H,[W,Z]],[/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i],[H,[G,lr],[W,Z]],[/droid.+; (glass) \d/i],[H,[G,hr],[W,Z]],[/droid.+; (wt63?0{2,3})\)/i],[H,[G,Tr],[W,Z]],[/(quest( \d| pro)?)/i],[H,[G,Er],[W,Z]],[/(tesla)(?: qtcarbrowser|\/[-\w.]+)/i],[G,[W,or]],[/(aeobc)\b/i],[H,[G,cr],[W,or]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[H,[W,J]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[H,[W,Y]],[/\b((tablet|tab)[;/]|focus\/\d(?!.+mobile))/i],[[W,Y]],[/(phone|mobile(?:[;/]| [ \w/.]*safari)|pda(?=.+windows ce))/i],[[W,J]],[/(android[-\w. ]{0,9});.+buil/i],[H,[G,`Generic`]]],engine:[[/windows.+ edge\/([\w.]+)/i],[K,[U,`${pr}HTML`]],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i],[K,[U,`Blink`]],[/(presto)\/([\w.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w.]+)/i,/ekioh(flow)\/([\w.]+)/i,/(khtml|tasman|links)[/ ]\(?([\w.]+)/i,/(icab)[/ ]([23]\.[\d.]+)/i,/\b(libweb)/i],[U,K],[/rv:([\w.]{1,9})\b.+(gecko)/i],[K,U]],os:[[/microsoft (windows) (vista|xp)/i],[U,K],[/(windows (?:phone(?: os)?|mobile))[/ ]?([.\w ]*)/i],[U,[K,Ir,Rr]],[/windows nt 6\.2; (arm)/i,/windows[/ ]?([ntce\d. ]+\w)(?!.+xbox)/i,/(?:win(?=[39n])|win 9x )([nt\d.]+)/i],[[K,Ir,Rr],[U,`Windows`]],[/ip[honead]{2,4}\b(?:.*os (\w+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[/ ])([\d.]+)/i,/cfnetwork\/.+darwin/i],[[K,/_/g,`.`],[U,`iOS`]],[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[U,Or],[K,/_/g,`.`]],[/droid ([\w.]+)\b.+(android[- ]x86|harmonyos)/i],[K,U],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-/ ]?([\w.]*)/i,/(blackberry)\w*\/([\w.]*)/i,/(tizen|kaios)[/ ]([\w.]+)/i,/\((series40);/i],[U,K],[/\(bb(10);/i],[K,[U,dr]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-/ ]?([\w.]*)/i],[K,[U,`Symbian`]],[/mozilla\/[\d.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w.]+)/i],[K,[U,`${mr} OS`]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w.]+)/i],[K,[U,`webOS`]],[/watch(?: ?os[,/]|\d,\d\/)([\d.]+)/i],[K,[U,`watchOS`]],[/crkey\/([\d.]+)/i],[K,[U,`${fr}cast`]],[/(cros) \w+(?:\)| ([\w.]+)\b)/i],[[U,Dr],K],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w.]*)/i,/(mint)[/() ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-/ ]?(?!chrom|package)([-\w.]*)/i,/(hurd|linux) ?([\w.]*)/i,/(gnu) ?([\w.]*)/i,/\b([-e-hrntopcs]{0,5}bsd|dragonfly)[/ ]?(?!amd|[ix346]{1,2}86)([\w.]*)/i,/(haiku) (\w+)/i],[U,K],[/(sunos) ?([\w.]*)/i],[[U,`Solaris`],K],[/((?:open)?solaris)[-/ ]?([\w.]*)/i,/(aix) ((\d)(?=[.) ])[\w.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w.]*)/i],[U,K]]};function Br(e){return typeof e==`object`&&!!e}Object.freeze(Ar([U,K,ir])),Object.freeze(Ar([q])),Object.freeze(Ar([H,G,W,ar,J,X,Y,Z,or])),Object.freeze(Ar([U,K])),Object.freeze(Ar([U,K]));function Vr(){if(!(typeof window>`u`||!window.navigator))return window.navigator}function Hr(e){return e.length>sr?Pr(e,sr):e}function Ur(e){if(typeof e==`string`)return{ua:Hr(e),isSelfNavigator:!1,navigator:void 0,userAgentData:void 0,regexMap:zr};let t=Vr(),n=Hr(t&&t.userAgent?t.userAgent:nr);return{ua:n,isSelfNavigator:!!(t&&t.userAgent===n),navigator:t,userAgentData:t?.userAgentData,regexMap:zr}}function Wr(e,t){if(!t&&!Br(e))return Ur(e);let n=Vr(),r=Br(e)?void 0:e,i=Br(e)?e:t,a=Hr(r||(n&&n.userAgent?n.userAgent:nr)),o=n?.userAgentData;return{ua:a,isSelfNavigator:!!(n&&n.userAgent===a),navigator:n,userAgentData:o,regexMap:i?kr(zr,i):zr}}function Gr(e){let t={name:void 0,version:void 0,major:void 0};return Fr(e.ua,e.regexMap.browser,t),t.major=Nr(t.version),e.isSelfNavigator&&e.navigator?.brave&&typeof e.navigator.brave.isBrave==`function`&&(t.name=`Brave`),t}function Kr(e){let t={architecture:void 0};return Fr(e.ua,e.regexMap.cpu,t),t}function qr(e){let t={vendor:void 0,model:void 0,type:void 0};return Fr(e.ua,e.regexMap.device,t),e.isSelfNavigator&&!t.type&&e.userAgentData?.mobile&&(t.type=J),e.isSelfNavigator&&t.model===`Macintosh`&&e.navigator&&e.navigator.standalone!==void 0&&e.navigator.maxTouchPoints&&e.navigator.maxTouchPoints>2&&(t.model=`iPad`,t.type=Y),t}function Jr(e){let t={name:void 0,version:void 0};return Fr(e.ua,e.regexMap.engine,t),t}function Yr(e){let t={name:void 0,version:void 0};return Fr(e.ua,e.regexMap.os,t),e.isSelfNavigator&&!t.name&&e.userAgentData?.platform&&e.userAgentData.platform!==`Unknown`&&(t.name=e.userAgentData.platform.replace(/chrome os/i,Dr).replace(/macos/i,Or)),t}function Xr(e,t){let n,r,i,a,o,s,c=()=>n||=Wr(e,t);return{get ua(){return c().ua},get browser(){return r||=Gr(c()),r},get engine(){return i||=Jr(c()),i},get os(){return a||=Yr(c()),a},get device(){return o||=qr(c()),o},get cpu(){return s||=Kr(c()),s}}}function Zr(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Qr(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=Zr();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(`connection:status`,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function h(){return l===`disconnected`||l===`error`?new V(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new V(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function g(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(`rpc:error`,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new V(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(`rpc:error`,n,t),r(n)})})}let _=new Map;for(let e of r.jsonSerializableMethods??[])_.set(e,{jsonSerializable:!0});let v=e.createChannel({definitions:_,onError(e){f(`error`,e),i.emit(`connection:error`,e),m(new V(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new V(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=tr(a.functions,{channel:v,rpcOptions:o});a.register({name:`devframe:auth:revoked`,type:`event`,handler:()=>{c=!1;let e=new V(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(`connection:error`,e),m(e),i.emit(`rpc:is-trusted:updated`,!1)}});let b=n;function x(){let e=Xr(navigator.userAgent);return[e.browser.name,e.browser.version,`|`,e.os.name,e.os.version,e.device.type].filter(e=>e).join(` `)}async function S(e){b=e;let t=await y.$call(`anonymous:devframe:auth`,{authToken:e,ua:x(),origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new V(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(`connection:error`,e)}return i.emit(`rpc:is-trusted:updated`,c),t.isTrusted}async function C(e){let t=(await y.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:x(),origin:location.origin}))?.authToken??null;return t&&(b=t,c=!0,d.resolve(!0),f(`connected`),i.emit(`rpc:is-trusted:updated`,!0)),t}async function w(){return c?!0:S(b??``)}async function T(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t=()=>{};return await Promise.race([d.promise.then(t),new Promise((n,r)=>{let i=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e);t=()=>clearTimeout(i)})]),c}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:w,requestTrustWithToken:S,requestTrustWithCode:C,ensureTrusted:T,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(`rpc:error`,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function $r(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function ei(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=$r(n.sse,r??`./`,location);return Qr({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>er({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function ti(e){let t=e.cause instanceof Error?e.cause:ni(e.cause)?ti(e.cause):e.cause,n=t===void 0?Error(e.message):Error(e.message,{cause:t});n.name=e.name;for(let t of Object.keys(e))t!==`name`&&t!==`message`&&t!==`cause`&&(n[t]=e[t]);return n}function ni(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function ri(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function ii(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function ai(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function oi(e){if(e.error)throw ti(e.error);return e.output}function si(e){return e.some(e=>e!=null)}function ci(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function li(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?jt(e):e}function a(e,t){return i(ci(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return ai(r)?oi(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(ri(r)){if(si(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(ii(r)){let e=h(n),i=r.records[e];if(i)return oi(await s(i,r.serialization));if(r.fallback)return oi(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!si(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function ui(e){let t=li(await e.fetchJsonFromBases(yn),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var di=``;function fi(e,t){return`${e}${di}${t}`}function pi(e){let t=new Map,n=new Map;e.client.register({name:`devframe:streaming:chunk`,type:`event`,handler(e,n,r,i){t.get(fi(e,n))?._push(r,i)}}),e.client.register({name:`devframe:streaming:end`,type:`event`,handler(e,n,r){let i=fi(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:`devframe:streaming:upload-cancel`,type:`event`,handler(e,t){let r=fi(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(`rpc:is-trusted:updated`,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(di);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=fi(n,r),o=t.get(a);if(o)return o;let s=Lt({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(`rpc:is-trusted:updated`,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=fi(t,r),a=n.get(i);if(a)return a;let o=It({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function mi(){}var hi=new Map;function gi(e){let t=e.url;e.authToken&&(t=`${t}?${xn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=mi,onError:i=mi,onDisconnected:a=mi,definitions:o=hi}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=Qn(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function _i(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return an(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function vi(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=_i(n.websocket,r??`./`,location);return Qr({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>gi({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function yi(e){return e.includes(`:`)}function $(e,t){return yi(t)?t:`${e}:${t}`}function bi(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return{async get(e){return(await a()).value()[e]},async set(e,t){(await a()).mutate(n=>{n[e]=t})},async delete(e){(await a()).mutate(t=>{delete t[e]})},async all(){return(await a()).value()},async onChange(e){return(await a()).on(`updated`,t=>e(t))}}}function xi(e,t){return{global:bi(e,t,`global`),project:bi(e,t,`project`)}}function Si(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(yi(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call($(t,n),...r)),callEvent:((n,...r)=>e.callEvent($(t,n),...r)),callOptional:((n,...r)=>e.callOptional($(t,n),...r)),sharedState:((n,r)=>e.sharedState.get($(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe($(t,n),r,i),upload:(n,r)=>e.streaming.upload($(t,n),r)}},settings:xi(e,t),scope:e.scope}}function Ci(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none") — nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function wi(t={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=t,a=e(),o=Array.isArray(n)?n:[n],s=await Gn(t),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new Sn({functions:[],...typeof t.cacheOptions==`object`?t.cacheOptions:{}}),p={rpc:void 0},m=new jn(p);async function h(e){let t=[d,...o.filter(e=>e!==d)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(en(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let g={authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:t.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&f?.validate(e.m)){if(f.has(e.m,e.a))return n(f.cached(e.m,e.a));let r=await t(e);f.apply(e,r)}else await t(e)}}},_=Ci(t.transport??`auto`,c),v=_===`static`?await ui({fetchJsonFromBases:h}):_===`sse`?ei({...g,sseOptions:t.sseOptions}):vi({...g,wsOptions:t.wsOptions}),y;try{y=new BroadcastChannel(`devframe-auth`)}catch{}let b,x=!1;function S(e){return((...t)=>x||!b?e(...t):b.then(()=>e(...t)))}let C={events:a,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return s},connectionMeta:c,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Vn(e),s={...s,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Vn(t),s={...s,authToken:t};try{y?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:S(v.call),callEvent:S(v.callEvent),callOptional:S(v.callOptional),client:m,sharedState:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>v.close?.()};C.sharedState=Xn(C),C.streaming=pi(C);let w=new Map;C.scope=(e=>{if(!e)return C;let t=w.get(e);return t||(t=Si(C,e),w.set(e,t)),t}),p.rpc=C;function T(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function E(){if(!(t.simpleAuth===!1||!T())&&typeof globalThis.prompt==`function`)for(;!C.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await C.requestTrustWithCode(t))return}}async function D(){let e=await v.requestTrust(),n=t.otpParam??`devframe_otp`,r=n?await Yn(C,{param:n}):!1;e||r||C.isTrusted||await E()}return b=D().then(()=>{x=!0},()=>{x=!0}),y&&(y.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&C.requestTrustWithToken(e.data.authToken)}),C}r(()=>{let e=document.documentElement;e.classList.toggle(`dark`,i.value),e.classList.toggle(`light`,!i.value),e.style.colorScheme=i.value?`dark`:`light`});async function Ti(){let e=import.meta.url,r=await wi({baseURL:[`./`,new URL(`./`,e).href],simpleAuth:!1}),{resolveBranding:i,applyPrimaryColor:a,applyDocumentHead:o}=await t(async()=>{let{resolveBranding:e,applyPrimaryColor:t,applyDocumentHead:n}=await import(`./branding-V4rxaera.js`).then(e=>e.n);return{resolveBranding:e,applyPrimaryColor:t,applyDocumentHead:n}},__vite__mapDeps([0,1]),import.meta.url),s=await i({mode:`standalone`,brandingUrl:new URL(`branding.json`,document.baseURI)});o(document,s);let{createDocksContext:c}=await t(async()=>{let{createDocksContext:e}=await import(`./context-64bG3l0N.js`);return{createDocksContext:e}},__vite__mapDeps([2,0,1,3,4,5]),import.meta.url),l=await c(`standalone`,r);n(l);let{DockStandalone:u}=await t(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-zGNmPe_C.js`);return{DockStandalone:e}},__vite__mapDeps([6,0,1,3,4]),import.meta.url),d=new u({context:l});a(d,s.primaryColor),document.getElementById(`app`).appendChild(d)}Ti();