@jsenv/server 16.3.3 → 16.3.5

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.
@@ -30,16 +30,16 @@
30
30
  }
31
31
 
32
32
  .error_status_text {
33
- word-break: break-word;
34
33
  text-align: left;
34
+ word-break: break-word;
35
35
  margin: 10px 0;
36
36
  font-size: 1.5rem;
37
37
  }
38
38
 
39
39
  .error_message {
40
40
  color: #555;
41
- word-break: break-word;
42
41
  text-align: left;
42
+ word-break: break-word;
43
43
  font-size: 1rem;
44
44
  }
45
45
 
@@ -16,43 +16,43 @@
16
16
  */
17
17
 
18
18
  (() => {
19
- const css = /*css*/ `
20
- *[aria-hidden="true"] {
21
- display: none;
22
- }
19
+ const css = /* css */ `
20
+ *[aria-hidden="true"] {
21
+ display: none;
22
+ }
23
23
 
24
- .clipboard_container {
25
- display: flex;
26
- padding: 8px;
27
- gap: 5px;
28
- align-items: center;
29
- }
24
+ .clipboard_container {
25
+ display: flex;
26
+ padding: 8px;
27
+ align-items: center;
28
+ gap: 5px;
29
+ }
30
30
 
31
- #copied_notif {
32
- background: black;
33
- color: white;
34
- border-radius: 3px;
35
- padding: 0.2em 0.5em;
36
- font-size: 80%;
37
- }
31
+ #copied_notif {
32
+ padding: 0.2em 0.5em;
33
+ color: white;
34
+ font-size: 80%;
35
+ background: black;
36
+ border-radius: 3px;
37
+ }
38
38
 
39
- button {
40
- border: none;
41
- background: none;
42
- background-color: rgb(246, 248, 250);
43
- border-color: rgb(209, 217, 224);
44
- border-radius: 6px;
45
- border-width: 1px;
46
- border-style: solid;
47
- cursor: pointer;
48
- width: 32px;
49
- height: 32px;
50
- }
39
+ button {
40
+ width: 32px;
41
+ height: 32px;
42
+ background: none;
43
+ background-color: rgb(246, 248, 250);
44
+ border: none;
45
+ border-width: 1px;
46
+ border-style: solid;
47
+ border-color: rgb(209, 217, 224);
48
+ border-radius: 6px;
49
+ cursor: pointer;
50
+ }
51
51
 
52
- button:hover {
53
- background-color: rgb(239, 242, 245);
54
- }
55
- `;
52
+ button:hover {
53
+ background-color: rgb(239, 242, 245);
54
+ }
55
+ `;
56
56
 
57
57
  const html = /* html */ `<style>
58
58
  ${css}
@@ -134,27 +134,27 @@
134
134
  })();
135
135
 
136
136
  (() => {
137
- const css = /*css*/ `
138
- /* :host {
139
- display: block;
140
- }
141
- :host code[class*="language-"], :host pre[class*="language-"]{
142
- margin-top: 0;
143
- } */
144
- #code_block {
145
- position: relative;
146
- }
137
+ const css = /* css */ `
138
+ /* :host {
139
+ display: block;
140
+ }
141
+ :host code[class*="language-"], :host pre[class*="language-"]{
142
+ margin-top: 0;
143
+ } */
144
+ #code_block {
145
+ position: relative;
146
+ }
147
147
 
148
- #pre {
149
- padding: 16px;
150
- font-size: 86%;
151
- margin-top: 16px;
152
- margin-bottom: 16px;
153
- margin-left: 0;
154
- margin-right: 0;
155
- background: #333 ;
156
- }
157
- `;
148
+ #pre {
149
+ margin-top: 16px;
150
+ margin-right: 0;
151
+ margin-bottom: 16px;
152
+ margin-left: 0;
153
+ padding: 16px;
154
+ font-size: 86%;
155
+ background: #333;
156
+ }
157
+ `;
158
158
 
159
159
  const html = /* html */ `<style>
160
160
  ${css}
@@ -470,13 +470,13 @@ main {
470
470
  }
471
471
 
472
472
  .note_button_open {
473
- cursor: pointer;
473
+ height: 24px;
474
474
  color: var(--text-color);
475
475
  opacity: .7;
476
+ cursor: pointer;
476
477
  background: none;
477
478
  border: none;
478
479
  border-radius: 50%;
479
- height: 24px;
480
480
  padding: 0;
481
481
  transition: background-color .2s;
482
482
  }
@@ -530,9 +530,9 @@ main {
530
530
  }
531
531
 
532
532
  #theme-toggle-btn {
533
- cursor: pointer;
534
533
  background: none;
535
534
  background-color: var(--secondary-color);
535
+ cursor: pointer;
536
536
  border: none;
537
537
  border-radius: 50%;
538
538
  justify-content: center;
@@ -656,8 +656,8 @@ main {
656
656
  }
657
657
 
