@vireo-ai/trellis-ui 0.1.51 → 0.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/package.json +6 -1
  2. package/packages/client/src/components/select/styles.css +19 -0
  3. package/packages/client/src/styles/theme-support.css +267 -0
  4. package/packages/client/src/styles/theme.css +1 -268
  5. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +11 -0
  6. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  7. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +252 -252
  8. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  9. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  10. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DRILCSFH.js → capability-motion-DQitxnHn.js} +2 -2
  11. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DRILCSFH.js.map → capability-motion-DQitxnHn.js.map} +1 -1
  12. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CpSdQwYp.js → capability-sortable-Dzv1zWaL.js} +2 -2
  13. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CpSdQwYp.js.map → capability-sortable-Dzv1zWaL.js.map} +1 -1
  14. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DnQs1xY6.js → core-DMbnlSdM.js} +2 -2
  15. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DnQs1xY6.js.map → core-DMbnlSdM.js.map} +1 -1
  16. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js +2 -0
  17. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js.map +1 -0
  18. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-cnWgB3wz.js → entry.generated-CvcufWkj.js} +2 -2
  19. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-cnWgB3wz.js.map → entry.generated-CvcufWkj.js.map} +1 -1
  20. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BiyFgA-e.js → entry.generated-D3w3QaSO.js} +2 -2
  21. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BiyFgA-e.js.map → entry.generated-D3w3QaSO.js.map} +1 -1
  22. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CeD3bUBI.js → entry.generated-DCLIvEtJ.js} +2 -2
  23. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CeD3bUBI.js.map → entry.generated-DCLIvEtJ.js.map} +1 -1
  24. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-TbFjT_mY.js → entry.generated-DVQaci6w.js} +2 -2
  25. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-TbFjT_mY.js.map → entry.generated-DVQaci6w.js.map} +1 -1
  26. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D3am_GtI.js → entry.generated-DvvVMsQo.js} +2 -2
  27. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D3am_GtI.js.map → entry.generated-DvvVMsQo.js.map} +1 -1
  28. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D7qa64eM.js → entry.generated-Rx9NofFi.js} +2 -2
  29. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Rx9NofFi.js.map +1 -0
  30. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js +2 -0
  31. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js.map +1 -0
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DbC4gkeV.js → entry.generated-payXlXhL.js} +2 -2
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DbC4gkeV.js.map → entry.generated-payXlXhL.js.map} +1 -1
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BSal0xp9.js → entry2.generated-CpoK52gE.js} +2 -2
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BSal0xp9.js.map → entry2.generated-CpoK52gE.js.map} +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-JcxejQr4.js → entry2.generated-D1X0sDop.js} +2 -2
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-JcxejQr4.js.map → entry2.generated-D1X0sDop.js.map} +1 -1
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DCbmWkHV.js → entry2.generated-DXDHgDsN.js} +2 -2
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-DCbmWkHV.js.map → entry2.generated-DXDHgDsN.js.map} +1 -1
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-D26Cigu5.js → entry2.generated-_UPpJlWp.js} +2 -2
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-D26Cigu5.js.map → entry2.generated-_UPpJlWp.js.map} +1 -1
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B4uuk1JX.js → motion-BDQdr83d.js} +2 -2
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B4uuk1JX.js.map → motion-BDQdr83d.js.map} +1 -1
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-SdoiMWig.js +4 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-FOJhyz8V.js.map → ui-SdoiMWig.js.map} +1 -1
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +91 -91
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +8 -8
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +8 -8
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-5pQvlhmK.js +0 -2
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-5pQvlhmK.js.map +0 -1
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPzThz_M.js +0 -2
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPzThz_M.js.map +0 -1
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D7qa64eM.js.map +0 -1
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-FOJhyz8V.js +0 -4
@@ -0,0 +1,4 @@
1
+ import{t as e}from"./bridge-B4S_D6hV.js";import{n as t,r as n}from"./morph-Cq3V_23_.js";import{n as r,o as i}from"./alpine-machine-BTDXpEr6.js";import{t as a}from"./dom-invalidation-Dw6clnS4.js";import{n as o}from"./fragment-Bl3Rq38L.js";var s=`single-child`,c=(e,t)=>{if(typeof t==`string`&&t)return t;let n=e.getAttribute(`data-ui-key`)||e.id;if(n)return n;let r=e.parentElement;if(r?.getAttribute(`data-ui-key-scope`)!==s)return null;let i=r.getAttribute(`data-ui-key`)||r.id;return i?`${i}:single-child`:null},l=`data-ui-motion-key`,u=`data-ui-motion-layout`,d=e=>typeof e==`object`&&!!e&&Symbol.iterator in e,f=(e=document)=>typeof e==`string`?Array.from(document.querySelectorAll(e)):e instanceof Document||e instanceof Element?[e]:d(e)?Array.from(e):[document],p=(e=document,t={})=>{let n=f(e).filter(e=>e instanceof Element),r=[],i=(e,t,n)=>{r.push({element:e,attr:t,previous:e.getAttribute(t)}),e.setAttribute(t,n)};return n.forEach(e=>{(t.layout??!0)&&i(e,u,``);let n=c(e,t.key);n&&!e.hasAttribute(`data-ui-motion-key`)&&i(e,l,n)}),()=>{r.reverse().forEach(({element:e,attr:t,previous:n})=>{if(n===null){e.removeAttribute(t);return}e.setAttribute(t,n)})}},m=(e,...t)=>{typeof console<`u`&&console.warn(e,...t)},h=new Set,g=!1,_=null,v=null,y=null,b=Promise.resolve(),x=0,ee=e=>{for(let t of e)h.add(t);g||h.size===0||(g=!0,queueMicrotask(()=>{g=!1;let e=Array.from(h);h.clear(),e.forEach(e=>e.invalidateDom())}))},S=e=>{let t=document.createElement(`template`);return t.innerHTML=e,t},C=e=>Array.from(S(e).content.children).filter(e=>e instanceof HTMLElement),w=(e,t)=>{t.forEach(t=>e.initTree(t))},T=(e,t)=>t||e.getAttribute(`x-merge`)||`replace`,E=e=>{if(e.selector)return document.querySelector(e.selector);if(!e.target)return null;let t=e.target.startsWith(`#`)?e.target.slice(1):e.target;return document.getElementById(t)},te=(e,t,i)=>{let s=T(t,i.mode);if(s===`remove`){t.remove();return}if(!i.html){m(`x-ui-stream: received patch with no html`);return}if(s===`morph`||s===`outer`){if(typeof e.morph==`function`){let o=new Set;e.morph(t,i.html,{key(e){return c(e)},updating(e,t,r,a){if(e instanceof Element&&v?.(i.requestId??null,e)){a?.();return}n(e,t)},updated(t){if(!(t instanceof Element))return;let n=r(e,t);n&&o.add(n),a(t).forEach(e=>{o.add(e)})}}),ee(o);return}m(`x-ui-stream: morph mode requires an Alpine morph implementation; falling back to replace`)}if(s===`replace`||s===`morph`||s===`outer`){let[n]=C(i.html);if(!n){m(`x-ui-stream: replace mode produced no element`);return}t.replaceWith(n),e.initTree(n);return}if(s===`update`){o(e,t,i.html);return}let l=S(i.html),u=Array.from(l.content.children).filter(e=>e instanceof HTMLElement);if(s===`append`){t.append(l.content),w(e,u);return}if(s===`prepend`){t.prepend(l.content),w(e,u);return}if(s===`before`){t.before(l.content),w(e,u);return}s===`after`&&(t.after(l.content),w(e,u))},ne=(e,t)=>{let n=E(t);if(n){te(e,n,t),t.focus&&document.querySelector(t.focus)?.focus({preventScroll:!0});return}if(t.selector||t.target){m(`x-ui-stream: target not found`,t.selector??t.target);return}if(!t.html){m(`x-ui-stream: received patch with no html`);return}C(t.html).forEach(n=>{if(!n.id){m(`x-ui-stream: top-level element has no id, skipping`,n);return}let r=document.getElementById(n.id);r&&te(e,r,{...t,html:n.outerHTML})}),t.focus&&document.querySelector(t.focus)?.focus({preventScroll:!0})},re=(t,n)=>{let r=Array.isArray(n)?n:[n],i=()=>{r.forEach(e=>ne(t,e))},a=()=>{let e=r.filter(e=>e.viewTransition===!0);if(e.length===0){i();return}y?y(t,e,i):i()},o=r.flatMap(e=>e.assets??[]);if(o.length===0&&x===0){a();return}x+=1;let s=async()=>{o.length>0&&await e(o,t),a()};b=b.then(s,s).catch(()=>void 0).finally(()=>{--x})},D=e=>{y=e},O=e=>{document.dispatchEvent(new CustomEvent(e.event,{detail:e.detail??{},bubbles:!0,composed:!0}))},k=e=>{let t=new Map;for(let n of e.data.split(`
2
+ `)){let e=n.indexOf(` `),r=e>0,i=r?n.slice(0,e):n;if(!r&&i!==`html`)return m(`x-ui-stream: invalid SSE command line`,i),null;let a=r?n.slice(e+1):``,o=t.get(i);o?o.push(a):t.set(i,[a])}return t},A=(e,t)=>{let n=e.get(t);if(n?.length)return n.length>1&&m(`x-ui-stream: duplicate SSE command, using last value`,t),n.at(-1)},ie=(e,t)=>{let n=k(t);if(!n||n.size===0)return;let r=A(n,`request-id`);if(_&&!_(r??null))return;let i,a=A(n,`assets`);if(a)try{let e=JSON.parse(a);if(!Array.isArray(e))throw TypeError(`assets must be an array`);i=e}catch{m(`x-ui-stream: invalid patch assets JSON`,a);return}re(e,{mode:A(n,`mode`)??`replace`,target:A(n,`target`)??null,selector:A(n,`selector`)??null,html:n.get(`html`)?.join(`
3
+ `)??null,requestId:r??null,viewTransition:A(n,`view-transition`)===`true`,focus:A(n,`focus`)??null,...i?{assets:i}:{}})},ae=e=>{let t=k(e);if(!t)return;let n=A(t,`request-id`);if(_&&!_(n??null))return;let r=A(t,`event`);if(!r){m(`x-ui-stream: dispatch SSE frame missing event`);return}let a=A(t,`detail`),o={};if(a)try{let e=JSON.parse(a);i(e)&&(o=e)}catch{m(`x-ui-stream: invalid dispatch detail JSON`,a);return}O({event:r,detail:o})},oe={"trellis-ui-patch":ie,"trellis-ui-dispatch":(e,t)=>ae(t)},se=`trellis-ui-`,ce=(e,t)=>{let n=oe[t.event];if(!n){t.event.startsWith(se)&&m(`x-ui-stream: unsupported SSE event`,t.event);return}n(e,t)},le=(e,t=``,n=``,r=``)=>{let i=new URL(e,document.baseURI),a=[...new Set(t.split(/\s+/).filter(Boolean))];return n&&i.searchParams.set(`client`,n),r&&i.searchParams.set(`lastEventId`,r),a.length>0&&(i.searchParams.delete(`channel`),a.forEach(e=>i.searchParams.append(`channel`,e))),/^[a-z][a-z\d+.-]*:/i.test(e)||e.startsWith(`//`)?i.href:`${i.pathname}${i.search}${i.hash}`},ue=(e,t,n=``,r=``,i={})=>{let a=new EventSource(le(t,n,r,i.lastEventId)),o=!0,s=e=>{e.lastEventId&&i.eventId?.(e.lastEventId)};return Object.keys(oe).forEach(t=>{a.addEventListener(t,t=>{!o||!(t instanceof MessageEvent)||(s(t),ce(e,{event:t.type,data:String(t.data)}))})}),a.addEventListener(`stream-open`,()=>{o&&i.open?.()}),a.addEventListener(`stream-reset`,e=>{o&&(e instanceof MessageEvent&&s(e),i.reset?.(e instanceof MessageEvent?String(e.data):``))}),a.addEventListener(`stream-error`,e=>{o&&(o=!1,a.close(),i.error?.(e instanceof MessageEvent?String(e.data):``))}),a.addEventListener(`error`,()=>{o&&(o=!1,a.close(),i.disconnected?.())}),{abort(){o=!1,a.close()}}},j=new Map,de=new Set,fe=e=>e instanceof HTMLElement&&e.id?e.id:e,pe=6e4,me=1e3,he=2e3,ge=1e3,_e=3e4,M=(e,t,n={})=>{t!==`reset`&&(e.dataset.uiStreamState=t),e.dispatchEvent(new CustomEvent(`ui:stream:${t}`,{bubbles:!0,composed:!0,detail:{source:e,...n}}))},ve=(e,t)=>le(t,e.dataset.uiStreamScopes,e.dataset.uiStreamClient),ye=e=>e.dataset.uiStreamOpenWhenHidden===`true`,N=(e,t)=>JSON.stringify({openWhenHidden:ye(e),url:ve(e,t)}),be=e=>{if(!(e instanceof CustomEvent))return null;let t=e.detail;return!t||typeof t.requestId!=`string`||typeof t.method!=`string`||!(t.controller instanceof AbortController)?null:t},xe=(e,n,r)=>{let i=N(n,r),a=null,o,s=null,c,l,u=!1,d=``,f=0,p=0,h=!1,g=!1,_=new Map,v=new Set,y=ye(n),b=()=>!h&&(y||document.visibilityState===`visible`),x=()=>{window.clearTimeout(c),c=void 0},ee=()=>{n.dispatchEvent(new CustomEvent(`ui:stream:resumed`,{bubbles:!0,composed:!0}))},S=t=>{a?.abort(),x();let o=++f;i=N(n,r),M(n,`connecting`),a=ue(e,r,n.dataset.uiStreamScopes,t,{lastEventId:d,open:()=>{if(o!==f)return;let e=u;u=!0,p=0,M(n,`open`),e&&ee()},disconnected:()=>{if(o!==f||g||(a=null,A.controller=null,M(n,`disconnected`),!b()))return;let e=Math.min(ge*2**p,_e);p+=1;let t=Math.floor(Math.random()*e);c=window.setTimeout(()=>{c=void 0,E()},t)},reset:e=>M(n,`reset`,{data:e}),eventId:e=>{o===f&&(d=e)},error:e=>{o!==f||g||(h=!0,a=null,A.controller=null,x(),M(n,`error`,{data:e}))}}),A.controller=a,A.configuration=i,C()},C=()=>{if(window.clearTimeout(o),o=void 0,!b())return;let e=Number(n.dataset.uiStreamClientExpires);if(!Number.isFinite(e)||e<=0)return;let t=e-Date.now()-pe;if(t<=0){T();return}o=window.setTimeout(()=>void T(),t)},w=()=>{if(g)return Promise.resolve(null);if(s)return s;let e=n.dataset.uiStreamClientRefresh;return e?(s=fetch(e,{headers:{Accept:`application/json`,"X-Trellis-Client":n.dataset.uiStreamClient??``}}).then(async e=>{if(!e.ok)throw Error(`ClientSession refresh failed (${e.status})`);let t=await e.json();if(typeof t.token!=`string`||typeof t.expiresAt!=`number`)throw Error(`ClientSession refresh returned an invalid payload`);return g?null:(n.dataset.uiStreamClient=t.token,n.dataset.uiStreamClientExpires=String(t.expiresAt),t.token)}).catch(e=>{m(`x-ui-stream: could not refresh ClientSession`,e);let t=Number(n.dataset.uiStreamClientExpires);return!Number.isFinite(t)||t<=Date.now()?(M(n,`error`,{error:e}),null):(b()&&(o=window.setTimeout(()=>void T(),5e3)),n.dataset.uiStreamClient??null)}).finally(()=>{s=null}),s):(M(n,`error`,{reason:`missing-refresh-url`}),Promise.resolve(null))},T=async()=>{if(!b())return;let e=await w();e&&b()&&!g&&S(e)},E=async()=>{if(g||!b()||a)return;let e=Number(n.dataset.uiStreamClientExpires),t=n.dataset.uiStreamClient??``,r=Number.isFinite(e)&&e>0&&e-Date.now()<=pe?await w():t;r&&b()&&!g&&!a&&S(r)},te=()=>{l=void 0,!(g||y||document.visibilityState!==`hidden`)&&(v.size>0||(_.forEach(e=>e.abort(`Document suspended`)),_.clear(),window.clearTimeout(o),o=void 0,x(),a?.abort(),a=null,M(n,`suspended`),A.controller=null))},ne=e=>{window.clearTimeout(l),l=void 0,!(y||document.visibilityState!==`hidden`)&&(l=window.setTimeout(te,e))},re=()=>{h||T()},D=e=>{let t=be(e);if(t){if(t.method===`GET`){_.set(t.requestId,t.controller);return}v.add(t.requestId),document.visibilityState===`hidden`&&!y&&(window.clearTimeout(l),l=void 0)}},O=e=>{let t=be(e);if(t){if(t.method===`GET`){_.delete(t.requestId);return}v.delete(t.requestId),document.visibilityState===`hidden`&&!y&&v.size===0&&ne(he)}},k=()=>{if(!(y||h)){if(document.visibilityState===`hidden`){if(v.size>0)return;ne(me);return}window.clearTimeout(l),l=void 0,a||E()}},A={configuration:i,controller:null,element:n,dispose(){g||(g=!0,window.clearTimeout(o),window.clearTimeout(l),x(),n.removeEventListener(`ui:stream:refresh`,re),document.removeEventListener(`visibilitychange`,k),document.removeEventListener(`ui:request:start`,D),document.removeEventListener(`ui:request:finish`,O),a?.abort())},rescheduleRefresh:C};return t(n,`data-ui-stream-state`),n.addEventListener(`ui:stream:refresh`,re),document.addEventListener(`visibilitychange`,k),document.addEventListener(`ui:request:start`,D),document.addEventListener(`ui:request:finish`,O),b()?E():M(n,`suspended`),A},Se=e=>{typeof e.directive==`function`&&e.directive(`ui-stream`,(n,{expression:r},{cleanup:i})=>{if(!r)return;let a=n instanceof HTMLElement?n.dataset.uiStreamClient:``;if(!(n instanceof HTMLElement)||!a){m(`x-ui-stream: missing signed ClientSession capability`);return}let o=fe(n),s=j.get(o),c=N(n,r);if(s?.configuration===c){n.dataset.uiStreamState=s.element.dataset.uiStreamState??`connecting`,t(n,`data-ui-stream-state`),queueMicrotask(()=>s.rescheduleRefresh());return}if(!n.isConnected&&typeof o==`string`){de.has(o)||(de.add(o),queueMicrotask(()=>{de.delete(o);let t=document.getElementById(o);if(!t)return;let n=j.get(o),i=N(t,r);if(n?.configuration===i){n.rescheduleRefresh();return}n?.dispose(),j.set(o,xe(e,t,r))}));return}s?.dispose(),j.set(o,xe(e,n,r)),i(()=>{let e=j.get(o);e?.element===n&&(e.dispose(),j.delete(o))})})},Ce=e=>{_=e},we=e=>{v=e},Te=`X-Trellis-UI-Request`,Ee=`X-Trellis-Client`,De=`X-Trellis-Request-ID`,Oe=`X-Trellis-Navigate`,ke=`X-Trellis-Navigate-History`,Ae=`[data-ui-stream][data-ui-stream-client]`,je=`ui:stream:open`,Me=`ui:stream:error`,Ne=`ui:stream:disconnected`,Pe=`ui:stream:refresh`,Fe=`meta[name="csrf-token"]`,Ie=`text/event-stream`,Le=`data-ui-request-pending`,Re=`application/x-www-form-urlencoded`,ze=`multipart/form-data`,Be=new Set([`GET`]),Ve=null,He=null,Ue=e=>{let t=(e||`GET`).toUpperCase();return t===`POST`||t===`PUT`||t===`PATCH`||t===`DELETE`?t:`GET`},We=(e,t,n)=>{if(e instanceof FormData){e.append(t,n);return}e.append(t,n instanceof File?n.name:String(n))},Ge=(e,t,n)=>{if(Array.isArray(n)){n.forEach(n=>Ge(e,t,n));return}n!=null&&We(e,t,n instanceof Blob?n:String(n))},Ke=(e,t)=>{Object.entries(t).forEach(([t,n])=>Ge(e,t,n))},qe=(e,t)=>{if(t){if(t instanceof FormData||t instanceof URLSearchParams){for(let[n,r]of t.entries())We(e,n,r);return}Ke(e,t)}},Je=(e,t)=>{let n=new Headers(e);n.set(Te,`true`);let r=document.querySelector(Fe)?.content;return r&&n.set(`X-CSRFToken`,r),t instanceof URLSearchParams&&!n.has(`Content-Type`)&&n.set(`Content-Type`,Re),n},Ye=(e,t,n)=>{if(e)return new URL(e,document.baseURI);if(t instanceof HTMLFormElement){let e=n?.getAttribute(`formaction`)||t.getAttribute(`action`)||window.location.href;return new URL(e,document.baseURI)}return t instanceof HTMLAnchorElement?new URL(t.href,document.baseURI):new URL(window.location.href)},Xe=(e,t)=>t?.getAttribute(`formenctype`)||e.enctype||Re,Ze=e=>{if(!(e instanceof HTMLButtonElement||e instanceof HTMLInputElement))return null;let t=e.getAttribute(`name`);return t?[t,e.value]:null},Qe=(e,t)=>{let n=new FormData(e),r=Ze(t);return r&&n.append(...r),n},$e=e=>{let t=new URLSearchParams;for(let[n,r]of e.entries())r instanceof File?t.append(n,r.name):t.append(n,r);return t},et=(e,t)=>{if(e===void 0)return{payload:t,explicit:!1};if(e instanceof HTMLFormElement)return{payload:new FormData(e),explicit:!0};if(e instanceof FormData||e instanceof URLSearchParams||typeof e==`string`||e instanceof Blob||e instanceof ArrayBuffer)return{payload:e,explicit:!0};let n=new URLSearchParams;return Ke(n,e),{payload:n,explicit:!0}},tt=(e,t)=>{if(!t)return e;if(e instanceof FormData||e instanceof URLSearchParams)return qe(e,t),e;let n=new URLSearchParams;return typeof e==`string`&&n.append(`data`,e),qe(n,t),n},nt=(e,t)=>e instanceof HTMLFormElement?{payload:Qe(e,t),enctype:Xe(e,t)}:{payload:new URLSearchParams,enctype:Re},rt=(e,t,n)=>t?Ue(t):e instanceof HTMLFormElement?Ue(n?.getAttribute(`formmethod`)||e.getAttribute(`method`)):`GET`,it=(e,t={})=>{let n=t.source,r=t.submitter??null,i=rt(n,t.method,r),a=Ye(e,n,r),o=nt(n,r),s=et(t.data,o.payload),c=tt(s.payload,t.extra),l={method:i,...t.cache?{cache:t.cache}:{}},u=null;return Be.has(i)?c instanceof FormData||c instanceof URLSearchParams?$e(c).forEach((e,t)=>a.searchParams.append(t,e)):typeof c==`string`&&a.searchParams.append(`data`,c):u=c instanceof FormData&&(s.explicit||o.enctype===ze)?c:c instanceof FormData?$e(c):c,l.headers=Je(t.headers,u),u!=null&&(l.body=u),{url:a,method:i,init:l}},at=e=>e?.isConnected?e:document,ot=(e,t,n={})=>new CustomEvent(e,{bubbles:!0,composed:!0,cancelable:n.cancelable??!1,detail:t}),P=(e,t,n,r)=>at(t).dispatchEvent(ot(e,n,r)),F=new WeakMap,st=e=>{if(!e)return;let t=F.get(e)??0;F.set(e,t+1),e.setAttribute(`aria-busy`,`true`),e.setAttribute(Le,`true`)},ct=e=>{if(!e)return;let t=(F.get(e)??1)-1;if(t>0){F.set(e,t);return}F.delete(e),e.removeAttribute(`aria-busy`),e.removeAttribute(Le)},lt=e=>e.headers.get(`Content-Type`)?.toLowerCase().includes(Ie)??!1,ut=async e=>{let t=e.headers.get(Oe);if(t){let n=e.headers.get(ke)??`auto`;return n!==`auto`&&n!==`push`&&n!==`replace`?(m(`x-ui-request: invalid navigation history`,n),{response:e,type:`other`,url:e.url}):{response:e,type:`navigate`,url:e.url,navigation:{history:n,url:t}}}return e.status===204||e.body===null||e.headers.get(`X-Trellis-UI-Response`)===`empty`?{response:e,type:`empty`,url:e.url}:e.redirected&&!lt(e)?(window.location.assign(e.url),{response:e,type:`redirect`,url:e.url}):(m(`x-ui-request: expected an empty response`,e),{response:e,type:`other`,url:e.url})},I=new WeakMap,L=e=>{let t=e.dataset.uiStreamClient,n=Number(e.dataset.uiStreamClientExpires);return!t||Number.isFinite(n)&&n>0&&n<=Date.now()?null:t},dt=()=>{let e=document.querySelector(Ae),t=e?L(e):null;return!e||!t||e.dataset.uiStreamState!==`open`?null:{token:t}},ft=e=>{let t=Number(e.dataset.uiStreamTimeout);return Number.isFinite(t)&&t>=0?t:5e3},pt=e=>{let t=document.querySelector(Ae),n=t?L(t):null;if(!t)return Promise.resolve(null);if(n&&t.dataset.uiStreamState===`open`)return Promise.resolve({token:n});if(t.dataset.uiStreamState===`error`||t.dataset.uiStreamState===`disconnected`||e.aborted)return Promise.resolve(null);let r=I.get(t),i=r??new Promise(e=>{let n=n=>{window.clearTimeout(a),t.removeEventListener(je,r),t.removeEventListener(Me,i),t.removeEventListener(Ne,i),e(n)},r=()=>{let e=L(t);n(e?{token:e}:null)},i=()=>n(null),a=window.setTimeout(i,ft(t));t.addEventListener(je,r,{once:!0}),t.addEventListener(Me,i,{once:!0}),t.addEventListener(Ne,i,{once:!0})}).finally(()=>{I.delete(t)});return r||I.set(t,i),new Promise(t=>{let n=()=>t(null);e.addEventListener(`abort`,n,{once:!0}),i.then(r=>{e.removeEventListener(`abort`,n),t(r)})})},mt=async e=>{let t=dt();if(t)return t;let n=document.querySelector(Ae);if(!n)return null;if(!L(n)){n.dispatchEvent(new CustomEvent(Pe));let e=dt();if(e)return e}return pt(e)},ht=(e,t)=>{if(!t)return{signal:e.signal,cleanup:()=>void 0};let n=()=>e.abort(t.reason);return t.aborted?n():t.addEventListener(`abort`,n,{once:!0}),{signal:e.signal,cleanup:()=>t.removeEventListener(`abort`,n)}},gt=(e,t)=>t.aborted||e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`,_t=async(e,t,n={})=>{let r=n.source,i=new AbortController,a=n.requestId??crypto.randomUUID(),o=it(t,n),s=ht(i,n.signal),c=s.signal;o.init.signal=c,o.init.headers.set(De,a);let l=dt()??await mt(c);if(c.aborted)return s.cleanup(),{requestId:a,response:null,type:`aborted`,url:o.url.toString()};if(!l)return s.cleanup(),{requestId:a,response:null,type:c.aborted?`aborted`:`unavailable`,url:o.url.toString()};o.init.headers.set(Ee,l.token);let u={source:r??document,url:o.url.toString(),method:o.method,requestInit:o.init,requestId:a,controller:i,signal:c};if(!P(`ui:request:before`,r,u,{cancelable:!0}))return s.cleanup(),{requestId:a,response:null,type:`cancelled`,url:o.url.toString()};st(r),P(`ui:request:start`,r,u);try{let e=await fetch(o.url.toString(),o.init),t=await ut(e);u.response=e,u.responseType=t.type,e.ok&&t.type!==`other`||t.type===`redirect`?P(`ui:request:success`,r,u):P(`ui:request:error`,r,u);let n={...t,requestId:a};return n.navigation&&He?.(n),n}catch(e){if(gt(e,c))return u.responseType=`aborted`,{requestId:a,response:null,type:`aborted`,url:o.url.toString()};throw u.error=e,P(`ui:request:error`,r,u),e}finally{s.cleanup(),ct(r),P(`ui:request:finish`,r,u)}},vt=()=>{if(!Ve)throw Error(`Trellis request runtime has not been registered with Alpine.`);return Ve},R=(e,t={})=>_t(vt(),e,t),yt=(e,t={})=>R(e,{...t,method:`GET`}),bt=(e,t={})=>R(e,{...t,method:`POST`}),xt=(e,t={})=>R(e,{...t,method:`PUT`}),St=(e,t={})=>R(e,{...t,method:`DELETE`}),Ct=e=>{Ve=e},wt=e=>{He=e},Tt=`__trellis`,Et=`[data-ui-scroll-restoration]`,Dt=150,Ot=20,kt=100,At=!1,z=null,B=0,jt=!1,V=null,H=new Map,U=new Set,W=new Map,G=()=>crypto.randomUUID(),Mt=()=>({containers:{},window:{x:0,y:0}}),Nt=e=>e.getAttribute(`data-ui-scroll-restoration`)?.trim()||e.id||null,K=()=>{let e={};return document.querySelectorAll(Et).forEach(t=>{let n=Nt(t);n&&(e[n]={x:t.scrollLeft,y:t.scrollTop})}),{containers:e,window:{x:window.scrollX,y:window.scrollY}}},Pt=(e,t)=>{if(e.window.x!==t.window.x||e.window.y!==t.window.y)return!1;let n=Object.keys(e.containers),r=Object.keys(t.containers);return n.length===r.length?n.every(n=>{let r=e.containers[n],i=t.containers[n];return!!(r&&i&&r.x===i.x&&r.y===i.y)}):!1},q=e=>{if(!i(e))return null;let t=e[Tt];if(!i(t))return null;let n=t.navigate;return!i(n)||typeof n.id!=`string`||typeof n.index!=`number`||typeof n.url!=`string`||!i(n.scroll)?null:n},Ft=e=>{let t=i(window.history.state)?window.history.state:{},n=i(t.__trellis)?t[Tt]:{};return{...t,[Tt]:{...n,navigate:e}}},J=(e,t=e.url)=>{window.history.replaceState(Ft(e),``,t)},It=()=>{let e=q(window.history.state);if(!e)return;let t=K();H.set(e.id,t),!Pt(e.scroll,t)&&J({...e,scroll:t})},Lt=()=>{V!==null&&(window.clearTimeout(V),V=null),It()},Rt=()=>{let e=q(window.history.state);if(!e)return;let t=K();H.set(e.id,t),!Pt(e.scroll,t)&&(V!==null&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null;let e=q(window.history.state);if(!e)return;let t=H.get(e.id);t&&!Pt(e.scroll,t)&&J({...e,scroll:t})},Dt))},zt=e=>{requestAnimationFrame(()=>{window.scrollTo({left:e.window.x,top:e.window.y,behavior:`instant`}),document.querySelectorAll(Et).forEach(t=>{let n=Nt(t),r=n?e.containers[n]:void 0;t.scrollTo({left:r?.x??0,top:r?.y??0,behavior:`instant`})})})},Y=(e,t,n=!1)=>{let r=t.source?.isConnected?t.source:document;return r.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:n,composed:!0,detail:{history:t.history,source:r,url:t.destination}}))},Bt=e=>{for(W.set(e.requestId,e);W.size>Ot;){let e=W.keys().next().value;if(!e)break;W.delete(e)}},Vt=e=>{for(U.add(e);U.size>kt;){let e=U.values().next().value;if(!e)break;U.delete(e)}},Ht=()=>{z&&=(Vt(z.requestId),z.controller.abort(`Superseded by a newer Trellis navigation`),null)},Ut=()=>{Ht(),W.forEach(e=>Vt(e.requestId)),W.clear()},X=e=>{window.location.assign(e.href)},Z=e=>{let t=new URL(e,document.baseURI);return t.origin===window.location.origin?t:null},Wt=e=>{Lt();let t={id:G(),index:B+1,scroll:Mt(),url:e.destination.href};return B=t.index,window.history.pushState(Ft(t),``,e.destination),e.entryId=t.id,t},Gt=e=>{let t={id:G(),index:B,scroll:Mt(),url:e.destination.href};return J(t,e.destination),e.entryId=t.id,t},Kt=e=>{if(e.disposition===`replace`)return!0;if(e.disposition===`push`)return!1;let t=new URL(window.location.href);return t.origin===e.destination.origin&&t.pathname===e.destination.pathname},qt=(e,t)=>{t?.type===`aborted`||t?.type===`cancelled`||t?.type===`redirect`||X(e.destination)},Jt=(e,t,n)=>{if(U.has(e.requestId))return;if(t.type!==`empty`){qt(e,t);return}let r=n??(Kt(e)?Gt(e):Wt(e));if(n&&e.destination.href!==n.url){let t={...n,url:e.destination.href};J(t,e.destination),e.entryId=t.id}zt(r.scroll),Y(`ui:navigated`,e)},Yt=(e,t,n)=>{let r={controller:new AbortController,destination:t,entryId:n.restoredState?.id??null,history:n.history,disposition:n.disposition??`auto`,requestId:G(),...n.requestOptions?{requestOptions:n.requestOptions}:{},...n.source?{source:n.source}:{}};if(n.preflight!==!1&&!Y(`ui:navigate`,r,!0))return Promise.resolve();Lt(),Ut(),z=r,Y(`ui:navigating`,r);let i=new Headers(r.requestOptions?.headers);i.set(`X-Trellis-Navigation`,r.history?`restore`:`navigate`);let a=!0,o=async()=>{let t=a?r.requestOptions:void 0,n=a?r.source:void 0;a=!1;let s=await _t(e,r.destination,{...t,headers:i,method:`GET`,requestId:r.requestId,signal:r.controller.signal,...n?{source:n}:{}});if(r.destination=new URL(s.url,document.baseURI),!s.navigation)return s;let c=Z(s.navigation.url);return c?(r.destination=c,s.navigation.history!==`auto`&&(r.disposition=s.navigation.history),o()):(X(new URL(s.navigation.url,document.baseURI)),{...s,type:`redirect`})};return o().then(e=>{z?.requestId!==r.requestId&&!W.has(r.requestId)||Jt(r,e,n.restoredState)}).catch(e=>{r.controller.signal.aborted||(m(`x-ui-request.navigate: restoration failed`,e),qt(r))}).finally(()=>{z?.requestId===r.requestId&&(z=null),U.has(r.requestId)||Bt(r)})},Xt=()=>{let e=q(window.history.state);e?B=e.index:J({id:G(),index:0,scroll:K(),url:window.location.href}),`scrollRestoration`in window.history&&(window.history.scrollRestoration=`manual`)},Zt=()=>{if(q(window.history.state))return;let e={id:G(),index:B+1,scroll:K(),url:window.location.href};B=e.index,J(e)},Qt=e=>{At||(At=!0,Xt(),Ce(e=>!e||!U.has(e)),we((e,t)=>t.matches(`[data-ui-stream]`)&&!!(e&&(z?.requestId===e||W.has(e)))),wt(t=>{if(!t.navigation)return!1;if(U.has(t.requestId)||z?.requestId===t.requestId)return!0;let n=Z(t.navigation.url);return n?(Yt(e,n,{history:!1,disposition:t.navigation.history}),!0):(X(new URL(t.navigation.url,document.baseURI)),!0)}),window.addEventListener(`scroll`,Rt,{passive:!0}),document.addEventListener(`scroll`,e=>{e.target instanceof Element&&e.target.matches(`[data-ui-scroll-restoration]`)&&Rt()},{capture:!0,passive:!0}),window.addEventListener(`pagehide`,Lt),window.addEventListener(`hashchange`,Zt),window.addEventListener(`popstate`,t=>{if(jt){jt=!1;return}let n=q(t.state);if(!n){Zt();return}let r=H.get(n.id),i=r?{...n,scroll:r}:n,a=Z(n.url);if(!a||a.href!==window.location.href){X(new URL(window.location.href));return}let o=B;if(B=n.index,!Y(`ui:navigate`,{controller:new AbortController,destination:a,entryId:n.id,history:!0,disposition:`replace`,requestId:G()},!0)){jt=!0,window.history.go(o-n.index),B=o;return}Yt(e,a,{history:!0,preflight:!1,restoredState:i})}))},$t=(e,t,n,r)=>{let{history:i=`auto`,...a}=r??{};return Yt(e,new URL(t,document.baseURI),{history:!1,disposition:i,requestOptions:a,...n?{source:n}:{}})},Q={activeRequests:0},en=!1,tn=!1,$={},nn=null,rn=(e,t={})=>{let{history:n,navigate:r=!1,...i}=t;if(!r)return yt(e,i);if(!nn)throw Error(`Trellis UI runtime has not been registered with Alpine.`);let{source:a,...o}=i;return $t(nn,e,a,{...o,...n?{history:n}:{}})},an=(e,t)=>(n,r={})=>{let{navigate:i=!1,...a}=r;return i&&m(`$ui.${e}: navigate is only supported for GET requests`),t(n,a)},on={get:rn,post:an(`post`,bt),put:an(`put`,xt),delete:an(`delete`,St),get motion(){if(!$.motion)throw Error(`Trellis Motion capability is not registered.`);return $.motion},get sortable(){if(!$.sortable)throw Error(`Trellis Sortable capability is not registered.`);return $.sortable},get isFetching(){return Q.activeRequests>0}},sn=()=>{tn||(tn=!0,document.addEventListener(`ui:request:start`,()=>{Q.activeRequests+=1}),document.addEventListener(`ui:request:finish`,()=>{Q.activeRequests=Math.max(0,Q.activeRequests-1)}))},cn=e=>{nn=e,en||=(Q=e.reactive(Q),!0),sn(),e.magic(`ui`,()=>on)},ln=e=>{$.motion=e},un=e=>{$.sortable=e};export{$t as a,_t as c,m as d,l as f,c as h,on as i,Se as l,p as m,ln as n,Qt as o,u as p,un as r,Ct as s,cn as t,D as u};
4
+ //# sourceMappingURL=ui-SdoiMWig.js.map