@vireo-ai/trellis-ui 0.1.39 → 0.1.41

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 (110) hide show
  1. package/package.json +1 -1
  2. package/packages/client/src/components/data-grid/styles.css +73 -0
  3. package/packages/client/src/components/select/styles.css +14 -0
  4. package/packages/client/src/styles/components.css +1 -0
  5. package/packages/client/src/styles/generated-sources.css +1 -1
  6. package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
  7. package/packages/client/types/components/badge/contract.d.ts +1 -1
  8. package/packages/client/types/components/button/contract.d.ts +1 -1
  9. package/packages/client/types/components/card/contract.d.ts +2 -2
  10. package/packages/client/types/components/checkbox/contract.d.ts +6 -6
  11. package/packages/client/types/components/common.d.ts +3 -1
  12. package/packages/client/types/components/data-grid/contract.d.ts +107 -0
  13. package/packages/client/types/components/data-grid/entry.generated.d.ts +5 -0
  14. package/packages/client/types/components/data-grid/index.d.ts +34 -0
  15. package/packages/client/types/components/data-grid/model.d.ts +43 -0
  16. package/packages/client/types/components/data-grid/runtime-docs.d.ts +2 -0
  17. package/packages/client/types/components/date-picker/contract.d.ts +1 -1
  18. package/packages/client/types/components/date-picker/machine.d.ts +2 -2
  19. package/packages/client/types/components/entry.generated.d.ts +1 -0
  20. package/packages/client/types/components/menu/contract.d.ts +1 -1
  21. package/packages/client/types/components/radio/contract.d.ts +4 -4
  22. package/packages/client/types/components/runtime.d.ts +3 -0
  23. package/packages/client/types/components/select/contract.d.ts +10 -1
  24. package/packages/client/types/components/select/machine.d.ts +20 -2
  25. package/packages/client/types/components/sidebar/contract.d.ts +1 -1
  26. package/packages/client/types/components/table/contract.d.ts +3 -3
  27. package/packages/client/types/components/toast/contract.d.ts +1 -1
  28. package/packages/client/types/components/toast/machine.d.ts +1 -1
  29. package/packages/client/types/directives/sortable.d.ts +6 -0
  30. package/packages/client/types/runtime/drag-and-drop/sortable/contract.d.ts +6 -1
  31. package/packages/client/types/runtime/drag-and-drop/sortable/ghost.d.ts +5 -2
  32. package/packages/client/types/runtime/index.d.ts +1 -0
  33. package/packages/client/types/runtime/virtualizer-fragment.d.ts +14 -0
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +82 -0
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +287 -243
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +1 -1
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-VFYcNVM5.js → capability-motion-C_8mc71v.js} +2 -2
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-VFYcNVM5.js.map → capability-motion-C_8mc71v.js.map} +1 -1
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-Bga8TngJ.js +2 -0
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-resizable-C6LKIbpv.js.map → capability-resizable-Bga8TngJ.js.map} +1 -1
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ds2wQEQq.js +3 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ds2wQEQq.js.map +1 -0
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-BOd_thC-.js.map +1 -1
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Bmzg6DLB.js +2 -0
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Bmzg6DLB.js.map +1 -0
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{drag-and-drop-BV6kB47L.js → drag-and-drop-DHq3udf7.js} +2 -2
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{drag-and-drop-BV6kB47L.js.map → drag-and-drop-DHq3udf7.js.map} +1 -1
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-LUzMUcng.js → entry.generated-51hjJ_lu.js} +2 -2
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-LUzMUcng.js.map → entry.generated-51hjJ_lu.js.map} +1 -1
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js +2 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js.map +1 -0
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BLloDlP5.js +2 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BLloDlP5.js.map +1 -0
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-UHQD4FyC.js → entry.generated-BO0EDjBb.js} +2 -2
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-UHQD4FyC.js.map → entry.generated-BO0EDjBb.js.map} +1 -1
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-2VgVfygk.js → entry.generated-BPZeXRC3.js} +2 -2
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-2VgVfygk.js.map → entry.generated-BPZeXRC3.js.map} +1 -1
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D91HRlIV.js → entry.generated-BoOsILKj.js} +2 -2
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D91HRlIV.js.map → entry.generated-BoOsILKj.js.map} +1 -1
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DI48yD0K.js → entry.generated-C1JdfrdC.js} +2 -2
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DI48yD0K.js.map → entry.generated-C1JdfrdC.js.map} +1 -1
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BVBXXN6t.js → entry.generated-C8pt5QeK.js} +2 -2
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BVBXXN6t.js.map → entry.generated-C8pt5QeK.js.map} +1 -1
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-bERshNT6.js → entry.generated-DJMDdEtO.js} +2 -2
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-bERshNT6.js.map → entry.generated-DJMDdEtO.js.map} +1 -1
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DvAia1Wz.js → entry.generated-DjMJNzy1.js} +2 -2
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DvAia1Wz.js.map → entry.generated-DjMJNzy1.js.map} +1 -1
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BhPEF6oz.js → entry.generated-QspMEPHx.js} +2 -2
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-QspMEPHx.js.map +1 -0
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-B7ROYMLZ.js +2 -0
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-B7ROYMLZ.js.map +1 -0
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D44EkjK3.js → motion-BhADgUVd.js} +2 -2
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D44EkjK3.js.map → motion-BhADgUVd.js.map} +1 -1
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-BWVDkV-D.js → ui-egQWc4ws.js} +2 -2
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-BWVDkV-D.js.map → ui-egQWc4ws.js.map} +1 -1
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js +2 -0
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js.map +1 -0
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -0
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +119 -91
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-C6LKIbpv.js +0 -2
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-l7SPMutG.js +0 -3
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-l7SPMutG.js.map +0 -1
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js +0 -2
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js.map +0 -1
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bsennsyl.js +0 -2
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bsennsyl.js.map +0 -1
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js +0 -2
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js.map +0 -1
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-BhPEF6oz.js.map +0 -1
@@ -1,4 +1,4 @@
1
1
  import{t as e}from"./bridge-B4S_D6hV.js";import{a as t,n}from"./alpine-machine-BS13dbK4.js";import{n as r}from"./fragment-Bl3Rq38L.js";var i=(e,t)=>typeof t==`string`&&t?t:e.getAttribute(`data-ui-key`)||e.id||null,a=`data-ui-motion-key`,o=`data-ui-motion-layout`,s=e=>typeof e==`object`&&!!e&&Symbol.iterator in e,c=(e=document)=>typeof e==`string`?Array.from(document.querySelectorAll(e)):e instanceof Document||e instanceof Element?[e]:s(e)?Array.from(e):[document],l=(e=document,t={})=>{let n=c(e).filter(e=>e instanceof Element),r=[],s=(e,t,n)=>{r.push({element:e,attr:t,previous:e.getAttribute(t)}),e.setAttribute(t,n)};return n.forEach(e=>{(t.layout??!0)&&s(e,o,``);let n=i(e,t.key);n&&!e.hasAttribute(`data-ui-motion-key`)&&s(e,a,n)}),()=>{r.reverse().forEach(({element:e,attr:t,previous:n})=>{if(n===null){e.removeAttribute(t);return}e.setAttribute(t,n)})}},u=(e,...t)=>{typeof console<`u`&&console.warn(e,...t)},d=new WeakMap,f=(e,t)=>{let n=d.get(e)??new Set;return n.add(t),d.set(e,n),()=>{n.delete(t),n.size===0&&d.delete(e)}},p=e=>{let t=e;for(;t;){let e=d.get(t);if(e?.size)return Array.from(e);t=t.parentElement}return[]},m=`data-ui-preserve-attr`,ee=(e,...t)=>{let n=new Set((e.getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/).filter(Boolean));t.filter(Boolean).forEach(e=>n.add(e)),n.size>0&&e.setAttribute(m,Array.from(n).join(` `))},h=(e,t)=>{if(!(e instanceof Element)||!(t instanceof Element))return;let n=new Set([...(e.getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/),...(t.getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/)].filter(Boolean));if(n.size!==0){t.setAttribute(m,Array.from(n).join(` `));for(let r of n)e.hasAttribute(r)?t.setAttribute(r,e.getAttribute(r)??``):t.removeAttribute(r)}},g=new Set,_=!1,v=null,y=null,b=null,te=Promise.resolve(),x=0,S=e=>{for(let t of e)g.add(t);_||g.size===0||(_=!0,queueMicrotask(()=>{_=!1;let e=Array.from(g);g.clear(),e.forEach(e=>e.invalidateDom())}))},C=e=>{let t=document.createElement(`template`);return t.innerHTML=e,t},w=e=>Array.from(C(e).content.children).filter(e=>e instanceof HTMLElement),T=(e,t)=>{t.forEach(t=>e.initTree(t))},ne=(e,t)=>t||e.getAttribute(`x-merge`)||`replace`,re=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)},E=(e,t,a)=>{let o=ne(t,a.mode);if(o===`remove`){t.remove();return}if(!a.html){u(`x-ui-stream: received patch with no html`);return}if(o===`morph`||o===`outer`){if(typeof e.morph==`function`){let r=new Set;e.morph(t,a.html,{key(e){return i(e)},updating(e,t,n,r){if(e instanceof Element&&y?.(a.requestId??null,e)){r?.();return}h(e,t)},updated(t){if(!(t instanceof Element))return;let i=n(e,t);i&&r.add(i),p(t).forEach(e=>{r.add(e)})}}),S(r);return}u(`x-ui-stream: morph mode requires an Alpine morph implementation; falling back to replace`)}if(o===`replace`||o===`morph`||o===`outer`){let[n]=w(a.html);if(!n){u(`x-ui-stream: replace mode produced no element`);return}t.replaceWith(n),e.initTree(n);return}if(o===`update`){r(e,t,a.html);return}let s=C(a.html),c=Array.from(s.content.children).filter(e=>e instanceof HTMLElement);if(o===`append`){t.append(s.content),T(e,c);return}if(o===`prepend`){t.prepend(s.content),T(e,c);return}if(o===`before`){t.before(s.content),T(e,c);return}o===`after`&&(t.after(s.content),T(e,c))},D=(e,t)=>{let n=re(t);if(n){E(e,n,t);return}if(t.selector||t.target){u(`x-ui-stream: target not found`,t.selector??t.target);return}if(!t.html){u(`x-ui-stream: received patch with no html`);return}w(t.html).forEach(n=>{if(!n.id){u(`x-ui-stream: top-level element has no id, skipping`,n);return}let r=document.getElementById(n.id);r&&E(e,r,{...t,html:n.outerHTML})})},O=(t,n)=>{let r=Array.isArray(n)?n:[n],i=()=>{r.forEach(e=>D(t,e))},a=()=>{let e=r.filter(e=>e.viewTransition===!0);if(e.length===0){i();return}b?b(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()};te=te.then(s,s).catch(()=>void 0).finally(()=>{--x})},k=e=>{b=e},A=e=>{document.dispatchEvent(new CustomEvent(e.event,{detail:e.detail??{},bubbles:!0,composed:!0}))},ie=e=>{let t=new Map;for(let n of e.data.split(`
2
2
  `)){let e=n.indexOf(` `),r=e>0,i=r?n.slice(0,e):n;if(!r&&i!==`html`)return u(`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},j=(e,t)=>{let n=e.get(t);if(n?.length)return n.length>1&&u(`x-ui-stream: duplicate SSE command, using last value`,t),n.at(-1)},ae=(e,t)=>{let n=ie(t);if(!n||n.size===0)return;let r=j(n,`request-id`);if(v&&!v(r??null))return;let i,a=j(n,`assets`);if(a)try{let e=JSON.parse(a);if(!Array.isArray(e))throw TypeError(`assets must be an array`);i=e}catch{u(`x-ui-stream: invalid patch assets JSON`,a);return}O(e,{mode:j(n,`mode`)??`replace`,target:j(n,`target`)??null,selector:j(n,`selector`)??null,html:n.get(`html`)?.join(`
3
- `)??null,requestId:r??null,viewTransition:j(n,`view-transition`)===`true`,...i?{assets:i}:{}})},oe=e=>{let n=ie(e);if(!n)return;let r=j(n,`request-id`);if(v&&!v(r??null))return;let i=j(n,`event`);if(!i){u(`x-ui-stream: dispatch SSE frame missing event`);return}let a=j(n,`detail`),o={};if(a)try{let e=JSON.parse(a);t(e)&&(o=e)}catch{u(`x-ui-stream: invalid dispatch detail JSON`,a);return}A({event:i,detail:o})},se={"trellis-ui-patch":ae,"trellis-ui-dispatch":(e,t)=>oe(t)},ce=`trellis-ui-`,le=(e,t)=>{let n=se[t.event];if(!n){t.event.startsWith(ce)&&u(`x-ui-stream: unsupported SSE event`,t.event);return}n(e,t)},ue=(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}`},de=(e,t,n=``,r=``,i={})=>{let a=new EventSource(ue(t,n,r,i.lastEventId)),o=!0,s=e=>{e.lastEventId&&i.eventId?.(e.lastEventId)};return Object.keys(se).forEach(t=>{a.addEventListener(t,t=>{!o||!(t instanceof MessageEvent)||(s(t),le(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()}}},M=new Map,fe=new Set,pe=e=>e instanceof HTMLElement&&e.id?e.id:e,me=6e4,he=1e3,ge=2e3,_e=1e3,ve=3e4,N=(e,t,n={})=>{t!==`reset`&&(e.dataset.uiStreamState=t),e.dispatchEvent(new CustomEvent(`ui:stream:${t}`,{bubbles:!0,composed:!0,detail:{source:e,...n}}))},ye=(e,t)=>ue(t,e.dataset.uiStreamScopes,e.dataset.uiStreamClient),be=e=>e.dataset.uiStreamOpenWhenHidden===`true`,P=(e,t)=>JSON.stringify({openWhenHidden:be(e),url:ye(e,t)}),xe=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},Se=(e,t,n)=>{let r=P(t,n),i=null,a,o=null,s,c,l=!1,d=``,f=0,p=0,m=!1,h=!1,g=new Map,_=new Set,v=be(t),y=()=>!m&&(v||document.visibilityState===`visible`),b=()=>{window.clearTimeout(s),s=void 0},te=()=>{t.dispatchEvent(new CustomEvent(`ui:stream:resumed`,{bubbles:!0,composed:!0}))},x=a=>{i?.abort(),b();let o=++f;r=P(t,n),N(t,`connecting`),i=de(e,n,t.dataset.uiStreamScopes,a,{lastEventId:d,open:()=>{if(o!==f)return;let e=l;l=!0,p=0,N(t,`open`),e&&te()},disconnected:()=>{if(o!==f||h||(i=null,A.controller=null,N(t,`disconnected`),!y()))return;let e=Math.min(_e*2**p,ve);p+=1;let n=Math.floor(Math.random()*e);s=window.setTimeout(()=>{s=void 0,T()},n)},reset:e=>N(t,`reset`,{data:e}),eventId:e=>{o===f&&(d=e)},error:e=>{o!==f||h||(m=!0,i=null,A.controller=null,b(),N(t,`error`,{data:e}))}}),A.controller=i,A.configuration=r,S()},S=()=>{if(window.clearTimeout(a),a=void 0,!y())return;let e=Number(t.dataset.uiStreamClientExpires);if(!Number.isFinite(e)||e<=0)return;let n=e-Date.now()-me;if(n<=0){w();return}a=window.setTimeout(()=>void w(),n)},C=()=>{if(h)return Promise.resolve(null);if(o)return o;let e=t.dataset.uiStreamClientRefresh;return e?(o=fetch(e,{headers:{Accept:`application/json`,"X-Trellis-Client":t.dataset.uiStreamClient??``}}).then(async e=>{if(!e.ok)throw Error(`ClientSession refresh failed (${e.status})`);let n=await e.json();if(typeof n.token!=`string`||typeof n.expiresAt!=`number`)throw Error(`ClientSession refresh returned an invalid payload`);return h?null:(t.dataset.uiStreamClient=n.token,t.dataset.uiStreamClientExpires=String(n.expiresAt),n.token)}).catch(e=>{u(`x-ui-stream: could not refresh ClientSession`,e);let n=Number(t.dataset.uiStreamClientExpires);return!Number.isFinite(n)||n<=Date.now()?(N(t,`error`,{error:e}),null):(y()&&(a=window.setTimeout(()=>void w(),5e3)),t.dataset.uiStreamClient??null)}).finally(()=>{o=null}),o):(N(t,`error`,{reason:`missing-refresh-url`}),Promise.resolve(null))},w=async()=>{if(!y())return;let e=await C();e&&y()&&!h&&x(e)},T=async()=>{if(h||!y()||i)return;let e=Number(t.dataset.uiStreamClientExpires),n=t.dataset.uiStreamClient??``,r=Number.isFinite(e)&&e>0&&e-Date.now()<=me?await C():n;r&&y()&&!h&&!i&&x(r)},ne=()=>{c=void 0,!(h||v||document.visibilityState!==`hidden`)&&(_.size>0||(g.forEach(e=>e.abort(`Document suspended`)),g.clear(),window.clearTimeout(a),a=void 0,b(),i?.abort(),i=null,N(t,`suspended`),A.controller=null))},re=e=>{window.clearTimeout(c),c=void 0,!(v||document.visibilityState!==`hidden`)&&(c=window.setTimeout(ne,e))},E=()=>{m||w()},D=e=>{let t=xe(e);if(t){if(t.method===`GET`){g.set(t.requestId,t.controller);return}_.add(t.requestId),document.visibilityState===`hidden`&&!v&&(window.clearTimeout(c),c=void 0)}},O=e=>{let t=xe(e);if(t){if(t.method===`GET`){g.delete(t.requestId);return}_.delete(t.requestId),document.visibilityState===`hidden`&&!v&&_.size===0&&re(ge)}},k=()=>{if(!(v||m)){if(document.visibilityState===`hidden`){if(_.size>0)return;re(he);return}window.clearTimeout(c),c=void 0,i||T()}},A={configuration:r,controller:null,element:t,dispose(){h||(h=!0,window.clearTimeout(a),window.clearTimeout(c),b(),t.removeEventListener(`ui:stream:refresh`,E),document.removeEventListener(`visibilitychange`,k),document.removeEventListener(`ui:request:start`,D),document.removeEventListener(`ui:request:finish`,O),i?.abort())},rescheduleRefresh:S};return ee(t,`data-ui-stream-state`),t.addEventListener(`ui:stream:refresh`,E),document.addEventListener(`visibilitychange`,k),document.addEventListener(`ui:request:start`,D),document.addEventListener(`ui:request:finish`,O),y()?T():N(t,`suspended`),A},Ce=e=>{typeof e.directive==`function`&&e.directive(`ui-stream`,(t,{expression:n},{cleanup:r})=>{if(!n)return;let i=t instanceof HTMLElement?t.dataset.uiStreamClient:``;if(!(t instanceof HTMLElement)||!i){u(`x-ui-stream: missing signed ClientSession capability`);return}let a=pe(t),o=M.get(a),s=P(t,n);if(o?.configuration===s){t.dataset.uiStreamState=o.element.dataset.uiStreamState??`connecting`,ee(t,`data-ui-stream-state`),queueMicrotask(()=>o.rescheduleRefresh());return}if(!t.isConnected&&typeof a==`string`){fe.has(a)||(fe.add(a),queueMicrotask(()=>{fe.delete(a);let t=document.getElementById(a);if(!t)return;let r=M.get(a),i=P(t,n);if(r?.configuration===i){r.rescheduleRefresh();return}r?.dispose(),M.set(a,Se(e,t,n))}));return}o?.dispose(),M.set(a,Se(e,t,n)),r(()=>{let e=M.get(a);e?.element===t&&(e.dispose(),M.delete(a))})})},we=e=>{v=e},Te=e=>{y=e},Ee=`X-Trellis-UI-Request`,De=`X-Trellis-Client`,Oe=`X-Trellis-Request-ID`,ke=`X-Trellis-Navigate`,Ae=`X-Trellis-Navigate-History`,F=`[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(Ee,`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}),I=(e,t,n,r)=>at(t).dispatchEvent(ot(e,n,r)),L=new WeakMap,st=e=>{if(!e)return;let t=L.get(e)??0;L.set(e,t+1),e.setAttribute(`aria-busy`,`true`),e.setAttribute(Le,`true`)},ct=e=>{if(!e)return;let t=(L.get(e)??1)-1;if(t>0){L.set(e,t);return}L.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(ke);if(t){let n=e.headers.get(Ae)??`auto`;return n!==`auto`&&n!==`push`&&n!==`replace`?(u(`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}):(u(`x-ui-request: expected an empty response`,e),{response:e,type:`other`,url:e.url})},dt=new WeakMap,R=e=>{let t=e.dataset.uiStreamClient,n=Number(e.dataset.uiStreamClientExpires);return!t||Number.isFinite(n)&&n>0&&n<=Date.now()?null:t},ft=()=>{let e=document.querySelector(F),t=e?R(e):null;return!e||!t||e.dataset.uiStreamState!==`open`?null:{token:t}},pt=e=>{let t=Number(e.dataset.uiStreamTimeout);return Number.isFinite(t)&&t>=0?t:5e3},mt=e=>{let t=document.querySelector(F),n=t?R(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=dt.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=R(t);n(e?{token:e}:null)},i=()=>n(null),a=window.setTimeout(i,pt(t));t.addEventListener(je,r,{once:!0}),t.addEventListener(Me,i,{once:!0}),t.addEventListener(Ne,i,{once:!0})}).finally(()=>{dt.delete(t)});return r||dt.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)})})},ht=async e=>{let t=ft();if(t)return t;let n=document.querySelector(F);if(!n)return null;if(!R(n)){n.dispatchEvent(new CustomEvent(Pe));let e=ft();if(e)return e}return mt(e)},gt=(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)}},_t=(e,t)=>t.aborted||e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`,vt=async(e,t,n={})=>{let r=n.source,i=new AbortController,a=n.requestId??crypto.randomUUID(),o=it(t,n),s=gt(i,n.signal),c=s.signal;o.init.signal=c,o.init.headers.set(Oe,a);let l=ft()??await ht(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(De,l.token);let u={source:r??document,url:o.url.toString(),method:o.method,requestInit:o.init,requestId:a,controller:i,signal:c};if(!I(`ui:request:before`,r,u,{cancelable:!0}))return s.cleanup(),{requestId:a,response:null,type:`cancelled`,url:o.url.toString()};st(r),I(`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`?I(`ui:request:success`,r,u):I(`ui:request:error`,r,u);let n={...t,requestId:a};return n.navigation&&He?.(n),n}catch(e){if(_t(e,c))return u.responseType=`aborted`,{requestId:a,response:null,type:`aborted`,url:o.url.toString()};throw u.error=e,I(`ui:request:error`,r,u),e}finally{s.cleanup(),ct(r),I(`ui:request:finish`,r,u)}},yt=()=>{if(!Ve)throw Error(`Trellis request runtime has not been registered with Alpine.`);return Ve},z=(e,t={})=>vt(yt(),e,t),bt=(e,t={})=>z(e,{...t,method:`GET`}),xt=(e,t={})=>z(e,{...t,method:`POST`}),St=(e,t={})=>z(e,{...t,method:`PUT`}),Ct=(e,t={})=>z(e,{...t,method:`DELETE`}),wt=e=>{Ve=e},Tt=e=>{He=e},Et=`__trellis`,Dt=`[data-ui-scroll-restoration]`,Ot=20,kt=100,At=!1,B=null,V=0,H=!1,U=null,W=new Map,G=new Set,K=new Map,q=()=>crypto.randomUUID(),jt=()=>({containers:{},window:{x:0,y:0}}),Mt=e=>e.getAttribute(`data-ui-scroll-restoration`)?.trim()||e.id||null,Nt=()=>{let e={};return document.querySelectorAll(Dt).forEach(t=>{let n=Mt(t);n&&(e[n]={x:t.scrollLeft,y:t.scrollTop})}),{containers:e,window:{x:window.scrollX,y:window.scrollY}}},J=e=>{if(!t(e))return null;let n=e[Et];if(!t(n))return null;let r=n.navigate;return!t(r)||typeof r.id!=`string`||typeof r.index!=`number`||typeof r.url!=`string`||!t(r.scroll)?null:r},Pt=e=>{let n=t(window.history.state)?window.history.state:{},r=t(n.__trellis)?n[Et]:{};return{...n,[Et]:{...r,navigate:e}}},Y=(e,t=e.url)=>{window.history.replaceState(Pt(e),``,t)},Ft=()=>{let e=J(window.history.state);if(!e)return;let t=Nt();W.set(e.id,t),Y({...e,scroll:t})},It=()=>{U!==null&&(cancelAnimationFrame(U),U=null),Ft()},Lt=()=>{let e=J(window.history.state);e&&(W.set(e.id,Nt()),U===null&&(U=requestAnimationFrame(()=>{U=null;let e=J(window.history.state);if(!e)return;let t=W.get(e.id);t&&Y({...e,scroll:t})})))},Rt=e=>{requestAnimationFrame(()=>{window.scrollTo({left:e.window.x,top:e.window.y,behavior:`instant`}),document.querySelectorAll(Dt).forEach(t=>{let n=Mt(t),r=n?e.containers[n]:void 0;t.scrollTo({left:r?.x??0,top:r?.y??0,behavior:`instant`})})})},X=(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}}))},zt=e=>{for(K.set(e.requestId,e);K.size>Ot;){let e=K.keys().next().value;if(!e)break;K.delete(e)}},Bt=e=>{for(G.add(e);G.size>kt;){let e=G.values().next().value;if(!e)break;G.delete(e)}},Vt=()=>{B&&=(Bt(B.requestId),B.controller.abort(`Superseded by a newer Trellis navigation`),null)},Ht=()=>{Vt(),K.forEach(e=>Bt(e.requestId)),K.clear()},Z=e=>{window.location.assign(e.href)},Ut=e=>{let t=new URL(e,document.baseURI);return t.origin===window.location.origin?t:null},Wt=e=>{It();let t={id:q(),index:V+1,scroll:jt(),url:e.destination.href};return V=t.index,window.history.pushState(Pt(t),``,e.destination),e.entryId=t.id,t},Gt=e=>{let t={id:q(),index:V,scroll:jt(),url:e.destination.href};return Y(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`||Z(e.destination)},Jt=(e,t,n)=>{if(G.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};Y(t,e.destination),e.entryId=t.id}Rt(r.scroll),X(`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:q(),...n.requestOptions?{requestOptions:n.requestOptions}:{},...n.source?{source:n.source}:{}};if(n.preflight!==!1&&!X(`ui:navigate`,r,!0))return Promise.resolve();Ht(),B=r,X(`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 vt(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=Ut(s.navigation.url);return c?(r.destination=c,s.navigation.history!==`auto`&&(r.disposition=s.navigation.history),o()):(Z(new URL(s.navigation.url,document.baseURI)),{...s,type:`redirect`})};return o().then(e=>{B?.requestId!==r.requestId&&!K.has(r.requestId)||Jt(r,e,n.restoredState)}).catch(e=>{r.controller.signal.aborted||(u(`x-ui-request.navigate: restoration failed`,e),qt(r))}).finally(()=>{B?.requestId===r.requestId&&(B=null),G.has(r.requestId)||zt(r)})},Xt=()=>{let e=J(window.history.state);e?V=e.index:Y({id:q(),index:0,scroll:Nt(),url:window.location.href}),`scrollRestoration`in window.history&&(window.history.scrollRestoration=`manual`)},Zt=e=>{At||(At=!0,Xt(),we(e=>!e||!G.has(e)),Te((e,t)=>t.matches(`[data-ui-stream]`)&&!!(e&&(B?.requestId===e||K.has(e)))),Tt(t=>{if(!t.navigation)return!1;if(G.has(t.requestId)||B?.requestId===t.requestId)return!0;let n=Ut(t.navigation.url);return n?(Yt(e,n,{history:!1,disposition:t.navigation.history}),!0):(Z(new URL(t.navigation.url,document.baseURI)),!0)}),window.addEventListener(`scroll`,Lt,{passive:!0}),document.addEventListener(`scroll`,Lt,{capture:!0,passive:!0}),window.addEventListener(`pagehide`,It),window.addEventListener(`popstate`,t=>{if(H){H=!1;return}let n=J(t.state);if(!n){Z(new URL(window.location.href));return}let r=W.get(n.id),i=r?{...n,scroll:r}:n,a=Ut(n.url);if(!a||a.href!==window.location.href){Z(new URL(window.location.href));return}let o=V;if(V=n.index,!X(`ui:navigate`,{controller:new AbortController,destination:a,entryId:n.id,history:!0,disposition:`replace`,requestId:q()},!0)){H=!0,window.history.go(o-n.index),V=o;return}Yt(e,a,{history:!0,preflight:!1,restoredState:i})}))},Qt=(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},$t=!1,en=!1,$={},tn=null,nn=(e,t={})=>{let{history:n,navigate:r=!1,...i}=t;if(!r)return bt(e,i);if(!tn)throw Error(`Trellis UI runtime has not been registered with Alpine.`);let{source:a,...o}=i;return Qt(tn,e,a,{...o,...n?{history:n}:{}})},rn=(e,t)=>(n,r={})=>{let{navigate:i=!1,...a}=r;return i&&u(`$ui.${e}: navigate is only supported for GET requests`),t(n,a)},an={get:nn,post:rn(`post`,xt),put:rn(`put`,St),delete:rn(`delete`,Ct),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}},on=()=>{en||(en=!0,document.addEventListener(`ui:request:start`,()=>{Q.activeRequests+=1}),document.addEventListener(`ui:request:finish`,()=>{Q.activeRequests=Math.max(0,Q.activeRequests-1)}))},sn=e=>{tn=e,$t||=(Q=e.reactive(Q),!0),on(),e.magic(`ui`,()=>an)},cn=e=>{$.motion=e},ln=e=>{$.sortable=e};export{Qt as a,vt as c,ee as d,f,l as g,o as h,an as i,Ce as l,a as m,cn as n,Zt as o,u as p,ln as r,wt as s,sn as t,k as u};
4
- //# sourceMappingURL=ui-BWVDkV-D.js.map
3
+ `)??null,requestId:r??null,viewTransition:j(n,`view-transition`)===`true`,...i?{assets:i}:{}})},oe=e=>{let n=ie(e);if(!n)return;let r=j(n,`request-id`);if(v&&!v(r??null))return;let i=j(n,`event`);if(!i){u(`x-ui-stream: dispatch SSE frame missing event`);return}let a=j(n,`detail`),o={};if(a)try{let e=JSON.parse(a);t(e)&&(o=e)}catch{u(`x-ui-stream: invalid dispatch detail JSON`,a);return}A({event:i,detail:o})},se={"trellis-ui-patch":ae,"trellis-ui-dispatch":(e,t)=>oe(t)},ce=`trellis-ui-`,le=(e,t)=>{let n=se[t.event];if(!n){t.event.startsWith(ce)&&u(`x-ui-stream: unsupported SSE event`,t.event);return}n(e,t)},ue=(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}`},de=(e,t,n=``,r=``,i={})=>{let a=new EventSource(ue(t,n,r,i.lastEventId)),o=!0,s=e=>{e.lastEventId&&i.eventId?.(e.lastEventId)};return Object.keys(se).forEach(t=>{a.addEventListener(t,t=>{!o||!(t instanceof MessageEvent)||(s(t),le(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()}}},M=new Map,fe=new Set,pe=e=>e instanceof HTMLElement&&e.id?e.id:e,me=6e4,he=1e3,ge=2e3,_e=1e3,ve=3e4,N=(e,t,n={})=>{t!==`reset`&&(e.dataset.uiStreamState=t),e.dispatchEvent(new CustomEvent(`ui:stream:${t}`,{bubbles:!0,composed:!0,detail:{source:e,...n}}))},ye=(e,t)=>ue(t,e.dataset.uiStreamScopes,e.dataset.uiStreamClient),be=e=>e.dataset.uiStreamOpenWhenHidden===`true`,P=(e,t)=>JSON.stringify({openWhenHidden:be(e),url:ye(e,t)}),xe=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},Se=(e,t,n)=>{let r=P(t,n),i=null,a,o=null,s,c,l=!1,d=``,f=0,p=0,m=!1,h=!1,g=new Map,_=new Set,v=be(t),y=()=>!m&&(v||document.visibilityState===`visible`),b=()=>{window.clearTimeout(s),s=void 0},te=()=>{t.dispatchEvent(new CustomEvent(`ui:stream:resumed`,{bubbles:!0,composed:!0}))},x=a=>{i?.abort(),b();let o=++f;r=P(t,n),N(t,`connecting`),i=de(e,n,t.dataset.uiStreamScopes,a,{lastEventId:d,open:()=>{if(o!==f)return;let e=l;l=!0,p=0,N(t,`open`),e&&te()},disconnected:()=>{if(o!==f||h||(i=null,A.controller=null,N(t,`disconnected`),!y()))return;let e=Math.min(_e*2**p,ve);p+=1;let n=Math.floor(Math.random()*e);s=window.setTimeout(()=>{s=void 0,T()},n)},reset:e=>N(t,`reset`,{data:e}),eventId:e=>{o===f&&(d=e)},error:e=>{o!==f||h||(m=!0,i=null,A.controller=null,b(),N(t,`error`,{data:e}))}}),A.controller=i,A.configuration=r,S()},S=()=>{if(window.clearTimeout(a),a=void 0,!y())return;let e=Number(t.dataset.uiStreamClientExpires);if(!Number.isFinite(e)||e<=0)return;let n=e-Date.now()-me;if(n<=0){w();return}a=window.setTimeout(()=>void w(),n)},C=()=>{if(h)return Promise.resolve(null);if(o)return o;let e=t.dataset.uiStreamClientRefresh;return e?(o=fetch(e,{headers:{Accept:`application/json`,"X-Trellis-Client":t.dataset.uiStreamClient??``}}).then(async e=>{if(!e.ok)throw Error(`ClientSession refresh failed (${e.status})`);let n=await e.json();if(typeof n.token!=`string`||typeof n.expiresAt!=`number`)throw Error(`ClientSession refresh returned an invalid payload`);return h?null:(t.dataset.uiStreamClient=n.token,t.dataset.uiStreamClientExpires=String(n.expiresAt),n.token)}).catch(e=>{u(`x-ui-stream: could not refresh ClientSession`,e);let n=Number(t.dataset.uiStreamClientExpires);return!Number.isFinite(n)||n<=Date.now()?(N(t,`error`,{error:e}),null):(y()&&(a=window.setTimeout(()=>void w(),5e3)),t.dataset.uiStreamClient??null)}).finally(()=>{o=null}),o):(N(t,`error`,{reason:`missing-refresh-url`}),Promise.resolve(null))},w=async()=>{if(!y())return;let e=await C();e&&y()&&!h&&x(e)},T=async()=>{if(h||!y()||i)return;let e=Number(t.dataset.uiStreamClientExpires),n=t.dataset.uiStreamClient??``,r=Number.isFinite(e)&&e>0&&e-Date.now()<=me?await C():n;r&&y()&&!h&&!i&&x(r)},ne=()=>{c=void 0,!(h||v||document.visibilityState!==`hidden`)&&(_.size>0||(g.forEach(e=>e.abort(`Document suspended`)),g.clear(),window.clearTimeout(a),a=void 0,b(),i?.abort(),i=null,N(t,`suspended`),A.controller=null))},re=e=>{window.clearTimeout(c),c=void 0,!(v||document.visibilityState!==`hidden`)&&(c=window.setTimeout(ne,e))},E=()=>{m||w()},D=e=>{let t=xe(e);if(t){if(t.method===`GET`){g.set(t.requestId,t.controller);return}_.add(t.requestId),document.visibilityState===`hidden`&&!v&&(window.clearTimeout(c),c=void 0)}},O=e=>{let t=xe(e);if(t){if(t.method===`GET`){g.delete(t.requestId);return}_.delete(t.requestId),document.visibilityState===`hidden`&&!v&&_.size===0&&re(ge)}},k=()=>{if(!(v||m)){if(document.visibilityState===`hidden`){if(_.size>0)return;re(he);return}window.clearTimeout(c),c=void 0,i||T()}},A={configuration:r,controller:null,element:t,dispose(){h||(h=!0,window.clearTimeout(a),window.clearTimeout(c),b(),t.removeEventListener(`ui:stream:refresh`,E),document.removeEventListener(`visibilitychange`,k),document.removeEventListener(`ui:request:start`,D),document.removeEventListener(`ui:request:finish`,O),i?.abort())},rescheduleRefresh:S};return ee(t,`data-ui-stream-state`),t.addEventListener(`ui:stream:refresh`,E),document.addEventListener(`visibilitychange`,k),document.addEventListener(`ui:request:start`,D),document.addEventListener(`ui:request:finish`,O),y()?T():N(t,`suspended`),A},Ce=e=>{typeof e.directive==`function`&&e.directive(`ui-stream`,(t,{expression:n},{cleanup:r})=>{if(!n)return;let i=t instanceof HTMLElement?t.dataset.uiStreamClient:``;if(!(t instanceof HTMLElement)||!i){u(`x-ui-stream: missing signed ClientSession capability`);return}let a=pe(t),o=M.get(a),s=P(t,n);if(o?.configuration===s){t.dataset.uiStreamState=o.element.dataset.uiStreamState??`connecting`,ee(t,`data-ui-stream-state`),queueMicrotask(()=>o.rescheduleRefresh());return}if(!t.isConnected&&typeof a==`string`){fe.has(a)||(fe.add(a),queueMicrotask(()=>{fe.delete(a);let t=document.getElementById(a);if(!t)return;let r=M.get(a),i=P(t,n);if(r?.configuration===i){r.rescheduleRefresh();return}r?.dispose(),M.set(a,Se(e,t,n))}));return}o?.dispose(),M.set(a,Se(e,t,n)),r(()=>{let e=M.get(a);e?.element===t&&(e.dispose(),M.delete(a))})})},we=e=>{v=e},Te=e=>{y=e},Ee=`X-Trellis-UI-Request`,De=`X-Trellis-Client`,Oe=`X-Trellis-Request-ID`,ke=`X-Trellis-Navigate`,Ae=`X-Trellis-Navigate-History`,F=`[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(Ee,`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}),I=(e,t,n,r)=>at(t).dispatchEvent(ot(e,n,r)),L=new WeakMap,st=e=>{if(!e)return;let t=L.get(e)??0;L.set(e,t+1),e.setAttribute(`aria-busy`,`true`),e.setAttribute(Le,`true`)},ct=e=>{if(!e)return;let t=(L.get(e)??1)-1;if(t>0){L.set(e,t);return}L.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(ke);if(t){let n=e.headers.get(Ae)??`auto`;return n!==`auto`&&n!==`push`&&n!==`replace`?(u(`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}):(u(`x-ui-request: expected an empty response`,e),{response:e,type:`other`,url:e.url})},dt=new WeakMap,R=e=>{let t=e.dataset.uiStreamClient,n=Number(e.dataset.uiStreamClientExpires);return!t||Number.isFinite(n)&&n>0&&n<=Date.now()?null:t},ft=()=>{let e=document.querySelector(F),t=e?R(e):null;return!e||!t||e.dataset.uiStreamState!==`open`?null:{token:t}},pt=e=>{let t=Number(e.dataset.uiStreamTimeout);return Number.isFinite(t)&&t>=0?t:5e3},mt=e=>{let t=document.querySelector(F),n=t?R(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=dt.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=R(t);n(e?{token:e}:null)},i=()=>n(null),a=window.setTimeout(i,pt(t));t.addEventListener(je,r,{once:!0}),t.addEventListener(Me,i,{once:!0}),t.addEventListener(Ne,i,{once:!0})}).finally(()=>{dt.delete(t)});return r||dt.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)})})},ht=async e=>{let t=ft();if(t)return t;let n=document.querySelector(F);if(!n)return null;if(!R(n)){n.dispatchEvent(new CustomEvent(Pe));let e=ft();if(e)return e}return mt(e)},gt=(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)}},_t=(e,t)=>t.aborted||e instanceof DOMException&&e.name===`AbortError`||e instanceof Error&&e.name===`AbortError`,vt=async(e,t,n={})=>{let r=n.source,i=new AbortController,a=n.requestId??crypto.randomUUID(),o=it(t,n),s=gt(i,n.signal),c=s.signal;o.init.signal=c,o.init.headers.set(Oe,a);let l=ft()??await ht(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(De,l.token);let u={source:r??document,url:o.url.toString(),method:o.method,requestInit:o.init,requestId:a,controller:i,signal:c};if(!I(`ui:request:before`,r,u,{cancelable:!0}))return s.cleanup(),{requestId:a,response:null,type:`cancelled`,url:o.url.toString()};st(r),I(`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`?I(`ui:request:success`,r,u):I(`ui:request:error`,r,u);let n={...t,requestId:a};return n.navigation&&He?.(n),n}catch(e){if(_t(e,c))return u.responseType=`aborted`,{requestId:a,response:null,type:`aborted`,url:o.url.toString()};throw u.error=e,I(`ui:request:error`,r,u),e}finally{s.cleanup(),ct(r),I(`ui:request:finish`,r,u)}},yt=()=>{if(!Ve)throw Error(`Trellis request runtime has not been registered with Alpine.`);return Ve},z=(e,t={})=>vt(yt(),e,t),bt=(e,t={})=>z(e,{...t,method:`GET`}),xt=(e,t={})=>z(e,{...t,method:`POST`}),St=(e,t={})=>z(e,{...t,method:`PUT`}),Ct=(e,t={})=>z(e,{...t,method:`DELETE`}),wt=e=>{Ve=e},Tt=e=>{He=e},Et=`__trellis`,Dt=`[data-ui-scroll-restoration]`,Ot=20,kt=100,At=!1,B=null,V=0,H=!1,U=null,W=new Map,G=new Set,K=new Map,q=()=>crypto.randomUUID(),jt=()=>({containers:{},window:{x:0,y:0}}),Mt=e=>e.getAttribute(`data-ui-scroll-restoration`)?.trim()||e.id||null,Nt=()=>{let e={};return document.querySelectorAll(Dt).forEach(t=>{let n=Mt(t);n&&(e[n]={x:t.scrollLeft,y:t.scrollTop})}),{containers:e,window:{x:window.scrollX,y:window.scrollY}}},J=e=>{if(!t(e))return null;let n=e[Et];if(!t(n))return null;let r=n.navigate;return!t(r)||typeof r.id!=`string`||typeof r.index!=`number`||typeof r.url!=`string`||!t(r.scroll)?null:r},Pt=e=>{let n=t(window.history.state)?window.history.state:{},r=t(n.__trellis)?n[Et]:{};return{...n,[Et]:{...r,navigate:e}}},Y=(e,t=e.url)=>{window.history.replaceState(Pt(e),``,t)},Ft=()=>{let e=J(window.history.state);if(!e)return;let t=Nt();W.set(e.id,t),Y({...e,scroll:t})},It=()=>{U!==null&&(cancelAnimationFrame(U),U=null),Ft()},Lt=()=>{let e=J(window.history.state);e&&(W.set(e.id,Nt()),U===null&&(U=requestAnimationFrame(()=>{U=null;let e=J(window.history.state);if(!e)return;let t=W.get(e.id);t&&Y({...e,scroll:t})})))},Rt=e=>{requestAnimationFrame(()=>{window.scrollTo({left:e.window.x,top:e.window.y,behavior:`instant`}),document.querySelectorAll(Dt).forEach(t=>{let n=Mt(t),r=n?e.containers[n]:void 0;t.scrollTo({left:r?.x??0,top:r?.y??0,behavior:`instant`})})})},X=(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}}))},zt=e=>{for(K.set(e.requestId,e);K.size>Ot;){let e=K.keys().next().value;if(!e)break;K.delete(e)}},Bt=e=>{for(G.add(e);G.size>kt;){let e=G.values().next().value;if(!e)break;G.delete(e)}},Vt=()=>{B&&=(Bt(B.requestId),B.controller.abort(`Superseded by a newer Trellis navigation`),null)},Ht=()=>{Vt(),K.forEach(e=>Bt(e.requestId)),K.clear()},Z=e=>{window.location.assign(e.href)},Ut=e=>{let t=new URL(e,document.baseURI);return t.origin===window.location.origin?t:null},Wt=e=>{It();let t={id:q(),index:V+1,scroll:jt(),url:e.destination.href};return V=t.index,window.history.pushState(Pt(t),``,e.destination),e.entryId=t.id,t},Gt=e=>{let t={id:q(),index:V,scroll:jt(),url:e.destination.href};return Y(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`||Z(e.destination)},Jt=(e,t,n)=>{if(G.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};Y(t,e.destination),e.entryId=t.id}Rt(r.scroll),X(`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:q(),...n.requestOptions?{requestOptions:n.requestOptions}:{},...n.source?{source:n.source}:{}};if(n.preflight!==!1&&!X(`ui:navigate`,r,!0))return Promise.resolve();Ht(),B=r,X(`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 vt(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=Ut(s.navigation.url);return c?(r.destination=c,s.navigation.history!==`auto`&&(r.disposition=s.navigation.history),o()):(Z(new URL(s.navigation.url,document.baseURI)),{...s,type:`redirect`})};return o().then(e=>{B?.requestId!==r.requestId&&!K.has(r.requestId)||Jt(r,e,n.restoredState)}).catch(e=>{r.controller.signal.aborted||(u(`x-ui-request.navigate: restoration failed`,e),qt(r))}).finally(()=>{B?.requestId===r.requestId&&(B=null),G.has(r.requestId)||zt(r)})},Xt=()=>{let e=J(window.history.state);e?V=e.index:Y({id:q(),index:0,scroll:Nt(),url:window.location.href}),`scrollRestoration`in window.history&&(window.history.scrollRestoration=`manual`)},Zt=e=>{At||(At=!0,Xt(),we(e=>!e||!G.has(e)),Te((e,t)=>t.matches(`[data-ui-stream]`)&&!!(e&&(B?.requestId===e||K.has(e)))),Tt(t=>{if(!t.navigation)return!1;if(G.has(t.requestId)||B?.requestId===t.requestId)return!0;let n=Ut(t.navigation.url);return n?(Yt(e,n,{history:!1,disposition:t.navigation.history}),!0):(Z(new URL(t.navigation.url,document.baseURI)),!0)}),window.addEventListener(`scroll`,Lt,{passive:!0}),document.addEventListener(`scroll`,Lt,{capture:!0,passive:!0}),window.addEventListener(`pagehide`,It),window.addEventListener(`popstate`,t=>{if(H){H=!1;return}let n=J(t.state);if(!n){Z(new URL(window.location.href));return}let r=W.get(n.id),i=r?{...n,scroll:r}:n,a=Ut(n.url);if(!a||a.href!==window.location.href){Z(new URL(window.location.href));return}let o=V;if(V=n.index,!X(`ui:navigate`,{controller:new AbortController,destination:a,entryId:n.id,history:!0,disposition:`replace`,requestId:q()},!0)){H=!0,window.history.go(o-n.index),V=o;return}Yt(e,a,{history:!0,preflight:!1,restoredState:i})}))},Qt=(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},$t=!1,en=!1,$={},tn=null,nn=(e,t={})=>{let{history:n,navigate:r=!1,...i}=t;if(!r)return bt(e,i);if(!tn)throw Error(`Trellis UI runtime has not been registered with Alpine.`);let{source:a,...o}=i;return Qt(tn,e,a,{...o,...n?{history:n}:{}})},rn=(e,t)=>(n,r={})=>{let{navigate:i=!1,...a}=r;return i&&u(`$ui.${e}: navigate is only supported for GET requests`),t(n,a)},an={get:nn,post:rn(`post`,xt),put:rn(`put`,St),delete:rn(`delete`,Ct),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}},on=()=>{en||(en=!0,document.addEventListener(`ui:request:start`,()=>{Q.activeRequests+=1}),document.addEventListener(`ui:request:finish`,()=>{Q.activeRequests=Math.max(0,Q.activeRequests-1)}))},sn=e=>{tn=e,$t||=(Q=e.reactive(Q),!0),on(),e.magic(`ui`,()=>an)},cn=e=>{$.motion=e},ln=e=>{$.sortable=e};export{i as _,Qt as a,vt as c,ee as d,f,l as g,o as h,an as i,Ce as l,a as m,cn as n,Zt as o,u as p,ln as r,wt as s,sn as t,k as u};
4
+ //# sourceMappingURL=ui-egQWc4ws.js.map