658
658
  .filters_sidebar {
659
- border: 1px solid var(--border-color);
660
659
  background: var(--secondary-color);
660
+ border: 1px solid var(--border-color);
661
661
  border-radius: 6px;
662
662
  flex-shrink: 0;
663
663
  width: 250px;
@@ -679,8 +679,8 @@ main {
679
679
  }
680
680
 
681
681
  .filters_count {
682
- background-color: var(--primary-color);
683
682
  color: #fff;
683
+ background-color: var(--primary-color);
684
684
  border-radius: 12px;
685
685
  padding: 2px 8px;
686
686
  font-size: .8rem;
@@ -714,8 +714,8 @@ main {
714
714
  }
715
715
 
716
716
  .route_group_details > summary {
717
- cursor: pointer;
718
717
  border-bottom: 1px solid var(--border-color);
718
+ cursor: pointer;
719
719
  margin-bottom: 7px;
720
720
  list-style: none;
721
721
  }
@@ -759,9 +759,9 @@ main {
759
759
  }
760
760
 
761
761
  .route_details {
762
+ background: color-mix(in srgb, var(--method-color), transparent 90%);
762
763
  border: 1px solid #000;
763
764
  border-color: var(--method-color);
764
- background: color-mix(in srgb, var(--method-color), transparent 90%);
765
765
  border-radius: 4px;
766
766
  margin: 0 0 15px;
767
767
  box-shadow: 0 0 3px #00000030;
@@ -864,8 +864,8 @@ main {
864
864
  }
865
865
 
866
866
  .filter_container {
867
- border-right: 1px solid var(--border-color);
868
867
  background: var(--secondary-color);
868
+ border-right: 1px solid var(--border-color);
869
869
  height: 100%;
870
870
  margin-bottom: 20px;
871
871
  overflow: hidden auto;
@@ -890,8 +890,8 @@ main {
890
890
  }
891
891
 
892
892
  .summary_text {
893
- white-space: nowrap;
894
893
  text-overflow: ellipsis;
894
+ white-space: nowrap;
895
895
  width: 100%;
896
896
  display: block;
897
897
  overflow: hidden;
@@ -907,8 +907,8 @@ main {
907
907
  }
908
908
 
909
909
  .filter_badge {
910
- background-color: var(--primary-color);
911
910
  color: #fff;
911
+ background-color: var(--primary-color);
912
912
  border-radius: 12px;
913
913
  margin-left: 10px;
914
914
  padding: 2px 8px;
@@ -916,10 +916,10 @@ main {
916
916
  }
917
917
 
918
918
  select {
919
- border: 1px solid var(--border-color);
920
- background-color: var(--background-color);
921
919
  min-width: 200px;
922
920
  color: var(--text-color);
921
+ background-color: var(--background-color);
922
+ border: 1px solid var(--border-color);
923
923
  border-radius: 4px;
924
924
  padding: 8px;
925
925
  font-family: inherit;
@@ -930,8 +930,8 @@ select option {
930
930
  }
931
931
 
932
932
  select option:checked {
933
- background-color: var(--primary-color);
934
933
  color: #fff;
934
+ background-color: var(--primary-color);
935
935
  }
936
936
 
937
937
  .filter_form {
@@ -944,10 +944,10 @@ select option:checked {
944
944
  }
945
945
 
946
946
  .filter_form label {
947
- cursor: pointer;
948
- word-break: keep-all;
949
947
  text-overflow: ellipsis;
950
948
  white-space: nowrap;
949
+ word-break: keep-all;
950
+ cursor: pointer;
951
951
  align-items: center;
952
952
  gap: 5px;
953
953
  width: 100%;
@@ -999,8 +999,8 @@ label .filter_text {
999
999
 
1000
1000
  .filter_count {
1001
1001
  color: #666;
1002
- opacity: .8;
1003
1002
  white-space: nowrap;
1003
+ opacity: .8;
1004
1004
  background-color: #eee;
1005
1005
  border-radius: 12px;
1006
1006
  margin-left: auto;
@@ -1014,9 +1014,9 @@ label .filter_text {
1014
1014
  }
1015
1015
 
1016
1016
  .filter_button {
1017
+ color: var(--text-color);
1017
1018
  background-color: var(--secondary-color);
1018
1019
  border: 1px solid var(--border-color);
1019
- color: var(--text-color);
1020
1020
  cursor: pointer;
1021
1021
  border-radius: 4px;
1022
1022
  padding: 6px 12px;
@@ -1125,11 +1125,11 @@ label .filter_text {
1125
1125
  });
1126
1126
  </script>
1127
1127
  <script type="module">/* esm.sh - preact@10.23.1 */
1128
- var M$2,h,X,ie,x$2,J,Y,R,j,$,O$1,T$1={},ee=[],le=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,I=Array.isArray;function b$3(_,e){for(var t in e)_[t]=e[t];return _}function _e(_){var e=_.parentNode;e&&e.removeChild(_);}function se(_,e,t){var i,n,r,l={};for(r in e)r=="key"?i=e[r]:r=="ref"?n=e[r]:l[r]=e[r];if(arguments.length>2&&(l.children=arguments.length>3?M$2.call(arguments,2):t),typeof _=="function"&&_.defaultProps!=null)for(r in _.defaultProps)l[r]===void 0&&(l[r]=_.defaultProps[r]);return U(_,l,i,n,null)}function U(_,e,t,i,n){var r={type:_,props:e,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:n??++X,__i:-1,__u:0};return n==null&&h.vnode!=null&&h.vnode(r),r}function N$1(_){return _.children}function F$1(_,e){this.props=_,this.context=e;}function C$2(_,e){if(e==null)return _.__?C$2(_.__,_.__i+1):null;for(var t;e<_.__k.length;e++)if((t=_.__k[e])!=null&&t.__e!=null)return t.__e;return typeof _.type=="function"?C$2(_):null}function te(_){var e,t;if((_=_.__)!=null&&_.__c!=null){for(_.__e=_.__c.base=null,e=0;e<_.__k.length;e++)if((t=_.__k[e])!=null&&t.__e!=null){_.__e=_.__c.base=t.__e;break}return te(_)}}function B(_){(!_.__d&&(_.__d=true)&&x$2.push(_)&&!H$1.__r++||J!==h.debounceRendering)&&((J=h.debounceRendering)||Y)(H$1);}function H$1(){var _,e,t,i,n,r,l,s;for(x$2.sort(R);_=x$2.shift();)_.__d&&(e=x$2.length,i=void 0,r=(n=(t=_).__v).__e,l=[],s=[],t.__P&&((i=b$3({},n)).__v=n.__v+1,h.vnode&&h.vnode(i),z$1(t.__P,i,n,t.__n,t.__P.namespaceURI,32&n.__u?[r]:null,l,r??C$2(n),!!(32&n.__u),s),i.__v=n.__v,i.__.__k[i.__i]=i,re(l,i,s),i.__e!=r&&te(i)),x$2.length>e&&x$2.sort(R));H$1.__r=0;}function ne(_,e,t,i,n,r,l,s,c,u,p){var o,m,f,v,g,y=i&&i.__k||ee,a=e.length;for(t.__d=c,ue(t,e,y),c=t.__d,o=0;o<a;o++)(f=t.__k[o])!=null&&typeof f!="boolean"&&typeof f!="function"&&(m=f.__i===-1?T$1:y[f.__i]||T$1,f.__i=o,z$1(_,f,m,n,r,l,s,c,u,p),v=f.__e,f.ref&&m.ref!=f.ref&&(m.ref&&q$1(m.ref,null,f),p.push(f.ref,f.__c||v,f)),g==null&&v!=null&&(g=v),65536&f.__u||m.__k===f.__k?c=oe(f,c,_):typeof f.type=="function"&&f.__d!==void 0?c=f.__d:v&&(c=v.nextSibling),f.__d=void 0,f.__u&=-196609);t.__d=c,t.__e=g;}function ue(_,e,t){var i,n,r,l,s,c=e.length,u=t.length,p=u,o=0;for(_.__k=[],i=0;i<c;i++)l=i+o,(n=_.__k[i]=(n=e[i])==null||typeof n=="boolean"||typeof n=="function"?null:typeof n=="string"||typeof n=="number"||typeof n=="bigint"||n.constructor==String?U(null,n,null,null,null):I(n)?U(N$1,{children:n},null,null,null):n.constructor===void 0&&n.__b>0?U(n.type,n.props,n.key,n.ref?n.ref:null,n.__v):n)!=null?(n.__=_,n.__b=_.__b+1,s=ce(n,t,l,p),n.__i=s,r=null,s!==-1&&(p--,(r=t[s])&&(r.__u|=131072)),r==null||r.__v===null?(s==-1&&o--,typeof n.type!="function"&&(n.__u|=65536)):s!==l&&(s==l-1?o=s-l:s==l+1?o++:s>l?p>c-l?o+=s-l:o--:s<l&&o++,s!==i+o&&(n.__u|=65536))):(r=t[l])&&r.key==null&&r.__e&&!(131072&r.__u)&&(r.__e==_.__d&&(_.__d=C$2(r)),V(r,r,false),t[l]=null,p--);if(p)for(i=0;i<u;i++)(r=t[i])!=null&&!(131072&r.__u)&&(r.__e==_.__d&&(_.__d=C$2(r)),V(r,r));}function oe(_,e,t){var i,n;if(typeof _.type=="function"){for(i=_.__k,n=0;i&&n<i.length;n++)i[n]&&(i[n].__=_,e=oe(i[n],e,t));return e}_.__e!=e&&(e&&_.type&&!t.contains(e)&&(e=C$2(_)),t.insertBefore(_.__e,e||null),e=_.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function ce(_,e,t,i){var n=_.key,r=_.type,l=t-1,s=t+1,c=e[t];if(c===null||c&&n==c.key&&r===c.type&&!(131072&c.__u))return t;if(i>(c!=null&&!(131072&c.__u)?1:0))for(;l>=0||s<e.length;){if(l>=0){if((c=e[l])&&!(131072&c.__u)&&n==c.key&&r===c.type)return l;l--;}if(s<e.length){if((c=e[s])&&!(131072&c.__u)&&n==c.key&&r===c.type)return s;s++;}}return -1}function K(_,e,t){e[0]==="-"?_.setProperty(e,t??""):_[e]=t==null?"":typeof t!="number"||le.test(e)?t:t+"px";}function W$1(_,e,t,i,n){var r;e:if(e==="style")if(typeof t=="string")_.style.cssText=t;else {if(typeof i=="string"&&(_.style.cssText=i=""),i)for(e in i)t&&e in t||K(_.style,e,"");if(t)for(e in t)i&&t[e]===i[e]||K(_.style,e,t[e]);}else if(e[0]==="o"&&e[1]==="n")r=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in _||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),_.l||(_.l={}),_.l[e+r]=t,t?i?t.u=i.u:(t.u=j,_.addEventListener(e,r?O$1:$,r)):_.removeEventListener(e,r?O$1:$,r);else {if(n=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in _)try{_[e]=t??"";break e}catch{}typeof t=="function"||(t==null||t===false&&e[4]!=="-"?_.removeAttribute(e):_.setAttribute(e,e=="popover"&&t==1?"":t));}}function Q(_){return function(e){if(this.l){var t=this.l[e.type+_];if(e.t==null)e.t=j++;else if(e.t<t.u)return;return t(h.event?h.event(e):e)}}}function z$1(_,e,t,i,n,r,l,s,c,u){var p,o,m,f,v,g,y,a,d,P,w,D,S,G,E,A,k=e.type;if(e.constructor!==void 0)return null;128&t.__u&&(c=!!(32&t.__u),r=[s=e.__e=t.__e]),(p=h.__b)&&p(e);e:if(typeof k=="function")try{if(a=e.props,d="prototype"in k&&k.prototype.render,P=(p=k.contextType)&&i[p.__c],w=p?P?P.props.value:p.__:i,t.__c?y=(o=e.__c=t.__c).__=o.__E:(d?e.__c=o=new k(a,w):(e.__c=o=new F$1(a,w),o.constructor=k,o.render=ae),P&&P.sub(o),o.props=a,o.state||(o.state={}),o.context=w,o.__n=i,m=o.__d=!0,o.__h=[],o._sb=[]),d&&o.__s==null&&(o.__s=o.state),d&&k.getDerivedStateFromProps!=null&&(o.__s==o.state&&(o.__s=b$3({},o.__s)),b$3(o.__s,k.getDerivedStateFromProps(a,o.__s))),f=o.props,v=o.state,o.__v=e,m)d&&k.getDerivedStateFromProps==null&&o.componentWillMount!=null&&o.componentWillMount(),d&&o.componentDidMount!=null&&o.__h.push(o.componentDidMount);else {if(d&&k.getDerivedStateFromProps==null&&a!==f&&o.componentWillReceiveProps!=null&&o.componentWillReceiveProps(a,w),!o.__e&&(o.shouldComponentUpdate!=null&&o.shouldComponentUpdate(a,o.__s,w)===!1||e.__v===t.__v)){for(e.__v!==t.__v&&(o.props=a,o.state=o.__s,o.__d=!1),e.__e=t.__e,e.__k=t.__k,e.__k.forEach(function(L){L&&(L.__=e);}),D=0;D<o._sb.length;D++)o.__h.push(o._sb[D]);o._sb=[],o.__h.length&&l.push(o);break e}o.componentWillUpdate!=null&&o.componentWillUpdate(a,o.__s,w),d&&o.componentDidUpdate!=null&&o.__h.push(function(){o.componentDidUpdate(f,v,g);});}if(o.context=w,o.props=a,o.__P=_,o.__e=!1,S=h.__r,G=0,d){for(o.state=o.__s,o.__d=!1,S&&S(e),p=o.render(o.props,o.state,o.context),E=0;E<o._sb.length;E++)o.__h.push(o._sb[E]);o._sb=[];}else do o.__d=!1,S&&S(e),p=o.render(o.props,o.state,o.context),o.state=o.__s;while(o.__d&&++G<25);o.state=o.__s,o.getChildContext!=null&&(i=b$3(b$3({},i),o.getChildContext())),d&&!m&&o.getSnapshotBeforeUpdate!=null&&(g=o.getSnapshotBeforeUpdate(f,v)),ne(_,I(A=p!=null&&p.type===N$1&&p.key==null?p.props.children:p)?A:[A],e,t,i,n,r,l,s,c,u),o.base=e.__e,e.__u&=-161,o.__h.length&&l.push(o),y&&(o.__E=o.__=null);}catch(L){if(e.__v=null,c||r!=null){for(e.__u|=c?160:32;s&&s.nodeType===8&&s.nextSibling;)s=s.nextSibling;r[r.indexOf(s)]=null,e.__e=s;}else e.__e=t.__e,e.__k=t.__k;h.__e(L,e,t);}else r==null&&e.__v===t.__v?(e.__k=t.__k,e.__e=t.__e):e.__e=pe(t.__e,e,t,i,n,r,l,c,u);(p=h.diffed)&&p(e);}function re(_,e,t){e.__d=void 0;for(var i=0;i<t.length;i++)q$1(t[i],t[++i],t[++i]);h.__c&&h.__c(e,_),_.some(function(n){try{_=n.__h,n.__h=[],_.some(function(r){r.call(n);});}catch(r){h.__e(r,n.__v);}});}function pe(_,e,t,i,n,r,l,s,c){var u,p,o,m,f,v,g,y=t.props,a=e.props,d=e.type;if(d==="svg"?n="http://www.w3.org/2000/svg":d==="math"?n="http://www.w3.org/1998/Math/MathML":n||(n="http://www.w3.org/1999/xhtml"),r!=null){for(u=0;u<r.length;u++)if((f=r[u])&&"setAttribute"in f==!!d&&(d?f.localName===d:f.nodeType===3)){_=f,r[u]=null;break}}if(_==null){if(d===null)return document.createTextNode(a);_=document.createElementNS(n,d,a.is&&a),r=null,s=false;}if(d===null)y===a||s&&_.data===a||(_.data=a);else {if(r=r&&M$2.call(_.childNodes),y=t.props||T$1,!s&&r!=null)for(y={},u=0;u<_.attributes.length;u++)y[(f=_.attributes[u]).name]=f.value;for(u in y)if(f=y[u],u!="children"){if(u=="dangerouslySetInnerHTML")o=f;else if(u!=="key"&&!(u in a)){if(u=="value"&&"defaultValue"in a||u=="checked"&&"defaultChecked"in a)continue;W$1(_,u,null,f,n);}}for(u in a)f=a[u],u=="children"?m=f:u=="dangerouslySetInnerHTML"?p=f:u=="value"?v=f:u=="checked"?g=f:u==="key"||s&&typeof f!="function"||y[u]===f||W$1(_,u,f,y[u],n);if(p)s||o&&(p.__html===o.__html||p.__html===_.innerHTML)||(_.innerHTML=p.__html),e.__k=[];else if(o&&(_.innerHTML=""),ne(_,I(m)?m:[m],e,t,i,d==="foreignObject"?"http://www.w3.org/1999/xhtml":n,r,l,r?r[0]:t.__k&&C$2(t,0),s,c),r!=null)for(u=r.length;u--;)r[u]!=null&&_e(r[u]);s||(u="value",v!==void 0&&(v!==_[u]||d==="progress"&&!v||d==="option"&&v!==y[u])&&W$1(_,u,v,y[u],n),u="checked",g!==void 0&&g!==_[u]&&W$1(_,u,g,y[u],n));}return _}function q$1(_,e,t){try{if(typeof _=="function"){var i=typeof _.__u=="function";i&&_.__u(),i&&e==null||(_.__u=_(e));}else _.current=e;}catch(n){h.__e(n,t);}}function V(_,e,t){var i,n;if(h.unmount&&h.unmount(_),(i=_.ref)&&(i.current&&i.current!==_.__e||q$1(i,null,e)),(i=_.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount();}catch(r){h.__e(r,e);}i.base=i.__P=null;}if(i=_.__k)for(n=0;n<i.length;n++)i[n]&&V(i[n],e,t||typeof _.type!="function");t||_.__e==null||_e(_.__e),_.__c=_.__=_.__e=_.__d=void 0;}function ae(_,e,t){return this.constructor(_,t)}function de(_,e,t){var i,n,r,l;h.__&&h.__(_,e),n=(i="undefined"=="function")?null:e.__k,r=[],l=[],z$1(e,_=(e).__k=se(N$1,null,[_]),n||T$1,T$1,e.namespaceURI,n?null:e.firstChild?M$2.call(e.childNodes):null,r,n?n.__e:e.firstChild,i,l),re(r,_,l);}M$2=ee.slice,h={__e:function(_,e,t,i){for(var n,r,l;e=e.__;)if((n=e.__c)&&!n.__)try{if((r=n.constructor)&&r.getDerivedStateFromError!=null&&(n.setState(r.getDerivedStateFromError(_)),l=n.__d),n.componentDidCatch!=null&&(n.componentDidCatch(_,i||{}),l=n.__d),l)return n.__E=n}catch(s){_=s;}throw _}},X=0,ie=function(_){return _!=null&&_.constructor==null},F$1.prototype.setState=function(_,e){var t;t=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=b$3({},this.state),typeof _=="function"&&(_=_(b$3({},t),this.props)),_&&b$3(t,_),_!=null&&this.__v&&(e&&this._sb.push(e),B(this));},F$1.prototype.forceUpdate=function(_){this.__v&&(this.__e=true,_&&this.__h.push(_),B(this));},F$1.prototype.render=N$1,x$2=[],Y=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,R=function(_,e){return _.__v.__b-e.__v.__b},H$1.__r=0,j=0,$=Q(false),O$1=Q(true);
1128
+ var M$2,h,X,ie,x$2,J,Y,R,j,$,O$1,T$1={},ee=[],le=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,I=Array.isArray;function b$3(_,e){for(var t in e)_[t]=e[t];return _}function _e(_){var e=_.parentNode;e&&e.removeChild(_);}function se(_,e,t){var i,n,r,l={};for(r in e)r=="key"?i=e[r]:r=="ref"?n=e[r]:l[r]=e[r];if(arguments.length>2&&(l.children=arguments.length>3?M$2.call(arguments,2):t),typeof _=="function"&&_.defaultProps!=null)for(r in _.defaultProps)l[r]===void 0&&(l[r]=_.defaultProps[r]);return U(_,l,i,n,null)}function U(_,e,t,i,n){var r={type:_,props:e,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:n??++X,__i:-1,__u:0};return n==null&&h.vnode!=null&&h.vnode(r),r}function N$1(_){return _.children}function F$1(_,e){this.props=_,this.context=e;}function C$2(_,e){if(e==null)return _.__?C$2(_.__,_.__i+1):null;for(var t;e<_.__k.length;e++)if((t=_.__k[e])!=null&&t.__e!=null)return t.__e;return typeof _.type=="function"?C$2(_):null}function te(_){var e,t;if((_=_.__)!=null&&_.__c!=null){for(_.__e=_.__c.base=null,e=0;e<_.__k.length;e++)if((t=_.__k[e])!=null&&t.__e!=null){_.__e=_.__c.base=t.__e;break}return te(_)}}function B(_){(!_.__d&&(_.__d=true)&&x$2.push(_)&&!H$1.__r++||J!==h.debounceRendering)&&((J=h.debounceRendering)||Y)(H$1);}function H$1(){var _,e,t,i,n,r,l,s;for(x$2.sort(R);_=x$2.shift();)_.__d&&(e=x$2.length,i=void 0,r=(n=(t=_).__v).__e,l=[],s=[],t.__P&&((i=b$3({},n)).__v=n.__v+1,h.vnode&&h.vnode(i),z$1(t.__P,i,n,t.__n,t.__P.namespaceURI,32&n.__u?[r]:null,l,r??C$2(n),!!(32&n.__u),s),i.__v=n.__v,i.__.__k[i.__i]=i,re(l,i,s),i.__e!=r&&te(i)),x$2.length>e&&x$2.sort(R));H$1.__r=0;}function ne(_,e,t,i,n,r,l,s,c,u,p){var o,m,f,v,g,y=i&&i.__k||ee,a=e.length;for(t.__d=c,ue(t,e,y),c=t.__d,o=0;o<a;o++)(f=t.__k[o])!=null&&typeof f!="boolean"&&typeof f!="function"&&(m=f.__i===-1?T$1:y[f.__i]||T$1,f.__i=o,z$1(_,f,m,n,r,l,s,c,u,p),v=f.__e,f.ref&&m.ref!=f.ref&&(m.ref&&q$1(m.ref,null,f),p.push(f.ref,f.__c||v,f)),g==null&&v!=null&&(g=v),65536&f.__u||m.__k===f.__k?c=oe(f,c,_):typeof f.type=="function"&&f.__d!==void 0?c=f.__d:v&&(c=v.nextSibling),f.__d=void 0,f.__u&=-196609);t.__d=c,t.__e=g;}function ue(_,e,t){var i,n,r,l,s,c=e.length,u=t.length,p=u,o=0;for(_.__k=[],i=0;i<c;i++)l=i+o,(n=_.__k[i]=(n=e[i])==null||typeof n=="boolean"||typeof n=="function"?null:typeof n=="string"||typeof n=="number"||typeof n=="bigint"||n.constructor==String?U(null,n,null,null,null):I(n)?U(N$1,{children:n},null,null,null):n.constructor===void 0&&n.__b>0?U(n.type,n.props,n.key,n.ref?n.ref:null,n.__v):n)!=null?(n.__=_,n.__b=_.__b+1,s=ce(n,t,l,p),n.__i=s,r=null,s!==-1&&(p--,(r=t[s])&&(r.__u|=131072)),r==null||r.__v===null?(s==-1&&o--,typeof n.type!="function"&&(n.__u|=65536)):s!==l&&(s==l-1?o=s-l:s==l+1?o++:s>l?p>c-l?o+=s-l:o--:s<l&&o++,s!==i+o&&(n.__u|=65536))):(r=t[l])&&r.key==null&&r.__e&&(131072&r.__u)==0&&(r.__e==_.__d&&(_.__d=C$2(r)),V(r,r,false),t[l]=null,p--);if(p)for(i=0;i<u;i++)(r=t[i])!=null&&(131072&r.__u)==0&&(r.__e==_.__d&&(_.__d=C$2(r)),V(r,r));}function oe(_,e,t){var i,n;if(typeof _.type=="function"){for(i=_.__k,n=0;i&&n<i.length;n++)i[n]&&(i[n].__=_,e=oe(i[n],e,t));return e}_.__e!=e&&(e&&_.type&&!t.contains(e)&&(e=C$2(_)),t.insertBefore(_.__e,e||null),e=_.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function ce(_,e,t,i){var n=_.key,r=_.type,l=t-1,s=t+1,c=e[t];if(c===null||c&&n==c.key&&r===c.type&&(131072&c.__u)==0)return t;if(i>(c!=null&&(131072&c.__u)==0?1:0))for(;l>=0||s<e.length;){if(l>=0){if((c=e[l])&&(131072&c.__u)==0&&n==c.key&&r===c.type)return l;l--;}if(s<e.length){if((c=e[s])&&(131072&c.__u)==0&&n==c.key&&r===c.type)return s;s++;}}return -1}function K(_,e,t){e[0]==="-"?_.setProperty(e,t??""):_[e]=t==null?"":typeof t!="number"||le.test(e)?t:t+"px";}function W$1(_,e,t,i,n){var r;e:if(e==="style")if(typeof t=="string")_.style.cssText=t;else {if(typeof i=="string"&&(_.style.cssText=i=""),i)for(e in i)t&&e in t||K(_.style,e,"");if(t)for(e in t)i&&t[e]===i[e]||K(_.style,e,t[e]);}else if(e[0]==="o"&&e[1]==="n")r=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in _||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),_.l||(_.l={}),_.l[e+r]=t,t?i?t.u=i.u:(t.u=j,_.addEventListener(e,r?O$1:$,r)):_.removeEventListener(e,r?O$1:$,r);else {if(n=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in _)try{_[e]=t??"";break e}catch{}typeof t=="function"||(t==null||t===false&&e[4]!=="-"?_.removeAttribute(e):_.setAttribute(e,e=="popover"&&t==1?"":t));}}function Q(_){return function(e){if(this.l){var t=this.l[e.type+_];if(e.t==null)e.t=j++;else if(e.t<t.u)return;return t(h.event?h.event(e):e)}}}function z$1(_,e,t,i,n,r,l,s,c,u){var p,o,m,f,v,g,y,a,d,P,w,D,S,G,E,A,k=e.type;if(e.constructor!==void 0)return null;128&t.__u&&(c=!!(32&t.__u),r=[s=e.__e=t.__e]),(p=h.__b)&&p(e);e:if(typeof k=="function")try{if(a=e.props,d="prototype"in k&&k.prototype.render,P=(p=k.contextType)&&i[p.__c],w=p?P?P.props.value:p.__:i,t.__c?y=(o=e.__c=t.__c).__=o.__E:(d?e.__c=o=new k(a,w):(e.__c=o=new F$1(a,w),o.constructor=k,o.render=ae),P&&P.sub(o),o.props=a,o.state||(o.state={}),o.context=w,o.__n=i,m=o.__d=!0,o.__h=[],o._sb=[]),d&&o.__s==null&&(o.__s=o.state),d&&k.getDerivedStateFromProps!=null&&(o.__s==o.state&&(o.__s=b$3({},o.__s)),b$3(o.__s,k.getDerivedStateFromProps(a,o.__s))),f=o.props,v=o.state,o.__v=e,m)d&&k.getDerivedStateFromProps==null&&o.componentWillMount!=null&&o.componentWillMount(),d&&o.componentDidMount!=null&&o.__h.push(o.componentDidMount);else {if(d&&k.getDerivedStateFromProps==null&&a!==f&&o.componentWillReceiveProps!=null&&o.componentWillReceiveProps(a,w),!o.__e&&(o.shouldComponentUpdate!=null&&o.shouldComponentUpdate(a,o.__s,w)===!1||e.__v===t.__v)){for(e.__v!==t.__v&&(o.props=a,o.state=o.__s,o.__d=!1),e.__e=t.__e,e.__k=t.__k,e.__k.forEach(function(L){L&&(L.__=e);}),D=0;D<o._sb.length;D++)o.__h.push(o._sb[D]);o._sb=[],o.__h.length&&l.push(o);break e}o.componentWillUpdate!=null&&o.componentWillUpdate(a,o.__s,w),d&&o.componentDidUpdate!=null&&o.__h.push(function(){o.componentDidUpdate(f,v,g);});}if(o.context=w,o.props=a,o.__P=_,o.__e=!1,S=h.__r,G=0,d){for(o.state=o.__s,o.__d=!1,S&&S(e),p=o.render(o.props,o.state,o.context),E=0;E<o._sb.length;E++)o.__h.push(o._sb[E]);o._sb=[];}else do o.__d=!1,S&&S(e),p=o.render(o.props,o.state,o.context),o.state=o.__s;while(o.__d&&++G<25);o.state=o.__s,o.getChildContext!=null&&(i=b$3(b$3({},i),o.getChildContext())),d&&!m&&o.getSnapshotBeforeUpdate!=null&&(g=o.getSnapshotBeforeUpdate(f,v)),ne(_,I(A=p!=null&&p.type===N$1&&p.key==null?p.props.children:p)?A:[A],e,t,i,n,r,l,s,c,u),o.base=e.__e,e.__u&=-161,o.__h.length&&l.push(o),y&&(o.__E=o.__=null);}catch(L){if(e.__v=null,c||r!=null){for(e.__u|=c?160:32;s&&s.nodeType===8&&s.nextSibling;)s=s.nextSibling;r[r.indexOf(s)]=null,e.__e=s;}else e.__e=t.__e,e.__k=t.__k;h.__e(L,e,t);}else r==null&&e.__v===t.__v?(e.__k=t.__k,e.__e=t.__e):e.__e=pe(t.__e,e,t,i,n,r,l,c,u);(p=h.diffed)&&p(e);}function re(_,e,t){e.__d=void 0;for(var i=0;i<t.length;i++)q$1(t[i],t[++i],t[++i]);h.__c&&h.__c(e,_),_.some(function(n){try{_=n.__h,n.__h=[],_.some(function(r){r.call(n);});}catch(r){h.__e(r,n.__v);}});}function pe(_,e,t,i,n,r,l,s,c){var u,p,o,m,f,v,g,y=t.props,a=e.props,d=e.type;if(d==="svg"?n="http://www.w3.org/2000/svg":d==="math"?n="http://www.w3.org/1998/Math/MathML":n||(n="http://www.w3.org/1999/xhtml"),r!=null){for(u=0;u<r.length;u++)if((f=r[u])&&"setAttribute"in f==!!d&&(d?f.localName===d:f.nodeType===3)){_=f,r[u]=null;break}}if(_==null){if(d===null)return document.createTextNode(a);_=document.createElementNS(n,d,a.is&&a),r=null,s=false;}if(d===null)y===a||s&&_.data===a||(_.data=a);else {if(r=r&&M$2.call(_.childNodes),y=t.props||T$1,!s&&r!=null)for(y={},u=0;u<_.attributes.length;u++)y[(f=_.attributes[u]).name]=f.value;for(u in y)if(f=y[u],u!="children"){if(u=="dangerouslySetInnerHTML")o=f;else if(u!=="key"&&!(u in a)){if(u=="value"&&"defaultValue"in a||u=="checked"&&"defaultChecked"in a)continue;W$1(_,u,null,f,n);}}for(u in a)f=a[u],u=="children"?m=f:u=="dangerouslySetInnerHTML"?p=f:u=="value"?v=f:u=="checked"?g=f:u==="key"||s&&typeof f!="function"||y[u]===f||W$1(_,u,f,y[u],n);if(p)s||o&&(p.__html===o.__html||p.__html===_.innerHTML)||(_.innerHTML=p.__html),e.__k=[];else if(o&&(_.innerHTML=""),ne(_,I(m)?m:[m],e,t,i,d==="foreignObject"?"http://www.w3.org/1999/xhtml":n,r,l,r?r[0]:t.__k&&C$2(t,0),s,c),r!=null)for(u=r.length;u--;)r[u]!=null&&_e(r[u]);s||(u="value",v!==void 0&&(v!==_[u]||d==="progress"&&!v||d==="option"&&v!==y[u])&&W$1(_,u,v,y[u],n),u="checked",g!==void 0&&g!==_[u]&&W$1(_,u,g,y[u],n));}return _}function q$1(_,e,t){try{if(typeof _=="function"){var i=typeof _.__u=="function";i&&_.__u(),i&&e==null||(_.__u=_(e));}else _.current=e;}catch(n){h.__e(n,t);}}function V(_,e,t){var i,n;if(h.unmount&&h.unmount(_),(i=_.ref)&&(i.current&&i.current!==_.__e||q$1(i,null,e)),(i=_.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount();}catch(r){h.__e(r,e);}i.base=i.__P=null;}if(i=_.__k)for(n=0;n<i.length;n++)i[n]&&V(i[n],e,t||typeof _.type!="function");t||_.__e==null||_e(_.__e),_.__c=_.__=_.__e=_.__d=void 0;}function ae(_,e,t){return this.constructor(_,t)}function de(_,e,t){var i,n,r,l;h.__&&h.__(_,e),n=(i="undefined"=="function")?null:e.__k,r=[],l=[],z$1(e,_=(e).__k=se(N$1,null,[_]),n||T$1,T$1,e.namespaceURI,n?null:e.firstChild?M$2.call(e.childNodes):null,r,n?n.__e:e.firstChild,i,l),re(r,_,l);}M$2=ee.slice,h={__e:function(_,e,t,i){for(var n,r,l;e=e.__;)if((n=e.__c)&&!n.__)try{if((r=n.constructor)&&r.getDerivedStateFromError!=null&&(n.setState(r.getDerivedStateFromError(_)),l=n.__d),n.componentDidCatch!=null&&(n.componentDidCatch(_,i||{}),l=n.__d),l)return n.__E=n}catch(s){_=s;}throw _}},X=0,ie=function(_){return _!=null&&_.constructor==null},F$1.prototype.setState=function(_,e){var t;t=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=b$3({},this.state),typeof _=="function"&&(_=_(b$3({},t),this.props)),_&&b$3(t,_),_!=null&&this.__v&&(e&&this._sb.push(e),B(this));},F$1.prototype.forceUpdate=function(_){this.__v&&(this.__e=true,_&&this.__h.push(_),B(this));},F$1.prototype.render=N$1,x$2=[],Y=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,R=function(_,e){return _.__v.__b-e.__v.__b},H$1.__r=0,j=0,$=Q(false),O$1=Q(true);
1129
1129
 
1130
1130
  /* esm.sh - htm@3.1.1 */
1131
- var a$2=function(p,f,c,n){var l;f[0]=0;for(var u=1;u<f.length;u++){var g=f[u++],o=f[u]?(f[0]|=g?1:2,c[f[u++]]):f[++u];g===3?n[0]=o:g===4?n[1]=Object.assign(n[1]||{},o):g===5?(n[1]=n[1]||{})[f[++u]]=o:g===6?n[1][f[++u]]+=o+"":g?(l=p.apply(o,a$2(p,o,c,["",null])),n.push(l),o[0]?f[0]|=2:(f[u-2]=0,f[u]=l)):n.push(o);}return n},M$1=new Map;function b$2(p){var f=M$1.get(this);return f||(f=new Map,M$1.set(this,f)),(f=a$2(this,f.get(p)||(f.set(p,f=function(c){for(var n,l,u=1,g="",o="",i=[0],s=function(v){u===1&&(v||(g=g.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?i.push(0,v,g):u===3&&(v||g)?(i.push(3,v,g),u=2):u===2&&g==="..."&&v?i.push(4,v,0):u===2&&g&&!v?i.push(5,0,true,g):u>=5&&((g||!v&&u===5)&&(i.push(u,0,g,l),u=6),v&&(i.push(u,v,0,l),u=6)),g="";},t=0;t<c.length;t++){t&&(u===1&&s(),s(t));for(var w=0;w<c[t].length;w++)n=c[t][w],u===1?n==="<"?(s(),i=[i],u=3):g+=n:u===4?g==="--"&&n===">"?(u=1,g=""):g=n+g[0]:o?n===o?o="":g+=n:n==='"'||n==="'"?o=n:n===">"?(s(),u=1):u&&(n==="="?(u=5,l=g,g=""):n==="/"&&(u<5||c[t][w+1]===">")?(s(),u===3&&(i=i[0]),u=i,(i=i[0]).push(2,0,u),u=0):n===" "||n===" "||n===`
1132
- `||n==="\r"?(s(),u=2):g+=n),u===3&&g==="!--"&&(u=4,i=i[0]);}return s(),i}(p)),f),arguments,[])).length>1?f:f[0]}
1131
+ var a$2=function(p,f,c,n){var l;f[0]=0;for(var u=1;u<f.length;u++){var g=f[u++],o=f[u]?(f[0]|=g?1:2,c[f[u++]]):f[++u];g===3?n[0]=o:g===4?n[1]=Object.assign(n[1]||{},o):g===5?(n[1]=n[1]||{})[f[++u]]=o:g===6?n[1][f[++u]]+=o+"":g?(l=p.apply(o,a$2(p,o,c,["",null])),n.push(l),o[0]?f[0]|=2:(f[u-2]=0,f[u]=l)):n.push(o);}return n},M$1=new Map;function b$2(p){var f=M$1.get(this);return f||(f=new Map,M$1.set(this,f)),(f=a$2(this,f.get(p)||(f.set(p,f=(function(c){for(var n,l,u=1,g="",o="",i=[0],s=function(v){u===1&&(v||(g=g.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?i.push(0,v,g):u===3&&(v||g)?(i.push(3,v,g),u=2):u===2&&g==="..."&&v?i.push(4,v,0):u===2&&g&&!v?i.push(5,0,true,g):u>=5&&((g||!v&&u===5)&&(i.push(u,0,g,l),u=6),v&&(i.push(u,v,0,l),u=6)),g="";},t=0;t<c.length;t++){t&&(u===1&&s(),s(t));for(var w=0;w<c[t].length;w++)n=c[t][w],u===1?n==="<"?(s(),i=[i],u=3):g+=n:u===4?g==="--"&&n===">"?(u=1,g=""):g=n+g[0]:o?n===o?o="":g+=n:n==='"'||n==="'"?o=n:n===">"?(s(),u=1):u&&(n==="="?(u=5,l=g,g=""):n==="/"&&(u<5||c[t][w+1]===">")?(s(),u===3&&(i=i[0]),u=i,(i=i[0]).push(2,0,u),u=0):n===" "||n===" "||n===`
1132
+ `||n==="\r"?(s(),u=2):g+=n),u===3&&g==="!--"&&(u=4,i=i[0]);}return s(),i})(p)),f),arguments,[])).length>1?f:f[0]}
1133
1133
 
1134
1134
  /* esm.sh - htm@3.1.1/preact */
1135
1135
  var p$3=b$2.bind(se);
@@ -1141,7 +1141,7 @@ var m=Symbol.for("preact-signals");function a$1(){if(s>1)s--;else {for(var t,i=f
1141
1141
  var c$1,r,d,b,v=0,x=[],o=h,g=o.__b,C$1=o.__r,A=o.diffed,D=o.__c,F=o.unmount,k=o.__;function l(t,_){o.__h&&o.__h(r,t,v||_),v=0;var u=r.__H||(r.__H={__:[],__h:[]});return t>=u.__.length&&u.__.push({}),u.__[t]}function z(t){return v=5,T(function(){return {current:t}},[])}function T(t,_){var u=l(c$1++,7);return E(u.__H,_)&&(u.__=t(),u.__H=_,u.__h=t),u.__}function M(t,_){return v=8,T(function(){return t},_)}function S$1(){for(var t;t=x.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(p$1),t.__H.__h.forEach(H),t.__H.__h=[];}catch(_){t.__H.__h=[],o.__e(_,t.__v);}}o.__b=function(t){r=null,g&&g(t);},o.__=function(t,_){t&&_.__k&&_.__k.__m&&(t.__m=_.__k.__m),k&&k(t,_);},o.__r=function(t){C$1&&C$1(t),c$1=0;var _=(r=t.__c).__H;_&&(d===r?(_.__h=[],r.__h=[],_.__.forEach(function(u){u.__N&&(u.__=u.__N),u.i=u.__N=void 0;})):(_.__h.forEach(p$1),_.__h.forEach(H),_.__h=[],c$1=0)),d=r;},o.diffed=function(t){A&&A(t);var _=t.__c;_&&_.__H&&(_.__H.__h.length&&(x.push(_)!==1&&b===o.requestAnimationFrame||((b=o.requestAnimationFrame)||W)(S$1)),_.__H.__.forEach(function(u){u.i&&(u.__H=u.i),u.i=void 0;})),d=r=null;},o.__c=function(t,_){_.some(function(u){try{u.__h.forEach(p$1),u.__h=u.__h.filter(function(n){return !n.__||H(n)});}catch(n){_.some(function(i){i.__h&&(i.__h=[]);}),_=[],o.__e(n,u.__v);}}),D&&D(t,_);},o.unmount=function(t){F&&F(t);var _,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{p$1(n);}catch(i){_=i;}}),u.__H=void 0,_&&o.__e(_,u.__v));};var q=typeof requestAnimationFrame=="function";function W(t){var _,u=function(){clearTimeout(n),q&&cancelAnimationFrame(_),setTimeout(t);},n=setTimeout(u,100);q&&(_=requestAnimationFrame(u));}function p$1(t){var _=r,u=t.__c;typeof u=="function"&&(t.__c=void 0,u()),r=_;}function H(t){var _=r;t.__c=t.__(),r=_;}function E(t,_){return !t||t.length!==_.length||_.some(function(u,n){return u!==t[n]})}
1142
1142
 
1143
1143
  /* esm.sh - @preact/signals@1.3.0 */
1144
- var p;function a(e,n){h[e]=n.bind(null,h[e]||function(){});}function c(e){p&&p(),p=e&&e.S();}function S(e){var n=this,t=e.data,i=w(t);i.value=t;var u=T(function(){for(var r=n.__v;r=r.__;)if(r.__c){r.__c.__$f|=4;break}return n.__$u.c=function(){var f;!ie(u.peek())&&((f=n.base)==null?void 0:f.nodeType)===3?n.base.data=u.peek():(n.__$f|=1,n.setState({}));},O(function(){var f=i.value.value;return f===0?0:f===true?"":f||""})},[]);return u.value}S.displayName="_st";Object.defineProperties(f.prototype,{constructor:{configurable:true,value:void 0},type:{configurable:true,value:S},props:{configurable:true,get:function(){return {data:this}}},__b:{configurable:true,value:1}});a("__b",function(e,n){if(typeof n.type=="string"){var t,i=n.props;for(var u in i)if(u!=="children"){var r=i[u];r instanceof f&&(t||(n.__np=t={}),t[u]=r,i[u]=r.peek());}}e(n);});a("__r",function(e,n){c();var t,i=n.__c;i&&(i.__$f&=-2,(t=i.__$u)===void 0&&(i.__$u=t=function(u){var r;return E$1(function(){r=this;}),r.c=function(){i.__$f|=1,i.setState({});},r}())),c(t),e(n);});a("__e",function(e,n,t,i){c(),e(n,t,i);});a("diffed",function(e,n){c();var t;if(typeof n.type=="string"&&(t=n.__e)){var i=n.__np,u=n.props;if(i){var r=t.U;if(r)for(var f in r){var o=r[f];o!==void 0&&!(f in i)&&(o.d(),r[f]=void 0);}else t.U=r={};for(var _ in i){var v=r[_],m=i[_];v===void 0?(v=C(t,_,m,u),r[_]=v):v.o(m,u);}}}e(n);});function C(e,n,t,i){var u=n in e&&e.ownerSVGElement===void 0,r=N(t);return {o:function(f,o){r.value=f,i=o;},d:E$1(function(){var f=r.value.value;i[n]!==f&&(i[n]=f,u?e[n]=f:f?e.setAttribute(n,f):e.removeAttribute(n));})}}a("unmount",function(e,n){if(typeof n.type=="string"){var t=n.__e;if(t){var i=t.U;if(i){t.U=void 0;for(var u in i){var r=i[u];r&&r.d();}}}}else {var f=n.__c;if(f){var o=f.__$u;o&&(f.__$u=void 0,o.d());}}e(n);});a("__h",function(e,n,t,i){(i<3||i===9)&&(n.__$f|=2),e(n,t,i);});F$1.prototype.shouldComponentUpdate=function(e,n){var t=this.__$u;if(!(t&&t.s!==void 0||4&this.__$f)||3&this.__$f)return true;for(var i in n)return true;for(var u in e)if(u!=="__source"&&e[u]!==this.props[u])return true;for(var r in this.props)if(!(r in e))return true;return false};function w(e){return T(function(){return N(e)},[])}
1144
+ var p;function a(e,n){h[e]=n.bind(null,h[e]||function(){});}function c(e){p&&p(),p=e&&e.S();}function S(e){var n=this,t=e.data,i=w(t);i.value=t;var u=T(function(){for(var r=n.__v;r=r.__;)if(r.__c){r.__c.__$f|=4;break}return n.__$u.c=function(){var f;!ie(u.peek())&&((f=n.base)==null?void 0:f.nodeType)===3?n.base.data=u.peek():(n.__$f|=1,n.setState({}));},O(function(){var f=i.value.value;return f===0?0:f===true?"":f||""})},[]);return u.value}S.displayName="_st";Object.defineProperties(f.prototype,{constructor:{configurable:true,value:void 0},type:{configurable:true,value:S},props:{configurable:true,get:function(){return {data:this}}},__b:{configurable:true,value:1}});a("__b",function(e,n){if(typeof n.type=="string"){var t,i=n.props;for(var u in i)if(u!=="children"){var r=i[u];r instanceof f&&(t||(n.__np=t={}),t[u]=r,i[u]=r.peek());}}e(n);});a("__r",function(e,n){c();var t,i=n.__c;i&&(i.__$f&=-2,(t=i.__$u)===void 0&&(i.__$u=t=(function(u){var r;return E$1(function(){r=this;}),r.c=function(){i.__$f|=1,i.setState({});},r})())),c(t),e(n);});a("__e",function(e,n,t,i){c(),e(n,t,i);});a("diffed",function(e,n){c();var t;if(typeof n.type=="string"&&(t=n.__e)){var i=n.__np,u=n.props;if(i){var r=t.U;if(r)for(var f in r){var o=r[f];o!==void 0&&!(f in i)&&(o.d(),r[f]=void 0);}else t.U=r={};for(var _ in i){var v=r[_],m=i[_];v===void 0?(v=C(t,_,m,u),r[_]=v):v.o(m,u);}}}e(n);});function C(e,n,t,i){var u=n in e&&e.ownerSVGElement===void 0,r=N(t);return {o:function(f,o){r.value=f,i=o;},d:E$1(function(){var f=r.value.value;i[n]!==f&&(i[n]=f,u?e[n]=f:f?e.setAttribute(n,f):e.removeAttribute(n));})}}a("unmount",function(e,n){if(typeof n.type=="string"){var t=n.__e;if(t){var i=t.U;if(i){t.U=void 0;for(var u in i){var r=i[u];r&&r.d();}}}}else {var f=n.__c;if(f){var o=f.__$u;o&&(f.__$u=void 0,o.d());}}e(n);});a("__h",function(e,n,t,i){(i<3||i===9)&&(n.__$f|=2),e(n,t,i);});F$1.prototype.shouldComponentUpdate=function(e,n){var t=this.__$u;if(!(t&&t.s!==void 0||4&this.__$f)||3&this.__$f)return true;for(var i in n)return true;for(var u in e)if(u!=="__source"&&e[u]!==this.props[u])return true;for(var r in this.props)if(!(r in e))return true;return false};function w(e){return T(function(){return N(e)},[])}
1145
1145
 
1146
1146
  const routesLoadingSignal = N(false);
1147
1147
  const routeLoadingErrorSignal = N(null);
@@ -1514,22 +1514,29 @@ const createRequestLogger = (nodeRequest, write) => {
1514
1514
  });
1515
1515
  },
1516
1516
  onHeadersSent: ({ status, statusText }) => {
1517
+ const isFaviconNotFound =
1518
+ status === 404 && nodeRequest.url === "/favicon.ico";
1519
+ if (isFaviconNotFound) {
1520
+ if (process.env.CAPTURING_SIDE_EFFECTS) {
1521
+ // we don't care about this 99.999999% of the time, it only pollute logs
1522
+ return;
1523
+ }
1524
+ }
1517
1525
  const statusType = statusToType(status);
1518
1526
  let message = `${colorizeResponseStatus(status)}`;
1519
1527
  if (statusText) {
1520
1528
  message += ` ${statusText}`;
1521
1529
  }
1522
1530
  add({
1523
- type:
1524
- status === 404 && nodeRequest.path === "/favicon.ico"
1525
- ? "debug"
1526
- : {
1527
- information: "info",
1528
- success: "info",
1529
- redirection: "info",
1530
- client_error: "warn",
1531
- server_error: "error",
1532
- }[statusType] || "error",
1531
+ type: isFaviconNotFound
1532
+ ? "debug"
1533
+ : {
1534
+ information: "info",
1535
+ success: "info",
1536
+ redirection: "info",
1537
+ client_error: "warn",
1538
+ server_error: "error",
1539
+ }[statusType] || "error",
1533
1540
  value: message,
1534
1541
  });
1535
1542
  },
@@ -6318,9 +6325,8 @@ const jsenvServiceOpenFile = () => {
6318
6325
  };
6319
6326
  };
6320
6327
 
6321
- const routeInspectorHtmlFileUrl = import.meta.resolve(
6322
- "./client/route_inspector/route_inspector.html",
6323
- );
6328
+ const routeInspectorHtmlFileUrl = import.meta
6329
+ .resolve("./client/route_inspector/route_inspector.html");
6324
6330
 
6325
6331
  const jsenvServiceRouteInspector = () => {
6326
6332
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/server",
3
- "version": "16.3.3",
3
+ "version": "16.3.5",
4
4
  "description": "A modern Node.js HTTP server with declarative routing, content negotiation, and WebSocket support",
5
5
  "repository": {
6
6
  "type": "git",
@@ -53,9 +53,9 @@
53
53
  "@jsenv/url-pattern": "../../tooling/url-pattern",
54
54
  "@jsenv/urls": "../../tooling/urls",
55
55
  "@jsenv/utils": "../../tooling/utils",
56
- "eventsource": "4.0.0",
56
+ "eventsource": "4.1.0",
57
57
  "formidable": "3.5.4",
58
- "playwright": "1.56.1",
58
+ "playwright": "1.57.0",
59
59
  "undici": "7.16.0",
60
60
  "ws": "8.18.3"
61
61
  },
@@ -241,22 +241,29 @@ const createRequestLogger = (nodeRequest, write) => {
241
241
  });
242
242
  },
243
243
  onHeadersSent: ({ status, statusText }) => {
244
+ const isFaviconNotFound =
245
+ status === 404 && nodeRequest.url === "/favicon.ico";
246
+ if (isFaviconNotFound) {
247
+ if (process.env.CAPTURING_SIDE_EFFECTS) {
248
+ // we don't care about this 99.999999% of the time, it only pollute logs
249
+ return;
250
+ }
251
+ }
244
252
  const statusType = statusToType(status);
245
253
  let message = `${colorizeResponseStatus(status)}`;
246
254
  if (statusText) {
247
255
  message += ` ${statusText}`;
248
256
  }
249
257
  add({
250
- type:
251
- status === 404 && nodeRequest.path === "/favicon.ico"
252
- ? "debug"
253
- : {
254
- information: "info",
255
- success: "info",
256
- redirection: "info",
257
- client_error: "warn",
258
- server_error: "error",
259
- }[statusType] || "error",
258
+ type: isFaviconNotFound
259
+ ? "debug"
260
+ : {
261
+ information: "info",
262
+ success: "info",
263
+ redirection: "info",
264
+ client_error: "warn",
265
+ server_error: "error",
266
+ }[statusType] || "error",
260
267
  value: message,
261
268
  });
262
269
  },
@@ -6,46 +6,46 @@
6
6
  <title>${status} ${statusText}</title>
7
7
  <style>
8
8
  body {
9
- font-family: Arial, sans-serif;
10
- background-color: #f8f9fa;
11
- color: #333;
12
9
  display: flex;
13
- align-items: center;
14
- justify-content: center;
15
10
  min-height: 100vh;
16
11
  margin: 0;
12
+ align-items: center;
13
+ justify-content: center;
14
+ color: #333;
15
+ font-family: Arial, sans-serif;
16
+ background-color: #f8f9fa;
17
17
  }
18
18
  .error_container {
19
+ padding: 20px;
19
20
  text-align: center;
20
21
  background: #fff;
21
- padding: 20px;
22
22
  border-radius: 8px;
23
23
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
24
24
  }
25
25
  .error_status {
26
- font-size: 5rem;
27
- color: #dc3545;
28
26
  margin: 0;
27
+ color: #dc3545;
28
+ font-size: 5rem;
29
29
  }
30
30
  .error_status_text {
31
- font-size: 1.5rem;
32
31
  margin: 10px 0;
33
- word-break: break-word;
32
+ font-size: 1.5rem;
34
33
  text-align: left;
34
+ word-break: break-word;
35
35
  }
36
36
  .error_message {
37
- font-size: 1rem;
38
37
  color: #555;
39
- word-break: break-word;
38
+ font-size: 1rem;
40
39
  text-align: left;
40
+ word-break: break-word;
41
41
  }
42
42
  .home_link {
43
- margin-top: 15px;
44
43
  display: inline-block;
44
+ margin-top: 15px;
45
45
  padding: 10px 15px;
46
- background-color: #007bff;
47
46
  color: #fff;
48
47
  text-decoration: none;
48
+ background-color: #007bff;
49
49
  border-radius: 5px;
50
50
  }
51
51
  .home_link:hover {
@@ -8,43 +8,43 @@
8
8
  */
9
9
 
10
10
  (() => {
11
- const css = /*css*/ `
12
- *[aria-hidden="true"] {
13
- display: none;
14
- }
15
-
16
- .clipboard_container {
17
- display: flex;
18
- padding: 8px;
19
- gap: 5px;
20
- align-items: center;
21
- }
22
-
23
- #copied_notif {
24
- background: black;
25
- color: white;
26
- border-radius: 3px;
27
- padding: 0.2em 0.5em;
28
- font-size: 80%;
29
- }
30
-
31
- button {
32
- border: none;
33
- background: none;
34
- background-color: rgb(246, 248, 250);
35
- border-color: rgb(209, 217, 224);
36
- border-radius: 6px;
37
- border-width: 1px;
38
- border-style: solid;
39
- cursor: pointer;
40
- width: 32px;
41
- height: 32px;
42
- }
43
-
44
- button:hover {
45
- background-color: rgb(239, 242, 245);
46
- }
47
- `;
11
+ const css = /* css */ `
12
+ *[aria-hidden="true"] {
13
+ display: none;
14
+ }
15
+
16
+ .clipboard_container {
17
+ display: flex;
18
+ padding: 8px;
19
+ align-items: center;
20
+ gap: 5px;
21
+ }
22
+
23
+ #copied_notif {
24
+ padding: 0.2em 0.5em;
25
+ color: white;
26
+ font-size: 80%;
27
+ background: black;
28
+ border-radius: 3px;
29
+ }
30
+
31
+ button {
32
+ width: 32px;
33
+ height: 32px;
34
+ background: none;
35
+ background-color: rgb(246, 248, 250);
36
+ border: none;
37
+ border-width: 1px;
38
+ border-style: solid;
39
+ border-color: rgb(209, 217, 224);
40
+ border-radius: 6px;
41
+ cursor: pointer;
42
+ }
43
+
44
+ button:hover {
45
+ background-color: rgb(239, 242, 245);
46
+ }
47
+ `;
48
48
 
49
49
  const html = /* html */ `<style>
50
50
  ${css}
@@ -126,27 +126,27 @@ button:hover {
126
126
  })();
127
127
 
128
128
  (() => {
129
- const css = /*css*/ `
130
- /* :host {
131
- display: block;
132
- }
133
- :host code[class*="language-"], :host pre[class*="language-"]{
134
- margin-top: 0;
135
- } */
136
- #code_block {
137
- position: relative;
138
- }
139
-
140
- #pre {
141
- padding: 16px;
142
- font-size: 86%;
143
- margin-top: 16px;
144
- margin-bottom: 16px;
145
- margin-left: 0;
146
- margin-right: 0;
147
- background: #333 ;
148
- }
149
- `;
129
+ const css = /* css */ `
130
+ /* :host {
131
+ display: block;
132
+ }
133
+ :host code[class*="language-"], :host pre[class*="language-"]{
134
+ margin-top: 0;
135
+ } */
136
+ #code_block {
137
+ position: relative;
138
+ }
139
+
140
+ #pre {
141
+ margin-top: 16px;
142
+ margin-right: 0;
143
+ margin-bottom: 16px;
144
+ margin-left: 0;
145
+ padding: 16px;
146
+ font-size: 86%;
147
+ background: #333;
148
+ }
149
+ `;
150
150
 
151
151
  const html = /* html */ `<style>
152
152
  ${css}
@@ -60,6 +60,8 @@
60
60
  }
61
61
 
62
62
  body {
63
+ margin: 0;
64
+ color: var(--text-color);
63
65
  font-family:
64
66
  system-ui,
65
67
  -apple-system,
@@ -69,9 +71,7 @@
69
71
  Arial,
70
72
  sans-serif;
71
73
  line-height: 1.5;
72
- color: var(--text-color);
73
74
  background-color: var(--background-color);
74
- margin: 0;
75
75
 
76
76
  transition:
77
77
  background-color 0.3s ease,
@@ -83,23 +83,23 @@
83
83
  flex-direction: row;
84
84
  }
85
85
  aside {
86
+ position: fixed;
86
87
  width: 250px;
88
+ height: 100%;
89
+ margin-right: 20px;
87
90
  flex-shrink: 0;
88
91
  transition:
89
92
  width 0.3s ease,
90
93
  margin-left 0.3s ease;
91
- height: 100%;
92
- margin-right: 20px;
93
- position: fixed;
94
94
  }
95
95
  main {
96
- flex-grow: 1;
97
- flex-basis: 0;
98
96
  min-width: 0;
99
- transition: margin-left 0.3s ease;
97
+ margin-left: 280px;
100
98
  padding-top: 20px;
101
99
  padding-right: 20px;
102
- margin-left: 280px;
100
+ flex-grow: 1;
101
+ flex-basis: 0;
102
+ transition: margin-left 0.3s ease;
103
103
  }
104
104
 
105
105
  .header_row {
@@ -108,22 +108,22 @@
108
108
  gap: 10px;
109
109
  }
110
110
  .header_title {
111
- margin: 0;
112
- line-height: 1;
113
111
  display: flex;
114
- gap: 10px;
112
+ margin: 0;
115
113
  align-items: center;
114
+ gap: 10px;
115
+ line-height: 1;
116
116
  }
117
117
  .note_button_open {
118
+ height: 24px;
119
+ padding: 0;
120
+ color: var(--text-color);
118
121
  background: none;
119
122
  border: none;
120
- cursor: pointer;
121
123
  border-radius: 50%;
122
- transition: background-color 0.2s;
123
- padding: 0;
124
- color: var(--text-color);
125
124
  opacity: 0.7;
126
- height: 24px;
125
+ transition: background-color 0.2s;
126
+ cursor: pointer;
127
127
  }
128
128
  .note_button_open:hover {
129
129
  background-color: color-mix(
@@ -134,36 +134,36 @@
134
134
  opacity: 1;
135
135
  }
136
136
  .note_title {
137
- font-weight: bold;
138
- font-size: 1.1rem;
139
- margin-bottom: 10px;
140
137
  display: flex;
138
+ margin-bottom: 10px;
141
139
  align-items: center;
140
+ font-weight: bold;
141
+ font-size: 1.1rem;
142
142
  }
143
143
  .note_button_close {
144
144
  position: absolute;
145
145
  top: 15px;
146
146
  right: 15px;
147
- background: none;
148
- border: none;
149
- cursor: pointer;
150
- padding: 5px;
151
- border-radius: 50%;
152
147
  display: flex;
148
+ padding: 5px;
153
149
  align-items: center;
154
150
  justify-content: center;
151
+ background: none;
152
+ border: none;
153
+ border-radius: 50%;
154
+ cursor: pointer;
155
155
  }
156
156
  .note_button_close:hover {
157
157
  background-color: var(--secondary-color);
158
158
  }
159
159
  .note_content {
160
+ position: relative;
161
+ width: 90%;
162
+ max-width: 500px;
163
+ padding: 20px;
160
164
  background-color: var(--background-color);
161
165
  border-radius: 8px;
162
- padding: 20px;
163
- max-width: 500px;
164
- width: 90%;
165
166
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
166
- position: relative;
167
167
  transform: translateY(-20px);
168
168
  transition: transform 0.3s ease;
169
169
  }
@@ -174,17 +174,17 @@
174
174
  }
175
175
 
176
176
  #theme-toggle-btn {
177
- background: none;
178
- border: none;
179
- cursor: pointer;
177
+ display: flex;
180
178
  width: 40px;
181
179
  height: 40px;
182
- border-radius: 50%;
183
- display: flex;
184
180
  align-items: center;
185
181
  justify-content: center;
186
- transition: background-color 0.2s;
182
+ background: none;
187
183
  background-color: var(--secondary-color);
184
+ border: none;
185
+ border-radius: 50%;
186
+ transition: background-color 0.2s;
187
+ cursor: pointer;
188
188
  }
189
189
 
190
190
  #theme-toggle-btn:hover {
@@ -213,13 +213,13 @@
213
213
  }
214
214
 
215
215
  .progress-container {
216
+ position: relative;
216
217
  width: 100%;
217
218
  height: 100%;
219
+ margin: 20px 0;
218
220
  background-color: rgba(25, 118, 210, 0.2);
219
221
  border-radius: 4px;
220
222
  overflow: hidden;
221
- position: relative;
222
- margin: 20px 0;
223
223
  }
224
224
  .progress-indeterminate .progress-bar-long,
225
225
  .progress-indeterminate .progress-bar-short {
@@ -233,102 +233,102 @@
233
233
  }
234
234
 
235
235
  .progress-indeterminate .progress-bar-long {
236
- animation-name: indeterminate-ltr;
237
236
  width: 75%;
237
+ animation-name: indeterminate-ltr;
238
238
  }
239
239
 
240
240
  .progress-indeterminate .progress-bar-short {
241
- animation-name: indeterminate-short-ltr;
242
241
  width: 20%;
242
+ animation-name: indeterminate-short-ltr;
243
243
  }
244
244
 
245
245
  @keyframes indeterminate-ltr {
246
246
  0% {
247
- left: -90%;
248
247
  right: 100%;
248
+ left: -90%;
249
249
  }
250
250
  60% {
251
- left: -90%;
252
251
  right: 100%;
252
+ left: -90%;
253
253
  }
254
254
  100% {
255
- left: 100%;
256
255
  right: -35%;
256
+ left: 100%;
257
257
  }
258
258
  }
259
259
 
260
260
  @keyframes indeterminate-short-ltr {
261
261
  0% {
262
- left: -200%;
263
262
  right: 100%;
263
+ left: -200%;
264
264
  }
265
265
  60% {
266
- left: 107%;
267
266
  right: -8%;
267
+ left: 107%;
268
268
  }
269
269
  100% {
270
- left: 107%;
271
270
  right: -8%;
271
+ left: 107%;
272
272
  }
273
273
  }
274
274
 
275
275
  /* Styles pour les routes */
276
276
  .auto_head_note {
277
- margin-top: 10px;
278
- font-size: 14px;
279
- color: var(--method-head-color);
280
277
  display: flex;
278
+ margin-top: 10px;
281
279
  align-items: center;
280
+ color: var(--method-head-color);
281
+ font-size: 14px;
282
282
  }
283
283
  .note {
284
+ margin-bottom: 20px;
285
+ padding: 12px;
284
286
  background-color: rgba(255, 152, 0, 0.1);
285
287
  border-left: 4px solid var(--warning-color);
286
- padding: 12px;
287
- margin-bottom: 20px;
288
288
  border-radius: 4px;
289
289
  }
290
290
  .info_pill {
291
291
  display: inline-flex;
292
+ margin-left: 10px;
293
+ padding: 4px 10px;
292
294
  align-items: center;
295
+ font-size: 13px;
293
296
  background-color: rgba(0, 0, 0, 0.05);
294
297
  border-radius: 14px;
295
- padding: 4px 10px;
296
- font-size: 13px;
297
- margin-left: 10px;
298
298
  }
299
299
 
300
300
  .route_container {
301
301
  display: flex;
302
- gap: 20px;
303
302
  align-items: flex-start;
303
+ gap: 20px;
304
304
  }
305
305
  .filters_sidebar {
306
306
  width: 250px;
307
307
  flex-shrink: 0;
308
+ background: var(--secondary-color);
309
+ border: 1px solid var(--border-color);
308
310
  border-radius: 6px;
309
311
  overflow: hidden;
310
- border: 1px solid var(--border-color);
311
- background: var(--secondary-color);
312
312
  }
313
313
  .sidebar_header {
314
- padding: 12px 15px;
315
- font-weight: 500;
316
- border-bottom: 1px solid var(--border-color);
317
314
  display: flex;
315
+ padding: 12px 15px;
318
316
  align-items: center;
319
317
  justify-content: space-between;
318
+ font-weight: 500;
319
+ border-bottom: 1px solid var(--border-color);
320
320
  }
321
321
  .filters_content {
322
322
  padding: 15px;
323
323
  background: var(--background-color);
324
324
  }
325
325
  .filters_count {
326
- background-color: var(--primary-color);
327
- color: white;
328
326
  padding: 2px 8px;
329
- border-radius: 12px;
330
- font-size: 0.8rem;
327
+ color: white;
331
328
  font-weight: normal;
329
+ font-size: 0.8rem;
330
+ background-color: var(--primary-color);
331
+ border-radius: 12px;
332
332
  }
333
333
  @media (max-width: 768px) {
334
334
  .route_container {
@@ -342,9 +342,9 @@
342
342
  }
343
343
 
344
344
  .route_container > * {
345
+ min-width: 0; /* Prevent flexbox from expanding beyond available space */
345
346
  margin-top: 20px;
346
347
  flex-grow: 1;
347
- min-width: 0; /* Prevent flexbox from expanding beyond available space */
348
348
  }
349
349
  .route_group_details {
350
350
  margin: 0 0 15px;
@@ -354,10 +354,10 @@
354
354
  height: 24px;
355
355
  }
356
356
  .route_group_details > summary {
357
- cursor: pointer;
357
+ margin-bottom: 7px;
358
358
  list-style: none;
359
359
  border-bottom: 1px solid var(--border-color);
360
- margin-bottom: 7px;
360
+ cursor: pointer;
361
361
  }
362
362
  .route_group_details > summary::marker {
363
363
  display: none;
@@ -367,44 +367,44 @@
367
367
  }
368
368
  .route_group_summary_container {
369
369
  display: flex;
370
- align-items: center;
371
370
  padding: 5px;
371
+ align-items: center;
372
372
  }
373
373
  .route_group_name {
374
374
  display: flex;
375
- border-radius: 3px;
376
- font-family: sans-serif;
377
- font-size: 14px;
378
- font-weight: 700;
379
375
  min-width: 80px;
380
376
  padding: 6px 0;
377
+ gap: 0.3em;
378
+ font-weight: 700;
379
+ font-size: 14px;
380
+ font-family: sans-serif;
381
381
  text-align: center;
382
382
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
383
- gap: 0.3em;
383
+ border-radius: 3px;
384
384
  }
385
385
  .route_group_description {
386
+ margin-top: 0;
387
+ margin-bottom: 0;
386
388
  margin-left: 8px;
387
- font-family: monospace;
388
- font-size: 16px;
389
389
  font-weight: 600;
390
+ font-size: 16px;
391
+ font-family: monospace;
390
392
  word-break: break-word;
391
- margin-top: 0;
392
- margin-bottom: 0;
393
393
  user-select: none;
394
394
  }
395
395
 
396
396
  .route_details {
397
397
  margin-bottom: 8px;
398
- box-shadow: 0 0 3px rgba(0, 0, 0, 0.19);
399
- border: 1px solid #000;
400
- border-radius: 4px;
401
398
  margin: 0 0 15px;
402
- border-color: var(--method-color);
403
399
  background: color-mix(in srgb, var(--method-color), transparent 90%);
400
+ border: 1px solid #000;
401
+ border-color: var(--method-color);
402
+ border-radius: 4px;
403
+ box-shadow: 0 0 3px rgba(0, 0, 0, 0.19);
404
404
  }
405
405
  .route_details > summary {
406
- cursor: pointer;
407
406
  list-style: none;
407
+ cursor: pointer;
408
408
  }
409
409
  .route_details > summary::marker {
410
410
  display: none;
@@ -414,29 +414,29 @@
414
414
  }
415
415
  .route_summary_container {
416
416
  display: flex;
417
- align-items: center;
418
417
  padding: 5px;
418
+ align-items: center;
419
419
  }
420
420
  .route_method {
421
- border-radius: 3px;
422
- color: #fff;
423
- font-family: sans-serif;
424
- font-size: 14px;
425
- font-weight: 700;
426
421
  min-width: 80px;
427
422
  padding: 6px 0;
423
+ color: #fff;
424
+ font-weight: 700;
425
+ font-size: 14px;
426
+ font-family: sans-serif;
428
427
  text-align: center;
429
428
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
430
429
  background: var(--method-color);
430
+ border-radius: 3px;
431
431
  }
432
432
  .route_resource {
433
+ margin-top: 0;
434
+ margin-bottom: 0;
433
435
  margin-left: 8px;
434
- font-family: monospace;
435
- font-size: 16px;
436
436
  font-weight: 600;
437
+ font-size: 16px;
438
+ font-family: monospace;
437
439
  word-break: break-word;
438
- margin-top: 0;
439
- margin-bottom: 0;
440
440
  }
441
441
  .route_details[data-method="HEAD"],
442
442
  .route_group_details[data-method="HEAD"] {
@@ -468,20 +468,20 @@
468
468
  }
469
469
 
470
470
  .route_owner_name {
471
- background-color: #ffefd2;
472
- color: #666;
473
471
  padding: 4px 8px;
472
+ color: #666;
474
473
  text-align: center;
474
+ background-color: #ffefd2;
475
475
  border-radius: 5px;
476
476
  }
477
477
  :root[data-theme="dark"] .route_owner_name {
478
- background-color: rgb(96, 59, 13);
479
478
  color: white;
479
+ background-color: rgb(96, 59, 13);
480
480
  }
481
481
 
482
482
  .route_details_content {
483
- border-top: 1px solid var(--method-color);
484
483
  padding: 10px;
484
+ border-top: 1px solid var(--method-color);
485
485
  }
486
486
  .route_description {
487
487
  margin: 0;
@@ -491,34 +491,34 @@
491
491
  }
492
492
 
493
493
  .filter_container {
494
+ height: 100%;
494
495
  margin-bottom: 20px;
496
+ background: var(--secondary-color);
497
+ border-right: 1px solid var(--border-color);
495
498
  overflow: hidden;
496
499
  overflow-y: auto;
497
- border-right: 1px solid var(--border-color);
498
- background: var(--secondary-color);
499
- height: 100%;
500
500
  }
501
501
  .filter_container::marker {
502
502
  display: none;
503
503
  }
504
504
  .filter_summary {
505
- cursor: pointer;
506
- font-weight: 500;
507
505
  display: flex;
508
506
  flex-direction: row;
509
507
  align-items: center;
510
508
  justify-content: space-between;
509
+ font-weight: 500;
510
+ cursor: pointer;
511
511
  user-select: none;
512
512
  }
513
513
  .filter:open > summary .summary_marker {
514
514
  transform: rotate(180deg);
515
515
  }
516
516
  .summary_text {
517
- overflow: hidden;
518
- width: 100%;
519
517
  display: block;
520
- white-space: nowrap;
518
+ width: 100%;
521
519
  text-overflow: ellipsis;
520
+ white-space: nowrap;
521
+ overflow: hidden;
522
522
  }
523
523
  .filter_list {
524
524
  background: var(--background-color);
@@ -529,49 +529,49 @@
529
529
  margin-left: 0;
530
530
  }
531
531
  .filter_badge {
532
- background-color: var(--primary-color);
533
- color: white;
532
+ margin-left: 10px;
534
533
  padding: 2px 8px;
535
- border-radius: 12px;
534
+ color: white;
536
535
  font-size: 0.8rem;
537
- margin-left: 10px;
536
+ background-color: var(--primary-color);
537
+ border-radius: 12px;
538
538
  }
539
539
 
540
540
  select {
541
541
  min-width: 200px;
542
542
  padding: 8px;
543
- border-radius: 4px;
544
- border: 1px solid var(--border-color);
545
- background-color: var(--background-color);
546
543
  color: var(--text-color);
547
544
  font-family: inherit;
545
+ background-color: var(--background-color);
546
+ border: 1px solid var(--border-color);
547
+ border-radius: 4px;
548
548
  }
549
549
  select option {
550
550
  padding: 8px;
551
551
  }
552
552
  select option:checked {
553
- background-color: var(--primary-color);
554
553
  color: white;
554
+ background-color: var(--primary-color);
555
555
  }
556
556
  .filter_form {
557
557
  display: flex;
558
+ margin-top: 15px;
559
+ margin-bottom: 15px;
558
560
  flex-direction: column;
559
561
  flex-wrap: wrap;
560
562
  gap: 8px;
561
- margin-top: 15px;
562
- margin-bottom: 15px;
563
563
  user-select: none;
564
564
  }
565
565
  .filter_form label {
566
566
  display: flex;
567
+ width: 100%;
567
568
  align-items: center;
568
569
  gap: 5px;
569
- cursor: pointer;
570
- width: 100%;
571
- word-break: keep-all;
572
- overflow: hidden;
573
570
  text-overflow: ellipsis;
574
571
  white-space: nowrap;
572
+ word-break: keep-all;
573
+ cursor: pointer;
574
+ overflow: hidden;
575
575
  }
576
576
  label .filter_text {
577
577
  text-overflow: ellipsis;
@@ -607,14 +607,14 @@
607
607
  }
608
608
 
609
609
  .filter_count {
610
- background-color: #eee;
611
- color: #666;
612
- opacity: 0.8;
610
+ margin-left: auto;
613
611
  padding: 2px 8px;
614
- border-radius: 12px;
612
+ color: #666;
615
613
  font-size: 0.8rem;
616
- margin-left: auto;
617
614
  white-space: nowrap;
615
+ background-color: #eee;
616
+ border-radius: 12px;
617
+ opacity: 0.8;
618
618
  }
619
619
 
620
620
  .filter_actions {
@@ -622,14 +622,14 @@
622
622
  gap: 10px;
623
623
  }
624
624
  .filter_button {
625
+ padding: 6px 12px;
626
+ color: var(--text-color);
627
+ font-size: 0.9rem;
625
628
  background-color: var(--secondary-color);
626
629
  border: 1px solid var(--border-color);
627
- color: var(--text-color);
628
- padding: 6px 12px;
629
630
  border-radius: 4px;
630
- cursor: pointer;
631
- font-size: 0.9rem;
632
631
  transition: all 0.2s;
632
+ cursor: pointer;
633
633
  }
634
634
  .filter_button:hover {
635
635
  background-color: color-mix(
@@ -641,8 +641,8 @@
641
641
 
642
642
  .status_pill {
643
643
  display: flex;
644
- align-self: stretch;
645
644
  width: 0.4em;
645
+ align-self: stretch;
646
646
  }
647
647
  </style>
648
648
  <div class="container">
@@ -1,8 +1,7 @@
1
1
  import { readFileSync } from "node:fs";
2
2
 
3
- const routeInspectorHtmlFileUrl = import.meta.resolve(
4
- "./client/route_inspector.html",
5
- );
3
+ const routeInspectorHtmlFileUrl = import.meta
4
+ .resolve("./client/route_inspector.html");
6
5
 
7
6
  export const jsenvServiceRouteInspector = () => {
8
7
  return {