Problem: the hexagonal refactor churns the backend tree for nine more phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper, compose/web image) must move to its own repo first so doc/layout rewrites land once on a backend-only tree. Change: - New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/ (updateURL repointed to oikos-web releases), compose/, own CI (web + desktop jobs), own deploy script (CI-green gate, TOCTOU guard, version-tagged images, prune-to-3), own webhook receiver on :9798 + launchd unit, own compose project publishing the same 8091:80. - Cutover executed on mac-mini in order: oikos stack's web service stopped+removed, oikos-web project brought up on 8091; outer Caddy untouched (targets the published port) — serving + Authentik flow + /wails 404 quirk verified post-cutover. - Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install targets, the compose web service, oikos-web from deploy.sh's fallback prune list; wails + go-keyring dropped from go.mod, vendor synced. - README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now point at the new repo; mbse + mascot design docs carry a path note. Risk: production SPA serving depends on the new pipeline now; rollback is versioned-image re-up of the old web service from a pre-split checkout (port 8091). Desktop builds installed before the split still check dtoro/oikos releases — one manual reinstall, noted in the oikos-web release notes. Verification: go vet, make test (race), make generate-check, golangci (no new findings; baseline down 400→365); post-cutover curls — localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
2 lines
9.8 KiB
JavaScript
2 lines
9.8 KiB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@floating-ui/core")):"function"==typeof define&&define.amd?define(["exports","@floating-ui/core"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).FloatingUIDOM={},t.FloatingUICore)}(this,(function(t,e){"use strict";const n=Math.min,o=Math.max,i=Math.round,r=Math.floor,l=t=>({x:t,y:t});function c(){return"undefined"!=typeof window}function s(t){return a(t)?(t.nodeName||"").toLowerCase():"#document"}function f(t){var e;return(null==t||null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function u(t){var e;return null==(e=(a(t)?t.ownerDocument:t.document)||window.document)?void 0:e.documentElement}function a(t){return!!c()&&(t instanceof Node||t instanceof f(t).Node)}function d(t){return!!c()&&(t instanceof Element||t instanceof f(t).Element)}function h(t){return!!c()&&(t instanceof HTMLElement||t instanceof f(t).HTMLElement)}function p(t){return!(!c()||"undefined"==typeof ShadowRoot)&&(t instanceof ShadowRoot||t instanceof f(t).ShadowRoot)}function g(t){const{overflow:e,overflowX:n,overflowY:o,display:i}=C(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&"inline"!==i&&"contents"!==i}function m(t){return/^(table|td|th)$/.test(s(t))}function y(t){try{if(t.matches(":popover-open"))return!0}catch(t){}try{return t.matches(":modal")}catch(t){return!1}}const w=/transform|translate|scale|rotate|perspective|filter/,v=/paint|layout|strict|content/,x=t=>!!t&&"none"!==t;let b;function L(t){const e=d(t)?C(t):t;return x(e.transform)||x(e.translate)||x(e.scale)||x(e.rotate)||x(e.perspective)||!R()&&(x(e.backdropFilter)||x(e.filter))||w.test(e.willChange||"")||v.test(e.contain||"")}function R(){return null==b&&(b="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),b}function T(t){return/^(html|body|#document)$/.test(s(t))}function C(t){return f(t).getComputedStyle(t)}function S(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function E(t){if("html"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||u(t);return p(e)?e.host:e}function F(t){const e=E(t);return T(e)?(t.ownerDocument||t).body:h(e)&&g(e)?e:F(e)}function O(t,e,n){var o;void 0===e&&(e=[]),void 0===n&&(n=!0);const i=F(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=f(i);if(r){const t=D(l);return e.concat(l,l.visualViewport||[],g(i)?i:[],t&&n?O(t):[])}return e.concat(i,O(i,[],n))}function D(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function W(t){const e=C(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=h(t),l=r?t.offsetWidth:n,c=r?t.offsetHeight:o,s=i(n)!==l||i(o)!==c;return s&&(n=l,o=c),{width:n,height:o,$:s}}function M(t){return d(t)?t:t.contextElement}function z(t){const e=M(t);if(!h(e))return l(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:c}=W(e);let s=(c?i(n.width):n.width)/o,f=(c?i(n.height):n.height)/r;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}const H=l(0);function P(t){const e=f(t);return R()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:H}function V(t,n,o,i){void 0===n&&(n=!1),void 0===o&&(o=!1);const r=t.getBoundingClientRect(),c=M(t);let s=l(1);n&&(i?d(i)&&(s=z(i)):s=z(t));const u=function(t,e,n){return void 0===e&&(e=!1),!!n&&e&&n===f(t)}(c,o,i)?P(c):l(0);let a=(r.left+u.x)/s.x,h=(r.top+u.y)/s.y,p=r.width/s.x,g=r.height/s.y;if(c&&i){const t=f(c),e=d(i)?f(i):i;let n=t,o=D(n);for(;o&&e!==n;){const t=z(o),e=o.getBoundingClientRect(),i=C(o),r=e.left+(o.clientLeft+parseFloat(i.paddingLeft))*t.x,l=e.top+(o.clientTop+parseFloat(i.paddingTop))*t.y;a*=t.x,h*=t.y,p*=t.x,g*=t.y,a+=r,h+=l,n=f(o),o=D(n)}}return e.rectToClientRect({width:p,height:g,x:a,y:h})}function A(t,e){const n=S(t).scrollLeft;return e?e.left+n:V(u(t)).left+n}function B(t,e){const n=t.getBoundingClientRect();return{x:n.left+e.scrollLeft-A(t,n),y:n.top+e.scrollTop}}function N(t,n,i){let r;if("viewport"===n||"layoutViewport"===n)r=function(t,e,n){void 0===n&&(n="viewport");const o="layoutViewport"===n,i=f(t),r=u(t),l=i.visualViewport;let c=r.clientWidth,s=r.clientHeight,a=0,d=0;if(l){const t=!R()||"fixed"===e;o?t||(a=-l.offsetLeft,d=-l.offsetTop):(c=l.width,s=l.height,t&&(a=l.offsetLeft,d=l.offsetTop))}if(A(r)<=0){const t=r.ownerDocument,e=t.body,n=getComputedStyle(e),o="CSS1Compat"===t.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(r.clientWidth-e.clientWidth-o),l="stable both-edges"===getComputedStyle(r).scrollbarGutter?i/2:i;l<=25&&(c-=l)}return{width:c,height:s,x:a,y:d}}(t,i,n);else if("document"===n)r=function(t){const e=S(t),n=t.ownerDocument.body,i=o(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),r=o(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let l=-e.scrollLeft+A(t);const c=-e.scrollTop;return"rtl"===C(n).direction&&(l+=o(t.clientWidth,n.clientWidth)-i),{width:i,height:r,x:l,y:c}}(u(t));else if(d(n))r=function(t,e){const n=V(t,!0,"fixed"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=z(t);return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(n,i);else{const e=P(t);r={x:n.x-e.x,y:n.y-e.y,width:n.width,height:n.height}}return e.rectToClientRect(r)}function I(t,e,n){const o=h(e),i=u(e),r="fixed"===n,c=V(t,!0,r,e);let f={scrollLeft:0,scrollTop:0};const a=l(0);if((o||!r)&&(("body"!==s(e)||g(i))&&(f=S(e)),o)){const t=V(e,!0,r,e);a.x=t.x+e.clientLeft,a.y=t.y+e.clientTop}!o&&i&&(a.x=A(i));const d=!i||o||r?l(0):B(i,f);return{x:c.left+f.scrollLeft-a.x-d.x,y:c.top+f.scrollTop-a.y-d.y,width:c.width,height:c.height}}function $(t){return"static"===C(t).position}function k(t,e){if(!h(t)||"fixed"===C(t).position)return null;if(e)return e(t);let n=t.offsetParent;return u(t)===n&&(n=n.ownerDocument.body),n}function q(t,e){const n=f(t);if(y(t))return n;if(!h(t)){let e=E(t);for(;e&&!T(e);){if(d(e)&&!$(e))return e;e=E(e)}return n}let o=k(t,e);for(;o&&m(o)&&$(o);)o=k(o,e);return o&&T(o)&&$(o)&&!L(o)?n:o||function(t){let e=E(t);for(;h(e)&&!T(e);){if(L(e))return e;if(y(e))return null;e=E(e)}return null}(t)||n}const U={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{elements:e,rect:n,offsetParent:o,strategy:i}=t;const r="fixed"===i,c=u(o),f=!!e&&y(e.floating);if(o===c||f&&r)return n;let a={scrollLeft:0,scrollTop:0},d=l(1);const p=l(0),m=h(o);if((m||!r)&&(("body"!==s(o)||g(c))&&(a=S(o)),m)){const t=V(o);d=z(o),p.x=t.x+o.clientLeft,p.y=t.y+o.clientTop}const w=!c||m||r?l(0):B(c,a);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-a.scrollLeft*d.x+p.x+w.x,y:n.y*d.y-a.scrollTop*d.y+p.y+w.y}},getDocumentElement:u,getClippingRect:function(t){let{element:e,boundary:i,rootBoundary:r,strategy:l}=t;const c=[..."clippingAncestors"===i?y(e)?[]:function(t,e){const n=e.get(t);if(n)return n;let o=O(t,[],!1).filter((t=>d(t)&&"body"!==s(t))),i=null;const r="fixed"===C(t).position;let l=r?E(t):t;for(;d(l)&&!T(l);){const t=C(l),e=L(l),n=i?i.position:r?"fixed":"";e||"fixed"!==n&&("absolute"!==n||"static"!==t.position)?i=t:o=o.filter((t=>t!==l)),l=E(l)}return e.set(t,o),o}(e,this._c):[].concat(i),r],f=N(e,c[0],l);let u=f.top,a=f.right,h=f.bottom,p=f.left;for(let t=1;t<c.length;t++){const i=N(e,c[t],l);u=o(i.top,u),a=n(i.right,a),h=n(i.bottom,h),p=o(i.left,p)}return{width:a-p,height:h-u,x:p,y:u}},getOffsetParent:q,getElementRects:async function(t){const e=this.getOffsetParent||q,n=this.getDimensions,o=await n(t.floating);return{reference:I(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}},getClientRects:function(t){return t.getClientRects?Array.from(t.getClientRects()):[]},getDimensions:function(t){const{width:e,height:n}=W(t);return{width:e,height:n}},getScale:z,isElement:d,isRTL:function(t){return"rtl"===C(t).direction}};function j(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}const X=e.detectOverflow,Y=e.offset,_=e.autoPlacement,G=e.shift,J=e.flip,K=e.size,Q=e.hide,Z=e.arrow,tt=e.inline,et=e.limitShift;t.arrow=Z,t.autoPlacement=_,t.autoUpdate=function(t,e,i,l){void 0===l&&(l={});const{ancestorScroll:c=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:d="function"==typeof IntersectionObserver,animationFrame:h=!1}=l,p=M(t),g=c||s?[...p?O(p):[],...e?O(e):[]]:[];g.forEach((t=>{c&&t.addEventListener("scroll",i),s&&t.addEventListener("resize",i)}));const m=p&&d?function(t,e,i){let l,c=null;const s=u(t);function a(){var t;clearTimeout(l),null==(t=c)||t.disconnect(),c=null}function d(i,f){void 0===i&&(i=!1),void 0===f&&(f=1),a();const u=t.getBoundingClientRect(),{left:h,top:p,width:g,height:m}=u;if(i||e(),!g||!m)return;const y={rootMargin:-r(p)+"px "+-r(s.clientWidth-(h+g))+"px "+-r(s.clientHeight-(p+m))+"px "+-r(h)+"px",threshold:o(0,n(1,f))||1};let w=!0;function v(e){const n=e[0].intersectionRatio;if(!j(u,t.getBoundingClientRect()))return d();if(n!==f){if(!w)return d();n?d(!1,n):l=setTimeout((()=>{d(!1,1e-7)}),1e3)}w=!1}try{c=new IntersectionObserver(v,{...y,root:s.ownerDocument})}catch(t){c=new IntersectionObserver(v,y)}c.observe(t)}const h=f(t),p=()=>d(i);return h.addEventListener("resize",p),d(!0),()=>{h.removeEventListener("resize",p),a()}}(p,i,s):null;let y,w=-1,v=null;a&&(v=new ResizeObserver((t=>{let[n]=t;n&&n.target===p&&v&&e&&(v.unobserve(e),cancelAnimationFrame(w),w=requestAnimationFrame((()=>{var t;null==(t=v)||t.observe(e)}))),i()})),p&&!h&&v.observe(p),e&&v.observe(e));let x=h?V(t):null;return h&&function e(){const n=V(t);x&&!j(x,n)&&i();x=n,y=requestAnimationFrame(e)}(),i(),()=>{var t;g.forEach((t=>{c&&t.removeEventListener("scroll",i),s&&t.removeEventListener("resize",i)})),null==m||m(),null==(t=v)||t.disconnect(),v=null,h&&cancelAnimationFrame(y)}},t.computePosition=(t,n,o)=>{const i=new Map,r=null!=o?o:{},l={...U,...r.platform,_c:i};return e.computePosition(t,n,{...r,platform:l})},t.detectOverflow=X,t.flip=J,t.getOverflowAncestors=O,t.hide=Q,t.inline=tt,t.limitShift=et,t.offset=Y,t.platform=U,t.shift=G,t.size=K}));
|