@vireo-ai/trellis-ui 0.1.47 → 0.1.49
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.
- package/package.json +5 -5
- package/packages/client/src/components/checkbox/styles.css +5 -0
- package/packages/client/src/components/sidebar/styles.css +8 -0
- package/packages/client/src/styles/generated/theme-fonts.css +1 -1
- package/packages/client/src/styles/generated/theme-palette.css +1 -1
- package/packages/client/src/styles/generated/theme-runtime.css +49 -49
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/src/styles/recipes/selection.css +0 -4
- package/packages/client/types/component-api.d.ts +3 -1
- package/packages/client/types/components/data-grid/contract.d.ts +1 -0
- package/packages/client/types/components/data-grid/index.d.ts +28 -4
- package/packages/client/types/components/runtime.d.ts +1 -1
- package/packages/client/types/components/sidebar/machine.d.ts +3 -3
- package/packages/client/types/components/virtualizer/contract.d.ts +1 -29
- package/packages/client/types/components/virtualizer/cursor.d.ts +1 -0
- package/packages/client/types/components/virtualizer/index.d.ts +2 -28
- package/packages/client/types/motion/flip.d.ts +2 -2
- package/packages/client/types/runtime/cursor-data-source.d.ts +45 -0
- package/packages/client/types/runtime/focus-handoff.d.ts +11 -0
- package/packages/client/types/runtime/virtualizer-schema.d.ts +29 -0
- package/packages/client/types/runtime/virtualizer.d.ts +41 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +55 -54
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +332 -315
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DCacA4wj.js → capability-motion-DoZROkFD.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-DCacA4wj.js.map → capability-motion-DoZROkFD.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BoDF_wQX.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BoDF_wQX.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-BnB9Wz0E.js → capability-sortable-DtSghTO8.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-BnB9Wz0E.js.map → capability-sortable-DtSghTO8.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-BOf7dxV2.js → controller-qWtZCkAC.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-BOf7dxV2.js.map → controller-qWtZCkAC.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DBX5qDXb.js → core-BgbZXaDN.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DBX5qDXb.js.map → core-BgbZXaDN.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-1meMFJbq.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-1meMFJbq.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Dqyot6vM.js → entry.generated-B-wVMxe6.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Dqyot6vM.js.map → entry.generated-B-wVMxe6.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BdiyPh0p.js → entry.generated-BYDBzadH.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BdiyPh0p.js.map → entry.generated-BYDBzadH.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-F2czAXCg.js → entry.generated-B_q7LVNv.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-F2czAXCg.js.map → entry.generated-B_q7LVNv.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C0S3uZrm.js → entry.generated-BhtgeSTa.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C0S3uZrm.js.map → entry.generated-BhtgeSTa.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-By9j8PrV.js → entry.generated-CJuVLJw9.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-By9j8PrV.js.map → entry.generated-CJuVLJw9.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CQGhCt9y.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CQGhCt9y.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-EAAmcnsg.js → entry.generated-CRhvZ0DI.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-EAAmcnsg.js.map → entry.generated-CRhvZ0DI.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CZWpqP88.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CZWpqP88.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C5kjUnFe.js → entry.generated-CkBblBv9.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C5kjUnFe.js.map → entry.generated-CkBblBv9.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6qaa8bk.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6qaa8bk.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DeXEkXMW.js → entry.generated-Des-gEaR.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Des-gEaR.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BV49EHah.js → entry.generated-OqzkZfIu.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BV49EHah.js.map → entry.generated-OqzkZfIu.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ZcYuKSSI.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ZcYuKSSI.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dyQ_HJ8D.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dyQ_HJ8D.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DcXzHGIV.js → entry.generated-u0Ueamvw.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DcXzHGIV.js.map → entry.generated-u0Ueamvw.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CPbvsglm.js → entry2.generated-CPbvsglm.js} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CPbvsglm.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-DzEyK-Fp.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-DzEyK-Fp.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BQk-uLaI.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-DT-Hq9qe.js.map → motion-BQk-uLaI.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-DuGUQhxd.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-CfByjNaO.js.map → ui-DuGUQhxd.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +124 -118
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B8aXTJK6.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B8aXTJK6.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BEjAV5NT.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BEjAV5NT.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BUbxiHwA.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BUbxiHwA.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPbvsglm.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSgqcIg6.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSgqcIg6.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DeXEkXMW.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-a2NebZsn.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-a2NebZsn.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-DT-Hq9qe.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as e}from"./codecs-Cb1ns_47.js";import{r as t}from"./dom-qAeVl7dc.js";import{t as n}from"./alpine-machine-BS13dbK4.js";import{t as r}from"./alpine-data-CytyCyfk.js";import{t as i}from"./machine-Dqut4h89.js";var a={startUrl:e,completeUrl:e,purpose:e},o=[],s=(e,t)=>({status:e,uploadId:typeof t.event.uploadId==`string`?t.event.uploadId:t.context.uploadId,error:typeof t.event.error==`string`?t.event.error:``}),c=e=>t=>({context:s(e,t)}),l=({props:e,effects:t})=>i({initial:`idle`,states:{idle:{on:{START:{target:`starting`,reduce:`starting`,effects:`sync`}}},starting:{on:{TRANSFER:{target:`transferring`,reduce:`transferring`,effects:`sync`},FAIL:{target:`failed`,reduce:`failed`,effects:`sync`},CANCEL:{target:`canceled`,reduce:`canceled`,effects:`sync`}}},transferring:{on:{COMPLETE:{target:`completing`,reduce:`completing`,effects:`sync`},FAIL:{target:`failed`,reduce:`failed`,effects:`sync`},CANCEL:{target:`canceled`,reduce:`canceled`,effects:`sync`}}},completing:{on:{SUCCEED:{target:`complete`,reduce:`complete`,effects:`sync`},FAIL:{target:`failed`,reduce:`failed`,effects:`sync`},CANCEL:{target:`canceled`,reduce:`canceled`,effects:`sync`}}},complete:{on:{START:{target:`starting`,reduce:`starting`,effects:`sync`},CLEAR:{target:`idle`,reduce:`idle`,effects:`sync`}}},failed:{on:{START:{target:`starting`,reduce:`starting`,effects:`sync`},CLEAR:{target:`idle`,reduce:`idle`,effects:`sync`}}},canceled:{on:{START:{target:`starting`,reduce:`starting`,effects:`sync`},CLEAR:{target:`idle`,reduce:`idle`,effects:`sync`}}}}},{context:{status:`idle`,uploadId:``,error:``},props:e,reducers:{idle:c(`idle`),starting:c(`starting`),transferring:c(`transferring`),completing:c(`completing`),complete:c(`complete`),failed:c(`failed`),canceled:c(`canceled`)},effects:t}),u=()=>document.querySelector(`meta[name="csrf-token"]`)?.content??``,d=(e,t)=>{if(!e||typeof e!=`object`)return t;let n=Reflect.get(e,`errors`);if(!n||typeof n!=`object`)return t;let r=Object.values(n)[0];if(typeof r==`string`)return r;if(Array.isArray(r)&&r.length>0){let e=r[0];if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof Reflect.get(e,`message`)==`string`)return Reflect.get(e,`message`)}return t},f=async(e,t,n={})=>{let r=new FormData;Object.entries(t).forEach(([e,t])=>r.append(e,String(t)));let i=new Headers,a=u();a&&i.set(`X-CSRFToken`,a);let o=await fetch(e,{method:`POST`,body:r,headers:i,credentials:`same-origin`,...n.signal?{signal:n.signal}:{}}),s=await o.json().catch(()=>null);if(!o.ok)throw Error(d(s,`Upload request failed (${o.status}).`));if(s===null)throw Error(`Upload request returned no data.`);return s},p=(e,t,n={})=>new Promise((r,i)=>{let a=new XMLHttpRequest,o=new FormData;Object.entries(e.fields).forEach(([e,t])=>o.append(e,t));let s=new URL(e.url,document.baseURI);if(s.origin===window.location.origin){let e=u();if(e&&o.append(`csrfmiddlewaretoken`,e),!n.capability){i(Error(`A same-origin direct upload requires its upload capability.`));return}o.append(`capability`,n.capability)}o.append(e.file_field,t);let c=()=>n.signal?.removeEventListener(`abort`,l),l=()=>a.abort();if(a.upload.addEventListener(`progress`,e=>{e.lengthComputable&&n.onProgress?.(e.loaded,e.total)}),a.addEventListener(`load`,()=>{if(c(),a.status>=200&&a.status<300){r();return}let e=null;try{e=JSON.parse(a.responseText)}catch{}i(Error(d(e,`Object transfer failed (${a.status}).`)))}),a.addEventListener(`error`,()=>{c(),i(Error(`Object transfer failed.`))}),a.addEventListener(`abort`,()=>{c(),i(new DOMException(`Upload canceled.`,`AbortError`))}),n.signal?.addEventListener(`abort`,l,{once:!0}),n.signal?.aborted){l();return}a.open(e.method,s.toString()),a.send(o)}),m=()=>{let e=null,r=null,i=null,s=null,c=new Set,u=!1,d=new Map,m=()=>{if(!e)throw Error(`Direct upload has not been initialized.`);return e},h=()=>{let e=m().querySelector(`[data-ui-direct-upload-values]`);if(!e)throw Error(`Direct upload requires a hidden values container.`);return e},g=()=>{let e=h(),t=[...e.querySelectorAll(`[data-ui-direct-upload-value]`)].map(e=>e.value).filter(Boolean),n=[...d.values()];if(t.length===n.length&&t.every((e,t)=>e===n[t]))return!1;let r=[...d.entries()].map(([e,t])=>{let n=document.createElement(`input`);return n.type=`hidden`,n.name=m().dataset.name??``,n.value=t,n.dataset.uiDirectUploadValue=``,n.dataset.uploadKey=e,n});if(r.length===0){let e=document.createElement(`input`);e.type=`hidden`,e.name=m().dataset.name??``,e.dataset.uiDirectUploadValue=``,r.push(e)}e.replaceChildren(...r);let i=r[0];return i&&(i.dispatchEvent(new Event(`input`,{bubbles:!0})),i.dispatchEvent(new Event(`change`,{bubbles:!0}))),!0},_=()=>{m().querySelectorAll(`[data-ui-file-upload-item][data-existing-file]`).forEach(e=>{e.hidden=!0})},v=()=>{let e=b.getCommittedSnapshot();m().dataset.uploadState=e.context.status,e.context.error?m().dataset.uploadError=e.context.error:delete m().dataset.uploadError},y=()=>{r?.abort(),r=null,d.clear(),c.clear(),u=!1,_();let e=g();b.send(`CLEAR`),e&&t({el:m(),name:`ui:direct-upload-clear`})},b=n({schema:a,hooks:o,createMachine:({props:e})=>l({props:e,effects:{sync:v}})});return{...b,init(){e=this.$el,b.connect(e,this.snapshot),e.querySelectorAll(`[data-ui-direct-upload-value]`).forEach((e,t)=>{e.value&&d.set(e.dataset.uploadKey??`existing-${t}`,e.value)});let t=e=>{if(!(e instanceof CustomEvent))return;let t=e.detail,n=new Set((t?.files??[]).flatMap(({id:e})=>typeof e==`string`?[e]:[]));if(t?.source===`picker`||t?.source===`drop`){if(n.size===0){c.clear(),u=!1;return}let e=[...d.keys()].some(e=>e.startsWith(`existing-`));u=t.source===`picker`||Number(m().dataset.maxItems??`1`)===1||e,c=n,u&&_();return}[...c].filter(e=>!n.has(e)).forEach(e=>d.delete(e)),c=n,g(),d.size===0&&n.size===0&&b.send(`CLEAR`)};e.addEventListener(`ui:file-upload-change`,t),i=()=>e?.removeEventListener(`ui:file-upload-change`,t);let n=e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-ui-direct-upload-existing-remove]`);if(!n)return;e.preventDefault(),e.stopPropagation();let r=n.dataset.uploadKey;r&&d.delete(r);let i=n.closest(`[data-ui-file-upload-item]`);i&&(i.hidden=!0),g();let a=m().querySelector(`[data-ui-file-upload-root]`),o=!!a?.querySelector(`[data-ui-file-upload-item][data-existing-file]:not([hidden])`),s=!!a?.querySelector(`[data-ui-file-upload-pending]`),c=o||s;a?.toggleAttribute(`data-has-files`,c),a?.toggleAttribute(`data-empty`,!c);let l=a?.querySelector(`[data-ui-file-upload-empty]`);l&&(l.hidden=c),c||b.send(`CLEAR`)};e.addEventListener(`click`,n,!0),s=()=>e?.removeEventListener(`click`,n,!0),v()},destroy(){r?.abort(),r=null,i?.(),i=null,s?.(),s=null,d.clear(),c.clear(),u=!1,b.disconnect(),e=null},clear(){y()},async upload(e,n){let i=e.data.files;if(i.length===0)return;r?.abort();let a=new AbortController;r=a;let o=()=>a.abort();e.signal.addEventListener(`abort`,o,{once:!0});try{let r=b.getCommittedSnapshot().props,o=[];for(let t of i){let i=n(t.id);if(!i)throw Error(`The selected file is no longer available.`);b.send(`START`);let s=await f(r.startUrl,{purpose:r.purpose,original_name:i.name,content_type:i.type||`application/octet-stream`,size:i.size},{signal:a.signal});b.send({type:`TRANSFER`,uploadId:s.upload_id}),await p(s.instructions,i,{signal:a.signal,capability:s.capability,onProgress:(n,r)=>e.send.progress(t.id,n,r)}),b.send(`COMPLETE`);let c=await f(r.completeUrl,{capability:s.capability},{signal:a.signal});e.send.progress(t.id,t.bytes,t.bytes),b.send({type:`SUCCEED`,uploadId:c.upload_id}),o.push({recordId:t.id,capability:s.capability,completed:c})}u&&d.clear(),o.forEach(({recordId:e,capability:t})=>d.set(e,t)),u=!1,g(),t({el:m(),name:`ui:direct-upload-complete`,detail:{uploads:o.map(({completed:e})=>e)}})}catch(e){if(a.signal.aborted)b.send(`CANCEL`);else{let n=e instanceof Error?e.message:String(e);b.send({type:`FAIL`,error:n}),t({el:m(),name:`ui:direct-upload-error`,detail:{error:n}})}throw e}finally{e.signal.removeEventListener(`abort`,o),r===a&&(r=null)}}}},h=r(`UiDirectUpload`,m),g=new WeakSet,_=e=>{g.has(e)||(g.add(e),h(e))};export{m as n,_ as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-dyQ_HJ8D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.generated-dyQ_HJ8D.js","names":[],"sources":["../../../../../../../../client/src/components/direct-upload/contract.ts","../../../../../../../../client/src/components/direct-upload/machine.ts","../../../../../../../../client/src/components/direct-upload/transport.ts","../../../../../../../../client/src/components/direct-upload/index.ts","../../../../../../../../client/src/components/direct-upload/entry.generated.ts"],"sourcesContent":["import {string, type SchemaToProps} from '../../runtime';\n\nconst directUploadSchema = {\n startUrl: string,\n completeUrl: string,\n purpose: string,\n};\n\ntype DirectUploadProps = SchemaToProps<typeof directUploadSchema>;\n\nexport {directUploadSchema};\nexport type {DirectUploadProps};\n","import {createMachine, type Machine, type MachineScope} from '../../runtime/state-machine';\nimport type {DirectUploadProps} from './contract';\n\ntype DirectUploadStatus = 'idle' | 'starting' | 'transferring' | 'completing' | 'complete' | 'failed' | 'canceled';\ntype DirectUploadContext = {status: DirectUploadStatus; uploadId: string; error: string};\ntype DirectUploadEffects = {sync(scope: MachineScope<DirectUploadContext, DirectUploadProps>): void};\n\nconst directUploadHooks = [] as const;\nconst contextFor = (\n status: DirectUploadStatus,\n scope: MachineScope<DirectUploadContext, DirectUploadProps>,\n): DirectUploadContext => ({\n status,\n uploadId: typeof scope.event.uploadId === 'string' ? scope.event.uploadId : scope.context.uploadId,\n error: typeof scope.event.error === 'string' ? scope.event.error : '',\n});\nconst reducerFor = (status: DirectUploadStatus) => (\n scope: MachineScope<DirectUploadContext, DirectUploadProps>,\n) => ({context: contextFor(status, scope)});\n\nconst createDirectUploadMachine = ({\n props,\n effects,\n}: {\n props: DirectUploadProps;\n effects: DirectUploadEffects;\n}): Machine<DirectUploadContext, DirectUploadProps> => createMachine<DirectUploadContext, DirectUploadProps>({\n initial: 'idle',\n states: {\n idle: {on: {START: {target: 'starting', reduce: 'starting', effects: 'sync'}}},\n starting: {\n on: {\n TRANSFER: {target: 'transferring', reduce: 'transferring', effects: 'sync'},\n FAIL: {target: 'failed', reduce: 'failed', effects: 'sync'},\n CANCEL: {target: 'canceled', reduce: 'canceled', effects: 'sync'},\n },\n },\n transferring: {\n on: {\n COMPLETE: {target: 'completing', reduce: 'completing', effects: 'sync'},\n FAIL: {target: 'failed', reduce: 'failed', effects: 'sync'},\n CANCEL: {target: 'canceled', reduce: 'canceled', effects: 'sync'},\n },\n },\n completing: {\n on: {\n SUCCEED: {target: 'complete', reduce: 'complete', effects: 'sync'},\n FAIL: {target: 'failed', reduce: 'failed', effects: 'sync'},\n CANCEL: {target: 'canceled', reduce: 'canceled', effects: 'sync'},\n },\n },\n complete: {on: {START: {target: 'starting', reduce: 'starting', effects: 'sync'}, CLEAR: {target: 'idle', reduce: 'idle', effects: 'sync'}}},\n failed: {on: {START: {target: 'starting', reduce: 'starting', effects: 'sync'}, CLEAR: {target: 'idle', reduce: 'idle', effects: 'sync'}}},\n canceled: {on: {START: {target: 'starting', reduce: 'starting', effects: 'sync'}, CLEAR: {target: 'idle', reduce: 'idle', effects: 'sync'}}},\n },\n}, {\n context: {status: 'idle', uploadId: '', error: ''},\n props,\n reducers: {\n idle: reducerFor('idle'),\n starting: reducerFor('starting'),\n transferring: reducerFor('transferring'),\n completing: reducerFor('completing'),\n complete: reducerFor('complete'),\n failed: reducerFor('failed'),\n canceled: reducerFor('canceled'),\n },\n effects,\n});\n\nexport {createDirectUploadMachine, directUploadHooks};\nexport type {DirectUploadContext, DirectUploadEffects, DirectUploadStatus};\n","type DirectUploadInstructions = {\n transport: string;\n method: 'POST';\n url: string;\n fields: Record<string, string>;\n file_field: string;\n};\n\ntype TransferOptions = {\n signal?: AbortSignal;\n onProgress?: (loaded: number, total: number) => void;\n capability?: string;\n};\n\nconst csrfToken = (): string => document.querySelector<HTMLMetaElement>('meta[name=\"csrf-token\"]')?.content ?? '';\nconst errorMessage = (payload: unknown, fallback: string): string => {\n if (!payload || typeof payload !== 'object') return fallback;\n const errors = Reflect.get(payload, 'errors');\n if (!errors || typeof errors !== 'object') return fallback;\n const first = Object.values(errors)[0];\n if (typeof first === 'string') return first;\n if (Array.isArray(first) && first.length > 0) {\n const value = first[0];\n if (typeof value === 'string') return value;\n if (value && typeof value === 'object' && typeof Reflect.get(value, 'message') === 'string') {\n return Reflect.get(value, 'message') as string;\n }\n }\n return fallback;\n};\n\nconst postDirectUpload = async <T>(\n url: string,\n data: Record<string, string | number>,\n options: {signal?: AbortSignal} = {},\n): Promise<T> => {\n const body = new FormData();\n Object.entries(data).forEach(([key, value]) => body.append(key, String(value)));\n const headers = new Headers();\n const csrf = csrfToken();\n if (csrf) headers.set('X-CSRFToken', csrf);\n const response = await fetch(url, {\n method: 'POST',\n body,\n headers,\n credentials: 'same-origin',\n ...(options.signal ? {signal: options.signal} : {}),\n });\n const payload = await response.json().catch(() => null) as T | null;\n if (!response.ok) throw new Error(errorMessage(payload, `Upload request failed (${response.status}).`));\n if (payload === null) throw new Error('Upload request returned no data.');\n return payload;\n};\n\nconst transferDirectUpload = (\n instructions: DirectUploadInstructions,\n file: File,\n options: TransferOptions = {},\n): Promise<void> => new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n const body = new FormData();\n Object.entries(instructions.fields).forEach(([key, value]) => body.append(key, value));\n const target = new URL(instructions.url, document.baseURI);\n const sameOrigin = target.origin === window.location.origin;\n if (sameOrigin) {\n const csrf = csrfToken();\n if (csrf) body.append('csrfmiddlewaretoken', csrf);\n if (!options.capability) {\n reject(new Error('A same-origin direct upload requires its upload capability.'));\n return;\n }\n body.append('capability', options.capability);\n }\n body.append(instructions.file_field, file);\n\n const cleanup = (): void => options.signal?.removeEventListener('abort', abort);\n const abort = (): void => request.abort();\n request.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) options.onProgress?.(event.loaded, event.total);\n });\n request.addEventListener('load', () => {\n cleanup();\n if (request.status >= 200 && request.status < 300) {\n resolve();\n return;\n }\n let payload: unknown = null;\n try { payload = JSON.parse(request.responseText); } catch { /* response may be XML or empty */ }\n reject(new Error(errorMessage(payload, `Object transfer failed (${request.status}).`)));\n });\n request.addEventListener('error', () => { cleanup(); reject(new Error('Object transfer failed.')); });\n request.addEventListener('abort', () => { cleanup(); reject(new DOMException('Upload canceled.', 'AbortError')); });\n options.signal?.addEventListener('abort', abort, {once: true});\n if (options.signal?.aborted) {\n abort();\n return;\n }\n request.open(instructions.method, target.toString());\n request.send(body);\n});\n\nexport {postDirectUpload, transferDirectUpload};\nexport type {DirectUploadInstructions, TransferOptions};\n","import type Alpine from 'alpinejs';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n dispatch,\n type AlpineMachine,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport type {FileUploadTransition} from '../file-upload';\nimport {directUploadSchema, type DirectUploadProps} from './contract';\nimport {\n createDirectUploadMachine,\n directUploadHooks,\n type DirectUploadContext,\n} from './machine';\nimport {\n postDirectUpload,\n transferDirectUpload,\n type DirectUploadInstructions,\n} from './transport';\n\ntype ResolveFile = (id: string) => File | null;\ntype StartResponse = {upload_id: string; capability: string; instructions: DirectUploadInstructions};\ntype CompleteResponse = {upload_id: string; key: string};\n\ninterface UiDirectUploadApi {\n clear(): void;\n upload(transition: FileUploadTransition<'uploading'>, resolveFile: ResolveFile): Promise<void>;\n}\n\ntype DirectUploadData = AlpineMachine<DirectUploadContext, DirectUploadProps, typeof directUploadHooks>\n & UiDirectUploadApi\n & {init(): void; destroy(): void};\n\nconst UiDirectUpload = (): TrellisAlpineComponent<DirectUploadData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let activeController: AbortController | null = null;\n let disconnectFileUpload: (() => void) | null = null;\n let disconnectExistingItems: (() => void) | null = null;\n let selectedFileIds = new Set<string>();\n let replaceOnCommit = false;\n const capabilities = new Map<string, string>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Direct upload has not been initialized.');\n return rootEl;\n };\n const valuesRoot = (): HTMLElement => {\n const container = root().querySelector<HTMLElement>('[data-ui-direct-upload-values]');\n if (!container) throw new Error('Direct upload requires a hidden values container.');\n return container;\n };\n const syncValues = (): boolean => {\n const container = valuesRoot();\n const current = [...container.querySelectorAll<HTMLInputElement>('[data-ui-direct-upload-value]')]\n .map((input) => input.value)\n .filter(Boolean);\n const next = [...capabilities.values()];\n if (current.length === next.length && current.every((value, index) => value === next[index])) return false;\n const inputs = [...capabilities.entries()].map(([key, capability]) => {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = root().dataset.name ?? '';\n input.value = capability;\n input.dataset.uiDirectUploadValue = '';\n input.dataset.uploadKey = key;\n return input;\n });\n if (inputs.length === 0) {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = root().dataset.name ?? '';\n input.dataset.uiDirectUploadValue = '';\n inputs.push(input);\n }\n container.replaceChildren(...inputs);\n const changed = inputs[0];\n if (changed) {\n changed.dispatchEvent(new Event('input', {bubbles: true}));\n changed.dispatchEvent(new Event('change', {bubbles: true}));\n }\n return true;\n };\n const hideExistingItems = (): void => {\n root().querySelectorAll<HTMLElement>('[data-ui-file-upload-item][data-existing-file]')\n .forEach((item) => { item.hidden = true; });\n };\n const syncDom = (): void => {\n const snapshot = bridge.getCommittedSnapshot();\n root().dataset.uploadState = snapshot.context.status;\n if (snapshot.context.error) root().dataset.uploadError = snapshot.context.error;\n else delete root().dataset.uploadError;\n };\n const clearUpload = (): void => {\n activeController?.abort();\n activeController = null;\n capabilities.clear();\n selectedFileIds.clear();\n replaceOnCommit = false;\n hideExistingItems();\n const changed = syncValues();\n bridge.send('CLEAR');\n if (changed) dispatch({el: root(), name: 'ui:direct-upload-clear'});\n };\n const bridge = createAlpineMachine({\n schema: directUploadSchema,\n hooks: directUploadHooks,\n createMachine: ({props}) => createDirectUploadMachine({props, effects: {sync: syncDom}}),\n });\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n rootEl.querySelectorAll<HTMLInputElement>('[data-ui-direct-upload-value]')\n .forEach((input, index) => {\n if (input.value) capabilities.set(input.dataset.uploadKey ?? `existing-${index}`, input.value);\n });\n const handleFileChange = (event: Event): void => {\n if (!(event instanceof CustomEvent)) return;\n const detail = event.detail as {files?: Array<{id?: unknown}>; source?: unknown} | undefined;\n const fileIds = new Set(\n (detail?.files ?? []).flatMap(({id}) => typeof id === 'string' ? [id] : []),\n );\n if (detail?.source === 'picker' || detail?.source === 'drop') {\n if (fileIds.size === 0) {\n selectedFileIds.clear();\n replaceOnCommit = false;\n return;\n }\n const replacesExisting = [...capabilities.keys()].some((key) => key.startsWith('existing-'));\n replaceOnCommit = detail.source === 'picker'\n || Number(root().dataset.maxItems ?? '1') === 1\n || replacesExisting;\n selectedFileIds = fileIds;\n if (replaceOnCommit) hideExistingItems();\n return;\n }\n const removedIds = [...selectedFileIds].filter((id) => !fileIds.has(id));\n removedIds.forEach((id) => capabilities.delete(id));\n selectedFileIds = fileIds;\n syncValues();\n if (capabilities.size === 0 && fileIds.size === 0) bridge.send('CLEAR');\n };\n rootEl.addEventListener('ui:file-upload-change', handleFileChange);\n disconnectFileUpload = () => rootEl?.removeEventListener('ui:file-upload-change', handleFileChange);\n const handleExistingRemove = (event: Event): void => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n const remove = target.closest<HTMLElement>('[data-ui-direct-upload-existing-remove]');\n if (!remove) return;\n event.preventDefault();\n event.stopPropagation();\n const key = remove.dataset.uploadKey;\n if (key) capabilities.delete(key);\n const item = remove.closest<HTMLElement>('[data-ui-file-upload-item]');\n if (item) item.hidden = true;\n syncValues();\n const fileUpload = root().querySelector<HTMLElement>('[data-ui-file-upload-root]');\n const hasVisibleExisting = Boolean(\n fileUpload?.querySelector('[data-ui-file-upload-item][data-existing-file]:not([hidden])'),\n );\n const hasPending = Boolean(fileUpload?.querySelector('[data-ui-file-upload-pending]'));\n const hasFiles = hasVisibleExisting || hasPending;\n fileUpload?.toggleAttribute('data-has-files', hasFiles);\n fileUpload?.toggleAttribute('data-empty', !hasFiles);\n const empty = fileUpload?.querySelector<HTMLElement>('[data-ui-file-upload-empty]');\n if (empty) empty.hidden = hasFiles;\n if (!hasFiles) bridge.send('CLEAR');\n };\n rootEl.addEventListener('click', handleExistingRemove, true);\n disconnectExistingItems = () => rootEl?.removeEventListener('click', handleExistingRemove, true);\n syncDom();\n },\n destroy(): void {\n activeController?.abort();\n activeController = null;\n disconnectFileUpload?.();\n disconnectFileUpload = null;\n disconnectExistingItems?.();\n disconnectExistingItems = null;\n capabilities.clear();\n selectedFileIds.clear();\n replaceOnCommit = false;\n bridge.disconnect();\n rootEl = null;\n },\n clear(): void {\n clearUpload();\n },\n async upload(transition, resolveFile): Promise<void> {\n const records = transition.data.files;\n if (records.length === 0) return;\n\n activeController?.abort();\n const controller = new AbortController();\n activeController = controller;\n const cancel = (): void => controller.abort();\n transition.signal.addEventListener('abort', cancel, {once: true});\n try {\n const props = bridge.getCommittedSnapshot().props;\n const completedBatch: Array<{recordId: string; capability: string; completed: CompleteResponse}> = [];\n for (const record of records) {\n const file = resolveFile(record.id);\n if (!file) throw new Error('The selected file is no longer available.');\n bridge.send('START');\n const started = await postDirectUpload<StartResponse>(props.startUrl, {\n purpose: props.purpose,\n original_name: file.name,\n content_type: file.type || 'application/octet-stream',\n size: file.size,\n }, {signal: controller.signal});\n bridge.send({type: 'TRANSFER', uploadId: started.upload_id});\n await transferDirectUpload(started.instructions, file, {\n signal: controller.signal,\n capability: started.capability,\n onProgress: (loaded, total) => transition.send.progress(record.id, loaded, total),\n });\n bridge.send('COMPLETE');\n const completed = await postDirectUpload<CompleteResponse>(props.completeUrl, {\n capability: started.capability,\n }, {signal: controller.signal});\n transition.send.progress(record.id, record.bytes, record.bytes);\n bridge.send({type: 'SUCCEED', uploadId: completed.upload_id});\n completedBatch.push({recordId: record.id, capability: started.capability, completed});\n }\n if (replaceOnCommit) capabilities.clear();\n completedBatch.forEach(({recordId, capability}) => capabilities.set(recordId, capability));\n replaceOnCommit = false;\n syncValues();\n dispatch({\n el: root(),\n name: 'ui:direct-upload-complete',\n detail: {uploads: completedBatch.map(({completed}) => completed)},\n });\n } catch (error) {\n if (controller.signal.aborted) {\n bridge.send('CANCEL');\n } else {\n const reason = error instanceof Error ? error.message : String(error);\n bridge.send({type: 'FAIL', error: reason});\n dispatch({el: root(), name: 'ui:direct-upload-error', detail: {error: reason}});\n }\n throw error;\n } finally {\n transition.signal.removeEventListener('abort', cancel);\n if (activeController === controller) activeController = null;\n }\n },\n };\n};\n\nconst registerDirectUpload = defineAlpineData('UiDirectUpload', UiDirectUpload);\n\nexport {registerDirectUpload, UiDirectUpload};\nexport type {DirectUploadData, UiDirectUploadApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerDirectUpload as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerDirectUpload = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerDirectUpload};\nexport default registerDirectUpload;\nexport * from './index';\n"],"mappings":"wNAEA,IAAM,EAAqB,CACvB,SAAU,EACV,YAAa,EACb,QAAS,CACb,ECCM,EAAoB,CAAC,EACrB,GACF,EACA,KACuB,CACvB,SACA,SAAU,OAAO,EAAM,MAAM,UAAa,SAAW,EAAM,MAAM,SAAW,EAAM,QAAQ,SAC1F,MAAO,OAAO,EAAM,MAAM,OAAU,SAAW,EAAM,MAAM,MAAQ,EACvE,GACM,EAAc,GAChB,IACE,CAAC,QAAS,EAAW,EAAQ,CAAK,CAAC,GAEnC,GAA6B,CAC/B,QACA,aAImD,EAAsD,CACzG,QAAS,OACT,OAAQ,CACJ,KAAM,CAAC,GAAI,CAAC,MAAO,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,CAAC,CAAC,EAC7E,SAAU,CACN,GAAI,CACA,SAAU,CAAC,OAAQ,eAAgB,OAAQ,eAAgB,QAAS,MAAM,EAC1E,KAAM,CAAC,OAAQ,SAAU,OAAQ,SAAU,QAAS,MAAM,EAC1D,OAAQ,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,CACpE,CACJ,EACA,aAAc,CACV,GAAI,CACA,SAAU,CAAC,OAAQ,aAAc,OAAQ,aAAc,QAAS,MAAM,EACtE,KAAM,CAAC,OAAQ,SAAU,OAAQ,SAAU,QAAS,MAAM,EAC1D,OAAQ,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,CACpE,CACJ,EACA,WAAY,CACR,GAAI,CACA,QAAS,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,EACjE,KAAM,CAAC,OAAQ,SAAU,OAAQ,SAAU,QAAS,MAAM,EAC1D,OAAQ,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,CACpE,CACJ,EACA,SAAU,CAAC,GAAI,CAAC,MAAO,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,EAAG,MAAO,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,MAAM,CAAC,CAAC,EAC3I,OAAQ,CAAC,GAAI,CAAC,MAAO,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,EAAG,MAAO,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,MAAM,CAAC,CAAC,EACzI,SAAU,CAAC,GAAI,CAAC,MAAO,CAAC,OAAQ,WAAY,OAAQ,WAAY,QAAS,MAAM,EAAG,MAAO,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,MAAM,CAAC,CAAC,CAC/I,CACJ,EAAG,CACC,QAAS,CAAC,OAAQ,OAAQ,SAAU,GAAI,MAAO,EAAE,EACjD,QACA,SAAU,CACN,KAAM,EAAW,MAAM,EACvB,SAAU,EAAW,UAAU,EAC/B,aAAc,EAAW,cAAc,EACvC,WAAY,EAAW,YAAY,EACnC,SAAU,EAAW,UAAU,EAC/B,OAAQ,EAAW,QAAQ,EAC3B,SAAU,EAAW,UAAU,CACnC,EACA,SACJ,CAAC,ECtDK,MAA0B,SAAS,cAA+B,yBAAyB,GAAG,SAAW,GACzG,GAAgB,EAAkB,IAA6B,CACjE,GAAI,CAAC,GAAW,OAAO,GAAY,SAAU,OAAO,EACpD,IAAM,EAAS,QAAQ,IAAI,EAAS,QAAQ,EAC5C,GAAI,CAAC,GAAU,OAAO,GAAW,SAAU,OAAO,EAClD,IAAM,EAAQ,OAAO,OAAO,CAAM,EAAE,GACpC,GAAI,OAAO,GAAU,SAAU,OAAO,EACtC,GAAI,MAAM,QAAQ,CAAK,GAAK,EAAM,OAAS,EAAG,CAC1C,IAAM,EAAQ,EAAM,GACpB,GAAI,OAAO,GAAU,SAAU,OAAO,EACtC,GAAI,GAAS,OAAO,GAAU,UAAY,OAAO,QAAQ,IAAI,EAAO,SAAS,GAAM,SAC/E,OAAO,QAAQ,IAAI,EAAO,SAAS,CAE3C,CACA,OAAO,CACX,EAEM,EAAmB,MACrB,EACA,EACA,EAAkC,CAAC,IACtB,CACb,IAAM,EAAO,IAAI,SACjB,OAAO,QAAQ,CAAI,EAAE,SAAS,CAAC,EAAK,KAAW,EAAK,OAAO,EAAK,OAAO,CAAK,CAAC,CAAC,EAC9E,IAAM,EAAU,IAAI,QACd,EAAO,EAAU,EACnB,GAAM,EAAQ,IAAI,cAAe,CAAI,EACzC,IAAM,EAAW,MAAM,MAAM,EAAK,CAC9B,OAAQ,OACR,OACA,UACA,YAAa,cACb,GAAI,EAAQ,OAAS,CAAC,OAAQ,EAAQ,MAAM,EAAI,CAAC,CACrD,CAAC,EACK,EAAU,MAAM,EAAS,KAAK,EAAE,UAAY,IAAI,EACtD,GAAI,CAAC,EAAS,GAAI,MAAU,MAAM,EAAa,EAAS,0BAA0B,EAAS,OAAO,GAAG,CAAC,EACtG,GAAI,IAAY,KAAM,MAAU,MAAM,kCAAkC,EACxE,OAAO,CACX,EAEM,GACF,EACA,EACA,EAA2B,CAAC,IACZ,IAAI,SAAS,EAAS,IAAW,CACjD,IAAM,EAAU,IAAI,eACd,EAAO,IAAI,SACjB,OAAO,QAAQ,EAAa,MAAM,EAAE,SAAS,CAAC,EAAK,KAAW,EAAK,OAAO,EAAK,CAAK,CAAC,EACrF,IAAM,EAAS,IAAI,IAAI,EAAa,IAAK,SAAS,OAAO,EAEzD,GADmB,EAAO,SAAW,OAAO,SAAS,OACrC,CACZ,IAAM,EAAO,EAAU,EAEvB,GADI,GAAM,EAAK,OAAO,sBAAuB,CAAI,EAC7C,CAAC,EAAQ,WAAY,CACrB,EAAW,MAAM,6DAA6D,CAAC,EAC/E,MACJ,CACA,EAAK,OAAO,aAAc,EAAQ,UAAU,CAChD,CACA,EAAK,OAAO,EAAa,WAAY,CAAI,EAEzC,IAAM,MAAsB,EAAQ,QAAQ,oBAAoB,QAAS,CAAK,EACxE,MAAoB,EAAQ,MAAM,EAiBxC,GAhBA,EAAQ,OAAO,iBAAiB,WAAa,GAAU,CAC/C,EAAM,kBAAkB,EAAQ,aAAa,EAAM,OAAQ,EAAM,KAAK,CAC9E,CAAC,EACD,EAAQ,iBAAiB,WAAc,CAEnC,GADA,EAAQ,EACJ,EAAQ,QAAU,KAAO,EAAQ,OAAS,IAAK,CAC/C,EAAQ,EACR,MACJ,CACA,IAAI,EAAmB,KACvB,GAAI,CAAE,EAAU,KAAK,MAAM,EAAQ,YAAY,CAAG,MAAQ,CAAqC,CAC/F,EAAW,MAAM,EAAa,EAAS,2BAA2B,EAAQ,OAAO,GAAG,CAAC,CAAC,CAC1F,CAAC,EACD,EAAQ,iBAAiB,YAAe,CAAE,EAAQ,EAAG,EAAW,MAAM,yBAAyB,CAAC,CAAG,CAAC,EACpG,EAAQ,iBAAiB,YAAe,CAAE,EAAQ,EAAG,EAAO,IAAI,aAAa,mBAAoB,YAAY,CAAC,CAAG,CAAC,EAClH,EAAQ,QAAQ,iBAAiB,QAAS,EAAO,CAAC,KAAM,EAAI,CAAC,EACzD,EAAQ,QAAQ,QAAS,CACzB,EAAM,EACN,MACJ,CACA,EAAQ,KAAK,EAAa,OAAQ,EAAO,SAAS,CAAC,EACnD,EAAQ,KAAK,CAAI,CACrB,CAAC,EChEK,MAAiE,CACnE,IAAI,EAA+D,KAC/D,EAA2C,KAC3C,EAA4C,KAC5C,EAA+C,KAC/C,EAAkB,IAAI,IACtB,EAAkB,GAChB,EAAe,IAAI,IAEnB,MAA0B,CAC5B,GAAI,CAAC,EAAQ,MAAU,MAAM,yCAAyC,EACtE,OAAO,CACX,EACM,MAAgC,CAClC,IAAM,EAAY,EAAK,EAAE,cAA2B,gCAAgC,EACpF,GAAI,CAAC,EAAW,MAAU,MAAM,mDAAmD,EACnF,OAAO,CACX,EACM,MAA4B,CAC9B,IAAM,EAAY,EAAW,EACvB,EAAU,CAAC,GAAG,EAAU,iBAAmC,+BAA+B,CAAC,EAC5F,IAAK,GAAU,EAAM,KAAK,EAC1B,OAAO,OAAO,EACb,EAAO,CAAC,GAAG,EAAa,OAAO,CAAC,EACtC,GAAI,EAAQ,SAAW,EAAK,QAAU,EAAQ,OAAO,EAAO,IAAU,IAAU,EAAK,EAAM,EAAG,MAAO,GACrG,IAAM,EAAS,CAAC,GAAG,EAAa,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAK,KAAgB,CAClE,IAAM,EAAQ,SAAS,cAAc,OAAO,EAM5C,MALA,GAAM,KAAO,SACb,EAAM,KAAO,EAAK,EAAE,QAAQ,MAAQ,GACpC,EAAM,MAAQ,EACd,EAAM,QAAQ,oBAAsB,GACpC,EAAM,QAAQ,UAAY,EACnB,CACX,CAAC,EACD,GAAI,EAAO,SAAW,EAAG,CACrB,IAAM,EAAQ,SAAS,cAAc,OAAO,EAC5C,EAAM,KAAO,SACb,EAAM,KAAO,EAAK,EAAE,QAAQ,MAAQ,GACpC,EAAM,QAAQ,oBAAsB,GACpC,EAAO,KAAK,CAAK,CACrB,CACA,EAAU,gBAAgB,GAAG,CAAM,EACnC,IAAM,EAAU,EAAO,GAKvB,OAJI,IACA,EAAQ,cAAc,IAAI,MAAM,QAAS,CAAC,QAAS,EAAI,CAAC,CAAC,EACzD,EAAQ,cAAc,IAAI,MAAM,SAAU,CAAC,QAAS,EAAI,CAAC,CAAC,GAEvD,EACX,EACM,MAAgC,CAClC,EAAK,EAAE,iBAA8B,gDAAgD,EAChF,QAAS,GAAS,CAAE,EAAK,OAAS,EAAM,CAAC,CAClD,EACM,MAAsB,CACxB,IAAM,EAAW,EAAO,qBAAqB,EAC7C,EAAK,EAAE,QAAQ,YAAc,EAAS,QAAQ,OAC1C,EAAS,QAAQ,MAAO,EAAK,EAAE,QAAQ,YAAc,EAAS,QAAQ,MACrE,OAAO,EAAK,EAAE,QAAQ,WAC/B,EACM,MAA0B,CAC5B,GAAkB,MAAM,EACxB,EAAmB,KACnB,EAAa,MAAM,EACnB,EAAgB,MAAM,EACtB,EAAkB,GAClB,EAAkB,EAClB,IAAM,EAAU,EAAW,EAC3B,EAAO,KAAK,OAAO,EACf,GAAS,EAAS,CAAC,GAAI,EAAK,EAAG,KAAM,wBAAwB,CAAC,CACtE,EACM,EAAS,EAAoB,CAC/B,OAAQ,EACR,MAAO,EACP,eAAgB,CAAC,WAAW,EAA0B,CAAC,QAAO,QAAS,CAAC,KAAM,CAAO,CAAC,CAAC,CAC3F,CAAC,EAED,MAAO,CACH,GAAG,EACH,MAAa,CACT,EAAS,KAAK,IACd,EAAO,QAAQ,EAAQ,KAAK,QAAQ,EACpC,EAAO,iBAAmC,+BAA+B,EACpE,SAAS,EAAO,IAAU,CACnB,EAAM,OAAO,EAAa,IAAI,EAAM,QAAQ,WAAa,YAAY,IAAS,EAAM,KAAK,CACjG,CAAC,EACL,IAAM,EAAoB,GAAuB,CAC7C,GAAI,EAAE,aAAiB,aAAc,OACrC,IAAM,EAAS,EAAM,OACf,EAAU,IAAI,KACf,GAAQ,OAAS,CAAC,GAAG,SAAS,CAAC,QAAQ,OAAO,GAAO,SAAW,CAAC,CAAE,EAAI,CAAC,CAAC,CAC9E,EACA,GAAI,GAAQ,SAAW,UAAY,GAAQ,SAAW,OAAQ,CAC1D,GAAI,EAAQ,OAAS,EAAG,CACpB,EAAgB,MAAM,EACtB,EAAkB,GAClB,MACJ,CACA,IAAM,EAAmB,CAAC,GAAG,EAAa,KAAK,CAAC,EAAE,KAAM,GAAQ,EAAI,WAAW,WAAW,CAAC,EAC3F,EAAkB,EAAO,SAAW,UAC7B,OAAO,EAAK,EAAE,QAAQ,UAAY,GAAG,IAAM,GAC3C,EACP,EAAkB,EACd,GAAiB,EAAkB,EACvC,MACJ,CAEA,CADoB,GAAG,CAAe,EAAE,OAAQ,GAAO,CAAC,EAAQ,IAAI,CAAE,CACtE,EAAW,QAAS,GAAO,EAAa,OAAO,CAAE,CAAC,EAClD,EAAkB,EAClB,EAAW,EACP,EAAa,OAAS,GAAK,EAAQ,OAAS,GAAG,EAAO,KAAK,OAAO,CAC1E,EACA,EAAO,iBAAiB,wBAAyB,CAAgB,EACjE,MAA6B,GAAQ,oBAAoB,wBAAyB,CAAgB,EAClG,IAAM,EAAwB,GAAuB,CACjD,IAAM,EAAS,EAAM,OACrB,GAAI,EAAE,aAAkB,SAAU,OAClC,IAAM,EAAS,EAAO,QAAqB,yCAAyC,EACpF,GAAI,CAAC,EAAQ,OACb,EAAM,eAAe,EACrB,EAAM,gBAAgB,EACtB,IAAM,EAAM,EAAO,QAAQ,UACvB,GAAK,EAAa,OAAO,CAAG,EAChC,IAAM,EAAO,EAAO,QAAqB,4BAA4B,EACjE,IAAM,EAAK,OAAS,IACxB,EAAW,EACX,IAAM,EAAa,EAAK,EAAE,cAA2B,4BAA4B,EAC3E,EAAqB,EACvB,GAAY,cAAc,8DAA8D,EAEtF,EAAa,EAAQ,GAAY,cAAc,+BAA+B,EAC9E,EAAW,GAAsB,EACvC,GAAY,gBAAgB,iBAAkB,CAAQ,EACtD,GAAY,gBAAgB,aAAc,CAAC,CAAQ,EACnD,IAAM,EAAQ,GAAY,cAA2B,6BAA6B,EAC9E,IAAO,EAAM,OAAS,GACrB,GAAU,EAAO,KAAK,OAAO,CACtC,EACA,EAAO,iBAAiB,QAAS,EAAsB,EAAI,EAC3D,MAAgC,GAAQ,oBAAoB,QAAS,EAAsB,EAAI,EAC/F,EAAQ,CACZ,EACA,SAAgB,CACZ,GAAkB,MAAM,EACxB,EAAmB,KACnB,IAAuB,EACvB,EAAuB,KACvB,IAA0B,EAC1B,EAA0B,KAC1B,EAAa,MAAM,EACnB,EAAgB,MAAM,EACtB,EAAkB,GAClB,EAAO,WAAW,EAClB,EAAS,IACb,EACA,OAAc,CACV,EAAY,CAChB,EACA,MAAM,OAAO,EAAY,EAA4B,CACjD,IAAM,EAAU,EAAW,KAAK,MAChC,GAAI,EAAQ,SAAW,EAAG,OAE1B,GAAkB,MAAM,EACxB,IAAM,EAAa,IAAI,gBACvB,EAAmB,EACnB,IAAM,MAAqB,EAAW,MAAM,EAC5C,EAAW,OAAO,iBAAiB,QAAS,EAAQ,CAAC,KAAM,EAAI,CAAC,EAChE,GAAI,CACA,IAAM,EAAQ,EAAO,qBAAqB,EAAE,MACtC,EAA6F,CAAC,EACpG,IAAK,IAAM,KAAU,EAAS,CAC1B,IAAM,EAAO,EAAY,EAAO,EAAE,EAClC,GAAI,CAAC,EAAM,MAAU,MAAM,2CAA2C,EACtE,EAAO,KAAK,OAAO,EACnB,IAAM,EAAU,MAAM,EAAgC,EAAM,SAAU,CAClE,QAAS,EAAM,QACf,cAAe,EAAK,KACpB,aAAc,EAAK,MAAQ,2BAC3B,KAAM,EAAK,IACf,EAAG,CAAC,OAAQ,EAAW,MAAM,CAAC,EAC9B,EAAO,KAAK,CAAC,KAAM,WAAY,SAAU,EAAQ,SAAS,CAAC,EAC3D,MAAM,EAAqB,EAAQ,aAAc,EAAM,CACnD,OAAQ,EAAW,OACnB,WAAY,EAAQ,WACpB,YAAa,EAAQ,IAAU,EAAW,KAAK,SAAS,EAAO,GAAI,EAAQ,CAAK,CACpF,CAAC,EACD,EAAO,KAAK,UAAU,EACtB,IAAM,EAAY,MAAM,EAAmC,EAAM,YAAa,CAC1E,WAAY,EAAQ,UACxB,EAAG,CAAC,OAAQ,EAAW,MAAM,CAAC,EAC9B,EAAW,KAAK,SAAS,EAAO,GAAI,EAAO,MAAO,EAAO,KAAK,EAC9D,EAAO,KAAK,CAAC,KAAM,UAAW,SAAU,EAAU,SAAS,CAAC,EAC5D,EAAe,KAAK,CAAC,SAAU,EAAO,GAAI,WAAY,EAAQ,WAAY,WAAS,CAAC,CACxF,CACI,GAAiB,EAAa,MAAM,EACxC,EAAe,SAAS,CAAC,WAAU,gBAAgB,EAAa,IAAI,EAAU,CAAU,CAAC,EACzF,EAAkB,GAClB,EAAW,EACX,EAAS,CACL,GAAI,EAAK,EACT,KAAM,4BACN,OAAQ,CAAC,QAAS,EAAe,KAAK,CAAC,eAAe,CAAS,CAAC,CACpE,CAAC,CACL,OAAS,EAAO,CACZ,GAAI,EAAW,OAAO,QAClB,EAAO,KAAK,QAAQ,MACjB,CACH,IAAM,EAAS,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACpE,EAAO,KAAK,CAAC,KAAM,OAAQ,MAAO,CAAM,CAAC,EACzC,EAAS,CAAC,GAAI,EAAK,EAAG,KAAM,yBAA0B,OAAQ,CAAC,MAAO,CAAM,CAAC,CAAC,CAClF,CACA,MAAM,CACV,QAAU,CACN,EAAW,OAAO,oBAAoB,QAAS,CAAM,EACjD,IAAqB,IAAY,EAAmB,KAC5D,CACJ,CACJ,CACJ,EAEM,EAAuB,EAAiB,iBAAkB,CAAc,ECxPxE,EAAa,IAAI,QAEjB,EAAwB,GAAqC,CAC3D,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAE7B,EAAkB,CAAc,EACpC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as e,g as t,l as n,m as r,p as i,s as a,u as o}from"./motion-DT-Hq9qe.js";import{t as s}from"./capability-motion-DCacA4wj.js";import{c,f as l,l as u,n as d,o as f}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as g}from"./alpine-machine-BS13dbK4.js";import{t as _}from"./alpine-data-CytyCyfk.js";import{n as v,t as y}from"./styles-TfvwVPGw.js";import{t as b}from"./machine-Dqut4h89.js";var x={x:!1,y:!1};function S(){return x.x||x.y}function C(e,t){let n=i(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function w(e){return!(e.pointerType===`touch`||S())}function T(e,t,n={}){let[r,i,a]=C(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!w(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var E=[`info`,`success`,`warning`,`danger`,`debug`],D=[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`],O=[`default`,`soft`,`surface`,`solid`,`outline`],k=[`top-right`,`top-left`,`top-center`,`bottom-right`,`bottom-left`,`bottom-center`],A={level:u(E,`info`),color:u(D,`auto`),variant:u(O,`default`),title:l,description:l,duration:c.default(5e3).min(0),dismissible:d.default(!0),class:l,contentClass:l,closeClass:l},j={id:l.default(`ui-toast-root`),position:u(k,`top-right`),duration:c.default(5e3).min(0),includeMessages:d.default(!0),maxItems:c.default(3).min(0),class:l},M=[h({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:({context:e})=>({reason:e.dismissal.reason}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],N=(e,t)=>b({initial:`idle`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}},states:{idle:{on:{OPEN:{target:`opening`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],OPENING_ERROR:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}}},open:{id:`open`,initial:`running`,tags:[`visible`,`expanded`,`open`],on:{DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}},states:{persistent:{on:{PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DURATION_CHANGED:{target:`running`,guard:`hasDuration`,reduce:`resetDuration`}}},running:{entry:`startTimer`,exit:`stopTimer`,on:{PAUSE:{target:`paused`,reduce:`pause`},TICK:{reduce:`tick`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{target:`running`,reduce:`resetDuration`}]}},paused:{tags:[`paused`],on:{RESUME:{target:`running`,reduce:`resume`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{reduce:`resetDuration`}]}}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`removed`,effects:`finishClose`},CLOSING_ERROR:{target:`removed`,effects:`finishClose`}}},removed:{tags:[`removed`]}}},{context:{timer:{remaining:e.duration,paused:!1},dismissal:{reason:`api`}},props:e,reducers:{replaceProps:({context:e,event:t,props:n})=>({context:e,props:t.props??n}),pause:({context:e,event:t})=>({context:{...e,timer:{remaining:typeof t.remaining==`number`?t.remaining:e.timer.remaining,paused:!0}}}),resume:({context:e})=>({context:{...e,timer:{...e.timer,paused:!1}}}),tick:({context:e,event:t})=>({context:{...e,timer:{...e.timer,remaining:Math.max(0,Number(t.remaining)||0)}}}),resetDuration:({context:e,props:t})=>({context:{...e,timer:{...e.timer,remaining:t.duration}}}),dismiss:({context:e,event:t})=>({context:{...e,dismissal:{reason:t.reason===`timeout`||t.reason===`close`||t.reason===`swipe`?t.reason:`api`}}})},guards:{isPersistent:({props:e})=>e.duration===0,hasDuration:({props:e})=>e.duration>0,isPaused:({context:e})=>e.timer.paused},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,startTimer:t.startTimer,stopTimer:t.stopTimer,prepareClose:t.prepareClose,syncProps:t.syncProps,finishClose:({context:e})=>t.finishClose(e.dismissal.reason)}}),P=y({definition:{component:`ui.toast`,parts:{root:{base:[`group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none`,`data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0`],variants:{variant:{default:``,soft:``,surface:``,solid:``,outline:``},color:{neutral:``,accent:``,success:``,warning:``,danger:``},hasMarker:{true:`grid-cols-[auto_minmax(0,1fr)_auto]`,false:`grid-cols-[minmax(0,1fr)_auto]`},hasDescription:{true:``,false:``}},defaults:{variant:`default`,color:`neutral`,hasMarker:!1,hasDescription:!1}},marker:{base:`size-2 self-center rounded-full`,variants:{color:{neutral:`hidden`,accent:``,success:``,warning:``,danger:``},variant:{default:`hidden`,soft:``,surface:``,solid:`hidden`,outline:``}},defaults:{color:`neutral`,variant:`default`}},content:{base:`grid min-w-0 gap-0.5 self-center`},title:{base:`min-w-0`},description:{base:`min-w-0`},close:{base:[`-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-control-sm outline-none`]},closeIcon:{base:`size-icon fill-current`},outlet:{base:[`pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2`],variants:{position:{"top-right":`right-4 top-4 justify-items-end`,"top-left":`left-4 top-4 justify-items-start`,"top-center":`left-1/2 top-4 -translate-x-1/2 justify-items-center`,"bottom-right":`bottom-4 right-4 justify-items-end`,"bottom-left":`bottom-4 left-4 justify-items-start`,"bottom-center":`bottom-4 left-1/2 -translate-x-1/2 justify-items-center`}},defaults:{position:`top-right`}}}}}),F=e=>[`info`,`success`,`warning`,`danger`,`debug`].includes(String(e)),I=e=>[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`].includes(String(e)),L=e=>[`default`,`soft`,`surface`,`solid`,`outline`].includes(String(e)),R=e=>e===`info`?`accent`:e===`success`||e===`warning`||e===`danger`?e:`neutral`,z=(e,t)=>I(e)&&e!==`auto`?e:R(t),B=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)&&n>=0?n:t},V=e=>{let t=e.style;return`translateY(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-offset`))||0}px) scale(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-scale`))||1})`},H=e=>Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`)).filter(e=>e.dataset.state!==`closing`&&e.dataset.state!==`closed`),U=new WeakMap,W=e=>{let t=U.get(e);t&&(U.delete(e),t.handle.stop(),e.style.height=t.baseline)},G=(e,t=!1,r)=>{let i=r??e.getBoundingClientRect().height;W(e);let o=Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`));e.dataset.stack=o.length>1?`collapsed`:`single`;let s=getComputedStyle(e),c=Number.parseFloat(s.rowGap||s.gap||`0`)||0,l=o.map(e=>Math.ceil(e.scrollHeight||e.getBoundingClientRect().height)),u=Number.parseFloat(s.getPropertyValue(`--ui-toast-stack-peek`))||8,d=e.dataset.position?.startsWith(`bottom`)?-1:1,f=e.dataset.stackExpanded===`true`,p=Math.min(Math.max(0,o.length-1),3);e.style.setProperty(`--ui-toast-front-height`,`${l[0]??0}px`),e.style.setProperty(`--ui-toast-stack-height`,`${(l[0]??0)+p*u}px`),e.style.setProperty(`--ui-toast-stack-expanded-height`,`${l.reduce((e,t)=>e+t,0)+Math.max(0,o.length-1)*c}px`);let m=e.getBoundingClientRect().height;if(t&&Math.abs(i-m)>=1){let t=e.style.height,r=n(e,{keyframes:{height:[`${i}px`,`${m}px`]},role:`layout`,cleanup:()=>{e.style.height=t}}),a={baseline:t,handle:r};U.set(e,a),r.finished.finally(()=>{U.get(e)===a&&(U.delete(e),e.style.height=t)})}let h=0;o.forEach((n,r)=>{let i=Math.min(r,3),s=f?h*d:i*u*d,p=f?1:Math.max(.91,1-i*.03),m=f?1:Math.max(.72,1-i*.08);f&&(h+=(l[r]??0)+c),n.dataset.stackIndex=String(r),n.dataset.swipeAxis=e.dataset.position?.endsWith(`left`)||e.dataset.position?.endsWith(`right`)?`x`:`y`,n.style.setProperty(`--ui-toast-stack-index`,String(r)),n.style.setProperty(`--ui-toast-stack-depth`,String(i)),n.style.setProperty(`--ui-toast-stack-direction`,String(d)),n.style.setProperty(`--ui-toast-outside`,d>0?`-100%`:`100%`),n.style.setProperty(`--ui-toast-stack-offset`,`${s}px`),n.style.setProperty(`--ui-toast-stack-scale`,String(p)),n.style.setProperty(`--ui-toast-stack-opacity`,String(m)),n.style.zIndex=String(o.length-r);let g=`translateY(${s}px) scale(${p})`;n.dataset.swiping!==`true`&&(t&&n.dataset.state===`open`?a(n).animate({opacity:m,transform:g}).role(`layout`).play():n.dataset.state===`open`&&(n.style.opacity=String(m),n.style.transform=g))})},K=(e,t)=>{e.dispatchEvent(new CustomEvent(`ui:toast-dismiss-request`,{detail:{reason:t}}))},q=(e,t)=>{t!==0&&H(e).slice(t).forEach(e=>K(e,`api`))},J=(e,t)=>{let n=z(t.color,t.level),r=e.dataset.description===`true`||!!t.description.trim(),i=n!==`neutral`&&t.variant!==`solid`&&t.variant!=="default",a=t.level===`danger`||t.level===`warning`;Object.assign(e.dataset,{level:t.level,color:n,variant:t.variant,duration:String(t.duration),dismissible:String(t.dismissible)}),e.setAttribute(`role`,a?`alert`:`status`),e.setAttribute(`aria-live`,a?`assertive`:`polite`),e.className=v({part:P.parts.root,props:{variant:t.variant,color:n,hasDescription:r,hasMarker:i},className:t.class}),e.querySelector(`[data-ui-toast-marker]`)?.setAttribute(`class`,v({part:P.parts.marker,props:{variant:t.variant,color:n}})),e.querySelectorAll(`[data-ui-toast-content]`).forEach(e=>{e.className=v({part:P.parts.content,className:t.contentClass})}),e.querySelectorAll(`[data-ui-toast-title]`).forEach(e=>{e.className=`text-sm font-medium ${v({part:P.parts.title})}`}),e.querySelectorAll(`[data-ui-toast-description]`).forEach(e=>{e.className=`text-sm ${v({part:P.parts.description})}`}),e.querySelectorAll(`[data-ui-toast-close]`).forEach(e=>{e.hidden=!t.dismissible,e.className=v({part:P.parts.close,className:t.closeClass})})},Y=()=>{let n=null,i=[],a=0,s=null,c=null,l=0,u=new Set,d=()=>{if(!n)throw Error(`Toast has not been initialized.`);return n},f=()=>d().parentElement?.matches(`[data-ui-toast-outlet]`)?d().parentElement:null,h=()=>s===null?v.getSnapshot().context.timer.remaining:Math.max(0,a-performance.now()),_=()=>{s!==null&&clearTimeout(s),c!==null&&clearInterval(c),s=c=null},v=g({schema:A,hooks:M,createMachine:({props:e})=>N(e,{prepareOpen:()=>{d().dataset.state=`opening`,J(d(),v.getSnapshot().props),f()&&G(f(),!0)},finishOpen:()=>{d().dataset.state=`open`,f()&&G(f(),!0)},startTimer:()=>{let e=v.getSnapshot().context.timer.remaining;e<=0||(a=performance.now()+e,s=window.setTimeout(()=>v.send({type:`DISMISS`,reason:`timeout`}),e),c=window.setInterval(()=>v.send({type:`TICK`,remaining:h()}),100))},stopTimer:_,prepareClose:()=>{_(),d().dataset.state=`closing`,f()&&G(f(),!0)},finishClose:e=>{let t=d(),n=f();t.dataset.state=`closed`,p({el:t,name:`ui:dismiss`,detail:{reason:e}}),t.remove(),n&&G(n,!0)},syncProps:()=>{let e=v.getSnapshot().props;J(d(),e),e.duration!==l&&(l=e.duration,v.send(`DURATION_CHANGED`)),f()&&G(f())}})}),y=e=>{let t=u.size===0;u.add(e),t&&v.send({type:`PAUSE`,remaining:h()})},b=e=>{u.delete(e),u.size===0&&v.send(`RESUME`)};return{...v,get isOpen(){return this.snapshot.current?.tags.includes(`open`)??!1},get isPaused(){return this.snapshot.current?.tags.includes(`paused`)??!1},get remaining(){return this.snapshot.current?.context.timer.remaining??0},init(){n=this.$el,v.connect(this.$el,this.snapshot),l=v.getSnapshot().props.duration,document.hidden&&u.add(`visibility`),m({target:d(),event:`click`,handler:e=>{let t=e.target;v.getSnapshot().props.dismissible&&t instanceof Element&&t.closest(`[data-ui-toast-close]`)&&v.send({type:`DISMISS`,reason:`close`})},cleanup:i}),m({target:d(),event:`ui:toast-dismiss-request`,handler:e=>{let t=e instanceof CustomEvent?e.detail?.reason:`api`;v.send({type:`DISMISS`,reason:t})},cleanup:i}),m({target:d(),event:`ui:toast-pause-request`,handler:e=>{e instanceof CustomEvent&&e.detail?.paused===!0?y(`outlet`):b(`outlet`)},cleanup:i}),m({target:document,event:`visibilitychange`,handler:()=>document.hidden?y(`visibility`):b(`visibility`),cleanup:i}),m({target:d(),event:`pointerdown`,handler:n=>{if(!(n instanceof PointerEvent)||!n.isPrimary||n.button!==0||!v.getSnapshot().props.dismissible||n.target instanceof Element&&n.target.closest(`button, a, input, select, textarea`))return;let i=d(),a=f()?.dataset.position??`bottom-right`,s=a.endsWith(`left`)||a.endsWith(`right`),c=s?a.endsWith(`left`)?-1:1:a.startsWith(`top`)?-1:1,l=s?n.clientX:n.clientY,u=performance.now(),p=V(i),m=Number.parseFloat(i.style.getPropertyValue(`--ui-toast-stack-opacity`))||1,h=r(0);o(i),y(`gesture`),i.dataset.swiping=`true`,i.setPointerCapture(n.pointerId);let g=h.on(`change`,e=>{let t=s?`translateX(${e}px)`:`translateY(${e}px)`;i.style.transform=`${p} ${t}`;let n=Math.abs(e),r=s?i.offsetWidth:i.offsetHeight;i.style.opacity=String(Math.max(.35,m*(1-n/Math.max(r*2,1))))}),_=e=>{if(e.pointerId!==n.pointerId)return;e.preventDefault();let t=(s?e.clientX:e.clientY)-l;h.set(t*c>=0?t:t*.2)},x=(r,a=!1)=>{if(r.pointerId!==n.pointerId)return;window.removeEventListener(`pointermove`,_),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,S);let o=h.get(),l=Math.max(1,performance.now()-u),d=Math.abs(o)/l,f=!a&&o*c>0&&(Math.abs(o)>=45||d>.11),v=f?e(h,c*(s?window.innerWidth:window.innerHeight),t.gestureExit):e(h,0,{type:`spring`,...t.gestureSettle}),y=e(i,{opacity:f?0:m},t.gestureExit);Promise.allSettled([v.finished,y.finished]).then(()=>{g(),delete i.dataset.swiping,b(`gesture`),f?K(i,`swipe`):(i.style.opacity=String(m),i.style.transform=p)})},S=e=>x(e,!0);window.addEventListener(`pointermove`,_),window.addEventListener(`pointerup`,x),window.addEventListener(`pointercancel`,S)},cleanup:i}),v.send(`OPEN`)},destroy(){_(),i.forEach(e=>e()),i=[],v.disconnect(),n=null},dismiss(){v.send({type:`DISMISS`,reason:`api`})},pause(){y(`consumer`)},resume(){b(`consumer`)}}},X=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttribute(`viewBox`,`0 0 32 32`),t.setAttribute(`aria-hidden`,`true`),t.dataset.uiToastCloseIcon=``,t.setAttribute(`class`,e);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`polygon`);return n.setAttribute(`points`,`17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16`),t.append(n),t},Z=(e,t)=>{let n=F(e.level)?e.level:`info`,r=L(e.variant)?e.variant:`default`,i=typeof e.title==`string`?e.title:``,a=typeof e.description==`string`?e.description:``,o=B(e.duration,t),s=typeof e.dismissible==`boolean`?e.dismissible:!0,c=document.createElement(`div`);c.setAttribute(`x-data`,`UiToast`),c.setAttribute(`x-ui-transition:opening`,`$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()`),c.setAttribute(`x-ui-transition:closing`,`$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()`),Object.assign(c.dataset,{uiToast:``,uiToastRecipe:``,uiSurface:`+3`,uiElevation:`4`,level:n,color:I(e.color)?e.color:`auto`,variant:r,duration:String(o),dismissible:String(s),description:String(!!a.trim()),state:`closed`}),c.setAttribute(`aria-atomic`,`true`),c.style.opacity=`0`;let l=document.createElement(`span`);l.dataset.uiToastMarker=``,l.setAttribute(`aria-hidden`,`true`),c.append(l);let u=document.createElement(`div`);if(u.dataset.uiToastContent=``,i){let e=document.createElement(`strong`);e.dataset.uiToastTitle=``,e.textContent=i,u.append(e)}if(a){let e=document.createElement(`div`);e.dataset.uiToastDescription=``,e.textContent=a,u.append(e)}if(c.append(u),s){let e=document.createElement(`button`);e.type=`button`,e.dataset.uiToastClose=``,e.setAttribute(`aria-label`,`Dismiss notification`),e.append(X(v({part:P.parts.closeIcon}))),c.append(e)}return c},Q=e=>{let t=new Set,n=null,r=e=>{n?.querySelectorAll(`:scope > [data-ui-toast]`).forEach(t=>{t.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:e}}))})},i=e=>{let i=t.size===0;if(t.add(e),!n||!i)return;let a=n.getBoundingClientRect().height;n.dataset.stackExpanded=`true`,r(!0),G(n,!0,a)},a=e=>{if(t.delete(e),!n||t.size>0)return;let i=n.getBoundingClientRect().height;delete n.dataset.stackExpanded,r(!1),G(n,!0,i)};return{props:null,cleanup:[],init(){this.props=f({el:this.$el,schema:j,onChange:()=>this.sync()});let e=this.$el;n=e,this.sync(),this.cleanup.push(T(e,()=>(i(`pointer`),()=>a(`pointer`)))),m({target:e,event:`focusin`,handler:()=>i(`focus`),cleanup:this.cleanup}),m({target:e,event:`focusout`,handler:()=>queueMicrotask(()=>{e.contains(document.activeElement)||a(`focus`)}),cleanup:this.cleanup}),m({target:document,event:`ui:toast`,handler:e=>this.add(e instanceof CustomEvent?e.detail:{}),cleanup:this.cleanup}),queueMicrotask(()=>q(e,this.props.maxItems))},destroy(){n&&W(n),this.props.disconnect(),this.cleanup.forEach(e=>e()),this.cleanup=[],t.clear(),n=null},sync(){let e=this.$el;e.id=this.props.id,e.dataset.position=this.props.position,e.dataset.duration=String(this.props.duration),e.dataset.maxItems=String(this.props.maxItems),e.className=v({part:P.parts.outlet,props:{position:this.props.position},className:this.props.class}),G(e),q(e,this.props.maxItems)},add(n){let r=typeof n.title==`string`?n.title:``,i=typeof n.description==`string`?n.description:``;if(!r.trim()&&!i.trim())return;let a=this.$el,o=Z(n,this.props.duration);a.prepend(o),e.initTree(o),t.size>0&&o.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:!0}})),G(a),q(a,this.props.maxItems)}}},ee=e=>{_(`UiToast`,Y)(e),_(`UiToastOutlet`,()=>Q(e))(e)},$=new WeakSet,te=e=>{$.has(e)||($.add(e),s(e),ee(e))};export{Y as n,Q as r,te as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{f as e,g as t,l as n,m as r,p as i,s as a,u as o}from"./motion-BQk-uLaI.js";import{t as s}from"./capability-motion-DoZROkFD.js";import{c,f as l,l as u,n as d,o as f}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as g}from"./alpine-machine-BS13dbK4.js";import{t as _}from"./alpine-data-CytyCyfk.js";import{n as v,t as y}from"./styles-TfvwVPGw.js";import{t as b}from"./machine-Dqut4h89.js";var x={x:!1,y:!1};function S(){return x.x||x.y}function C(e,t){let n=i(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function w(e){return!(e.pointerType===`touch`||S())}function T(e,t,n={}){let[r,i,a]=C(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!w(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var E=[`info`,`success`,`warning`,`danger`,`debug`],D=[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`],O=[`default`,`soft`,`surface`,`solid`,`outline`],k=[`top-right`,`top-left`,`top-center`,`bottom-right`,`bottom-left`,`bottom-center`],A={level:u(E,`info`),color:u(D,`auto`),variant:u(O,`default`),title:l,description:l,duration:c.default(5e3).min(0),dismissible:d.default(!0),class:l,contentClass:l,closeClass:l},j={id:l.default(`ui-toast-root`),position:u(k,`top-right`),duration:c.default(5e3).min(0),includeMessages:d.default(!0),maxItems:c.default(3).min(0),class:l},M=[h({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:({context:e})=>({reason:e.dismissal.reason}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],N=(e,t)=>b({initial:`idle`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}},states:{idle:{on:{OPEN:{target:`opening`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],OPENING_ERROR:[{target:`open.persistent`,guard:`isPersistent`,effects:`finishOpen`},{target:`open.paused`,guard:`isPaused`,effects:`finishOpen`},{target:`open.running`,effects:`finishOpen`}],PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}}},open:{id:`open`,initial:`running`,tags:[`visible`,`expanded`,`open`],on:{DISMISS:{target:`closing`,reduce:`dismiss`,effects:`prepareClose`}},states:{persistent:{on:{PAUSE:{reduce:`pause`},RESUME:{reduce:`resume`},DURATION_CHANGED:{target:`running`,guard:`hasDuration`,reduce:`resetDuration`}}},running:{entry:`startTimer`,exit:`stopTimer`,on:{PAUSE:{target:`paused`,reduce:`pause`},TICK:{reduce:`tick`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{target:`running`,reduce:`resetDuration`}]}},paused:{tags:[`paused`],on:{RESUME:{target:`running`,reduce:`resume`},DURATION_CHANGED:[{target:`persistent`,guard:`isPersistent`},{reduce:`resetDuration`}]}}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`removed`,effects:`finishClose`},CLOSING_ERROR:{target:`removed`,effects:`finishClose`}}},removed:{tags:[`removed`]}}},{context:{timer:{remaining:e.duration,paused:!1},dismissal:{reason:`api`}},props:e,reducers:{replaceProps:({context:e,event:t,props:n})=>({context:e,props:t.props??n}),pause:({context:e,event:t})=>({context:{...e,timer:{remaining:typeof t.remaining==`number`?t.remaining:e.timer.remaining,paused:!0}}}),resume:({context:e})=>({context:{...e,timer:{...e.timer,paused:!1}}}),tick:({context:e,event:t})=>({context:{...e,timer:{...e.timer,remaining:Math.max(0,Number(t.remaining)||0)}}}),resetDuration:({context:e,props:t})=>({context:{...e,timer:{...e.timer,remaining:t.duration}}}),dismiss:({context:e,event:t})=>({context:{...e,dismissal:{reason:t.reason===`timeout`||t.reason===`close`||t.reason===`swipe`?t.reason:`api`}}})},guards:{isPersistent:({props:e})=>e.duration===0,hasDuration:({props:e})=>e.duration>0,isPaused:({context:e})=>e.timer.paused},effects:{prepareOpen:t.prepareOpen,finishOpen:t.finishOpen,startTimer:t.startTimer,stopTimer:t.stopTimer,prepareClose:t.prepareClose,syncProps:t.syncProps,finishClose:({context:e})=>t.finishClose(e.dismissal.reason)}}),P=y({definition:{component:`ui.toast`,parts:{root:{base:[`group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none`,`data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0`],variants:{variant:{default:``,soft:``,surface:``,solid:``,outline:``},color:{neutral:``,accent:``,success:``,warning:``,danger:``},hasMarker:{true:`grid-cols-[auto_minmax(0,1fr)_auto]`,false:`grid-cols-[minmax(0,1fr)_auto]`},hasDescription:{true:``,false:``}},defaults:{variant:`default`,color:`neutral`,hasMarker:!1,hasDescription:!1}},marker:{base:`size-2 self-center rounded-full`,variants:{color:{neutral:`hidden`,accent:``,success:``,warning:``,danger:``},variant:{default:`hidden`,soft:``,surface:``,solid:`hidden`,outline:``}},defaults:{color:`neutral`,variant:`default`}},content:{base:`grid min-w-0 gap-0.5 self-center`},title:{base:`min-w-0`},description:{base:`min-w-0`},close:{base:[`-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-control-sm outline-none`]},closeIcon:{base:`size-icon fill-current`},outlet:{base:[`pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2`],variants:{position:{"top-right":`right-4 top-4 justify-items-end`,"top-left":`left-4 top-4 justify-items-start`,"top-center":`left-1/2 top-4 -translate-x-1/2 justify-items-center`,"bottom-right":`bottom-4 right-4 justify-items-end`,"bottom-left":`bottom-4 left-4 justify-items-start`,"bottom-center":`bottom-4 left-1/2 -translate-x-1/2 justify-items-center`}},defaults:{position:`top-right`}}}}}),F=e=>[`info`,`success`,`warning`,`danger`,`debug`].includes(String(e)),I=e=>[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`].includes(String(e)),L=e=>[`default`,`soft`,`surface`,`solid`,`outline`].includes(String(e)),R=e=>e===`info`?`accent`:e===`success`||e===`warning`||e===`danger`?e:`neutral`,z=(e,t)=>I(e)&&e!==`auto`?e:R(t),B=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)&&n>=0?n:t},V=e=>{let t=e.style;return`translateY(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-offset`))||0}px) scale(${Number.parseFloat(t.getPropertyValue(`--ui-toast-stack-scale`))||1})`},H=e=>Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`)).filter(e=>e.dataset.state!==`closing`&&e.dataset.state!==`closed`),U=new WeakMap,W=e=>{let t=U.get(e);t&&(U.delete(e),t.handle.stop(),e.style.height=t.baseline)},G=(e,t=!1,r)=>{let i=r??e.getBoundingClientRect().height;W(e);let o=Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`));e.dataset.stack=o.length>1?`collapsed`:`single`;let s=getComputedStyle(e),c=Number.parseFloat(s.rowGap||s.gap||`0`)||0,l=o.map(e=>Math.ceil(e.scrollHeight||e.getBoundingClientRect().height)),u=Number.parseFloat(s.getPropertyValue(`--ui-toast-stack-peek`))||8,d=e.dataset.position?.startsWith(`bottom`)?-1:1,f=e.dataset.stackExpanded===`true`,p=Math.min(Math.max(0,o.length-1),3);e.style.setProperty(`--ui-toast-front-height`,`${l[0]??0}px`),e.style.setProperty(`--ui-toast-stack-height`,`${(l[0]??0)+p*u}px`),e.style.setProperty(`--ui-toast-stack-expanded-height`,`${l.reduce((e,t)=>e+t,0)+Math.max(0,o.length-1)*c}px`);let m=e.getBoundingClientRect().height;if(t&&Math.abs(i-m)>=1){let t=e.style.height,r=n(e,{keyframes:{height:[`${i}px`,`${m}px`]},role:`layout`,cleanup:()=>{e.style.height=t}}),a={baseline:t,handle:r};U.set(e,a),r.finished.finally(()=>{U.get(e)===a&&(U.delete(e),e.style.height=t)})}let h=0;o.forEach((n,r)=>{let i=Math.min(r,3),s=f?h*d:i*u*d,p=f?1:Math.max(.91,1-i*.03),m=f?1:Math.max(.72,1-i*.08);f&&(h+=(l[r]??0)+c),n.dataset.stackIndex=String(r),n.dataset.swipeAxis=e.dataset.position?.endsWith(`left`)||e.dataset.position?.endsWith(`right`)?`x`:`y`,n.style.setProperty(`--ui-toast-stack-index`,String(r)),n.style.setProperty(`--ui-toast-stack-depth`,String(i)),n.style.setProperty(`--ui-toast-stack-direction`,String(d)),n.style.setProperty(`--ui-toast-outside`,d>0?`-100%`:`100%`),n.style.setProperty(`--ui-toast-stack-offset`,`${s}px`),n.style.setProperty(`--ui-toast-stack-scale`,String(p)),n.style.setProperty(`--ui-toast-stack-opacity`,String(m)),n.style.zIndex=String(o.length-r);let g=`translateY(${s}px) scale(${p})`;n.dataset.swiping!==`true`&&(t&&n.dataset.state===`open`?a(n).animate({opacity:m,transform:g}).role(`layout`).play():n.dataset.state===`open`&&(n.style.opacity=String(m),n.style.transform=g))})},K=(e,t)=>{e.dispatchEvent(new CustomEvent(`ui:toast-dismiss-request`,{detail:{reason:t}}))},q=(e,t)=>{t!==0&&H(e).slice(t).forEach(e=>K(e,`api`))},J=(e,t)=>{let n=z(t.color,t.level),r=e.dataset.description===`true`||!!t.description.trim(),i=n!==`neutral`&&t.variant!==`solid`&&t.variant!=="default",a=t.level===`danger`||t.level===`warning`;Object.assign(e.dataset,{level:t.level,color:n,variant:t.variant,duration:String(t.duration),dismissible:String(t.dismissible)}),e.setAttribute(`role`,a?`alert`:`status`),e.setAttribute(`aria-live`,a?`assertive`:`polite`),e.className=v({part:P.parts.root,props:{variant:t.variant,color:n,hasDescription:r,hasMarker:i},className:t.class}),e.querySelector(`[data-ui-toast-marker]`)?.setAttribute(`class`,v({part:P.parts.marker,props:{variant:t.variant,color:n}})),e.querySelectorAll(`[data-ui-toast-content]`).forEach(e=>{e.className=v({part:P.parts.content,className:t.contentClass})}),e.querySelectorAll(`[data-ui-toast-title]`).forEach(e=>{e.className=`text-sm font-medium ${v({part:P.parts.title})}`}),e.querySelectorAll(`[data-ui-toast-description]`).forEach(e=>{e.className=`text-sm ${v({part:P.parts.description})}`}),e.querySelectorAll(`[data-ui-toast-close]`).forEach(e=>{e.hidden=!t.dismissible,e.className=v({part:P.parts.close,className:t.closeClass})})},Y=()=>{let n=null,i=[],a=0,s=null,c=null,l=0,u=new Set,d=()=>{if(!n)throw Error(`Toast has not been initialized.`);return n},f=()=>d().parentElement?.matches(`[data-ui-toast-outlet]`)?d().parentElement:null,h=()=>s===null?v.getSnapshot().context.timer.remaining:Math.max(0,a-performance.now()),_=()=>{s!==null&&clearTimeout(s),c!==null&&clearInterval(c),s=c=null},v=g({schema:A,hooks:M,createMachine:({props:e})=>N(e,{prepareOpen:()=>{d().dataset.state=`opening`,J(d(),v.getSnapshot().props),f()&&G(f(),!0)},finishOpen:()=>{d().dataset.state=`open`,f()&&G(f(),!0)},startTimer:()=>{let e=v.getSnapshot().context.timer.remaining;e<=0||(a=performance.now()+e,s=window.setTimeout(()=>v.send({type:`DISMISS`,reason:`timeout`}),e),c=window.setInterval(()=>v.send({type:`TICK`,remaining:h()}),100))},stopTimer:_,prepareClose:()=>{_(),d().dataset.state=`closing`,f()&&G(f(),!0)},finishClose:e=>{let t=d(),n=f();t.dataset.state=`closed`,p({el:t,name:`ui:dismiss`,detail:{reason:e}}),t.remove(),n&&G(n,!0)},syncProps:()=>{let e=v.getSnapshot().props;J(d(),e),e.duration!==l&&(l=e.duration,v.send(`DURATION_CHANGED`)),f()&&G(f())}})}),y=e=>{let t=u.size===0;u.add(e),t&&v.send({type:`PAUSE`,remaining:h()})},b=e=>{u.delete(e),u.size===0&&v.send(`RESUME`)};return{...v,get isOpen(){return this.snapshot.current?.tags.includes(`open`)??!1},get isPaused(){return this.snapshot.current?.tags.includes(`paused`)??!1},get remaining(){return this.snapshot.current?.context.timer.remaining??0},init(){n=this.$el,v.connect(this.$el,this.snapshot),l=v.getSnapshot().props.duration,document.hidden&&u.add(`visibility`),m({target:d(),event:`click`,handler:e=>{let t=e.target;v.getSnapshot().props.dismissible&&t instanceof Element&&t.closest(`[data-ui-toast-close]`)&&v.send({type:`DISMISS`,reason:`close`})},cleanup:i}),m({target:d(),event:`ui:toast-dismiss-request`,handler:e=>{let t=e instanceof CustomEvent?e.detail?.reason:`api`;v.send({type:`DISMISS`,reason:t})},cleanup:i}),m({target:d(),event:`ui:toast-pause-request`,handler:e=>{e instanceof CustomEvent&&e.detail?.paused===!0?y(`outlet`):b(`outlet`)},cleanup:i}),m({target:document,event:`visibilitychange`,handler:()=>document.hidden?y(`visibility`):b(`visibility`),cleanup:i}),m({target:d(),event:`pointerdown`,handler:n=>{if(!(n instanceof PointerEvent)||!n.isPrimary||n.button!==0||!v.getSnapshot().props.dismissible||n.target instanceof Element&&n.target.closest(`button, a, input, select, textarea`))return;let i=d(),a=f()?.dataset.position??`bottom-right`,s=a.endsWith(`left`)||a.endsWith(`right`),c=s?a.endsWith(`left`)?-1:1:a.startsWith(`top`)?-1:1,l=s?n.clientX:n.clientY,u=performance.now(),p=V(i),m=Number.parseFloat(i.style.getPropertyValue(`--ui-toast-stack-opacity`))||1,h=r(0);o(i),y(`gesture`),i.dataset.swiping=`true`,i.setPointerCapture(n.pointerId);let g=h.on(`change`,e=>{let t=s?`translateX(${e}px)`:`translateY(${e}px)`;i.style.transform=`${p} ${t}`;let n=Math.abs(e),r=s?i.offsetWidth:i.offsetHeight;i.style.opacity=String(Math.max(.35,m*(1-n/Math.max(r*2,1))))}),_=e=>{if(e.pointerId!==n.pointerId)return;e.preventDefault();let t=(s?e.clientX:e.clientY)-l;h.set(t*c>=0?t:t*.2)},x=(r,a=!1)=>{if(r.pointerId!==n.pointerId)return;window.removeEventListener(`pointermove`,_),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,S);let o=h.get(),l=Math.max(1,performance.now()-u),d=Math.abs(o)/l,f=!a&&o*c>0&&(Math.abs(o)>=45||d>.11),v=f?e(h,c*(s?window.innerWidth:window.innerHeight),t.gestureExit):e(h,0,{type:`spring`,...t.gestureSettle}),y=e(i,{opacity:f?0:m},t.gestureExit);Promise.allSettled([v.finished,y.finished]).then(()=>{g(),delete i.dataset.swiping,b(`gesture`),f?K(i,`swipe`):(i.style.opacity=String(m),i.style.transform=p)})},S=e=>x(e,!0);window.addEventListener(`pointermove`,_),window.addEventListener(`pointerup`,x),window.addEventListener(`pointercancel`,S)},cleanup:i}),v.send(`OPEN`)},destroy(){_(),i.forEach(e=>e()),i=[],v.disconnect(),n=null},dismiss(){v.send({type:`DISMISS`,reason:`api`})},pause(){y(`consumer`)},resume(){b(`consumer`)}}},X=e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttribute(`viewBox`,`0 0 32 32`),t.setAttribute(`aria-hidden`,`true`),t.dataset.uiToastCloseIcon=``,t.setAttribute(`class`,e);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`polygon`);return n.setAttribute(`points`,`17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16`),t.append(n),t},Z=(e,t)=>{let n=F(e.level)?e.level:`info`,r=L(e.variant)?e.variant:`default`,i=typeof e.title==`string`?e.title:``,a=typeof e.description==`string`?e.description:``,o=B(e.duration,t),s=typeof e.dismissible==`boolean`?e.dismissible:!0,c=document.createElement(`div`);c.setAttribute(`x-data`,`UiToast`),c.setAttribute(`x-ui-transition:opening`,`$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()`),c.setAttribute(`x-ui-transition:closing`,`$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()`),Object.assign(c.dataset,{uiToast:``,uiToastRecipe:``,uiSurface:`+3`,uiElevation:`4`,level:n,color:I(e.color)?e.color:`auto`,variant:r,duration:String(o),dismissible:String(s),description:String(!!a.trim()),state:`closed`}),c.setAttribute(`aria-atomic`,`true`),c.style.opacity=`0`;let l=document.createElement(`span`);l.dataset.uiToastMarker=``,l.setAttribute(`aria-hidden`,`true`),c.append(l);let u=document.createElement(`div`);if(u.dataset.uiToastContent=``,i){let e=document.createElement(`strong`);e.dataset.uiToastTitle=``,e.textContent=i,u.append(e)}if(a){let e=document.createElement(`div`);e.dataset.uiToastDescription=``,e.textContent=a,u.append(e)}if(c.append(u),s){let e=document.createElement(`button`);e.type=`button`,e.dataset.uiToastClose=``,e.setAttribute(`aria-label`,`Dismiss notification`),e.append(X(v({part:P.parts.closeIcon}))),c.append(e)}return c},Q=e=>{let t=new Set,n=null,r=e=>{n?.querySelectorAll(`:scope > [data-ui-toast]`).forEach(t=>{t.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:e}}))})},i=e=>{let i=t.size===0;if(t.add(e),!n||!i)return;let a=n.getBoundingClientRect().height;n.dataset.stackExpanded=`true`,r(!0),G(n,!0,a)},a=e=>{if(t.delete(e),!n||t.size>0)return;let i=n.getBoundingClientRect().height;delete n.dataset.stackExpanded,r(!1),G(n,!0,i)};return{props:null,cleanup:[],init(){this.props=f({el:this.$el,schema:j,onChange:()=>this.sync()});let e=this.$el;n=e,this.sync(),this.cleanup.push(T(e,()=>(i(`pointer`),()=>a(`pointer`)))),m({target:e,event:`focusin`,handler:()=>i(`focus`),cleanup:this.cleanup}),m({target:e,event:`focusout`,handler:()=>queueMicrotask(()=>{e.contains(document.activeElement)||a(`focus`)}),cleanup:this.cleanup}),m({target:document,event:`ui:toast`,handler:e=>this.add(e instanceof CustomEvent?e.detail:{}),cleanup:this.cleanup}),queueMicrotask(()=>q(e,this.props.maxItems))},destroy(){n&&W(n),this.props.disconnect(),this.cleanup.forEach(e=>e()),this.cleanup=[],t.clear(),n=null},sync(){let e=this.$el;e.id=this.props.id,e.dataset.position=this.props.position,e.dataset.duration=String(this.props.duration),e.dataset.maxItems=String(this.props.maxItems),e.className=v({part:P.parts.outlet,props:{position:this.props.position},className:this.props.class}),G(e),q(e,this.props.maxItems)},add(n){let r=typeof n.title==`string`?n.title:``,i=typeof n.description==`string`?n.description:``;if(!r.trim()&&!i.trim())return;let a=this.$el,o=Z(n,this.props.duration);a.prepend(o),e.initTree(o),t.size>0&&o.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:!0}})),G(a),q(a,this.props.maxItems)}}},ee=e=>{_(`UiToast`,Y)(e),_(`UiToastOutlet`,()=>Q(e))(e)},$=new WeakSet,te=e=>{$.has(e)||($.add(e),s(e),ee(e))};export{Y as n,Q as r,te as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-u0Ueamvw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-DcXzHGIV.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/hover.mjs","../../../../../../../../client/src/components/toast/contract.ts","../../../../../../../../client/src/components/toast/machine.ts","../../../../../../../../client/src/components/toast/styles.ts","../../../../../../../../client/src/components/toast/index.ts","../../../../../../../../client/src/components/toast/entry.generated.ts"],"sourcesContent":["const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n//# sourceMappingURL=is-active.mjs.map\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n//# sourceMappingURL=hover.mjs.map\n","import {bool, number, oneOf, string, type PropState, type SchemaToProps} from '../../runtime';\n\nconst TOAST_LEVELS = ['info', 'success', 'warning', 'danger', 'debug'] as const;\nconst TOAST_COLORS = ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_RESOLVED_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_VARIANTS = ['default', 'soft', 'surface', 'solid', 'outline'] as const;\nconst TOAST_POSITIONS = ['top-right', 'top-left', 'top-center', 'bottom-right', 'bottom-left', 'bottom-center'] as const;\n\nconst toastSchema = {\n level: oneOf(TOAST_LEVELS, 'info'),\n color: oneOf(TOAST_COLORS, 'auto'),\n variant: oneOf(TOAST_VARIANTS, 'default'),\n title: string,\n description: string,\n duration: number.default(5000).min(0),\n dismissible: bool.default(true),\n class: string,\n contentClass: string,\n closeClass: string,\n};\n\nconst toastOutletSchema = {\n id: string.default('ui-toast-root'),\n position: oneOf(TOAST_POSITIONS, 'top-right'),\n duration: number.default(5000).min(0),\n includeMessages: bool.default(true),\n maxItems: number.default(3).min(0),\n class: string,\n};\n\ntype ToastLevel = typeof TOAST_LEVELS[number];\ntype ToastColor = typeof TOAST_COLORS[number];\ntype ToastResolvedColor = typeof TOAST_RESOLVED_COLORS[number];\ntype ToastVariant = typeof TOAST_VARIANTS[number];\ntype ToastPosition = typeof TOAST_POSITIONS[number];\ntype ToastProps = SchemaToProps<typeof toastSchema>;\ntype ToastOutletProps = PropState<typeof toastOutletSchema>;\n\nexport {TOAST_COLORS, TOAST_LEVELS, TOAST_POSITIONS, TOAST_RESOLVED_COLORS, TOAST_VARIANTS, toastOutletSchema, toastSchema};\nexport type {ToastColor, ToastLevel, ToastOutletProps, ToastPosition, ToastProps, ToastResolvedColor, ToastVariant};\n","import {createMachine, type Machine} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {ToastProps} from './contract';\n\ntype ToastDismissReason = 'timeout' | 'close' | 'api' | 'swipe';\n\ntype ToastContext = {\n timer: {remaining: number; paused: boolean};\n dismissal: {reason: ToastDismissReason};\n};\n\ntype ToastMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n startTimer(): void;\n stopTimer(): void;\n prepareClose(): void;\n finishClose(reason: ToastDismissReason): void;\n syncProps(): void;\n};\n\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: () => ({}), onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, Record<string, never>, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: ({context}) => ({reason: context.dismissal.reason}),\n onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, {reason: ToastDismissReason}, 'closing'>);\nconst toastHooks = [openingHook, closingHook] as const;\n\nconst createToastMachine = (props: ToastProps, effects: ToastMachineEffects): Machine<ToastContext, ToastProps> => createMachine<ToastContext, ToastProps>({\n initial: 'idle',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n },\n states: {\n idle: {on: {OPEN: {target: 'opening', effects: 'prepareOpen'}}},\n opening: {\n tags: ['visible', 'expanded', 'transitioning'],\n on: {\n OPENING_DONE: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n OPENING_ERROR: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n PAUSE: {reduce: 'pause'},\n RESUME: {reduce: 'resume'},\n DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'},\n },\n },\n open: {\n id: 'open', initial: 'running', tags: ['visible', 'expanded', 'open'],\n on: {DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'}},\n states: {\n persistent: {on: {PAUSE: {reduce: 'pause'}, RESUME: {reduce: 'resume'}, DURATION_CHANGED: {target: 'running', guard: 'hasDuration', reduce: 'resetDuration'}}},\n running: {entry: 'startTimer', exit: 'stopTimer', on: {PAUSE: {target: 'paused', reduce: 'pause'}, TICK: {reduce: 'tick'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {target: 'running', reduce: 'resetDuration'}]}},\n paused: {tags: ['paused'], on: {RESUME: {target: 'running', reduce: 'resume'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {reduce: 'resetDuration'}]}},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'removed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'removed', effects: 'finishClose'},\n },\n },\n removed: {tags: ['removed']},\n },\n}, {\n context: {timer: {remaining: props.duration, paused: false}, dismissal: {reason: 'api'}}, props,\n reducers: {\n replaceProps: ({context, event, props: currentProps}) => {\n const nextProps = event.props as ToastProps | undefined;\n return {context, props: nextProps ?? currentProps};\n },\n pause: ({context, event}) => ({context: {...context, timer: {remaining: typeof event.remaining === 'number' ? event.remaining : context.timer.remaining, paused: true}}}),\n resume: ({context}) => ({context: {...context, timer: {...context.timer, paused: false}}}),\n tick: ({context, event}) => ({context: {...context, timer: {...context.timer, remaining: Math.max(0, Number(event.remaining) || 0)}}}),\n resetDuration: ({context, props: currentProps}) => ({context: {...context, timer: {...context.timer, remaining: currentProps.duration}}}),\n dismiss: ({context, event}) => ({context: {...context, dismissal: {\n reason: event.reason === 'timeout' || event.reason === 'close' || event.reason === 'swipe'\n ? event.reason\n : 'api' as ToastDismissReason,\n }}}),\n },\n guards: {\n isPersistent: ({props: currentProps}) => currentProps.duration === 0,\n hasDuration: ({props: currentProps}) => currentProps.duration > 0,\n isPaused: ({context}) => context.timer.paused,\n },\n effects: {\n prepareOpen: effects.prepareOpen, finishOpen: effects.finishOpen,\n startTimer: effects.startTimer, stopTimer: effects.stopTimer,\n prepareClose: effects.prepareClose, syncProps: effects.syncProps,\n finishClose: ({context}) => effects.finishClose(context.dismissal.reason),\n },\n});\n\nexport {createToastMachine, toastHooks};\nexport type {ToastContext, ToastDismissReason, ToastMachineEffects};\n","import {defineStyles} from '../../runtime';\n\nconst toastStyles = defineStyles({definition: {\n component: 'ui.toast',\n parts: {\n root: {\n base: [\n 'group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n variant: {\n default: '',\n soft: '',\n surface: '',\n solid: '',\n outline: '',\n },\n color: {\n neutral: '',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n hasMarker: {\n true: 'grid-cols-[auto_minmax(0,1fr)_auto]',\n false: 'grid-cols-[minmax(0,1fr)_auto]',\n },\n hasDescription: {\n true: '',\n false: '',\n },\n },\n defaults: {\n variant: 'default',\n color: 'neutral',\n hasMarker: false,\n hasDescription: false,\n },\n },\n marker: {\n base: 'size-2 self-center rounded-full',\n variants: {\n color: {\n neutral: 'hidden',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n default: 'hidden',\n soft: '',\n surface: '',\n solid: 'hidden',\n outline: '',\n },\n },\n defaults: {\n color: 'neutral',\n variant: 'default',\n },\n },\n content: {\n base: 'grid min-w-0 gap-0.5 self-center',\n },\n title: {\n base: 'min-w-0',\n },\n description: {\n base: 'min-w-0',\n },\n close: {\n base: [\n '-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-control-sm outline-none',\n ],\n },\n closeIcon: {\n base: 'size-icon fill-current',\n },\n outlet: {\n base: [\n 'pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2',\n ],\n variants: {\n position: {\n 'top-right': 'right-4 top-4 justify-items-end',\n 'top-left': 'left-4 top-4 justify-items-start',\n 'top-center': 'left-1/2 top-4 -translate-x-1/2 justify-items-center',\n 'bottom-right': 'bottom-4 right-4 justify-items-end',\n 'bottom-left': 'bottom-4 left-4 justify-items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 justify-items-center',\n },\n },\n defaults: {\n position: 'top-right',\n },\n },\n },\n}});\n\nexport {toastStyles};\n","import type Alpine from 'alpinejs';\nimport {animate, hover, motionValue} from 'motion';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type AlpineMachine,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {defineProps} from '@client/runtime/codecs';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {animateSize, createMotionPlan, roles, type MotionHandle} from '@client/motion';\nimport {replaceMotion} from '@client/motion/registry';\nimport {addListener, dispatch, type CleanupStack} from '@client/utils';\nimport {\n toastOutletSchema, toastSchema, type ToastColor, type ToastLevel, type ToastOutletProps,\n type ToastProps, type ToastResolvedColor, type ToastVariant,\n} from './contract';\nimport {createToastMachine, toastHooks, type ToastContext, type ToastDismissReason} from './machine';\nimport {toastStyles} from './styles';\n\ntype ToastTransitionName = (typeof toastHooks)[number]['name'];\ntype ToastTransition<TName extends ToastTransitionName = ToastTransitionName> = TransitionForHook<\n Extract<(typeof toastHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype ToastDetail = {description?: unknown; title?: unknown; color?: unknown; level?: unknown; variant?: unknown; duration?: unknown; dismissible?: unknown};\ntype ToastPauseSource = 'outlet' | 'visibility' | 'consumer' | 'gesture';\n\n/**\n * Public Alpine API for `ui.toast`.\n *\n * @public\n */\ninterface UiToastApi {\n /** Whether the opening transition has settled. */\n readonly isOpen: boolean;\n /** Whether any pause source currently holds the lifetime timer. */\n readonly isPaused: boolean;\n /** Auto-dismiss lifetime remaining in milliseconds. */\n readonly remaining: number;\n /** Dismisses the notification through its closing transition. */\n dismiss(): void;\n /** Adds the consumer pause source. */\n pause(): void;\n /** Releases the consumer pause source. */\n resume(): void;\n}\n\n/**\n * Public Alpine API for `ui.toast.outlet`.\n *\n * @public\n */\ninterface UiToastOutletApi {\n /** Adds a notification using the same lifecycle as server-rendered markup. */\n add(detail: ToastDetail): void;\n}\n\ntype ToastData = AlpineMachine<ToastContext, ToastProps, typeof toastHooks> & UiToastApi & {init(): void; destroy(): void};\ntype ToastOutletData = UiToastOutletApi & {props: ToastOutletProps; cleanup: CleanupStack; sync(): void; init(): void; destroy(): void};\n\nconst isToastLevel = (value: unknown): value is ToastLevel => ['info', 'success', 'warning', 'danger', 'debug'].includes(String(value));\nconst isToastColor = (value: unknown): value is ToastColor => ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'].includes(String(value));\nconst isToastVariant = (value: unknown): value is ToastVariant => ['default', 'soft', 'surface', 'solid', 'outline'].includes(String(value));\nconst toastColorForLevel = (level: ToastLevel): ToastResolvedColor => level === 'info' ? 'accent' : level === 'success' || level === 'warning' || level === 'danger' ? level : 'neutral';\nconst resolveToastColor = (color: unknown, level: ToastLevel): ToastResolvedColor => isToastColor(color) && color !== 'auto' ? color : toastColorForLevel(level);\nconst normalizedDuration = (value: unknown, fallback: number): number => {\n const duration = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(duration) && duration >= 0 ? duration : fallback;\n};\n\nconst toastRestTransform = (toast: HTMLElement): string => {\n const style = toast.style;\n const offset = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-offset')) || 0;\n const scale = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-scale')) || 1;\n return `translateY(${offset}px) scale(${scale})`;\n};\n\nconst activeToasts = (outlet: HTMLElement): HTMLElement[] => Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'))\n .filter((toast) => toast.dataset.state !== 'closing' && toast.dataset.state !== 'closed');\n\nconst stackHeightMotions = new WeakMap<HTMLElement, {baseline: string; handle: MotionHandle}>();\n\nconst stopToastStackHeightMotion = (outlet: HTMLElement): void => {\n const active = stackHeightMotions.get(outlet);\n if (!active) return;\n stackHeightMotions.delete(outlet);\n active.handle.stop();\n outlet.style.height = active.baseline;\n};\n\nconst syncToastStack = (outlet: HTMLElement, animateStack = false, fromHeight?: number): void => {\n const renderedHeight = fromHeight ?? outlet.getBoundingClientRect().height;\n stopToastStackHeightMotion(outlet);\n const toasts = Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'));\n outlet.dataset.stack = toasts.length > 1 ? 'collapsed' : 'single';\n const style = getComputedStyle(outlet);\n const gap = Number.parseFloat(style.rowGap || style.gap || '0') || 0;\n const heights = toasts.map((toast) => Math.ceil(toast.scrollHeight || toast.getBoundingClientRect().height));\n const peek = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-peek')) || 8;\n const direction = outlet.dataset.position?.startsWith('bottom') ? -1 : 1;\n const expanded = outlet.dataset.stackExpanded === 'true';\n const depth = Math.min(Math.max(0, toasts.length - 1), 3);\n outlet.style.setProperty('--ui-toast-front-height', `${heights[0] ?? 0}px`);\n outlet.style.setProperty('--ui-toast-stack-height', `${(heights[0] ?? 0) + depth * peek}px`);\n outlet.style.setProperty('--ui-toast-stack-expanded-height', `${heights.reduce((sum, height) => sum + height, 0) + Math.max(0, toasts.length - 1) * gap}px`);\n const targetHeight = outlet.getBoundingClientRect().height;\n if (animateStack && Math.abs(renderedHeight - targetHeight) >= 1) {\n const baseline = outlet.style.height;\n const handle = animateSize(outlet, {\n keyframes: {height: [`${renderedHeight}px`, `${targetHeight}px`]},\n role: 'layout',\n cleanup: () => { outlet.style.height = baseline; },\n });\n const active = {baseline, handle};\n stackHeightMotions.set(outlet, active);\n void handle.finished.finally(() => {\n if (stackHeightMotions.get(outlet) !== active) return;\n stackHeightMotions.delete(outlet);\n outlet.style.height = baseline;\n });\n }\n let expandedOffset = 0;\n toasts.forEach((toast, index) => {\n const itemDepth = Math.min(index, 3);\n const offset = expanded ? expandedOffset * direction : itemDepth * peek * direction;\n const scale = expanded ? 1 : Math.max(0.91, 1 - itemDepth * 0.03);\n const opacity = expanded ? 1 : Math.max(0.72, 1 - itemDepth * 0.08);\n if (expanded) expandedOffset += (heights[index] ?? 0) + gap;\n toast.dataset.stackIndex = String(index);\n toast.dataset.swipeAxis = outlet.dataset.position?.endsWith('left') || outlet.dataset.position?.endsWith('right') ? 'x' : 'y';\n toast.style.setProperty('--ui-toast-stack-index', String(index));\n toast.style.setProperty('--ui-toast-stack-depth', String(itemDepth));\n toast.style.setProperty('--ui-toast-stack-direction', String(direction));\n toast.style.setProperty('--ui-toast-outside', direction > 0 ? '-100%' : '100%');\n toast.style.setProperty('--ui-toast-stack-offset', `${offset}px`);\n toast.style.setProperty('--ui-toast-stack-scale', String(scale));\n toast.style.setProperty('--ui-toast-stack-opacity', String(opacity));\n toast.style.zIndex = String(toasts.length - index);\n const transform = `translateY(${offset}px) scale(${scale})`;\n if (toast.dataset.swiping === 'true') return;\n if (animateStack && toast.dataset.state === 'open') {\n createMotionPlan(toast).animate({opacity, transform}).role('layout').play();\n } else if (toast.dataset.state === 'open') {\n toast.style.opacity = String(opacity);\n toast.style.transform = transform;\n }\n });\n};\n\nconst requestDismiss = (toast: HTMLElement, reason: ToastDismissReason): void => {\n toast.dispatchEvent(new CustomEvent('ui:toast-dismiss-request', {detail: {reason}}));\n};\n\nconst enforceLimit = (outlet: HTMLElement, maxItems: number): void => {\n if (maxItems === 0) return;\n const active = activeToasts(outlet);\n active.slice(maxItems).forEach((toast) => requestDismiss(toast, 'api'));\n};\n\nconst syncToast = (root: HTMLElement, props: ToastProps): void => {\n const color = resolveToastColor(props.color, props.level);\n const hasDescription = root.dataset.description === 'true' || Boolean(props.description.trim());\n const hasMarker = color !== 'neutral' && props.variant !== 'solid' && props.variant !== 'default';\n const urgent = props.level === 'danger' || props.level === 'warning';\n Object.assign(root.dataset, {level: props.level, color, variant: props.variant, duration: String(props.duration), dismissible: String(props.dismissible)});\n root.setAttribute('role', urgent ? 'alert' : 'status');\n root.setAttribute('aria-live', urgent ? 'assertive' : 'polite');\n root.className = resolveStyle({part: toastStyles.parts.root, props: {variant: props.variant, color, hasDescription, hasMarker}, className: props.class});\n root.querySelector<HTMLElement>('[data-ui-toast-marker]')?.setAttribute('class', resolveStyle({part: toastStyles.parts.marker, props: {variant: props.variant, color}}));\n root.querySelectorAll<HTMLElement>('[data-ui-toast-content]').forEach((el) => { el.className = resolveStyle({part: toastStyles.parts.content, className: props.contentClass}); });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-title]').forEach((el) => { el.className = `text-sm font-medium ${resolveStyle({part: toastStyles.parts.title})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-description]').forEach((el) => { el.className = `text-sm ${resolveStyle({part: toastStyles.parts.description})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-close]').forEach((el) => { el.hidden = !props.dismissible; el.className = resolveStyle({part: toastStyles.parts.close, className: props.closeClass}); });\n};\n\nconst UiToast = (): TrellisAlpineComponent<ToastData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupStack = [];\n let deadline = 0;\n let timeout: number | null = null;\n let ticker: number | null = null;\n let previousDuration = 0;\n const pauseSources = new Set<ToastPauseSource>();\n const root = (): HTMLElement => { if (!rootEl) throw new Error('Toast has not been initialized.'); return rootEl; };\n const outlet = (): HTMLElement | null => root().parentElement?.matches('[data-ui-toast-outlet]') ? root().parentElement : null;\n const remainingNow = (): number => timeout === null ? bridge.getSnapshot().context.timer.remaining : Math.max(0, deadline - performance.now());\n const stopTimer = (): void => {\n if (timeout !== null) clearTimeout(timeout);\n if (ticker !== null) clearInterval(ticker);\n timeout = ticker = null;\n };\n const bridge = createAlpineMachine({\n schema: toastSchema, hooks: toastHooks,\n createMachine: ({props}) => createToastMachine(props, {\n prepareOpen: () => { root().dataset.state = 'opening'; syncToast(root(), bridge.getSnapshot().props); outlet() && syncToastStack(outlet()!, true); },\n finishOpen: () => { root().dataset.state = 'open'; outlet() && syncToastStack(outlet()!, true); },\n startTimer: () => {\n const remaining = bridge.getSnapshot().context.timer.remaining;\n if (remaining <= 0) return;\n deadline = performance.now() + remaining;\n timeout = window.setTimeout(() => bridge.send({type: 'DISMISS', reason: 'timeout'}), remaining);\n ticker = window.setInterval(() => bridge.send({type: 'TICK', remaining: remainingNow()}), 100);\n },\n stopTimer,\n prepareClose: () => { stopTimer(); root().dataset.state = 'closing'; outlet() && syncToastStack(outlet()!, true); },\n finishClose: (reason) => {\n const el = root();\n const parent = outlet();\n el.dataset.state = 'closed';\n dispatch({el, name: 'ui:dismiss', detail: {reason}});\n el.remove();\n if (parent) syncToastStack(parent, true);\n },\n syncProps: () => {\n const props = bridge.getSnapshot().props;\n syncToast(root(), props);\n if (props.duration !== previousDuration) { previousDuration = props.duration; bridge.send('DURATION_CHANGED'); }\n outlet() && syncToastStack(outlet()!);\n },\n }),\n });\n const addPause = (source: ToastPauseSource): void => {\n const wasEmpty = pauseSources.size === 0;\n pauseSources.add(source);\n if (wasEmpty) bridge.send({type: 'PAUSE', remaining: remainingNow()});\n };\n const removePause = (source: ToastPauseSource): void => {\n pauseSources.delete(source);\n if (pauseSources.size === 0) bridge.send('RESUME');\n };\n const component: TrellisAlpineComponent<ToastData> = {\n ...bridge,\n get isOpen() { return this.snapshot.current?.tags.includes('open') ?? false; },\n get isPaused() { return this.snapshot.current?.tags.includes('paused') ?? false; },\n get remaining() { return this.snapshot.current?.context.timer.remaining ?? 0; },\n init() {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n previousDuration = bridge.getSnapshot().props.duration;\n if (document.hidden) pauseSources.add('visibility');\n addListener({target: root(), event: 'click', handler: (event) => { const target = event.target; if (bridge.getSnapshot().props.dismissible && target instanceof Element && target.closest('[data-ui-toast-close]')) bridge.send({type: 'DISMISS', reason: 'close'}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-dismiss-request', handler: (event) => { const reason = event instanceof CustomEvent ? event.detail?.reason : 'api'; bridge.send({type: 'DISMISS', reason}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-pause-request', handler: (event) => {\n const paused = event instanceof CustomEvent && event.detail?.paused === true;\n paused ? addPause('outlet') : removePause('outlet');\n }, cleanup});\n addListener({target: document, event: 'visibilitychange', handler: () => document.hidden ? addPause('visibility') : removePause('visibility'), cleanup});\n addListener({target: root(), event: 'pointerdown', handler: (event) => {\n if (!(event instanceof PointerEvent) || !event.isPrimary || event.button !== 0) return;\n if (!bridge.getSnapshot().props.dismissible) return;\n if (event.target instanceof Element && event.target.closest('button, a, input, select, textarea')) return;\n const toast = root();\n const position = outlet()?.dataset.position ?? 'bottom-right';\n const horizontal = position.endsWith('left') || position.endsWith('right');\n const sign = horizontal\n ? position.endsWith('left') ? -1 : 1\n : position.startsWith('top') ? -1 : 1;\n const start = horizontal ? event.clientX : event.clientY;\n const startedAt = performance.now();\n const base = toastRestTransform(toast);\n const stackOpacity = Number.parseFloat(toast.style.getPropertyValue('--ui-toast-stack-opacity')) || 1;\n const delta = motionValue(0);\n replaceMotion(toast);\n addPause('gesture');\n toast.dataset.swiping = 'true';\n toast.setPointerCapture(event.pointerId);\n const unsubscribe = delta.on('change', (value) => {\n const translation = horizontal ? `translateX(${value}px)` : `translateY(${value}px)`;\n toast.style.transform = `${base} ${translation}`;\n const distance = Math.abs(value);\n const extent = horizontal ? toast.offsetWidth : toast.offsetHeight;\n toast.style.opacity = String(Math.max(0.35, stackOpacity * (1 - distance / Math.max(extent * 2, 1))));\n });\n const move = (moveEvent: PointerEvent): void => {\n if (moveEvent.pointerId !== event.pointerId) return;\n moveEvent.preventDefault();\n const positionNow = horizontal ? moveEvent.clientX : moveEvent.clientY;\n const raw = positionNow - start;\n delta.set(raw * sign >= 0 ? raw : raw * 0.2);\n };\n const finish = (endEvent: PointerEvent, cancelled = false): void => {\n if (endEvent.pointerId !== event.pointerId) return;\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', finish);\n window.removeEventListener('pointercancel', cancel);\n const distance = delta.get();\n const elapsed = Math.max(1, performance.now() - startedAt);\n const velocity = Math.abs(distance) / elapsed;\n const dismiss = !cancelled && distance * sign > 0 && (Math.abs(distance) >= 45 || velocity > 0.11);\n const settle = dismiss\n ? animate(delta, sign * (horizontal ? window.innerWidth : window.innerHeight), roles.gestureExit)\n : animate(delta, 0, {type: 'spring', ...roles.gestureSettle});\n const opacity = animate(toast, {opacity: dismiss ? 0 : stackOpacity}, roles.gestureExit);\n void Promise.allSettled([settle.finished, opacity.finished]).then(() => {\n unsubscribe();\n delete toast.dataset.swiping;\n removePause('gesture');\n if (dismiss) requestDismiss(toast, 'swipe');\n else {\n toast.style.opacity = String(stackOpacity);\n toast.style.transform = base;\n }\n });\n };\n const cancel = (cancelEvent: PointerEvent): void => finish(cancelEvent, true);\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', finish);\n window.addEventListener('pointercancel', cancel);\n }, cleanup});\n bridge.send('OPEN');\n },\n destroy() { stopTimer(); cleanup.forEach((dispose) => dispose()); cleanup = []; bridge.disconnect(); rootEl = null; },\n dismiss() { bridge.send({type: 'DISMISS', reason: 'api'}); },\n pause() { addPause('consumer'); },\n resume() { removePause('consumer'); },\n };\n return component;\n};\n\nconst closeIconSvg = (className: string): SVGSVGElement => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('viewBox', '0 0 32 32'); svg.setAttribute('aria-hidden', 'true'); svg.dataset.uiToastCloseIcon = ''; svg.setAttribute('class', className);\n const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');\n polygon.setAttribute('points', '17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16'); svg.append(polygon);\n return svg;\n};\n\nconst buildToast = (detail: ToastDetail, fallbackDuration: number): HTMLElement => {\n const level = isToastLevel(detail.level) ? detail.level : 'info';\n const variant = isToastVariant(detail.variant) ? detail.variant : 'default';\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n const duration = normalizedDuration(detail.duration, fallbackDuration);\n const dismissible = typeof detail.dismissible === 'boolean' ? detail.dismissible : true;\n const root = document.createElement('div');\n root.setAttribute('x-data', 'UiToast');\n root.setAttribute('x-ui-transition:opening', \"$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()\");\n root.setAttribute('x-ui-transition:closing', \"$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()\");\n Object.assign(root.dataset, {uiToast: '', uiToastRecipe: '', uiSurface: '+3', uiElevation: '4', level, color: isToastColor(detail.color) ? detail.color : 'auto', variant, duration: String(duration), dismissible: String(dismissible), description: String(Boolean(description.trim())), state: 'closed'});\n root.setAttribute('aria-atomic', 'true');\n root.style.opacity = '0';\n const marker = document.createElement('span'); marker.dataset.uiToastMarker = ''; marker.setAttribute('aria-hidden', 'true'); root.append(marker);\n const content = document.createElement('div'); content.dataset.uiToastContent = '';\n if (title) { const el = document.createElement('strong'); el.dataset.uiToastTitle = ''; el.textContent = title; content.append(el); }\n if (description) { const el = document.createElement('div'); el.dataset.uiToastDescription = ''; el.textContent = description; content.append(el); }\n root.append(content);\n if (dismissible) { const close = document.createElement('button'); close.type = 'button'; close.dataset.uiToastClose = ''; close.setAttribute('aria-label', 'Dismiss notification'); close.append(closeIconSvg(resolveStyle({part: toastStyles.parts.closeIcon}))); root.append(close); }\n return root;\n};\n\nconst UiToastOutlet = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<ToastOutletData> => {\n const expandedSources = new Set<'pointer' | 'focus'>();\n let rootEl: HTMLElement | null = null;\n const broadcastPause = (paused: boolean): void => {\n rootEl?.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]').forEach((toast) => {\n toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused}}));\n });\n };\n const addExpandedSource = (source: 'pointer' | 'focus'): void => {\n const wasEmpty = expandedSources.size === 0;\n expandedSources.add(source);\n if (!rootEl || !wasEmpty) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n rootEl.dataset.stackExpanded = 'true';\n broadcastPause(true);\n syncToastStack(rootEl, true, fromHeight);\n };\n const removeExpandedSource = (source: 'pointer' | 'focus'): void => {\n expandedSources.delete(source);\n if (!rootEl || expandedSources.size > 0) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n delete rootEl.dataset.stackExpanded;\n broadcastPause(false);\n syncToastStack(rootEl, true, fromHeight);\n };\n return ({\n props: null as unknown as ToastOutletProps, cleanup: [],\n init() {\n this.props = defineProps({el: this.$el, schema: toastOutletSchema, onChange: () => this.sync()});\n const root = this.$el as HTMLElement;\n rootEl = root;\n this.sync();\n this.cleanup.push(hover(root, () => {\n addExpandedSource('pointer');\n return () => removeExpandedSource('pointer');\n }));\n addListener({target: root, event: 'focusin', handler: () => addExpandedSource('focus'), cleanup: this.cleanup});\n addListener({target: root, event: 'focusout', handler: () => queueMicrotask(() => { if (!root.contains(document.activeElement)) removeExpandedSource('focus'); }), cleanup: this.cleanup});\n addListener({target: document, event: 'ui:toast', handler: (event) => this.add(event instanceof CustomEvent ? event.detail as ToastDetail : {}), cleanup: this.cleanup});\n queueMicrotask(() => enforceLimit(root, this.props.maxItems));\n },\n destroy() {\n if (rootEl) stopToastStackHeightMotion(rootEl);\n this.props.disconnect();\n this.cleanup.forEach((dispose) => dispose());\n this.cleanup = [];\n expandedSources.clear();\n rootEl = null;\n },\n sync() {\n const root = this.$el as HTMLElement;\n root.id = this.props.id; root.dataset.position = this.props.position; root.dataset.duration = String(this.props.duration); root.dataset.maxItems = String(this.props.maxItems);\n root.className = resolveStyle({part: toastStyles.parts.outlet, props: {position: this.props.position}, className: this.props.class});\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n add(detail) {\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n if (!title.trim() && !description.trim()) return;\n const root = this.$el as HTMLElement;\n const toast = buildToast(detail, this.props.duration);\n root.prepend(toast);\n AlpineInstance.initTree(toast as HTMLElement & Alpine.ElementWithXAttributes);\n if (expandedSources.size > 0) toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused: true}}));\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n });\n};\n\nconst registerToast = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiToast', UiToast)(AlpineInstance);\n defineAlpineData(\n 'UiToastOutlet',\n () => UiToastOutlet(AlpineInstance),\n )(AlpineInstance);\n};\n\nexport {registerToast, UiToast, UiToastOutlet};\nexport type {ToastData, ToastDetail, ToastOutletData, ToastTransition, UiToastApi, UiToastOutletApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerToast as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerToast = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerToast};\nexport default registerToast;\nexport * from './index';\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.generated-u0Ueamvw.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../../../../../../../../../node_modules/.pnpm/motion-dom@12.42.0/node_modules/motion-dom/dist/es/gestures/hover.mjs","../../../../../../../../client/src/components/toast/contract.ts","../../../../../../../../client/src/components/toast/machine.ts","../../../../../../../../client/src/components/toast/styles.ts","../../../../../../../../client/src/components/toast/index.ts","../../../../../../../../client/src/components/toast/entry.generated.ts"],"sourcesContent":["const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n//# sourceMappingURL=is-active.mjs.map\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n//# sourceMappingURL=setup.mjs.map\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n//# sourceMappingURL=hover.mjs.map\n","import {bool, number, oneOf, string, type PropState, type SchemaToProps} from '../../runtime';\n\nconst TOAST_LEVELS = ['info', 'success', 'warning', 'danger', 'debug'] as const;\nconst TOAST_COLORS = ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_RESOLVED_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOAST_VARIANTS = ['default', 'soft', 'surface', 'solid', 'outline'] as const;\nconst TOAST_POSITIONS = ['top-right', 'top-left', 'top-center', 'bottom-right', 'bottom-left', 'bottom-center'] as const;\n\nconst toastSchema = {\n level: oneOf(TOAST_LEVELS, 'info'),\n color: oneOf(TOAST_COLORS, 'auto'),\n variant: oneOf(TOAST_VARIANTS, 'default'),\n title: string,\n description: string,\n duration: number.default(5000).min(0),\n dismissible: bool.default(true),\n class: string,\n contentClass: string,\n closeClass: string,\n};\n\nconst toastOutletSchema = {\n id: string.default('ui-toast-root'),\n position: oneOf(TOAST_POSITIONS, 'top-right'),\n duration: number.default(5000).min(0),\n includeMessages: bool.default(true),\n maxItems: number.default(3).min(0),\n class: string,\n};\n\ntype ToastLevel = typeof TOAST_LEVELS[number];\ntype ToastColor = typeof TOAST_COLORS[number];\ntype ToastResolvedColor = typeof TOAST_RESOLVED_COLORS[number];\ntype ToastVariant = typeof TOAST_VARIANTS[number];\ntype ToastPosition = typeof TOAST_POSITIONS[number];\ntype ToastProps = SchemaToProps<typeof toastSchema>;\ntype ToastOutletProps = PropState<typeof toastOutletSchema>;\n\nexport {TOAST_COLORS, TOAST_LEVELS, TOAST_POSITIONS, TOAST_RESOLVED_COLORS, TOAST_VARIANTS, toastOutletSchema, toastSchema};\nexport type {ToastColor, ToastLevel, ToastOutletProps, ToastPosition, ToastProps, ToastResolvedColor, ToastVariant};\n","import {createMachine, type Machine} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {ToastProps} from './contract';\n\ntype ToastDismissReason = 'timeout' | 'close' | 'api' | 'swipe';\n\ntype ToastContext = {\n timer: {remaining: number; paused: boolean};\n dismissal: {reason: ToastDismissReason};\n};\n\ntype ToastMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n startTimer(): void;\n stopTimer(): void;\n prepareClose(): void;\n finishClose(reason: ToastDismissReason): void;\n syncProps(): void;\n};\n\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: () => ({}), onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, Record<string, never>, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: ({context}) => ({reason: context.dismissal.reason}),\n onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<ToastContext, ToastProps, {reason: ToastDismissReason}, 'closing'>);\nconst toastHooks = [openingHook, closingHook] as const;\n\nconst createToastMachine = (props: ToastProps, effects: ToastMachineEffects): Machine<ToastContext, ToastProps> => createMachine<ToastContext, ToastProps>({\n initial: 'idle',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n },\n states: {\n idle: {on: {OPEN: {target: 'opening', effects: 'prepareOpen'}}},\n opening: {\n tags: ['visible', 'expanded', 'transitioning'],\n on: {\n OPENING_DONE: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n OPENING_ERROR: [\n {target: 'open.persistent', guard: 'isPersistent', effects: 'finishOpen'},\n {target: 'open.paused', guard: 'isPaused', effects: 'finishOpen'},\n {target: 'open.running', effects: 'finishOpen'},\n ],\n PAUSE: {reduce: 'pause'},\n RESUME: {reduce: 'resume'},\n DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'},\n },\n },\n open: {\n id: 'open', initial: 'running', tags: ['visible', 'expanded', 'open'],\n on: {DISMISS: {target: 'closing', reduce: 'dismiss', effects: 'prepareClose'}},\n states: {\n persistent: {on: {PAUSE: {reduce: 'pause'}, RESUME: {reduce: 'resume'}, DURATION_CHANGED: {target: 'running', guard: 'hasDuration', reduce: 'resetDuration'}}},\n running: {entry: 'startTimer', exit: 'stopTimer', on: {PAUSE: {target: 'paused', reduce: 'pause'}, TICK: {reduce: 'tick'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {target: 'running', reduce: 'resetDuration'}]}},\n paused: {tags: ['paused'], on: {RESUME: {target: 'running', reduce: 'resume'}, DURATION_CHANGED: [{target: 'persistent', guard: 'isPersistent'}, {reduce: 'resetDuration'}]}},\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'removed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'removed', effects: 'finishClose'},\n },\n },\n removed: {tags: ['removed']},\n },\n}, {\n context: {timer: {remaining: props.duration, paused: false}, dismissal: {reason: 'api'}}, props,\n reducers: {\n replaceProps: ({context, event, props: currentProps}) => {\n const nextProps = event.props as ToastProps | undefined;\n return {context, props: nextProps ?? currentProps};\n },\n pause: ({context, event}) => ({context: {...context, timer: {remaining: typeof event.remaining === 'number' ? event.remaining : context.timer.remaining, paused: true}}}),\n resume: ({context}) => ({context: {...context, timer: {...context.timer, paused: false}}}),\n tick: ({context, event}) => ({context: {...context, timer: {...context.timer, remaining: Math.max(0, Number(event.remaining) || 0)}}}),\n resetDuration: ({context, props: currentProps}) => ({context: {...context, timer: {...context.timer, remaining: currentProps.duration}}}),\n dismiss: ({context, event}) => ({context: {...context, dismissal: {\n reason: event.reason === 'timeout' || event.reason === 'close' || event.reason === 'swipe'\n ? event.reason\n : 'api' as ToastDismissReason,\n }}}),\n },\n guards: {\n isPersistent: ({props: currentProps}) => currentProps.duration === 0,\n hasDuration: ({props: currentProps}) => currentProps.duration > 0,\n isPaused: ({context}) => context.timer.paused,\n },\n effects: {\n prepareOpen: effects.prepareOpen, finishOpen: effects.finishOpen,\n startTimer: effects.startTimer, stopTimer: effects.stopTimer,\n prepareClose: effects.prepareClose, syncProps: effects.syncProps,\n finishClose: ({context}) => effects.finishClose(context.dismissal.reason),\n },\n});\n\nexport {createToastMachine, toastHooks};\nexport type {ToastContext, ToastDismissReason, ToastMachineEffects};\n","import {defineStyles} from '../../runtime';\n\nconst toastStyles = defineStyles({definition: {\n component: 'ui.toast',\n parts: {\n root: {\n base: [\n 'group/toast pointer-events-auto relative grid w-full min-w-0 items-center gap-x-3 gap-y-1 overflow-hidden rounded-overlay-md px-3 py-2.5 outline-none',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n variant: {\n default: '',\n soft: '',\n surface: '',\n solid: '',\n outline: '',\n },\n color: {\n neutral: '',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n hasMarker: {\n true: 'grid-cols-[auto_minmax(0,1fr)_auto]',\n false: 'grid-cols-[minmax(0,1fr)_auto]',\n },\n hasDescription: {\n true: '',\n false: '',\n },\n },\n defaults: {\n variant: 'default',\n color: 'neutral',\n hasMarker: false,\n hasDescription: false,\n },\n },\n marker: {\n base: 'size-2 self-center rounded-full',\n variants: {\n color: {\n neutral: 'hidden',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n default: 'hidden',\n soft: '',\n surface: '',\n solid: 'hidden',\n outline: '',\n },\n },\n defaults: {\n color: 'neutral',\n variant: 'default',\n },\n },\n content: {\n base: 'grid min-w-0 gap-0.5 self-center',\n },\n title: {\n base: 'min-w-0',\n },\n description: {\n base: 'min-w-0',\n },\n close: {\n base: [\n '-mr-1 inline-flex size-control-md shrink-0 items-center justify-center self-center rounded-control-sm outline-none',\n ],\n },\n closeIcon: {\n base: 'size-icon fill-current',\n },\n outlet: {\n base: [\n 'pointer-events-none fixed z-toast flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2',\n ],\n variants: {\n position: {\n 'top-right': 'right-4 top-4 justify-items-end',\n 'top-left': 'left-4 top-4 justify-items-start',\n 'top-center': 'left-1/2 top-4 -translate-x-1/2 justify-items-center',\n 'bottom-right': 'bottom-4 right-4 justify-items-end',\n 'bottom-left': 'bottom-4 left-4 justify-items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 justify-items-center',\n },\n },\n defaults: {\n position: 'top-right',\n },\n },\n },\n}});\n\nexport {toastStyles};\n","import type Alpine from 'alpinejs';\nimport {animate, hover, motionValue} from 'motion';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type AlpineMachine,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {defineProps} from '@client/runtime/codecs';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {animateSize, createMotionPlan, roles, type MotionHandle} from '@client/motion';\nimport {replaceMotion} from '@client/motion/registry';\nimport {addListener, dispatch, type CleanupStack} from '@client/utils';\nimport {\n toastOutletSchema, toastSchema, type ToastColor, type ToastLevel, type ToastOutletProps,\n type ToastProps, type ToastResolvedColor, type ToastVariant,\n} from './contract';\nimport {createToastMachine, toastHooks, type ToastContext, type ToastDismissReason} from './machine';\nimport {toastStyles} from './styles';\n\ntype ToastTransitionName = (typeof toastHooks)[number]['name'];\ntype ToastTransition<TName extends ToastTransitionName = ToastTransitionName> = TransitionForHook<\n Extract<(typeof toastHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype ToastDetail = {description?: unknown; title?: unknown; color?: unknown; level?: unknown; variant?: unknown; duration?: unknown; dismissible?: unknown};\ntype ToastPauseSource = 'outlet' | 'visibility' | 'consumer' | 'gesture';\n\n/**\n * Public Alpine API for `ui.toast`.\n *\n * @public\n */\ninterface UiToastApi {\n /** Whether the opening transition has settled. */\n readonly isOpen: boolean;\n /** Whether any pause source currently holds the lifetime timer. */\n readonly isPaused: boolean;\n /** Auto-dismiss lifetime remaining in milliseconds. */\n readonly remaining: number;\n /** Dismisses the notification through its closing transition. */\n dismiss(): void;\n /** Adds the consumer pause source. */\n pause(): void;\n /** Releases the consumer pause source. */\n resume(): void;\n}\n\n/**\n * Public Alpine API for `ui.toast.outlet`.\n *\n * @public\n */\ninterface UiToastOutletApi {\n /** Adds a notification using the same lifecycle as server-rendered markup. */\n add(detail: ToastDetail): void;\n}\n\ntype ToastData = AlpineMachine<ToastContext, ToastProps, typeof toastHooks> & UiToastApi & {init(): void; destroy(): void};\ntype ToastOutletData = UiToastOutletApi & {props: ToastOutletProps; cleanup: CleanupStack; sync(): void; init(): void; destroy(): void};\n\nconst isToastLevel = (value: unknown): value is ToastLevel => ['info', 'success', 'warning', 'danger', 'debug'].includes(String(value));\nconst isToastColor = (value: unknown): value is ToastColor => ['auto', 'neutral', 'accent', 'success', 'warning', 'danger'].includes(String(value));\nconst isToastVariant = (value: unknown): value is ToastVariant => ['default', 'soft', 'surface', 'solid', 'outline'].includes(String(value));\nconst toastColorForLevel = (level: ToastLevel): ToastResolvedColor => level === 'info' ? 'accent' : level === 'success' || level === 'warning' || level === 'danger' ? level : 'neutral';\nconst resolveToastColor = (color: unknown, level: ToastLevel): ToastResolvedColor => isToastColor(color) && color !== 'auto' ? color : toastColorForLevel(level);\nconst normalizedDuration = (value: unknown, fallback: number): number => {\n const duration = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(duration) && duration >= 0 ? duration : fallback;\n};\n\nconst toastRestTransform = (toast: HTMLElement): string => {\n const style = toast.style;\n const offset = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-offset')) || 0;\n const scale = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-scale')) || 1;\n return `translateY(${offset}px) scale(${scale})`;\n};\n\nconst activeToasts = (outlet: HTMLElement): HTMLElement[] => Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'))\n .filter((toast) => toast.dataset.state !== 'closing' && toast.dataset.state !== 'closed');\n\nconst stackHeightMotions = new WeakMap<HTMLElement, {baseline: string; handle: MotionHandle}>();\n\nconst stopToastStackHeightMotion = (outlet: HTMLElement): void => {\n const active = stackHeightMotions.get(outlet);\n if (!active) return;\n stackHeightMotions.delete(outlet);\n active.handle.stop();\n outlet.style.height = active.baseline;\n};\n\nconst syncToastStack = (outlet: HTMLElement, animateStack = false, fromHeight?: number): void => {\n const renderedHeight = fromHeight ?? outlet.getBoundingClientRect().height;\n stopToastStackHeightMotion(outlet);\n const toasts = Array.from(outlet.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]'));\n outlet.dataset.stack = toasts.length > 1 ? 'collapsed' : 'single';\n const style = getComputedStyle(outlet);\n const gap = Number.parseFloat(style.rowGap || style.gap || '0') || 0;\n const heights = toasts.map((toast) => Math.ceil(toast.scrollHeight || toast.getBoundingClientRect().height));\n const peek = Number.parseFloat(style.getPropertyValue('--ui-toast-stack-peek')) || 8;\n const direction = outlet.dataset.position?.startsWith('bottom') ? -1 : 1;\n const expanded = outlet.dataset.stackExpanded === 'true';\n const depth = Math.min(Math.max(0, toasts.length - 1), 3);\n outlet.style.setProperty('--ui-toast-front-height', `${heights[0] ?? 0}px`);\n outlet.style.setProperty('--ui-toast-stack-height', `${(heights[0] ?? 0) + depth * peek}px`);\n outlet.style.setProperty('--ui-toast-stack-expanded-height', `${heights.reduce((sum, height) => sum + height, 0) + Math.max(0, toasts.length - 1) * gap}px`);\n const targetHeight = outlet.getBoundingClientRect().height;\n if (animateStack && Math.abs(renderedHeight - targetHeight) >= 1) {\n const baseline = outlet.style.height;\n const handle = animateSize(outlet, {\n keyframes: {height: [`${renderedHeight}px`, `${targetHeight}px`]},\n role: 'layout',\n cleanup: () => { outlet.style.height = baseline; },\n });\n const active = {baseline, handle};\n stackHeightMotions.set(outlet, active);\n void handle.finished.finally(() => {\n if (stackHeightMotions.get(outlet) !== active) return;\n stackHeightMotions.delete(outlet);\n outlet.style.height = baseline;\n });\n }\n let expandedOffset = 0;\n toasts.forEach((toast, index) => {\n const itemDepth = Math.min(index, 3);\n const offset = expanded ? expandedOffset * direction : itemDepth * peek * direction;\n const scale = expanded ? 1 : Math.max(0.91, 1 - itemDepth * 0.03);\n const opacity = expanded ? 1 : Math.max(0.72, 1 - itemDepth * 0.08);\n if (expanded) expandedOffset += (heights[index] ?? 0) + gap;\n toast.dataset.stackIndex = String(index);\n toast.dataset.swipeAxis = outlet.dataset.position?.endsWith('left') || outlet.dataset.position?.endsWith('right') ? 'x' : 'y';\n toast.style.setProperty('--ui-toast-stack-index', String(index));\n toast.style.setProperty('--ui-toast-stack-depth', String(itemDepth));\n toast.style.setProperty('--ui-toast-stack-direction', String(direction));\n toast.style.setProperty('--ui-toast-outside', direction > 0 ? '-100%' : '100%');\n toast.style.setProperty('--ui-toast-stack-offset', `${offset}px`);\n toast.style.setProperty('--ui-toast-stack-scale', String(scale));\n toast.style.setProperty('--ui-toast-stack-opacity', String(opacity));\n toast.style.zIndex = String(toasts.length - index);\n const transform = `translateY(${offset}px) scale(${scale})`;\n if (toast.dataset.swiping === 'true') return;\n if (animateStack && toast.dataset.state === 'open') {\n createMotionPlan(toast).animate({opacity, transform}).role('layout').play();\n } else if (toast.dataset.state === 'open') {\n toast.style.opacity = String(opacity);\n toast.style.transform = transform;\n }\n });\n};\n\nconst requestDismiss = (toast: HTMLElement, reason: ToastDismissReason): void => {\n toast.dispatchEvent(new CustomEvent('ui:toast-dismiss-request', {detail: {reason}}));\n};\n\nconst enforceLimit = (outlet: HTMLElement, maxItems: number): void => {\n if (maxItems === 0) return;\n const active = activeToasts(outlet);\n active.slice(maxItems).forEach((toast) => requestDismiss(toast, 'api'));\n};\n\nconst syncToast = (root: HTMLElement, props: ToastProps): void => {\n const color = resolveToastColor(props.color, props.level);\n const hasDescription = root.dataset.description === 'true' || Boolean(props.description.trim());\n const hasMarker = color !== 'neutral' && props.variant !== 'solid' && props.variant !== 'default';\n const urgent = props.level === 'danger' || props.level === 'warning';\n Object.assign(root.dataset, {level: props.level, color, variant: props.variant, duration: String(props.duration), dismissible: String(props.dismissible)});\n root.setAttribute('role', urgent ? 'alert' : 'status');\n root.setAttribute('aria-live', urgent ? 'assertive' : 'polite');\n root.className = resolveStyle({part: toastStyles.parts.root, props: {variant: props.variant, color, hasDescription, hasMarker}, className: props.class});\n root.querySelector<HTMLElement>('[data-ui-toast-marker]')?.setAttribute('class', resolveStyle({part: toastStyles.parts.marker, props: {variant: props.variant, color}}));\n root.querySelectorAll<HTMLElement>('[data-ui-toast-content]').forEach((el) => { el.className = resolveStyle({part: toastStyles.parts.content, className: props.contentClass}); });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-title]').forEach((el) => { el.className = `text-sm font-medium ${resolveStyle({part: toastStyles.parts.title})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-description]').forEach((el) => { el.className = `text-sm ${resolveStyle({part: toastStyles.parts.description})}`; });\n root.querySelectorAll<HTMLElement>('[data-ui-toast-close]').forEach((el) => { el.hidden = !props.dismissible; el.className = resolveStyle({part: toastStyles.parts.close, className: props.closeClass}); });\n};\n\nconst UiToast = (): TrellisAlpineComponent<ToastData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let cleanup: CleanupStack = [];\n let deadline = 0;\n let timeout: number | null = null;\n let ticker: number | null = null;\n let previousDuration = 0;\n const pauseSources = new Set<ToastPauseSource>();\n const root = (): HTMLElement => { if (!rootEl) throw new Error('Toast has not been initialized.'); return rootEl; };\n const outlet = (): HTMLElement | null => root().parentElement?.matches('[data-ui-toast-outlet]') ? root().parentElement : null;\n const remainingNow = (): number => timeout === null ? bridge.getSnapshot().context.timer.remaining : Math.max(0, deadline - performance.now());\n const stopTimer = (): void => {\n if (timeout !== null) clearTimeout(timeout);\n if (ticker !== null) clearInterval(ticker);\n timeout = ticker = null;\n };\n const bridge = createAlpineMachine({\n schema: toastSchema, hooks: toastHooks,\n createMachine: ({props}) => createToastMachine(props, {\n prepareOpen: () => { root().dataset.state = 'opening'; syncToast(root(), bridge.getSnapshot().props); outlet() && syncToastStack(outlet()!, true); },\n finishOpen: () => { root().dataset.state = 'open'; outlet() && syncToastStack(outlet()!, true); },\n startTimer: () => {\n const remaining = bridge.getSnapshot().context.timer.remaining;\n if (remaining <= 0) return;\n deadline = performance.now() + remaining;\n timeout = window.setTimeout(() => bridge.send({type: 'DISMISS', reason: 'timeout'}), remaining);\n ticker = window.setInterval(() => bridge.send({type: 'TICK', remaining: remainingNow()}), 100);\n },\n stopTimer,\n prepareClose: () => { stopTimer(); root().dataset.state = 'closing'; outlet() && syncToastStack(outlet()!, true); },\n finishClose: (reason) => {\n const el = root();\n const parent = outlet();\n el.dataset.state = 'closed';\n dispatch({el, name: 'ui:dismiss', detail: {reason}});\n el.remove();\n if (parent) syncToastStack(parent, true);\n },\n syncProps: () => {\n const props = bridge.getSnapshot().props;\n syncToast(root(), props);\n if (props.duration !== previousDuration) { previousDuration = props.duration; bridge.send('DURATION_CHANGED'); }\n outlet() && syncToastStack(outlet()!);\n },\n }),\n });\n const addPause = (source: ToastPauseSource): void => {\n const wasEmpty = pauseSources.size === 0;\n pauseSources.add(source);\n if (wasEmpty) bridge.send({type: 'PAUSE', remaining: remainingNow()});\n };\n const removePause = (source: ToastPauseSource): void => {\n pauseSources.delete(source);\n if (pauseSources.size === 0) bridge.send('RESUME');\n };\n const component: TrellisAlpineComponent<ToastData> = {\n ...bridge,\n get isOpen() { return this.snapshot.current?.tags.includes('open') ?? false; },\n get isPaused() { return this.snapshot.current?.tags.includes('paused') ?? false; },\n get remaining() { return this.snapshot.current?.context.timer.remaining ?? 0; },\n init() {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n previousDuration = bridge.getSnapshot().props.duration;\n if (document.hidden) pauseSources.add('visibility');\n addListener({target: root(), event: 'click', handler: (event) => { const target = event.target; if (bridge.getSnapshot().props.dismissible && target instanceof Element && target.closest('[data-ui-toast-close]')) bridge.send({type: 'DISMISS', reason: 'close'}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-dismiss-request', handler: (event) => { const reason = event instanceof CustomEvent ? event.detail?.reason : 'api'; bridge.send({type: 'DISMISS', reason}); }, cleanup});\n addListener({target: root(), event: 'ui:toast-pause-request', handler: (event) => {\n const paused = event instanceof CustomEvent && event.detail?.paused === true;\n paused ? addPause('outlet') : removePause('outlet');\n }, cleanup});\n addListener({target: document, event: 'visibilitychange', handler: () => document.hidden ? addPause('visibility') : removePause('visibility'), cleanup});\n addListener({target: root(), event: 'pointerdown', handler: (event) => {\n if (!(event instanceof PointerEvent) || !event.isPrimary || event.button !== 0) return;\n if (!bridge.getSnapshot().props.dismissible) return;\n if (event.target instanceof Element && event.target.closest('button, a, input, select, textarea')) return;\n const toast = root();\n const position = outlet()?.dataset.position ?? 'bottom-right';\n const horizontal = position.endsWith('left') || position.endsWith('right');\n const sign = horizontal\n ? position.endsWith('left') ? -1 : 1\n : position.startsWith('top') ? -1 : 1;\n const start = horizontal ? event.clientX : event.clientY;\n const startedAt = performance.now();\n const base = toastRestTransform(toast);\n const stackOpacity = Number.parseFloat(toast.style.getPropertyValue('--ui-toast-stack-opacity')) || 1;\n const delta = motionValue(0);\n replaceMotion(toast);\n addPause('gesture');\n toast.dataset.swiping = 'true';\n toast.setPointerCapture(event.pointerId);\n const unsubscribe = delta.on('change', (value) => {\n const translation = horizontal ? `translateX(${value}px)` : `translateY(${value}px)`;\n toast.style.transform = `${base} ${translation}`;\n const distance = Math.abs(value);\n const extent = horizontal ? toast.offsetWidth : toast.offsetHeight;\n toast.style.opacity = String(Math.max(0.35, stackOpacity * (1 - distance / Math.max(extent * 2, 1))));\n });\n const move = (moveEvent: PointerEvent): void => {\n if (moveEvent.pointerId !== event.pointerId) return;\n moveEvent.preventDefault();\n const positionNow = horizontal ? moveEvent.clientX : moveEvent.clientY;\n const raw = positionNow - start;\n delta.set(raw * sign >= 0 ? raw : raw * 0.2);\n };\n const finish = (endEvent: PointerEvent, cancelled = false): void => {\n if (endEvent.pointerId !== event.pointerId) return;\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', finish);\n window.removeEventListener('pointercancel', cancel);\n const distance = delta.get();\n const elapsed = Math.max(1, performance.now() - startedAt);\n const velocity = Math.abs(distance) / elapsed;\n const dismiss = !cancelled && distance * sign > 0 && (Math.abs(distance) >= 45 || velocity > 0.11);\n const settle = dismiss\n ? animate(delta, sign * (horizontal ? window.innerWidth : window.innerHeight), roles.gestureExit)\n : animate(delta, 0, {type: 'spring', ...roles.gestureSettle});\n const opacity = animate(toast, {opacity: dismiss ? 0 : stackOpacity}, roles.gestureExit);\n void Promise.allSettled([settle.finished, opacity.finished]).then(() => {\n unsubscribe();\n delete toast.dataset.swiping;\n removePause('gesture');\n if (dismiss) requestDismiss(toast, 'swipe');\n else {\n toast.style.opacity = String(stackOpacity);\n toast.style.transform = base;\n }\n });\n };\n const cancel = (cancelEvent: PointerEvent): void => finish(cancelEvent, true);\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', finish);\n window.addEventListener('pointercancel', cancel);\n }, cleanup});\n bridge.send('OPEN');\n },\n destroy() { stopTimer(); cleanup.forEach((dispose) => dispose()); cleanup = []; bridge.disconnect(); rootEl = null; },\n dismiss() { bridge.send({type: 'DISMISS', reason: 'api'}); },\n pause() { addPause('consumer'); },\n resume() { removePause('consumer'); },\n };\n return component;\n};\n\nconst closeIconSvg = (className: string): SVGSVGElement => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('viewBox', '0 0 32 32'); svg.setAttribute('aria-hidden', 'true'); svg.dataset.uiToastCloseIcon = ''; svg.setAttribute('class', className);\n const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');\n polygon.setAttribute('points', '17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16'); svg.append(polygon);\n return svg;\n};\n\nconst buildToast = (detail: ToastDetail, fallbackDuration: number): HTMLElement => {\n const level = isToastLevel(detail.level) ? detail.level : 'info';\n const variant = isToastVariant(detail.variant) ? detail.variant : 'default';\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n const duration = normalizedDuration(detail.duration, fallbackDuration);\n const dismissible = typeof detail.dismissible === 'boolean' ? detail.dismissible : true;\n const root = document.createElement('div');\n root.setAttribute('x-data', 'UiToast');\n root.setAttribute('x-ui-transition:opening', \"$ui.motion($transition).animate($ui.motion.presets.toast.in).role('presence').play()\");\n root.setAttribute('x-ui-transition:closing', \"$transition.data.reason === 'swipe' ? null : $ui.motion($transition).animate($ui.motion.presets.toast.out).role('presence').play()\");\n Object.assign(root.dataset, {uiToast: '', uiToastRecipe: '', uiSurface: '+3', uiElevation: '4', level, color: isToastColor(detail.color) ? detail.color : 'auto', variant, duration: String(duration), dismissible: String(dismissible), description: String(Boolean(description.trim())), state: 'closed'});\n root.setAttribute('aria-atomic', 'true');\n root.style.opacity = '0';\n const marker = document.createElement('span'); marker.dataset.uiToastMarker = ''; marker.setAttribute('aria-hidden', 'true'); root.append(marker);\n const content = document.createElement('div'); content.dataset.uiToastContent = '';\n if (title) { const el = document.createElement('strong'); el.dataset.uiToastTitle = ''; el.textContent = title; content.append(el); }\n if (description) { const el = document.createElement('div'); el.dataset.uiToastDescription = ''; el.textContent = description; content.append(el); }\n root.append(content);\n if (dismissible) { const close = document.createElement('button'); close.type = 'button'; close.dataset.uiToastClose = ''; close.setAttribute('aria-label', 'Dismiss notification'); close.append(closeIconSvg(resolveStyle({part: toastStyles.parts.closeIcon}))); root.append(close); }\n return root;\n};\n\nconst UiToastOutlet = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<ToastOutletData> => {\n const expandedSources = new Set<'pointer' | 'focus'>();\n let rootEl: HTMLElement | null = null;\n const broadcastPause = (paused: boolean): void => {\n rootEl?.querySelectorAll<HTMLElement>(':scope > [data-ui-toast]').forEach((toast) => {\n toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused}}));\n });\n };\n const addExpandedSource = (source: 'pointer' | 'focus'): void => {\n const wasEmpty = expandedSources.size === 0;\n expandedSources.add(source);\n if (!rootEl || !wasEmpty) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n rootEl.dataset.stackExpanded = 'true';\n broadcastPause(true);\n syncToastStack(rootEl, true, fromHeight);\n };\n const removeExpandedSource = (source: 'pointer' | 'focus'): void => {\n expandedSources.delete(source);\n if (!rootEl || expandedSources.size > 0) return;\n const fromHeight = rootEl.getBoundingClientRect().height;\n delete rootEl.dataset.stackExpanded;\n broadcastPause(false);\n syncToastStack(rootEl, true, fromHeight);\n };\n return ({\n props: null as unknown as ToastOutletProps, cleanup: [],\n init() {\n this.props = defineProps({el: this.$el, schema: toastOutletSchema, onChange: () => this.sync()});\n const root = this.$el as HTMLElement;\n rootEl = root;\n this.sync();\n this.cleanup.push(hover(root, () => {\n addExpandedSource('pointer');\n return () => removeExpandedSource('pointer');\n }));\n addListener({target: root, event: 'focusin', handler: () => addExpandedSource('focus'), cleanup: this.cleanup});\n addListener({target: root, event: 'focusout', handler: () => queueMicrotask(() => { if (!root.contains(document.activeElement)) removeExpandedSource('focus'); }), cleanup: this.cleanup});\n addListener({target: document, event: 'ui:toast', handler: (event) => this.add(event instanceof CustomEvent ? event.detail as ToastDetail : {}), cleanup: this.cleanup});\n queueMicrotask(() => enforceLimit(root, this.props.maxItems));\n },\n destroy() {\n if (rootEl) stopToastStackHeightMotion(rootEl);\n this.props.disconnect();\n this.cleanup.forEach((dispose) => dispose());\n this.cleanup = [];\n expandedSources.clear();\n rootEl = null;\n },\n sync() {\n const root = this.$el as HTMLElement;\n root.id = this.props.id; root.dataset.position = this.props.position; root.dataset.duration = String(this.props.duration); root.dataset.maxItems = String(this.props.maxItems);\n root.className = resolveStyle({part: toastStyles.parts.outlet, props: {position: this.props.position}, className: this.props.class});\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n add(detail) {\n const title = typeof detail.title === 'string' ? detail.title : '';\n const description = typeof detail.description === 'string' ? detail.description : '';\n if (!title.trim() && !description.trim()) return;\n const root = this.$el as HTMLElement;\n const toast = buildToast(detail, this.props.duration);\n root.prepend(toast);\n AlpineInstance.initTree(toast as HTMLElement & Alpine.ElementWithXAttributes);\n if (expandedSources.size > 0) toast.dispatchEvent(new CustomEvent('ui:toast-pause-request', {detail: {paused: true}}));\n syncToastStack(root); enforceLimit(root, this.props.maxItems);\n },\n });\n};\n\nconst registerToast = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiToast', UiToast)(AlpineInstance);\n defineAlpineData(\n 'UiToastOutlet',\n () => UiToastOutlet(AlpineInstance),\n )(AlpineInstance);\n};\n\nexport {registerToast, UiToast, UiToastOutlet};\nexport type {ToastData, ToastDetail, ToastOutletData, ToastTransition, UiToastApi, UiToastOutletApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerToast as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerToast = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerToast};\nexport default registerToast;\nexport * from './index';\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{f as e,l as t,n}from"./codecs-Cb1ns_47.js";import{i as r,o as i,s as a,t as o}from"./dom-qAeVl7dc.js";import{t as s}from"./alpine-machine-BS13dbK4.js";import{t as c}from"./number-BCZdoG0B.js";import{t as l}from"./alpine-data-CytyCyfk.js";import{n as u,t as d}from"./styles-TfvwVPGw.js";import{t as f}from"./merge-bindings-C8ewA_FD.js";import{t as p}from"./machine-Dqut4h89.js";import{n as m}from"./props-change-2xfsIAEN.js";var h={orientation:t([`vertical`,`horizontal`,`both`],`vertical`),type:t([`hover`,`always`,`scroll`],`hover`),fill:n,hideNative:n.default(!0),disabled:n,class:e,viewportClass:e,scrollbarClass:e,thumbClass:e,cornerClass:e},g=e=>({event:t})=>t.axis===e,_=[],v=({props:e,context:t,effects:n})=>p({type:`parallel`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`},MEASURED:{reduce:`setOverflow`,effects:`sync`}},states:{pointer:{initial:`outside`,states:{outside:{on:{POINTER_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`hovered`],on:{POINTER_LEFT:{target:`outside`,effects:`sync`}}}}},focus:{initial:`outside`,states:{outside:{on:{FOCUS_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`focused`],on:{FOCUS_LEFT:{target:`outside`,effects:`sync`}}}}},scrolling:{initial:`idle`,states:{idle:{on:{SCROLLED:{target:`active`,effects:`sync`}}},active:{tags:[`scrolling`],on:{SCROLL_SETTLED:{target:`idle`,effects:`sync`}}}}},dragging:{initial:`idle`,states:{idle:{on:{DRAG_STARTED:[{target:`vertical`,guard:g(`y`),effects:`sync`},{target:`horizontal`,guard:g(`x`),effects:`sync`}]}},vertical:{tags:[`dragging`,`dragging-y`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}},horizontal:{tags:[`dragging`,`dragging-x`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=m(e);return t?{props:t.props}:{}},setOverflow:({context:e,event:t})=>({context:{...e,overflow:{x:t.overflowX===!0,y:t.overflowY===!0}}})},effects:{sync:n.sync}}),y=d({definition:{component:`ui.scroll-area`,parts:{root:{base:[`relative min-w-0 overflow-hidden text-surface-ink`,`data-disabled:opacity-60`],variants:{fill:{true:`flex min-h-0 flex-1 flex-col`,false:``}},defaults:{fill:!1}},viewport:{base:[`min-h-0 min-w-0 outline-none`,`focus-visible:ui-focus-ring`],variants:{orientation:{vertical:`h-full w-full overflow-x-hidden overflow-y-auto`,horizontal:`h-full w-full overflow-x-auto overflow-y-hidden`,both:`size-full overflow-auto`},fill:{true:`flex-1`,false:``}},defaults:{orientation:`vertical`,fill:!1}},content:{base:`min-w-0`,variants:{orientation:{vertical:``,horizontal:`w-max min-w-full`,both:`min-w-full`}},defaults:{orientation:`vertical`}},scrollbar:{base:[`pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0`,`data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none`],variants:{orientation:{vertical:`bottom-scrollbar-inset right-scrollbar-inset top-scrollbar-inset w-scrollbar`,horizontal:`bottom-scrollbar-inset left-scrollbar-inset right-scrollbar-inset h-scrollbar`}},defaults:{orientation:`vertical`}},thumb:{base:[`absolute rounded-scrollbar-thumb bg-scrollbar-thumb`,`hover:bg-scrollbar-thumb-hover data-dragging:bg-scrollbar-thumb-hover`],variants:{orientation:{vertical:`left-0 top-0 w-full`,horizontal:`left-0 top-0 h-full`}},defaults:{orientation:`vertical`}},corner:{base:[`pointer-events-none absolute bottom-scrollbar-inset right-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb`,`bg-transparent opacity-0`,`data-visible:opacity-100`]}}}}),b=18,x=1e3,S=null,C=(e,t)=>e===`both`||e===`horizontal`&&t===`x`||e===`vertical`&&t===`y`,w=()=>{if(S)return S;let e=document.createElement(`div`),t=document.createElement(`div`);return e.dir=`rtl`,e.style.cssText=`position:absolute;left:-9999px;width:4px;height:1px;overflow:scroll;`,t.style.cssText=`width:8px;height:1px;`,e.append(t),document.body.append(e),e.scrollLeft=1,e.scrollLeft===0?S=`negative`:(e.scrollLeft=0,S=e.scrollLeft===0?`reverse`:`default`),e.remove(),S},T=e=>{let t=Math.max(0,e.scrollWidth-e.clientWidth);if(!r({el:e}))return e.scrollLeft;let n=w();return n===`negative`?-e.scrollLeft:n===`reverse`?t-e.scrollLeft:e.scrollLeft},E=(e,t)=>{let n=Math.max(0,e.scrollWidth-e.clientWidth),i=c(t,0,n);if(!r({el:e})){e.scrollLeft=i;return}let a=w();a===`negative`?e.scrollLeft=-i:a===`reverse`?e.scrollLeft=n-i:e.scrollLeft=i},D=e=>e.dataset.orientation===`horizontal`?`x`:`y`,O=e=>e instanceof HTMLElement,k=(e,t)=>{let n=e.querySelector(`:scope > ${t}`);return O(n)?n:null},A=()=>{let e=null,t=[],n=null,r=null,l=0,d=0,p=0,m=null,g=null,S=null,w=()=>{if(!e)throw Error(`Scroll Area has not been initialized.`);return e},O=()=>K.getCommittedSnapshot(),A=()=>O().props,j=e=>O().tags.includes(e),M=()=>{let e=w(),t=k(e,`[data-ui-scroll-area-viewport]`)??e;return{root:e,viewport:t,content:k(t,`[data-ui-scroll-area-content]`),verticalScrollbar:k(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"]`),horizontalScrollbar:k(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"]`),verticalThumb:k(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"] > [data-ui-scroll-area-thumb][data-orientation="vertical"]`),horizontalThumb:k(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"] > [data-ui-scroll-area-thumb][data-orientation="horizontal"]`),corner:k(e,`[data-ui-scroll-area-corner]`)}},N=()=>{p&&=(window.clearTimeout(p),0)},P=()=>{N(),p=window.setTimeout(()=>{p=0,K.send(`SCROLL_SETTLED`)},x)},F=(e=M())=>{let{viewport:t}=e;if(e.verticalThumb&&g){let n=g.maxOffset*c(t.scrollTop/g.maxScroll,0,1);e.verticalThumb.style.transform=`translate3d(0, ${n}px, 0)`}if(e.horizontalThumb&&S){let n=S.maxOffset*c(T(t)/S.maxScroll,0,1);e.horizontalThumb.style.transform=`translate3d(${n}px, 0, 0)`}},I=e=>{let{viewport:t}=e,n=(e,n,r,i)=>{if(!n||!r||!i)return r&&(r.style.width=``,r.style.height=``,r.style.transform=``),null;let a=e===`y`?n.clientHeight:n.clientWidth,o=e===`y`?t.clientHeight:t.clientWidth,s=e===`y`?t.scrollHeight:t.scrollWidth,c=Math.max(1,s-o),l=Math.min(a,Math.max(b,o/s*a)),u=Math.max(0,a-l);return e===`y`?(r.style.height=`${l}px`,r.style.width=``):(r.style.width=`${l}px`,r.style.height=``),{trackLength:a,thumbLength:l,maxOffset:u,maxScroll:c}},{overflow:r}=O().context;g=n(`y`,e.verticalScrollbar,e.verticalThumb,r.y),S=n(`x`,e.horizontalScrollbar,e.horizontalThumb,r.x),F(e)},L=e=>{let t=A(),{overflow:n}=O().context,r=j(`hovered`)||j(`focused`)||j(`scrolling`)||j(`dragging`),i=e=>e?t.type===`always`?!0:t.type===`scroll`?j(`scrolling`)||j(`dragging`):r:!1,o=i(n.y),s=i(n.x);[e.verticalScrollbar,e.verticalThumb].forEach(e=>{e&&a({el:e,attr:`data-visible`,present:o})}),[e.horizontalScrollbar,e.horizontalThumb].forEach(e=>{e&&a({el:e,attr:`data-visible`,present:s})}),[e.verticalScrollbar,e.horizontalScrollbar].forEach(e=>{e&&a({el:e,attr:`data-disabled`,present:t.disabled})}),e.verticalThumb&&a({el:e.verticalThumb,attr:`data-dragging`,present:j(`dragging-y`)}),e.horizontalThumb&&a({el:e.horizontalThumb,attr:`data-dragging`,present:j(`dragging-x`)}),e.corner&&a({el:e.corner,attr:`data-visible`,present:o&&s})},R=()=>{if(!m)return;let e=m;m=null;let t=M(),n=e.axis===`y`?t.verticalThumb:t.horizontalThumb;try{n?.releasePointerCapture?.(e.pointerId)}catch{}K.send({type:`DRAG_ENDED`,axis:e.axis})},z=()=>{let e=M(),t=A(),{overflow:n}=O().context;t.disabled&&m&&R(),a({el:e.root,attr:`data-overflow-x`,present:n.x}),a({el:e.root,attr:`data-overflow-y`,present:n.y}),a({el:e.root,attr:`data-scrolling`,present:j(`scrolling`)}),a({el:e.root,attr:`data-dragging`,present:j(`dragging`)}),a({el:e.root,attr:`data-disabled`,present:t.disabled}),i({el:e.viewport,attr:`data-orientation`,value:t.orientation}),a({el:e.viewport,attr:`data-hide-native`,present:t.hideNative}),I(e),L(e)},B=()=>{l||=requestAnimationFrame(()=>{l=0;let e=M(),t=A(),n=C(t.orientation,`x`)&&e.viewport.scrollWidth>e.viewport.clientWidth+1,r=C(t.orientation,`y`)&&e.viewport.scrollHeight>e.viewport.clientHeight+1,i=O().context.overflow;n!==i.x||r!==i.y?K.send({type:`MEASURED`,overflowX:n,overflowY:r}):(I(e),L(e))})},V=()=>{d||=requestAnimationFrame(()=>{d=0,F()})},H=()=>{V(),j(`scrolling`)||K.send(`SCROLLED`),(O().context.overflow.y&&!g||O().context.overflow.x&&!S)&&B(),P()},U=(e,t)=>{if(A().disabled)return;let n=M(),r=n.viewport,i=t===`y`?n.verticalScrollbar:n.horizontalScrollbar,a=t===`y`?n.verticalThumb:n.horizontalThumb,o=t===`y`?O().context.overflow.y:O().context.overflow.x;if(!i||!a||!o)return;let s=t===`y`?i.clientHeight:i.clientWidth,c=t===`y`?a.offsetHeight:a.offsetWidth,l=t===`y`?Math.max(0,r.scrollHeight-r.clientHeight):Math.max(0,r.scrollWidth-r.clientWidth);m={axis:t,pointerId:e.pointerId,startPointer:t===`y`?e.clientY:e.clientX,startScroll:t===`y`?r.scrollTop:T(r),trackLength:s,thumbLength:c,maxScroll:l};try{a.setPointerCapture?.(e.pointerId)}catch{m=null;return}N(),K.send({type:`DRAG_STARTED`,axis:t})},W=e=>{if(!m||m.pointerId!==e.pointerId)return;e.preventDefault();let{viewport:t}=M(),n=(m.axis===`y`?e.clientY:e.clientX)-m.startPointer,r=Math.max(1,m.trackLength-m.thumbLength),i=m.startScroll+n/r*m.maxScroll;m.axis===`y`?t.scrollTop=c(i,0,m.maxScroll):E(t,i),V()},G=e=>{!m||m.pointerId!==e.pointerId||(R(),P())},K=s({schema:h,hooks:_,createMachine:({props:e})=>v({props:e,context:{overflow:{x:!1,y:!1}},effects:{sync:z}})}),q;return q={...K,get overflowX(){return this.snapshot.current?.context.overflow.x??!1},get overflowY(){return this.snapshot.current?.context.overflow.y??!1},get isScrolling(){return this.snapshot.current?.tags.includes(`scrolling`)??!1},get isDragging(){return this.snapshot.current?.tags.includes(`dragging`)??!1},init(){e=this.$el,K.connect(this.$el,this.snapshot);let i=M();n=new ResizeObserver(B),n.observe(i.viewport),i.content&&n.observe(i.content),r=new MutationObserver(B),i.content&&r.observe(i.content,{childList:!0,subtree:!0,characterData:!0}),o({target:i.viewport,event:`scroll`,handler:H,cleanup:t,options:{passive:!0}}),o({target:document,event:`pointermove`,handler:e=>W(e),cleanup:t}),o({target:document,event:`pointerup`,handler:e=>G(e),cleanup:t}),o({target:document,event:`pointercancel`,handler:e=>G(e),cleanup:t}),B()},destroy(){R(),N(),l&&cancelAnimationFrame(l),d&&cancelAnimationFrame(d),l=0,d=0,n?.disconnect(),r?.disconnect(),n=null,r=null,t.splice(0).forEach(e=>e()),K.disconnect(),e=null},get root(){let e=this.snapshot.current?.props??A();return f({inputs:[u({part:y.parts.root,props:e,className:e.class}),{"data-ui-scroll-area":``,":data-orientation":()=>A().orientation,":data-type":()=>A().type,":data-fill":()=>A().fill?``:void 0,":data-disabled":()=>A().disabled?``:void 0,"@pointerenter":()=>K.send(`POINTER_ENTERED`),"@pointerleave":()=>K.send(`POINTER_LEFT`),"@focusin":()=>K.send(`FOCUS_ENTERED`),"@focusout":e=>{(!(e.relatedTarget instanceof Node)||!w().contains(e.relatedTarget))&&K.send(`FOCUS_LEFT`)}}]})},viewport(e){return f({inputs:[u({part:y.parts.viewport,props:{orientation:A().orientation,fill:A().fill},className:e.dataset.class}),{tabindex:`0`,"data-ui-scroll-area-viewport":``,":data-orientation":()=>A().orientation,":data-hide-native":()=>A().hideNative?``:void 0}]})},scrollbar(e){let t=D(e)===`x`?`horizontal`:`vertical`;return f({inputs:[u({part:y.parts.scrollbar,props:{orientation:t},className:e.dataset.class}),{"data-ui-scroll-area-scrollbar":``,"aria-hidden":`true`,":data-disabled":()=>A().disabled?``:void 0}]})},thumb(e){let t=D(e),n=t===`x`?`horizontal`:`vertical`;return f({inputs:[u({part:y.parts.thumb,props:{orientation:n},className:e.dataset.class}),{"data-ui-scroll-area-thumb":``,"aria-hidden":`true`,"@pointerdown.prevent":e=>U(e,t),":data-dragging":()=>j(t===`x`?`dragging-x`:`dragging-y`)?``:void 0}]})},corner(e){return f({inputs:[u({part:y.parts.corner,className:e.dataset.class}),{"data-ui-scroll-area-corner":``,"aria-hidden":`true`}]})}},q},j=l(`UiScrollArea`,A),M=new WeakSet,N=e=>{M.has(e)||(M.add(e),j(e))};export{A as n,N as t};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=entry2.generated-CPbvsglm.js.map
|