@vireo-ai/trellis-ui 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/package.json +1 -1
  2. package/packages/client/types/components/app/contract.d.ts +7 -7
  3. package/packages/client/types/components/box/contract.d.ts +2 -2
  4. package/packages/client/types/components/card/contract.d.ts +2 -2
  5. package/packages/client/types/components/container/contract.d.ts +2 -2
  6. package/packages/client/types/components/date-picker/contract.d.ts +2 -2
  7. package/packages/client/types/components/date-picker/machine.d.ts +4 -4
  8. package/packages/client/types/components/file-upload/contract.d.ts +1 -1
  9. package/packages/client/types/components/file-upload/index.d.ts +2 -0
  10. package/packages/client/types/components/file-upload/machine.d.ts +2 -1
  11. package/packages/client/types/components/flex/contract.d.ts +2 -2
  12. package/packages/client/types/components/frame/contract.d.ts +2 -2
  13. package/packages/client/types/components/grid/contract.d.ts +2 -2
  14. package/packages/client/types/components/layout.d.ts +2 -2
  15. package/packages/client/types/components/menu/contract.d.ts +2 -2
  16. package/packages/client/types/components/modal/contract.d.ts +2 -2
  17. package/packages/client/types/components/section/contract.d.ts +2 -2
  18. package/packages/client/types/components/select/contract.d.ts +2 -2
  19. package/packages/client/types/components/select/machine.d.ts +4 -4
  20. package/packages/client/types/components/sidebar/contract.d.ts +3 -3
  21. package/packages/client/types/components/stack/contract.d.ts +2 -2
  22. package/packages/client/types/components/tooltip/contract.d.ts +4 -4
  23. package/packages/client/types/motion/flip.d.ts +14 -0
  24. package/packages/client/types/motion/index.d.ts +2 -0
  25. package/packages/client/types/motion/size.d.ts +25 -0
  26. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +300 -286
  27. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  28. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
  29. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  30. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DCacA4wj.js +2 -0
  31. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-LgqzTNla.js.map → capability-motion-DCacA4wj.js.map} +1 -1
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js +2 -0
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js.map +1 -0
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BnB9Wz0E.js +3 -0
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-DhIaUo4k.js.map → capability-sortable-BnB9Wz0E.js.map} +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-DsXbNzqk.js → controller-BOf7dxV2.js} +2 -2
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-DsXbNzqk.js.map → controller-BOf7dxV2.js.map} +1 -1
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DFCT8LQq.js → core-DBX5qDXb.js} +2 -2
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DFCT8LQq.js.map → core-DBX5qDXb.js.map} +1 -1
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-invalidation-Dw6clnS4.js +2 -0
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-invalidation-Dw6clnS4.js.map +1 -0
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVQC6yVd.js → entry.generated-BEjAV5NT.js} +2 -2
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVQC6yVd.js.map → entry.generated-BEjAV5NT.js.map} +1 -1
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DpIBgUZ3.js → entry.generated-BUbxiHwA.js} +2 -2
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DpIBgUZ3.js.map → entry.generated-BUbxiHwA.js.map} +1 -1
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BV49EHah.js +2 -0
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BV49EHah.js.map +1 -0
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BdiyPh0p.js +2 -0
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BdiyPh0p.js.map +1 -0
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DnQY2zaY.js → entry.generated-By9j8PrV.js} +2 -2
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DnQY2zaY.js.map → entry.generated-By9j8PrV.js.map} +1 -1
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BTe_Q79G.js → entry.generated-C0S3uZrm.js} +2 -2
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BTe_Q79G.js.map → entry.generated-C0S3uZrm.js.map} +1 -1
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5kjUnFe.js +2 -0
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5kjUnFe.js.map +1 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DcXzHGIV.js +2 -0
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DcXzHGIV.js.map +1 -0
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DeXEkXMW.js +2 -0
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DeXEkXMW.js.map +1 -0
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-pap9Z0I-.js → entry.generated-Dqyot6vM.js} +2 -2
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-pap9Z0I-.js.map → entry.generated-Dqyot6vM.js.map} +1 -1
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-XfwHguip.js → entry.generated-EAAmcnsg.js} +2 -2
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-XfwHguip.js.map → entry.generated-EAAmcnsg.js.map} +1 -1
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-F2czAXCg.js +2 -0
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-F2czAXCg.js.map +1 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-a2NebZsn.js +2 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-a2NebZsn.js.map +1 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-DT-Hq9qe.js +3 -0
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-DT-Hq9qe.js.map +1 -0
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js +4 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js.map +1 -0
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +116 -99
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-LgqzTNla.js +0 -2
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js +0 -2
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js.map +0 -1
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-DhIaUo4k.js +0 -3
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B-PuCg-D.js +0 -2
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B-PuCg-D.js.map +0 -1
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B956G6Cz.js +0 -2
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B956G6Cz.js.map +0 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DNtvOM3X.js +0 -2
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DNtvOM3X.js.map +0 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-RnJw-Qs4.js +0 -2
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-RnJw-Qs4.js.map +0 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ifMDOEy_.js +0 -2
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ifMDOEy_.js.map +0 -1
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js +0 -2
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js.map +0 -1
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CB866C3K.js +0 -2
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CB866C3K.js.map +0 -1
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-D2EM1olE.js +0 -3
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-D2EM1olE.js.map +0 -1
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CV0dnUFY.js +0 -4
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CV0dnUFY.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{a as e,c as t,i as n,n as r,p as i,r as a,s as o,t as s}from"./motion-D2EM1olE.js";import{_ as c,n as l,u}from"./ui-CV0dnUFY.js";var d=`data-ui-bounds`,f=(e,t)=>{if(!e||typeof t.evaluate!=`function`)return{};let n=t.evaluate(e);return typeof n==`string`?{role:n}:n??{}},p=e=>{e.directive(`ui-bounds`,(e,{expression:t},n)=>{if(!(e instanceof HTMLElement))return;e.setAttribute(d,``),c(e,d);let r=o(e,f(t,n)),i=!1,a=new MutationObserver(t=>{t.every(t=>t.type===`attributes`&&t.target===e&&(t.attributeName===`style`||t.attributeName===`data-ui-bounds`))||i||(i=!0,queueMicrotask(()=>{i=!1,r.refresh()}))});a.observe(e,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),n.cleanup?.(()=>{a.disconnect(),r.destroy(),e.removeAttribute(d)})})},m=e=>e.selector?e.selector:e.target?e.target.startsWith(`#`)?e.target:`#${n(e.target)}`:null,h=e=>{let t=getComputedStyle(e);return[t.overflow,t.overflowX,t.overflowY].some(e=>e&&e!==`visible`)},g=e=>{let t=e.parentElement;for(;t&&t!==document.body&&t!==document.documentElement;){if(h(t))return t;t=t.parentElement}return null},_=e=>e.width===0&&e.height===0&&e.top===0&&e.left===0,v=e=>{let t=g(e);if(!t)return!0;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();if(_(n)&&_(r))return!0;let i=Math.min(n.height,160);return n.top>=r.top&&n.left<r.right&&n.right>r.left&&n.bottom+i<=r.bottom},y=t=>{let n=[];return t.forEach(t=>{let r=m(t),i=r?document.querySelector(r):null;if(!i)return;let a=[],o=i.getAttribute(`data-ui-motion-key`);if(i.querySelectorAll(`[data-ui-motion-key]`).forEach(t=>{let n=t.getAttribute(`data-ui-motion-key`);if(n&&v(t)){let t=e(n);a.push({from:{selector:t},to:{selector:t}})}}),(o||i.hasAttribute(`data-ui-motion-layout`))&&v(i)){let t=o?e(o):r;a.unshift({from:{selector:t},to:{selector:t}})}n.push(...a)}),n},b=(e,n,a={})=>{let o=a.update;if(!o)return i();let s=y(Array.isArray(n)?n:[n]);if(s.length===0||t(a.reducedMotion))return i(o);let c={...a,preset:`stream`};return a.scope&&a.scope!==`target`&&(c.scope=a.scope),r(o,s,c)},x=new WeakSet,S=e=>{x.has(e)||(x.add(e),p(e),a(()=>e.nextTick()),l(s),u((e,t,n)=>{b(e,t,{scope:`target`,update:n})}))};export{p as n,S as t};
2
- //# sourceMappingURL=capability-motion-LgqzTNla.js.map
@@ -1,2 +0,0 @@
1
- var e=new Set([`alt`,`cmd`,`ctrl`,`meta`,`mod`,`shift`,`super`]),t=new Set([`arrow-down`,`arrow-left`,`arrow-right`,`arrow-up`,`backspace`,`caps-lock`,`delete`,`end`,`enter`,`escape`,`home`,`insert`,`page-down`,`page-up`,`pause`,`scroll-lock`,`space`,`tab`]),n={" ":`space`,"/":`slash`,"?":`slash`,Alt:`alt`,ArrowDown:`arrow-down`,ArrowLeft:`arrow-left`,ArrowRight:`arrow-right`,ArrowUp:`arrow-up`,CapsLock:`caps-lock`,Control:`ctrl`,Meta:`meta`,PageDown:`page-down`,PageUp:`page-up`,ScrollLock:`scroll-lock`,Shift:`shift`},r={alt:`Alt`,backspace:`Backspace`,cmd:`Command`,ctrl:`Ctrl`,delete:`Delete`,end:`End`,enter:`Enter`,escape:`Escape`,home:`Home`,insert:`Insert`,meta:`Meta`,"page-down":`Page Down`,"page-up":`Page Up`,pause:`Pause`,"scroll-lock":`Scroll Lock`,shift:`Shift`,slash:`/`,space:`Space`,super:`Super`,tab:`Tab`,"arrow-down":`Arrow Down`,"arrow-left":`Arrow Left`,"arrow-right":`Arrow Right`,"arrow-up":`Arrow Up`},i=[`document`,`window`,`keyup`,`repeat`,`editable`],a=()=>{if(typeof navigator>`u`)return!1;let e=navigator.platform||navigator.userAgent;return/Mac|iPhone|iPad|iPod/i.test(e)},o=e=>n[e]||e.replace(/([a-z])([A-Z])/g,`$1-$2`).replace(/_/g,`-`).toLowerCase(),s=e=>e===`slash`||e.length===1||t.has(e)||/^f(?:[1-9]|1\d|2[0-4])$/.test(e),c=(e,t)=>{let n=e.some(e=>e===`meta`||e===`cmd`||e===`super`)||t&&e.includes(`mod`),r=e.includes(`ctrl`)||!t&&e.includes(`mod`);return{altKey:e.includes(`alt`),ctrlKey:r,metaKey:n,shiftKey:e.includes(`shift`)}},l=e=>e.trim().toLowerCase().split(`.`).map(e=>e.trim()).filter(Boolean),u=(t,n={})=>{let r=l(t);if(r.length===0)return null;let i=n.apple??a(),o=r.filter(t=>e.has(t)),u=r.filter(t=>!e.has(t));if(u.length===0||u.some(e=>!s(e))||u.length>1&&o.length>0)return null;let d=c(o,i),f=u.map((e,t)=>({key:e,...t===0?d:c([],i)}));return{normalized:r.join(`.`),steps:f}},d=e=>e.split(`-`).map(e=>e?`${e[0].toUpperCase()}${e.slice(1)}`:``).join(` `),f={alt:`⌥`,cmd:`⌘`,ctrl:`⌃`,meta:`⌘`,mod:`⌘`,shift:`⇧`,super:`⌘`},p=(e,t)=>t?f[e]??d(e):e===`mod`?`Ctrl`:r[e]??d(e),m=(e,t)=>e===`mod`?t?`meta`:`ctrl`:e===`cmd`||e===`super`?`meta`:e,h=(e,t)=>e===`slash`&&t.includes(`shift`)?`?`:r[e]??d(e),g=(t,n={})=>{let r=l(t);if(r.length===0)return[];let i=n.apple??a(),o=r.filter(t=>e.has(t)),s=r.filter(t=>!e.has(t)),c=o.map(e=>({label:p(e,i),token:m(e,i)}));return s.length===0?[c]:s.length>1&&o.length===0?s.map(e=>[{label:h(e,r),token:e}]):[[...c,...s.map(e=>({label:h(e,r),token:e}))]]},_=(e,t={})=>g(e,t).map(e=>e.map(({label:e})=>e)),v=new WeakMap,y=(e,t)=>{let n=v.get(e);if(!n){let t=new Set,r=new Set,i=()=>r.forEach(e=>e(new Set(t))),a=()=>{t.size!==0&&(t.clear(),i())},s=e=>{let n=[...t].sort().join(` `),r=o(e.key);e.type===`keydown`?t.add(r):t.delete(r),e.type===`keyup`&&r===`meta`&&t.clear(),[[`alt`,e.altKey],[`ctrl`,e.ctrlKey],[`meta`,e.metaKey],[`shift`,e.shiftKey]].forEach(([e,n])=>{n?t.add(e):t.delete(e)}),[...t].sort().join(` `)!==n&&i()},c=e=>{e instanceof KeyboardEvent&&s(e)},l=()=>{e.visibilityState===`hidden`&&a()};e.addEventListener(`keydown`,c,!0),e.addEventListener(`keyup`,c,!0),e.addEventListener(`visibilitychange`,l),e.defaultView?.addEventListener(`blur`,a),n={keys:t,listeners:r,destroy:()=>{e.removeEventListener(`keydown`,c,!0),e.removeEventListener(`keyup`,c,!0),e.removeEventListener(`visibilitychange`,l),e.defaultView?.removeEventListener(`blur`,a)}},v.set(e,n)}return n.listeners.add(t),t(new Set(n.keys)),()=>{n?.listeners.delete(t),n?.listeners.size===0&&(n.destroy(),v.delete(e))}},b=(e,t)=>o(e.key)===t.key&&e.altKey===t.altKey&&e.ctrlKey===t.ctrlKey&&e.metaKey===t.metaKey&&e.shiftKey===t.shiftKey,x=(e,t={})=>{let n=u(e,t);if(!n)return null;let r=Math.max(250,Math.min(5e3,t.timeout??1e3)),i=0,a=0,o=()=>{i=0,a=0};return{shortcut:n,reset:o,match(e,t=performance.now()){i>0&&t-a>r&&o();let s=n.steps[i];if(!s||!b(e,s)){o();let r=n.steps[0];return!r||!b(e,r)?`none`:n.steps.length===1?`complete`:(i=1,a=t,`partial`)}return i===n.steps.length-1?(o(),`complete`):(i+=1,a=t,`partial`)}}},S=e=>e instanceof Element?e.closest(`input, textarea, select, [contenteditable]:not([contenteditable="false"])`)!==null:!1,C=e=>e.isConnected&&!e.closest(`[inert], [hidden]`)&&e.getAttribute(`aria-hidden`)!==`true`,w=()=>{let e=[`x-ui-shortcut`],t=(n,r)=>{r.forEach((i,a)=>{let o=[...n,i];e.push(`x-ui-shortcut.${o.join(`.`)}`),t(o,r.filter((e,t)=>t!==a))})};return t([],i),e.map(e=>`[${e.replaceAll(`.`,`\\.`)} ]`.replace(` ]`,`]`)).join(`, `)},T=new WeakSet,E=e=>{T.has(e)||(T.add(e),e.addInitSelector(()=>w()),e.directive(`ui-shortcut`,e.skipDuringClone((e,{expression:t,modifiers:n},r)=>{if(!(e instanceof HTMLElement))return;let i=r.evaluateLater(t),a=Number(e.dataset.uiShortcutTimeout),o=Number.isFinite(a)?a:void 0,s=null;r.effect(()=>i(e=>{s=typeof e==`string`&&e.trim()?x(e,o===void 0?{}:{timeout:o}):null}));let c=n.includes(`window`)?window:n.includes(`document`)?document:e,l=n.includes(`keyup`)?`keyup`:`keydown`,u=t=>{if(!(t instanceof KeyboardEvent)||!s||!C(e)||t.repeat&&!n.includes(`repeat`)||S(t.target)&&!n.includes(`editable`)||s.match(t)!==`complete`)return;let r=new CustomEvent(`ui:shortcut`,{bubbles:!0,cancelable:!0,composed:!0,detail:{shortcut:s.shortcut.normalized,keyboardEvent:t,owner:e,sequence:s.shortcut.steps.length>1}}),i=!1,a=r.stopPropagation.bind(r),o=r.stopImmediatePropagation.bind(r);r.stopPropagation=()=>{i=!0,a()},r.stopImmediatePropagation=()=>{i=!0,o()},e.dispatchEvent(r),r.defaultPrevented&&t.preventDefault(),i&&t.stopPropagation()};c.addEventListener(l,u),r.cleanup(()=>c.removeEventListener(l,u))})))};export{u as a,y as i,_ as n,E as o,g as r,x as t};
2
- //# sourceMappingURL=capability-shortcut-Br_XBf7u.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capability-shortcut-Br_XBf7u.js","names":[],"sources":["../../../../../../../../client/src/capabilities/shortcut.ts"],"sourcesContent":["import type Alpine from 'alpinejs';\n\ntype ShortcutPlatform = {apple?: boolean};\ntype ShortcutOptions = ShortcutPlatform & {timeout?: number};\ntype ShortcutMatch = 'none' | 'partial' | 'complete';\ntype ShortcutDisplayKey = {label: string; token: string};\ntype ShortcutPressedListener = (keys: ReadonlySet<string>) => void;\n\ntype ShortcutStep = {\n key: string;\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n};\n\ntype ParsedShortcut = {\n normalized: string;\n steps: ShortcutStep[];\n};\n\ntype ShortcutEventDetail = {\n shortcut: string;\n keyboardEvent: KeyboardEvent;\n owner: HTMLElement;\n sequence: boolean;\n};\n\ntype ShortcutMatcher = {\n readonly shortcut: ParsedShortcut;\n match(event: KeyboardEvent, timestamp?: number): ShortcutMatch;\n reset(): void;\n};\n\nconst MODIFIER_TOKENS = new Set(['alt', 'cmd', 'ctrl', 'meta', 'mod', 'shift', 'super']);\nconst NAMED_KEYS = new Set([\n 'arrow-down', 'arrow-left', 'arrow-right', 'arrow-up',\n 'backspace', 'caps-lock', 'delete', 'end', 'enter', 'escape', 'home', 'insert',\n 'page-down', 'page-up', 'pause', 'scroll-lock', 'space', 'tab',\n]);\nconst KEY_ALIASES: Record<string, string> = {\n ' ': 'space',\n '/': 'slash',\n '?': 'slash',\n Alt: 'alt',\n ArrowDown: 'arrow-down',\n ArrowLeft: 'arrow-left',\n ArrowRight: 'arrow-right',\n ArrowUp: 'arrow-up',\n CapsLock: 'caps-lock',\n Control: 'ctrl',\n Meta: 'meta',\n PageDown: 'page-down',\n PageUp: 'page-up',\n ScrollLock: 'scroll-lock',\n Shift: 'shift',\n};\nconst KEY_LABELS: Record<string, string> = {\n alt: 'Alt',\n backspace: 'Backspace',\n cmd: 'Command',\n ctrl: 'Ctrl',\n delete: 'Delete',\n end: 'End',\n enter: 'Enter',\n escape: 'Escape',\n home: 'Home',\n insert: 'Insert',\n meta: 'Meta',\n 'page-down': 'Page Down',\n 'page-up': 'Page Up',\n pause: 'Pause',\n 'scroll-lock': 'Scroll Lock',\n shift: 'Shift',\n slash: '/',\n space: 'Space',\n super: 'Super',\n tab: 'Tab',\n 'arrow-down': 'Arrow Down',\n 'arrow-left': 'Arrow Left',\n 'arrow-right': 'Arrow Right',\n 'arrow-up': 'Arrow Up',\n};\nconst DIRECTIVE_MODIFIERS = ['document', 'window', 'keyup', 'repeat', 'editable'] as const;\n\nconst isApplePlatform = (): boolean => {\n if (typeof navigator === 'undefined') return false;\n const platform = navigator.platform || navigator.userAgent;\n return /Mac|iPhone|iPad|iPod/i.test(platform);\n};\n\nconst normalizeKey = (key: string): string => {\n const alias = KEY_ALIASES[key];\n if (alias) return alias;\n return key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase();\n};\n\nconst isKnownKey = (key: string): boolean => (\n key === 'slash'\n || key.length === 1\n || NAMED_KEYS.has(key)\n || /^f(?:[1-9]|1\\d|2[0-4])$/.test(key)\n);\n\nconst modifierStep = (tokens: string[], apple: boolean): Omit<ShortcutStep, 'key'> => {\n const metaKey = tokens.some((token) => token === 'meta' || token === 'cmd' || token === 'super')\n || (apple && tokens.includes('mod'));\n const ctrlKey = tokens.includes('ctrl') || (!apple && tokens.includes('mod'));\n return {\n altKey: tokens.includes('alt'),\n ctrlKey,\n metaKey,\n shiftKey: tokens.includes('shift'),\n };\n};\n\nconst tokenize = (value: string): string[] => value\n .trim()\n .toLowerCase()\n .split('.')\n .map((token) => token.trim())\n .filter(Boolean);\n\nconst parseShortcut = (value: string, options: ShortcutPlatform = {}): ParsedShortcut | null => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return null;\n const apple = options.apple ?? isApplePlatform();\n const modifierTokens = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keyTokens = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n if (keyTokens.length === 0 || keyTokens.some((token) => !isKnownKey(token))) return null;\n if (keyTokens.length > 1 && modifierTokens.length > 0) return null;\n\n const modifiers = modifierStep(modifierTokens, apple);\n const steps = keyTokens.map((key, index) => ({\n key,\n ...(index === 0 ? modifiers : modifierStep([], apple)),\n }));\n return {normalized: tokens.join('.'), steps};\n};\n\nconst titleCase = (token: string): string => token\n .split('-')\n .map((part) => part ? `${part[0]!.toUpperCase()}${part.slice(1)}` : '')\n .join(' ');\n\nconst APPLE_MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n ctrl: '⌃',\n meta: '⌘',\n mod: '⌘',\n shift: '⇧',\n super: '⌘',\n};\n\nconst modifierLabel = (token: string, apple: boolean): string => {\n if (apple) return APPLE_MODIFIER_LABELS[token] ?? titleCase(token);\n if (token === 'mod') return 'Ctrl';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst modifierKey = (token: string, apple: boolean): string => {\n if (token === 'mod') return apple ? 'meta' : 'ctrl';\n if (token === 'cmd' || token === 'super') return 'meta';\n return token;\n};\n\nconst keyLabel = (token: string, tokens: string[]): string => {\n if (token === 'slash' && tokens.includes('shift')) return '?';\n return KEY_LABELS[token] ?? titleCase(token);\n};\n\nconst formatShortcutKeys = (value: string, options: ShortcutPlatform = {}): ShortcutDisplayKey[][] => {\n const tokens = tokenize(value);\n if (tokens.length === 0) return [];\n const apple = options.apple ?? isApplePlatform();\n const modifiers = tokens.filter((token) => MODIFIER_TOKENS.has(token));\n const keys = tokens.filter((token) => !MODIFIER_TOKENS.has(token));\n const displayModifiers = modifiers.map((token) => ({\n label: modifierLabel(token, apple),\n token: modifierKey(token, apple),\n }));\n if (keys.length === 0) return [displayModifiers];\n if (keys.length > 1 && modifiers.length === 0) {\n return keys.map((token) => [{label: keyLabel(token, tokens), token}]);\n }\n return [[\n ...displayModifiers,\n ...keys.map((token) => ({label: keyLabel(token, tokens), token})),\n ]];\n};\n\nconst formatShortcut = (value: string, options: ShortcutPlatform = {}): string[][] => (\n formatShortcutKeys(value, options).map((step) => step.map(({label}) => label))\n);\n\ntype PressedShortcutStore = {\n keys: Set<string>;\n listeners: Set<ShortcutPressedListener>;\n destroy: () => void;\n};\n\nconst pressedShortcutStores = new WeakMap<Document, PressedShortcutStore>();\n\nconst observePressedShortcutKeys = (\n document: Document,\n listener: ShortcutPressedListener,\n): (() => void) => {\n let store = pressedShortcutStores.get(document);\n if (!store) {\n const keys = new Set<string>();\n const listeners = new Set<ShortcutPressedListener>();\n const notify = (): void => listeners.forEach((subscriber) => subscriber(new Set(keys)));\n const clear = (): void => {\n if (keys.size === 0) return;\n keys.clear();\n notify();\n };\n const sync = (event: KeyboardEvent): void => {\n const previous = [...keys].sort().join(' ');\n const token = normalizeKey(event.key);\n if (event.type === 'keydown') keys.add(token);\n else keys.delete(token);\n\n // macOS can suppress non-modifier keyup events while Command is held.\n if (event.type === 'keyup' && token === 'meta') keys.clear();\n ([\n ['alt', event.altKey],\n ['ctrl', event.ctrlKey],\n ['meta', event.metaKey],\n ['shift', event.shiftKey],\n ] as const).forEach(([modifier, pressed]) => {\n if (pressed) keys.add(modifier);\n else keys.delete(modifier);\n });\n if ([...keys].sort().join(' ') !== previous) notify();\n };\n const onKey = (event: Event): void => {\n if (event instanceof KeyboardEvent) sync(event);\n };\n const onVisibility = (): void => {\n if (document.visibilityState === 'hidden') clear();\n };\n document.addEventListener('keydown', onKey, true);\n document.addEventListener('keyup', onKey, true);\n document.addEventListener('visibilitychange', onVisibility);\n document.defaultView?.addEventListener('blur', clear);\n store = {\n keys,\n listeners,\n destroy: () => {\n document.removeEventListener('keydown', onKey, true);\n document.removeEventListener('keyup', onKey, true);\n document.removeEventListener('visibilitychange', onVisibility);\n document.defaultView?.removeEventListener('blur', clear);\n },\n };\n pressedShortcutStores.set(document, store);\n }\n store.listeners.add(listener);\n listener(new Set(store.keys));\n return () => {\n store?.listeners.delete(listener);\n if (store?.listeners.size === 0) {\n store.destroy();\n pressedShortcutStores.delete(document);\n }\n };\n};\n\nconst eventMatchesStep = (event: KeyboardEvent, step: ShortcutStep): boolean => (\n normalizeKey(event.key) === step.key\n && event.altKey === step.altKey\n && event.ctrlKey === step.ctrlKey\n && event.metaKey === step.metaKey\n && event.shiftKey === step.shiftKey\n);\n\nconst createShortcutMatcher = (value: string, options: ShortcutOptions = {}): ShortcutMatcher | null => {\n const shortcut = parseShortcut(value, options);\n if (!shortcut) return null;\n const timeout = Math.max(250, Math.min(5000, options.timeout ?? 1000));\n let index = 0;\n let previousAt = 0;\n\n const reset = (): void => {\n index = 0;\n previousAt = 0;\n };\n\n return {\n shortcut,\n reset,\n match(event, timestamp = performance.now()): ShortcutMatch {\n if (index > 0 && timestamp - previousAt > timeout) reset();\n const step = shortcut.steps[index];\n if (!step || !eventMatchesStep(event, step)) {\n reset();\n const first = shortcut.steps[0];\n if (!first || !eventMatchesStep(event, first)) return 'none';\n if (shortcut.steps.length === 1) return 'complete';\n index = 1;\n previousAt = timestamp;\n return 'partial';\n }\n if (index === shortcut.steps.length - 1) {\n reset();\n return 'complete';\n }\n index += 1;\n previousAt = timestamp;\n return 'partial';\n },\n };\n};\n\nconst isEditableTarget = (target: EventTarget | null): boolean => {\n if (!(target instanceof Element)) return false;\n return target.closest('input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])') !== null;\n};\n\nconst isEligibleOwner = (owner: HTMLElement): boolean => (\n owner.isConnected\n && !owner.closest('[inert], [hidden]')\n && owner.getAttribute('aria-hidden') !== 'true'\n);\n\nconst directiveSelectors = (): string => {\n const names = ['x-ui-shortcut'];\n const visit = (prefix: string[], remaining: readonly string[]): void => {\n remaining.forEach((modifier, index) => {\n const next = [...prefix, modifier];\n names.push(`x-ui-shortcut.${next.join('.')}`);\n visit(next, remaining.filter((_, remainingIndex) => remainingIndex !== index));\n });\n };\n visit([], DIRECTIVE_MODIFIERS);\n return names.map((name) => `[${name.replaceAll('.', '\\\\.')} ]`.replace(' ]', ']')).join(', ');\n};\n\nconst registered = new WeakSet<Alpine.Alpine>();\n\nconst registerShortcutCapability = (AlpineInstance: Alpine.Alpine): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n AlpineInstance.addInitSelector(() => directiveSelectors());\n AlpineInstance.directive('ui-shortcut', AlpineInstance.skipDuringClone((el, {expression, modifiers}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n const evaluator = utilities.evaluateLater(expression);\n const timeoutValue = Number(el.dataset.uiShortcutTimeout);\n const timeout = Number.isFinite(timeoutValue) ? timeoutValue : undefined;\n let matcher: ShortcutMatcher | null = null;\n\n utilities.effect(() => evaluator((value) => {\n matcher = typeof value === 'string' && value.trim()\n ? createShortcutMatcher(value, timeout === undefined ? {} : {timeout})\n : null;\n }));\n\n const target: EventTarget = modifiers.includes('window')\n ? window\n : modifiers.includes('document') ? document : el;\n const eventName = modifiers.includes('keyup') ? 'keyup' : 'keydown';\n const listener = (event: Event): void => {\n if (!(event instanceof KeyboardEvent) || !matcher || !isEligibleOwner(el)) return;\n if (event.repeat && !modifiers.includes('repeat')) return;\n if (isEditableTarget(event.target) && !modifiers.includes('editable')) return;\n const result = matcher.match(event);\n if (result !== 'complete') return;\n\n const shortcutEvent = new CustomEvent<ShortcutEventDetail>('ui:shortcut', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n shortcut: matcher.shortcut.normalized,\n keyboardEvent: event,\n owner: el,\n sequence: matcher.shortcut.steps.length > 1,\n },\n });\n let propagationStopped = false;\n const stopPropagation = shortcutEvent.stopPropagation.bind(shortcutEvent);\n const stopImmediatePropagation = shortcutEvent.stopImmediatePropagation.bind(shortcutEvent);\n shortcutEvent.stopPropagation = (): void => {\n propagationStopped = true;\n stopPropagation();\n };\n shortcutEvent.stopImmediatePropagation = (): void => {\n propagationStopped = true;\n stopImmediatePropagation();\n };\n el.dispatchEvent(shortcutEvent);\n if (shortcutEvent.defaultPrevented) event.preventDefault();\n if (propagationStopped) event.stopPropagation();\n };\n target.addEventListener(eventName, listener);\n utilities.cleanup(() => target.removeEventListener(eventName, listener));\n }));\n};\n\nexport {\n createShortcutMatcher,\n formatShortcut,\n formatShortcutKeys,\n observePressedShortcutKeys,\n parseShortcut,\n registerShortcutCapability,\n};\nexport type {\n ParsedShortcut,\n ShortcutEventDetail,\n ShortcutDisplayKey,\n ShortcutMatch,\n ShortcutMatcher,\n ShortcutOptions,\n ShortcutPlatform,\n ShortcutStep,\n};\n"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import{_ as e,b as t,g as n,h as r,l as i,m as a,s as o,y as s}from"./element-adapter-native-data-key-CW8suC9A.js";import{t as c}from"./motion-D2EM1olE.js";import{_ as l,d as u,f as d,g as f,r as p}from"./ui-CV0dnUFY.js";import{c as m,f as h,l as g,n as _,o as v,s as y}from"./codecs-Cb1ns_47.js";import{r as b}from"./dom-qAeVl7dc.js";import{i as x,t as ee}from"./alpine-machine-BS13dbK4.js";import{t as te}from"./machine-Dqut4h89.js";import{a as ne,c as re,i as ie,l as ae,o as oe,r as se,s as ce}from"./drag-and-drop-DHq3udf7.js";import{L as le,y as ue}from"./common-Dfj6NCjU.js";var S=e=>e!==null&&Number.isInteger(e)&&e>0,C=4,de=(e,t)=>e===t||!!(e&&t&&e.destination.groupId===t.destination.groupId&&e.anchor?.id===t.anchor?.id&&e.anchor?.edge===t.anchor?.edge),fe=({point:e,start:t,end:n})=>{let r=n.x-t.x,i=n.y-t.y,a=r*r+i*i;if(a===0)return Math.hypot(e.x-t.x,e.y-t.y);let o=Math.max(0,Math.min(1,((e.x-t.x)*r+(e.y-t.y)*i)/a));return Math.hypot(e.x-(t.x+o*r),e.y-(t.y+o*i))},pe=e=>e.length===0?[]:[{anchor:{id:e[0].id,edge:`before`},index:0,distance:t=>Math.abs(t.clientY-e[0].rect.top)},...e.slice(1).map((t,n)=>{let r=(e[n].rect.bottom+t.rect.top)/2;return{anchor:{id:t.id,edge:`before`},index:n+1,distance:e=>Math.abs(e.clientY-r)}}),{anchor:{id:e.at(-1).id,edge:`after`},index:e.length,distance:t=>Math.abs(t.clientY-e.at(-1).rect.bottom)}],me=(e,t)=>{if(e.length===0)return[];let n=e=>t===`rtl`?e.rect.right:e.rect.left,r=e=>t===`rtl`?e.rect.left:e.rect.right;return[{anchor:{id:e[0].id,edge:`before`},index:0,distance:t=>Math.abs(t.clientX-n(e[0]))},...e.slice(1).map((t,i)=>{let a=e[i],o=(r(a)+n(t))/2;return{anchor:{id:t.id,edge:`before`},index:i+1,distance:e=>Math.abs(e.clientX-o)}}),{anchor:{id:e.at(-1).id,edge:`after`},index:e.length,distance:t=>Math.abs(t.clientX-r(e.at(-1)))}]},he=({columns:e,direction:t,groupRect:n,items:r})=>{if(!S(e))throw TypeError(`Grid sortable groups require a positive integer columns value.`);if(r.length===0)return[];let i=e=>t===`rtl`?e.rect.right:e.rect.left,a=e=>t===`rtl`?e.rect.left:e.rect.right,o=t=>r.slice(t*e,(t+1)*e),s=e=>Math.min(...o(e).map(e=>e.rect.top)),c=e=>Math.max(...o(e).map(e=>e.rect.bottom)),l=(e,t,n,r)=>({anchor:n,index:r,distance:n=>fe({point:{x:n.clientX,y:n.clientY},start:{x:e,y:s(t)},end:{x:e,y:c(t)}})}),u=(e,t,r)=>({anchor:t,index:r,distance:t=>fe({point:{x:t.clientX,y:t.clientY},start:{x:n.left,y:e},end:{x:n.right,y:e}})}),d=[l(i(r[0]),0,{id:r[0].id,edge:`before`},0)];for(let t=1;t<r.length;t+=1){let n=r[t],o=r[t-1];if(t%e===0){let r=t/e;d.push(u((c(r-1)+s(r))/2,{id:n.id,edge:`before`},t))}else{let r=Math.floor(t/e);d.push(l((a(o)+i(n))/2,r,{id:n.id,edge:`before`},t))}}let f=r.length-1,p=r[f],m=Math.floor(f/e),h=r.length%e;if(h===0)d.push(u(c(m),{id:p.id,edge:`after`},r.length));else{let e=r[h],t=e===void 0?a(p):(a(p)+i(e))/2;d.push(l(t,m,{id:p.id,edge:`after`},r.length))}return d},ge=(e,t)=>e.reduce((e,n)=>n.distance(t)<e.distance(t)?n:e),_e=e=>{if(e.items.length===0)return{destination:{groupId:e.groupId},anchor:null,index:0};let t=ge(e.orientation===`horizontal`?me(e.items,e.direction):e.orientation===`grid`?he(e):pe(e.items),e.input);return{destination:{groupId:e.groupId},anchor:t.anchor,index:t.index}},ve=e=>{if(e.items.length===0||e.orientation===`grid`)return _e(e);let t=e.orientation===`vertical`?e.input.clientY:e.input.clientX*(e.direction===`rtl`?-1:1),n=e.items.findIndex(({rect:n})=>t<(e.orientation===`vertical`?n.top+n.height/2:(n.left+n.width/2)*(e.direction===`rtl`?-1:1))),r=n<0?e.items.length:n,i=r===e.items.length?{id:e.items.at(-1).id,edge:`after`}:{id:e.items[r].id,edge:`before`};return{destination:{groupId:e.groupId},anchor:i,index:r}},ye=({placement:e,sourceId:t,sourceGroupId:n,itemIds:r})=>{if(n!==e.destination.groupId)return e;let i=r.indexOf(t);if(i<0)return e;let a=r.filter(e=>e!==t),o=e.index??0,s=Math.max(0,Math.min(a.length,o>i?o-1:o)),c=a.length===0?null:s===a.length?{id:a.at(-1),edge:`after`}:{id:a[s],edge:`before`};return{destination:e.destination,anchor:c,index:s}},be=(e,t)=>{let{groupRect:n,items:r,orientation:i,direction:a}=e;if(r.length===0||t.anchor===null)return i===`horizontal`?{x:a===`rtl`?n.right-C:n.left+C,y:n.top,width:0,height:n.height,kind:`inline-boundary`}:{x:n.left,y:n.top+C,width:n.width,height:0,kind:`block-boundary`};let o=t.index??0,s=o>0?r[o-1]:void 0,c=o<r.length?r[o]:void 0;if(i===`vertical`){let e=s&&c?(s.rect.bottom+c.rect.top)/2:c?c.rect.top-C:s.rect.bottom+C;return{x:n.left,y:e,width:n.width,height:0,kind:`block-boundary`}}let l=e=>a===`rtl`?e.rect.right:e.rect.left,u=e=>a===`rtl`?e.rect.left:e.rect.right;if(i===`horizontal`)return{x:s&&c?(u(s)+l(c))/2:c?l(c)+(a===`rtl`?C:-4):u(s)+(a===`rtl`?-4:C),y:n.top,width:0,height:n.height,kind:`inline-boundary`};let d=e.columns;if(!S(d))throw TypeError(`Grid sortable groups require a positive integer columns value.`);if(o>0&&o%d===0){let e=c?(s.rect.bottom+c.rect.top)/2:s.rect.bottom+C;return{x:n.left,y:e,width:n.width,height:0,kind:`block-boundary`}}let f;if(s&&c)f=(u(s)+l(c))/2;else if(c)f=l(c)+(a===`rtl`?C:-4);else{let e=r.length%d,t=e===0?void 0:r[e];f=t?(u(s)+l(t))/2:u(s)+(a===`rtl`?-4:C)}let p=Math.floor(Math.min(o,r.length-1)/d)*d,m=r.slice(p,p+d);return{x:f,y:Math.min(...m.map(e=>e.rect.top)),width:0,height:Math.max(...m.map(e=>e.rect.bottom))-Math.min(...m.map(e=>e.rect.top)),kind:`inline-boundary`}};function xe(e){var n=e.list,r=e.startIndex,i=e.finishIndex;if(r===-1||i===-1)return Array.from(n);var a=Array.from(n),o=t(a.splice(r,1),1)[0];return a.splice(i,0,o),a}var w=(e,t,n)=>({groupId:e,id:t.id,x:n.left-t.rect.left,y:n.top-t.rect.top}),T=({x:e,y:t})=>e!==0||t!==0,E=(e,t,n)=>({left:e.left+t,top:e.top+n,right:e.right+t,bottom:e.bottom+n,width:e.width,height:e.height}),Se=e=>{let{items:t,orientation:n,direction:r,columns:i}=e,a=t.at(-1);if(!a)return null;let o=t.at(-2);if(n===`vertical`){let e=o?a.rect.top-o.rect.top:a.rect.height+8;return E(a.rect,0,e)}if(n===`horizontal`){let e=o?a.rect.left-o.rect.left:(a.rect.width+8)*(r===`rtl`?-1:1);return E(a.rect,e,0)}if(i&&t.length>=i){let e=t[t.length-i];return E(e.rect,0,a.rect.top-e.rect.top||a.rect.height+8)}let s=o?a.rect.left-o.rect.left:(a.rect.width+8)*(r===`rtl`?-1:1);return E(a.rect,s,0)},Ce=e=>{let t=Se(e);return t?[...e.items.map(({rect:e})=>e),t]:[]},we=({source:e,placement:t,sourceLayout:n,destinationLayout:r=n})=>{if(!r)return null;let i=Math.max(0,Math.min(r.items.length,t.index??r.items.length));return e.groupId===r.groupId&&n?n.items[Math.min(i,n.items.length-1)]?.rect??r.groupRect:Ce(r)[i]??r.groupRect},Te=({source:e,placement:t,sourceLayout:n,destinationLayout:r=n})=>{if(!r)return[];let i=Math.max(0,Math.min(r.items.length,t.index??r.items.length));if(e.groupId===r.groupId&&n){let t=n.items.findIndex(({id:t})=>t===e.id);if(t<0)return[];let r=xe({list:[...n.items],startIndex:t,finishIndex:i});return n.items.map(e=>w(n.groupId,e,n.items[r.findIndex(({id:t})=>t===e.id)].rect)).filter(T)}let a=Ce(r),o=r.items.map((e,t)=>w(r.groupId,e,a[t<i?t:t+1])).filter(T);if(!n||e.groupId===null)return o;let s=n.items.findIndex(({id:t})=>t===e.id);if(s<0)return o;let c=n.items[s],l=w(n.groupId,c,a[i]??r.groupRect);return T(l)&&o.push(l),n.items.slice(s+1).forEach((e,t)=>{o.push(w(n.groupId,e,n.items[s+t].rect))}),o},Ee=/^-?(?:\d+(?:\.\d+)?|\.\d+)(?:px)?$/,De=(e,t,n,r,i)=>e===r?t:e===`center`?t-n/2:e===i?t-n:Ee.test(e)?t+Number.parseFloat(e):null,Oe=({value:e,input:t,initialInput:n,sourceRect:r,previewSize:i})=>{let a={x:t.clientX-(n.clientX-r.left),y:t.clientY-(n.clientY-r.top)},o=e.trim().toLowerCase().split(/\s+/).filter(Boolean);if(o.length===0||o.length===1&&o[0]===`preserve`||o.length!==2)return a;let s=De(o[0],t.clientX,i.width,`left`,`right`),c=De(o[1],t.clientY,i.height,`top`,`bottom`);return s===null||c===null?a:{x:s,y:c}},ke=e=>{e.setAttribute(`x-ignore`,``),[e,...e.querySelectorAll(`*`)].forEach(e=>{e.removeAttribute(`id`),(e instanceof HTMLInputElement||e instanceof HTMLButtonElement)&&(e.disabled=!0),(e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)&&(e.disabled=!0)})},Ae=(e,t)=>{let n=[e,...e.querySelectorAll(`input, textarea, select`)],r=[t,...t.querySelectorAll(`input, textarea, select`)];n.forEach((e,t)=>{let n=r[t];e instanceof HTMLInputElement&&n instanceof HTMLInputElement?(n.value=e.value,n.checked=e.checked):e instanceof HTMLTextAreaElement&&n instanceof HTMLTextAreaElement?n.value=e.value:e instanceof HTMLSelectElement&&n instanceof HTMLSelectElement&&(n.selectedIndex=e.selectedIndex)})},je=e=>({x:e.left,y:e.top,width:e.width,height:e.height}),Me=({source:e,input:t,preview:n,previewPosition:r=`preserve`,opacity:i=.92,color:a=`neutral`,interaction:o=`edge`})=>{let s=e.getBoundingClientRect(),l=document.createElement(`div`),u=document.createElement(`div`),d=document.createElement(`div`),f=n?.content.firstElementChild?.cloneNode(!0),p=f instanceof HTMLElement,m=p?f:e.cloneNode(!0);p||Ae(e,m),ke(m),l.setAttribute(`data-ui-sortable-overlay`,``),u.setAttribute(`data-ui-sortable-ghost-positioner`,``),d.setAttribute(`data-ui-sortable-ghost`,``),d.setAttribute(`aria-hidden`,`true`),d.setAttribute(`inert`,``),p||(d.setAttribute(`data-ui-sortable-default-preview`,``),d.setAttribute(`data-ui-selection-color`,``),d.dataset.color=a,d.dataset.uiInteraction=o,d.dataset.selected=`true`,d.dataset.uiSurface=`+1`,d.dataset.uiElevation=`2`);let h=e.closest(`[data-theme], .dark, .light`);h?.classList.contains(`dark`)&&l.classList.add(`dark`),h?.classList.contains(`light`)&&l.classList.add(`light`),h?.dataset.theme&&(l.dataset.theme=h.dataset.theme),Object.assign(l.style,{position:`fixed`,inset:`0`,overflow:`clip`,contain:`strict`,zIndex:`2147483647`,pointerEvents:`none`}),Object.assign(u.style,{position:`absolute`,left:`0`,top:`0`,width:p?`max-content`:`${s.width}px`,height:p?`max-content`:`${s.height}px`,pointerEvents:`none`}),Object.assign(d.style,{width:p?`max-content`:`100%`,height:p?`max-content`:`100%`,opacity:`${i}`,pointerEvents:`none`,...p?{}:{overflow:`hidden`,borderRadius:`var(--radius-overlay-sm)`}}),d.append(m),u.append(d),l.append(u),document.body.append(l);let g=u.getBoundingClientRect(),_=p?{width:g.width,height:g.height}:{width:s.width,height:s.height},v=e=>Oe({value:r,input:e,initialInput:t,sourceRect:s,previewSize:_}),y=e=>Oe({value:`preserve`,input:e,initialInput:t,sourceRect:s,previewSize:{width:s.width,height:s.height}}),b=v(t),x=c.createController({values:{x:{initial:b.x,transition:c.roles.layout},y:{initial:b.y,transition:c.roles.layout}},style:({x:e,y:t})=>({transform:`translate3d(${e}px, ${t}px, 0)`})});return x.mount(u),{positioner:u,visual:d,frame:()=>({...x.current(),..._}),projectedFrame:e=>({...v(e),..._}),projectedSourceFrame:e=>({...y(e),width:s.width,height:s.height}),move(e){x.set(v(e))},async finish(e){e&&await x.animate({x:e.x,y:e.y}).finished},remove:()=>{x.destroy(),l.remove()}}},Ne=1e3,D=null,O=`1px`,Pe={width:O,height:O,padding:`0`,position:`absolute`,border:`0`,clip:`rect(${O}, ${O}, ${O}, ${O})`,overflow:`hidden`,whiteSpace:`nowrap`,marginTop:`-${O}`,pointerEvents:`none`};function Fe(){var e=document.createElement(`div`);return e.setAttribute(`role`,`status`),Object.assign(e.style,Pe),document.body.append(e),e}function Ie(){return D===null&&(D=Fe()),D}var k=null;function Le(){k!==null&&clearTimeout(k),k=null}function Re(e){Ie(),Le(),k=setTimeout(function(){k=null;var t=Ie();t.textContent=e},Ne)}var A=(e,t)=>`${e}\u0000${t}`,ze=(e,t)=>{let n={destination:Object.freeze({...t.destination}),anchor:t.anchor===null?null:Object.freeze({...t.anchor}),...t.index===void 0?{}:{index:t.index}};return e.operation===`insert`?Object.freeze({operation:`insert`,source:Object.freeze({...e}),...n}):Object.freeze({operation:`move`,source:Object.freeze({...e}),...n})},Be=()=>{let e=new Map,t=new Map,n=(e,t,n,r,i)=>{let a=t,o=!0,s=e.get(a);if(s&&(s.element.isConnected||!r.element.isConnected))throw Error(`Duplicate sortable ${i} identity: ${a.replace(`\0`,`/`)}`);return e.set(a,r),Object.assign(()=>{o&&(o=!1,e.get(a)===r&&e.delete(a))},{refresh:()=>{if(!o)return;let t=n();if(t===a)return;let s=e.get(t);if(s&&s!==r&&(s.element.isConnected||!r.element.isConnected))throw Error(`Duplicate sortable ${i} identity: ${t.replace(`\0`,`/`)}`);e.get(a)===r&&e.delete(a),e.set(t,r),a=t}})},r=(t,n)=>e.get(A(t,n))??null,i=(e,n)=>t.get(A(e,n))??null,a=(e,t,n=null)=>{let a=r(e.scopeId,t),o=i(e.scopeId,e.id);if(!a||!o||o.isDisabled())return!1;let s=a.getGroup();if(s.disabled||s.readOnly||s.orientation===`grid`&&!S(s.columns)||!s.accepts.includes(e.type))return!1;let c=a.getItemIds().filter(n=>e.operation!==`move`||e.groupId!==t||n!==e.id),l=Object.freeze({source:e,destination:s,itemIds:Object.freeze(c),input:n===null?null:Object.freeze({...n})});return a.canDrop?.(l)!==!1},o=(e,t)=>{let n=r(e.scopeId,t.destination.groupId);if(!n)return null;let i=n.getItemIds(),a=e.operation===`move`&&e.groupId===t.destination.groupId?i.filter(t=>t!==e.id):[...i];return t.anchor!==null&&!a.includes(t.anchor.id)?null:{originalIds:i,insertionIndex:t.anchor===null?0:a.indexOf(t.anchor.id)+ +(t.anchor.edge===`after`)}},s=(e,t)=>{if(e.operation!==`move`||e.groupId!==t.destination.groupId)return!1;let n=o(e,t);return n!==null&&n.originalIds.indexOf(e.id)===n.insertionIndex},c=(e,t,n=null)=>{let i=r(e.scopeId,t.destination.groupId);if(!i||!a(e,t.destination.groupId,n))return!1;let c=i.getGroup(),l=o(e,t);if(!l||s(e,t))return!1;let u={...t,index:l.insertionIndex};return b({el:i.element,name:`ui:sortable-drop`,composed:!0,detail:ze(e,u)}),e.label&&c.label&&Re(`${e.label} moved to ${c.label}.`),!0},l=(e,t)=>{let n=i(t.scope,t.sourceId);if(!n)return!1;let r=n.getSource(),a=t.destinationGroupId??r.groupId;return!a||t.anchorId===t.sourceId?!1:c(r,{destination:{groupId:a},anchor:{id:t.anchorId,edge:e}})},u=(e,t)=>{let n=i(t.scope,t.sourceId),a=r(t.scope,t.destinationGroupId);if(!n||!a)return!1;let o=n.getSource(),s=a.getItemIds().filter(e=>o.groupId!==t.destinationGroupId||e!==o.id),l=s.length===0?null:e===`start`?{id:s[0],edge:`before`}:{id:s.at(-1),edge:`after`};return c(o,{destination:{groupId:t.destinationGroupId},anchor:l})};return{registerGroup:t=>{let r=t.getGroup();return n(e,A(r.scopeId,r.id),()=>{let e=t.getGroup();return A(e.scopeId,e.id)},t,`group`)},registerSource:e=>{let r=e.getSource();return n(t,A(r.scopeId,r.id),()=>{let t=e.getSource();return A(t.scopeId,t.id)},e,`source`)},group:r,source:i,canDrop:a,isNoop:s,emitDrop:c,moveBefore:e=>l(`before`,e),moveAfter:e=>l(`after`,e),moveToStart:e=>u(`start`,e),moveToEnd:e=>u(`end`,e)}},j=Be(),M=`--ui-sortable-drag-cursor`,N=`data-ui-sortable-dragging`,Ve=e=>{let t=document.documentElement,n=t.getAttribute(N),r=t.style.getPropertyValue(M);return t.setAttribute(N,``),t.style.setProperty(M,e.trim()||`default`),()=>{n===null?t.removeAttribute(N):t.setAttribute(N,n),r?t.style.setProperty(M,r):t.style.removeProperty(M)}},He=({props:e,effects:t})=>te({type:`parallel`,on:{PROPS_CHANGED:{reduce:`props`,effects:`reconcile`},DOM_INVALIDATED:{effects:`reconcile`}},states:{interaction:{initial:`idle`,on:{POINTER_MOVED:{reduce:`pointer`}},states:{idle:{on:{START:{target:`starting`,reduce:`start`}}},starting:{on:{STARTING_DONE:{target:`dragging`},END:{target:`ending`,reduce:`data`}}},dragging:{on:{END:{target:`ending`,reduce:`data`}}},ending:{on:{ENDING_DONE:{target:`idle`,effects:`complete`}}}}},layout:{initial:`inactive`,states:{inactive:{on:{START:{target:`calculating`}}},calculating:{entry:`resolvePlacement`,on:{POINTER_MOVED:{effects:`resolvePlacement`},LAYOUT_PROPOSED:{target:`syncing`,reduce:`data`},END:{target:`inactive`}}},syncing:{on:{RECTS_SYNCED:{target:`calculating`,effects:`synced`},END:{target:`inactive`,effects:`synced`}}}}}}},{props:e,context:{data:{},pointer:null},reducers:{start:({event:e})=>({context:{data:e.data,pointer:null}}),data:({context:e,event:t})=>({context:{...e,data:t.data}}),pointer:({context:e,event:t})=>({context:{...e,pointer:t.pointer}}),props:({context:e,event:t})=>({context:e,props:t.props})},effects:t}),P=new Map,F=new Set;function Ue(e){We(e);var t=P.get(e);if(t)return t;var n={timeOfEngagementStart:Date.now()};return P.set(e,n),n}function We(e){F.add(e)}function Ge(e){F.clear(),e(),P.forEach(function(e,t){F.has(t)||P.delete(t)}),F.clear()}function Ke(){P.clear()}var qe=new Map;function Je(e){var t=qe.get(e);if(t)return t;var n=Ye(e);return qe.set(e,n),n}function Ye(t){var n={type:`idle`},r=[];function i(t){if(n.type===`running`){var a=t-n.timeLastFrameFinished,o=n.latestArgs,s=e({x:o.location.current.input.clientX,y:o.location.current.input.clientY});Ge(function(){r.forEach(function(e){return e({underUsersPointer:s,latestArgs:o,timeSinceLastFrame:a})})}),n.timeLastFrameFinished=t,n.frameId=requestAnimationFrame(i)}}function a(){n.type!==`idle`&&(cancelAnimationFrame(n.frameId),Ke(),n={type:`idle`})}function o(e){n.type===`idle`&&(n={type:`initializing`,latestArgs:e,frameId:requestAnimationFrame(function(e){n.type===`initializing`&&(n={type:`running`,timeLastFrameFinished:e,latestArgs:n.latestArgs,frameId:requestAnimationFrame(i)})})})}function s(e){if(n.type===`idle`){o(e);return}n.latestArgs=e}return t({onDragStart:o,onDropTargetChange:s,onDrag:s,onDrop:a}),{onFrame:function(e){r.push(e)}}}var I=`data-auto-scrollable`,Xe=`[${I}="true"]`;function Ze(e){return e.setAttribute(I,`true`),function(){return e.removeAttribute(I)}}function Qe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]==null?{}:arguments[t];t%2?Qe(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qe(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var et={startHitboxAtPercentageRemainingOfElement:{top:.25,right:.25,bottom:.25,left:.25},maxScrollAtPercentageRemainingOfHitbox:{top:.5,right:.5,bottom:.5,left:.5},timeDampeningDurationMs:400,maxMainAxisHitboxSize:180},tt={standard:900,fast:1500};function nt(e){return $e($e({},et),{},{maxPixelScrollPerSecond:tt[e?.maxScrollSpeed??`standard`]})}var rt={top:function(e){return e.scrollTop>0},right:function(e){return Math.ceil(e.scrollLeft)+e.clientWidth<e.scrollWidth},bottom:function(e){return Math.ceil(e.scrollTop)+e.clientHeight<e.scrollHeight},left:function(e){return e.scrollLeft>0}},it=[`top`,`right`,`bottom`,`left`],at={top:`vertical`,right:`horizontal`,bottom:`vertical`,left:`horizontal`},ot={start:`top`,end:`bottom`,point:`y`,size:`height`},st={start:`left`,end:`right`,point:`x`,size:`width`},ct={vertical:{mainAxis:ot,crossAxis:st},horizontal:{mainAxis:st,crossAxis:ot}},L={top:`start`,right:`end`,bottom:`end`,left:`start`};function R(e){var t=e.edge,r=e.axis;return function(e){var i=e.clientRect,a=e.config,o=ct[r],s=o.mainAxis,c=o.crossAxis,l=L[t],u=Math.min(a.startHitboxAtPercentageRemainingOfElement[t]*i[s.size],a.maxMainAxisHitboxSize);return DOMRect.fromRect(n(n(n(n({},s.point,l===`start`?i[s.point]:i[s.point]+i[s.size]-u),c.point,i[c.point]),s.size,u),c.size,i[c.size]))}}var lt={top:R({axis:`vertical`,edge:`top`}),right:R({axis:`horizontal`,edge:`right`}),bottom:R({axis:`vertical`,edge:`bottom`}),left:R({axis:`horizontal`,edge:`left`})};function z(e){var t=e.startOfRange,n=e.endOfRange,r=e.value;if(!(t<n)||r<t)return 0;if(r>n)return 1;var i=n-t;return(r-t)/i}function ut(e){var t=e.timeSinceLastFrame,n=e.config,r=n.maxPixelScrollPerSecond/1e3,i=Math.ceil(r*t),a=n.maxPixelScrollPerSecond/60;return Math.min(i,a)}function dt(e){var t=e.client,n=e.axis,r=e.edge,i=e.hitbox,a=e.config,o=ct[n].mainAxis,s=L[r],c=i[o.size]*a.maxScrollAtPercentageRemainingOfHitbox[r];return s===`end`?z({startOfRange:i[o.start],endOfRange:i[o.end]-c,value:t[o.point]}):1-z({startOfRange:i[o.start]+c,endOfRange:i[o.end],value:t[o.point]})}function B(e){var t=e.client,n=e.timeSinceLastFrame,r=e.engagement,i=e.axis,a=e.hitbox,o=e.edge,s=e.isDistanceDampeningEnabled,c=e.config,l=ut({timeSinceLastFrame:n,config:c}),u=(s?dt({client:t,edge:o,hitbox:a,axis:i,config:c}):1)*z({startOfRange:r.timeOfEngagementStart,endOfRange:r.timeOfEngagementStart+c.timeDampeningDurationMs,value:Date.now()}),d=Math.max(l*u,1);return L[o]===`end`?d:-1*d}function ft(e,t){return t===`all`||e===t}function pt(e){var t=e.client,n=e.clientRect;return t.x>=n.x&&t.x<=n.x+n.width&&t.y>=n.y&&t.y<=n.y+n.height}function mt(e){return e.getBoundingClientRect()}function ht(e){var t=e.element,n=e.input,r=e.timeSinceLastFrame,i=e.engagement,a=e.config,o=e.allowedAxis,s=e.getRect,c=s===void 0?mt:s,l={x:n.clientX,y:n.clientY},u=c(t),d=it.reduce(function(e,n){var r=lt[n]({clientRect:u,config:a}),i=at[n];return!ft(i,o)||!pt({client:l,clientRect:r})||!rt[n](t)||e.set(n,{edge:n,hitbox:r}),e},new Map);return{left:function(){var e=`horizontal`,t=d.get(`left`);if(t)return B({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`right`);return n?B({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}(),top:function(){var e=`vertical`,t=d.get(`bottom`);if(t)return B({client:l,edge:t.edge,hitbox:t.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a});var n=d.get(`top`);return n?B({client:l,edge:n.edge,hitbox:n.hitbox,axis:e,timeSinceLastFrame:r,engagement:i,isDistanceDampeningEnabled:!0,config:a}):0}()}}function gt(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=_t(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function _t(e,t){if(e){if(typeof e==`string`)return vt(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vt(e,t):void 0}}function vt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function yt(e){return!!(e.top||e.left)}function bt(e){var t=e.target,n=e.input,r=e.source,i=e.findEntry,a=e.timeSinceLastFrame,o=e.available,s=o===void 0?{top:!0,left:!0}:o;if(!yt(s)||!t)return s;var c=t.closest(Xe);if(!c)return s;var l=i(c);if(!l)return s;function u(){return bt({target:c?.parentElement??null,findEntry:i,source:r,timeSinceLastFrame:a,input:n,available:s})}var d={input:n,source:r,element:c};if(l.canScroll&&!l.canScroll(d))return u();var f=Ue(c),p=nt(l.getConfiguration?.call(l,d)),m=ht({element:c,engagement:f,input:n,timeSinceLastFrame:a,allowedAxis:l.getAllowedAxis?.call(l,d)??`all`,config:p}),h={top:0,left:0};return s.top&&m.top!==0&&(h.top=m.top,s.top=!1),s.left&&m.left!==0&&(h.left=m.left,s.left=!1),(h.top!==0||h.left!==0)&&c.scrollBy(h),u()}function xt(e){var t=e.input,n=e.timeSinceLastFrame,r=e.available,i=e.source,a=e.entries,o=document.documentElement,s={input:t,source:i,element:o},c=gt(a),l;try{for(c.s();!(l=c.n()).done;){var u=l.value;if(!(u.canScroll&&!u.canScroll(s))){var d=ht({element:o,engagement:Ue(o),input:t,config:nt(u.getConfiguration?.call(u,s)),allowedAxis:u.getAllowedAxis?.call(u,s)??`all`,getRect:function(e){return DOMRect.fromRect({y:0,x:0,width:e.clientWidth,height:e.clientHeight})},timeSinceLastFrame:n}),f={top:r.top?d.top:0,left:r.left?d.left:0};(f.top!==0||f.left!==0)&&o.scrollBy(f);break}}}catch(e){c.e(e)}finally{c.f()}}function St(e){var t=e.input,n=e.findEntry,r=e.timeSinceLastFrame,i=e.source,a=e.getWindowScrollEntries,o=e.underUsersPointer,s=bt({target:o,timeSinceLastFrame:r,input:t,source:i,findEntry:n});yt(s)&&xt({input:t,source:i,entries:a(),timeSinceLastFrame:r,available:s})}function Ct(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]==null?{}:arguments[t];t%2?Ct(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ct(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Tt(e){var t=e.monitor,n=new Map,i=new Set;function a(e){return n.set(e.element,e),r(o(Ze(e.element),function(){return n.delete(e.element)}))}function s(){var e=wt({},arguments.length>0&&arguments[0]!==void 0?arguments[0]:{});i.add(e);function t(){i.delete(e)}return r(t)}function c(e){return n.get(e)??null}function l(){return Array.from(i)}function u(e){var t=e.latestArgs,n=e.underUsersPointer,r=e.timeSinceLastFrame;St({input:t.location.current.input,source:t.source,findEntry:c,underUsersPointer:n,timeSinceLastFrame:r,getWindowScrollEntries:l})}return Je(t).onFrame(u),{autoScroll:a,autoScrollWindow:s}}var Et=Tt({monitor:ae}),Dt=Et.autoScroll,Ot=Et.autoScrollWindow,kt=s();function At(e){e.defaultPrevented||(e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.preventDefault())}var V=null;function jt(){H(),V=(0,kt.bindAll)(window,[{type:`dragover`,listener:At},{type:`dragenter`,listener:At},{type:`drop`,listener:function(e){e.preventDefault(),H()}},{type:`dragend`,listener:H}].concat(a(i({onDragEnd:H}))),{capture:!1})}function H(){var e;(e=V)==null||e(),V=null}function Mt(){if(window.event?.type===`drop`){var e;(e=window.event)==null||e.preventDefault()}H()}var Nt={start:jt,stop:Mt},U=`[data-ui-sortable]`,Pt=`[data-ui-sortable-item]`,Ft=`[data-ui-sortable-source]`,It=`[x-ui-sortable\\:handle], [data-ui-sortable-handle]`,Lt=`[x-ui-sortable\\:preview], [data-ui-sortable-preview]`,Rt=`[x-ui-sortable\\:indicator], [data-ui-sortable-indicator]`,zt=`ui-sortable`,W=2,Bt=`a, button, input, select, textarea, summary, [contenteditable], [role="button"], [role="link"]`,Vt={sortableScope:h.trim,sortableId:h.trim,orientation:g([`vertical`,`horizontal`,`grid`],`vertical`),columns:m.default(0),accepts:y.array([]),disabled:_,readonly:_,feedback:g([`indicator`,`reorder`],`indicator`),sourceOpacity:m.clamp(0,1).default(.4),ghostOpacity:m.clamp(0,1).default(.92),dragCursor:h.trim.default(`default`),previewPosition:h.trim.default(`preserve`),color:g(le,`neutral`),interaction:g(ue,`edge`),label:h.trim,sortableData:y.object({})},Ht={sortableScope:h.trim,sortableId:h.trim,sortableType:h.trim,label:h.trim,disabled:_,sortableData:y.object({}),sourceOpacity:m.clamp(0,1).default(.4),ghostOpacity:m.clamp(0,1).default(.92),dragCursor:h.trim.default(`default`),previewPosition:h.trim.default(`12px 12px`),color:g(le,`neutral`),interaction:g(ue,`edge`)},Ut=[x({name:`starting`,state:`interaction.starting`,project:({context:e})=>e.data,onDone:`STARTING_DONE`,onError:`STARTING_DONE`}),x({name:`placing`,state:`layout.syncing`,project:({context:e})=>e.data,onDone:`RECTS_SYNCED`,onError:`RECTS_SYNCED`}),x({name:`ending`,state:`interaction.ending`,project:({context:e})=>e.data,onDone:`ENDING_DONE`,onError:`ENDING_DONE`})],G=new WeakMap,K=new Set,Wt=new WeakMap,q=null,J=(e,t)=>e.closest(t),Gt=e=>[...e.querySelectorAll(Pt)].filter(t=>J(t.parentElement??t,U)===e),Y=(e,t=e.dataset.sortableId)=>f(e,t)??``,Kt=e=>{let t=e.group();return{controller:e,layout:{groupId:t.id,orientation:t.orientation,direction:getComputedStyle(e.el).direction===`rtl`?`rtl`:`ltr`,columns:t.columns,groupRect:e.el.getBoundingClientRect(),items:Gt(e.el).map(e=>({id:Y(e),rect:e.getBoundingClientRect()}))}}},X=e=>{let t=e.controller.group(),n=e.controller.el.getBoundingClientRect(),r=n.left-e.layout.groupRect.left,i=n.top-e.layout.groupRect.top,a=e=>({left:e.left+r,right:e.right+r,top:e.top+i,bottom:e.bottom+i,width:e.width,height:e.height});return{...e.layout,orientation:t.orientation,columns:t.columns,groupRect:n,items:e.layout.items.map(e=>({...e,rect:a(e.rect)}))}},qt=(e,t,n)=>{if(t.target===n)return null;t.target=n;let r=c(e).animate({translate:n||`none`}).role(`layout`).play();return t.handle=r,r.finished.then(()=>{t.handle===r&&(t.handle=null,e.style.translate=t.target)}),r},Jt=()=>{let e=q;if(!e)return;let t=[...e.projections.keys()];e.projections.forEach((t,n)=>{t.handle=null,n.style.translate=t.target,t.target===t.baseline&&(n.removeAttribute(`data-reordering`),e.projections.delete(n))}),t.forEach(e=>e.getBoundingClientRect())},Yt=(e=!1)=>{let t=q;if(!t)return[];let n=[];return t.projections.forEach((t,r)=>{if(e)t.handle?.stop(),r.style.translate=t.baseline;else{let e=qt(r,t,t.baseline);e&&n.push(e)}r.removeAttribute(`data-reordering`)}),e&&t.projections.clear(),K.forEach(({el:e})=>e.removeAttribute(`data-reordering`)),n},Z=(e=null)=>{K.forEach(({el:t})=>{t!==e&&t.removeAttribute(`data-drag-rejected`)})},Xt=e=>{let t=q;if(!t)return[];let n=[],r=new Map;e.forEach(({groupId:e,id:n,x:i,y:a})=>{let o=t.layouts.get(e),s=o&&Gt(o.controller.el).find(e=>Y(e)===n);s&&r.set(s,{x:i,y:a,group:o.controller})}),t.projections.forEach((e,t)=>{if(r.has(t))return;let i=qt(t,e,e.baseline);i&&n.push(i),t.removeAttribute(`data-reordering`)});let i=new Set;return r.forEach(({x:e,y:r,group:a},o)=>{let s=t.projections.get(o);s||(s={baseline:o.style.translate,target:o.style.translate,handle:null},t.projections.set(o,s));let c=`${e}px ${r}px`,l=qt(o,s,c);l&&n.push(l),o.setAttribute(`data-reordering`,``),i.add(a)}),K.forEach(e=>e.el.toggleAttribute(`data-reordering`,i.has(e))),n},Zt=(e,t,n,r=null)=>{let i=e.indicator();if(!i)return;if(!t||!r){i.hidden=!0;return}Object.assign(i.style,{position:`absolute`,left:`0`,top:`0`}),i.hidden=!1;let a=t.anchor?.edge??`empty`,o=i.offsetParent,s=o instanceof Element?o.getBoundingClientRect():{left:-window.scrollX,top:-window.scrollY},c=o instanceof HTMLElement?o.scrollLeft:0,l=o instanceof HTMLElement?o.scrollTop:0,u=r.kind===`inline-boundary`,d=r.kind===`block-boundary`,f=r.x-s.left+c-(u?W/2:0),p=r.y-s.top+l-(d?W/2:0);Object.assign(i.style,{transform:`translate3d(${f}px, ${p}px, 0)`,width:`${u?W:r.width}px`,height:`${d?W:r.height}px`,pointerEvents:`none`,zIndex:`2147483646`}),i.dataset.orientation=e.group().orientation,i.dataset.edge=a,i.dataset.index=String(t.index??0),i.dataset.operation=n??``,i.dataset.indicatorKind=r.kind},Qt=()=>{q?.group&&(q.group.el.removeAttribute(`data-drag-over`),q.group.el.removeAttribute(`data-drop-edge`),q.group.el.removeAttribute(`data-drop-effect`),q.group.el.removeAttribute(`data-drop-noop`),q.group.el.removeAttribute(`data-placing`),Zt(q.group,null),q.group=null)},Q=(e=!1)=>{if(!q)return[];let t=Yt(e);return Qt(),q.placement=null,t},$=(e,t=`outside`)=>{let n=q;if(!n)return;Nt.stop();let r=n.placement,i=n.source.groupId===null?null:n.layouts.get(n.source.groupId)??null,a=r?n.layouts.get(r.destination.groupId)??null:null,o=e===`drop`&&r&&a?we({source:n.source,placement:r,sourceLayout:i?X(i):null,destinationLayout:X(a)}):null,s=o?{x:o.left,y:o.top,width:o.width,height:o.height}:je(n.controller.el.getBoundingClientRect());Q(!0),q=null,n.controller.el.removeAttribute(`data-dragging`),n.controller.el.removeAttribute(`data-drag-operation`),n.controller.el.removeAttribute(`data-sortable-phase`),n.controller.restoreAppearance(),n.restoreCursor(),Z(),e===`cancel`&&b({el:n.controller.el,name:`ui:sortable-cancel`,composed:!0,detail:Object.freeze({source:n.source,reason:t})});let c=n.ghost.frame();n.controller.afterEnd=()=>{n.ghost.remove(),n.controller.ghost=null,n.controller.afterEnd=null},n.controller.machine.send({type:`END`,data:{outcome:e,source:n.source,placement:e===`drop`?r:null,...e===`cancel`?{reason:t}:{},fromFrame:c,toFrame:s??c,fromTransform:n.ghost.positioner.style.transform,toTransform:s?`translate3d(${s.x}px, ${s.y}px, 0)`:n.ghost.positioner.style.transform}})},$t=(e,t)=>{if(!q)return;let n=q.placement,r=q.group!==e;r&&Qt();let i=e.group(),a=q.source.operation===`insert`?`indicator`:i.feedback,o=Kt(e).layout,s=o.items,c=s.map(({id:e})=>e),l=q.source.id,u=a===`reorder`&&i.id===q.source.groupId?s.filter(({id:e})=>e!==l):s,d={groupId:i.id,orientation:i.orientation,direction:o.direction,columns:i.columns,groupRect:o.groupRect,items:u},f=q.ghost.projectedSourceFrame(t),p=a===`reorder`?{clientX:i.orientation===`vertical`?t.clientX:f.x+f.width/2,clientY:i.orientation===`horizontal`?t.clientY:f.y+f.height/2}:t,m=(a===`reorder`?ve:_e)({...d,input:p}),h=a===`indicator`?be({...d,items:s},m):null,g=a===`reorder`?m:ye({placement:m,sourceId:q.source.id,sourceGroupId:q.source.groupId,itemIds:c});if(!r&&de(n,g))return;let _=q.source.groupId===null?null:q.layouts.get(q.source.groupId)??null,v=q.layouts.get(i.id),y=j.isNoop(q.source,g),x=a===`reorder`&&!y?Te({source:q.source,placement:g,sourceLayout:_?X(_):null,destinationLayout:v?X(v):null}):[];q.group=e,q.placement=g,e.el.setAttribute(`data-drag-over`,``),e.el.dataset.dropEdge=g.anchor?.edge??`empty`,e.el.dataset.dropEffect=q.source.operation===`insert`?`copy`:`move`,e.el.toggleAttribute(`data-drop-noop`,y),b({el:e.el,name:`ui:sortable-placement-change`,composed:!0,detail:Object.freeze({source:q.source,previous:n,placement:g})}),q.controller.machine.send({type:`LAYOUT_PROPOSED`,data:{source:q.source,previous:n,placement:g,feedback:a,offsets:x,indicatorFrame:h,noop:y}})},en=e=>{let t=q;if(!t?.group||!de(t.placement,e.placement))return;t.controller.el.dataset.sortablePhase=`placing`,t.group.el.setAttribute(`data-placing`,``);let n=e.feedback===`reorder`&&!e.noop?Xt(e.offsets):Yt();e.feedback===`reorder`&&!e.noop?Zt(t.group,null):Zt(t.group,e.noop?null:e.placement,t.source.operation,e.indicatorFrame);let r=()=>{q===t&&Jt()};if(n.length===0){r();return}return Promise.allSettled(n.map(({finished:e})=>e)).then(r)},tn=(e,t)=>{e.setAttribute(`data-ui-sortable`,``),l(e,`data-ui-sortable`,`data-drop-target-for-element`,`data-auto-scrollable`);let n=()=>void 0,r=v({el:e,schema:Vt,onChange:()=>n()}),i={el:e,group:()=>Object.freeze({scopeId:r.sortableScope,id:Y(e,r.sortableId),orientation:r.orientation,columns:r.orientation===`grid`?r.columns:null,accepts:r.accepts,disabled:r.disabled,readOnly:r.readonly,...r.label?{label:r.label}:{},feedback:r.feedback,sourceOpacity:r.sourceOpacity,ghostOpacity:r.ghostOpacity,dragCursor:r.dragCursor,previewPosition:r.previewPosition,color:r.color,interaction:r.interaction,...Object.keys(r.sortableData).length?{data:Object.freeze({...r.sortableData})}:{}}),itemIds:()=>Gt(e).map(e=>Y(e)).filter(Boolean),indicator:()=>[...e.querySelectorAll(Rt)].find(t=>J(t.parentElement??t,U)===e)??null,refresh:()=>n()};(!r.sortableScope||!i.group().id||r.accepts.length===0)&&d(`Invalid sortable group props`,e),r.orientation===`grid`&&!S(r.columns)&&d(`Grid sortable groups require positive data-columns`,e),G.set(e,i),K.add(i);let a=j.registerGroup({element:e,getGroup:i.group,getItemIds:i.itemIds,canDrop:t=>Wt.get(e)?.(t)!==!1});n=()=>{q?.group===i&&$(`cancel`,`removed`),a.refresh()};let o=u(e,{invalidateDom:i.refresh}),s=re({element:e,canDrop:({source:t,input:n})=>{let r=q,a=t.data.marker===zt&&r!==null,o=a&&j.canDrop(r.source,i.group().id,{clientX:n.clientX,clientY:n.clientY});return e.toggleAttribute(`data-drag-rejected`,a&&!o),o},getDropEffect:()=>`move`,onDrop:()=>{if(!q||q.group!==i||!q.placement)return;let e=j.emitDrop(q.source,q.placement,q.input),t=i.group();$(e?`drop`:`cancel`,t.disabled||t.readOnly?`disabled`:`outside`)}}),c=Dt({element:e});t.cleanup(()=>{q?.group===i&&Q(!0),c(),s(),o(),a(),r.disconnect(),G.delete(e),K.delete(i),e.removeAttribute(`data-drag-rejected`)})},nn=(e,t,n)=>{let r=t===`item`?`data-ui-sortable-item`:`data-ui-sortable-source`;e.setAttribute(r,``),l(e,r,`draggable`);let i=()=>t===`item`?J(e.parentElement??e,U):null,a,o=ee({schema:Ht,hooks:Ut,createMachine:({props:t})=>He({props:t,effects:{resolvePlacement:({context:e})=>{let t=q,n=e.pointer;if(!t||!n)return;let r=n.destinationId===null?null:t.layouts.get(n.destinationId)?.controller??null;r?$t(r,n.input):Q()},synced:()=>{e.removeAttribute(`data-sortable-phase`),q?.group?.el.removeAttribute(`data-placing`)},complete:()=>a.afterEnd?.(),reconcile:()=>a.refresh()}}),resolveTransitionElement:({name:e})=>e===`starting`?a.ghost?.visual:e===`placing`?q?.group?.el:a.ghost?.positioner});o.connect(e);let s=()=>o.getCommittedSnapshot().props;a={el:e,owner:i,source:()=>{let n=s(),r=i(),a=r?G.get(r)?.group():null,o={scopeId:t===`item`?a?.scopeId??``:n.sortableScope,id:Y(e,n.sortableId),type:n.sortableType,...n.label?{label:n.label}:{},...Object.keys(n.sortableData).length?{data:Object.freeze({...n.sortableData})}:{}};return Object.freeze(t===`item`?{operation:`move`,groupId:a?.id??``,...o}:{operation:`insert`,groupId:null,...o})},disabled:()=>{let e=i(),t=e?G.get(e)?.group():null;return s().disabled||t?.disabled===!0||t?.readOnly===!0},appearance:()=>{let e=s(),t=i(),n=t?G.get(t)?.group():null;return{sourceOpacity:n?.sourceOpacity??e.sourceOpacity,ghostOpacity:n?.ghostOpacity??e.ghostOpacity,dragCursor:n?.dragCursor??e.dragCursor,previewPosition:n?.previewPosition??e.previewPosition,color:n?.color??e.color,interaction:n?.interaction??e.interaction}},refresh:()=>void 0,restoreAppearance:()=>{a.previousOpacity!==null&&(e.style.opacity=a.previousOpacity,a.previousOpacity=null)},machine:o,ghost:null,afterEnd:null,previousOpacity:null};let c=o.onTransition(`placing`,e=>en(e.data)),u=e.getAttributeNames().some(e=>e===`x-ui-transition:ending`)?()=>void 0:o.onTransition(`ending`,e=>{let t=e.data.toFrame??null;return a.ghost?.finish(t)}),f=a.source();(!f.scopeId||!f.id||!f.type)&&d(`Invalid sortable source props`,e);let p=j.registerSource({element:e,getSource:a.source,isDisabled:a.disabled});a.refresh=()=>{q?.controller===a&&$(`cancel`,`removed`),p.refresh()};let m=[...e.querySelectorAll(It)].find(t=>J(t,`${Pt}, ${Ft}`)===e),h=[...e.querySelectorAll(Lt)].find(t=>J(t,`${Pt}, ${Ft}`)===e),g=se(e,`move`),_=ce({element:e,...m?{dragHandle:m}:{},canDrag:({input:t})=>{let n=document.elementFromPoint(t.clientX,t.clientY)?.closest(Bt)??null;return!a.disabled()&&(!!m||n===null||n===e)},getInitialData:()=>{let e=a.source();return{marker:zt,scopeId:e.scopeId,sortableId:e.id,sortableType:e.type}},onGenerateDragPreview:oe,onDragStart:t=>{Nt.start();let n=a.source(),r=ie(t),i=a.appearance(),s=Me({source:e,input:ne(t),preview:h??null,previewPosition:h?.dataset.previewPosition||i.previewPosition,opacity:i.ghostOpacity,color:i.color,interaction:i.interaction});s.move(r),a.ghost=s,a.previousOpacity=e.style.opacity,e.style.opacity=`${i.sourceOpacity}`;let c=Ve(i.dragCursor);q={controller:a,source:n,ghost:s,placement:null,group:null,layouts:new Map([...K].flatMap(e=>{let t=e.group();return t.scopeId===n.scopeId?[[t.id,Kt(e)]]:[]})),projections:new Map,input:r,timestamp:performance.now(),restoreCursor:c},e.setAttribute(`data-dragging`,``),e.dataset.dragOperation=n.operation,b({el:e,name:`ui:sortable-start`,composed:!0,detail:Object.freeze({source:n})}),o.send({type:`START`,data:{source:n,sourceFrame:je(e.getBoundingClientRect()),ghostFrame:s.frame()}})},onDrag:t=>{if(q?.controller!==a)return;let n=ie(t),r=q.input,i=performance.now(),s=Math.max(i-q.timestamp,1);q.input=n,q.timestamp=i,q.ghost.move(n);let c=t.location.current.dropTargets.map(({element:e})=>e instanceof HTMLElement?G.get(e):void 0).find(e=>e!==void 0);o.send({type:`POINTER_MOVED`,pointer:{destinationId:c?.group().id??null,input:n}}),Z(document.elementFromPoint(n.clientX,n.clientY)?.closest(U)??null),b({el:e,name:`ui:sortable-drag`,composed:!0,detail:Object.freeze({source:q.source,input:Object.freeze(n),previousInput:Object.freeze(r),delta:Object.freeze({x:n.clientX-r.clientX,y:n.clientY-r.clientY}),velocity:Object.freeze({x:(n.clientX-r.clientX)/s,y:(n.clientY-r.clientY)/s}),ghostFrame:Object.freeze({...q.ghost.frame()})})})},onDrop:()=>queueMicrotask(()=>{q?.controller===a&&$(`cancel`,a.disabled()?`disabled`:`outside`)})});n.cleanup(()=>{if(q?.controller===a){let t=q;Nt.stop(),Q(!0),q=null,e.removeAttribute(`data-dragging`),e.removeAttribute(`data-drag-operation`),e.removeAttribute(`data-sortable-phase`),b({el:e,name:`ui:sortable-cancel`,composed:!0,detail:Object.freeze({source:t.source,reason:`removed`})}),t.ghost.remove(),t.restoreCursor(),Z(),a.restoreAppearance(),a.ghost=null,a.afterEnd=null}_(),g(),c(),u(),p(),o.disconnect(),a.afterEnd?.(),a.ghost?.remove(),a.ghost=null,a.afterEnd=null})},rn=null,an=e=>{e.addInitSelector(()=>`[x-ui-sortable], [x-ui-sortable\\:item], [x-ui-sortable\\:source]`),rn??=Ot(),e.directive(`ui-sortable`,e.skipDuringClone((e,{value:t,expression:n},r)=>{e instanceof HTMLElement&&(t?t===`item`||t===`source`?nn(e,t,r):t===`handle`?(e.setAttribute(`data-ui-sortable-handle`,``),l(e,`data-ui-sortable-handle`)):t===`indicator`?(e.setAttribute(`data-ui-sortable-indicator`,``),l(e,`data-ui-sortable-indicator`,`aria-hidden`,`hidden`),e.setAttribute(`aria-hidden`,`true`),e.hidden=!0):t===`preview`?(e.setAttribute(`data-ui-sortable-preview`,``),l(e,`data-ui-sortable-preview`,`data-preview-position`)):t===`can-drop`&&n?.trim()&&(Wt.set(e,e=>r.evaluate(n,{scope:{$sortable:e}})!==!1),r.cleanup(()=>Wt.delete(e))):tn(e,r))}))},on=new WeakSet,sn=e=>{on.has(e)||(on.add(e),p(j),an(e))};export{j as i,an as n,Be as r,sn as t};
3
- //# sourceMappingURL=capability-sortable-DhIaUo4k.js.map
@@ -1,2 +0,0 @@
1
- import{t as e}from"./capability-motion-LgqzTNla.js";import{c as t,f as n,l as r,n as i,t as a}from"./codecs-Cb1ns_47.js";import{r as o,t as s}from"./dom-qAeVl7dc.js";import{i as c,t as l}from"./alpine-machine-BS13dbK4.js";import{t as u}from"./alpine-data-CytyCyfk.js";import{n as d}from"./anchored-popover-BXEMsLrA.js";import{n as f,t as p}from"./styles-TfvwVPGw.js";import{t as m}from"./merge-bindings-C8ewA_FD.js";import{t as h}from"./machine-Dqut4h89.js";import{t as g}from"./semantic-observer-BUswpsNx.js";import{F as _,I as v,R as y,d as b,t as x}from"./common-Dfj6NCjU.js";import{o as S}from"./capability-shortcut-Br_XBf7u.js";import{n as C,t as w}from"./controller-DsXbNzqk.js";var T={side:r(v,`bottom`),align:r(x,`center`),offset:t.clamp(-100,100).default(0),gap:t.clamp(0,50).default(8),openDelay:t.clamp(0,5e3).default(400),closeDelay:t.clamp(0,5e3).default(150),color:r([`neutral`,`accent`,`success`,`warning`,`danger`],`neutral`),variant:r([`surface`,`soft`,`solid`],`surface`),surface:r(y,`2`),elevation:r(b,`4`),disabled:i,class:n},E={side:a(T.side,`ui-tooltip-side`),align:a(T.align,`ui-tooltip-align`),offset:a(T.offset,`ui-tooltip-offset`),gap:a(T.gap,`ui-tooltip-gap`),openDelay:a(T.openDelay,`ui-tooltip-open-delay`),closeDelay:a(T.closeDelay,`ui-tooltip-close-delay`),color:a(T.color,`ui-tooltip-color`),variant:a(T.variant,`ui-tooltip-variant`),surface:a(T.surface,`ui-tooltip-surface`),elevation:a(T.elevation,`ui-tooltip-elevation`),disabled:a(T.disabled,`ui-tooltip-disabled`)},D=({context:e})=>e.transition,O=[c({name:`opening`,state:`opening`,project:D,onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),c({name:`closing`,state:`closing`,project:D,onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],k=e=>{let t=e.reason;return t===`focus`||t===`escape`||t===`activation`||t===`scroll`||t===`blur`||t===`disabled`||t===`replacement`?t:`pointer`},A=(e,t)=>h({initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,reduce:`transition`,effects:`prepareOpen`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,reduce:`transition`,effects:`prepareClose`},PROPS_CHANGED:[{target:`closing`,guard:`becomesDisabled`,reduce:`replacePropsDisabled`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},open:{tags:[`visible`,`expanded`,`open`],on:{CLOSE:{target:`closing`,reduce:`transition`,effects:`prepareClose`},PROPS_CHANGED:[{target:`closing`,guard:`becomesDisabled`,reduce:`replacePropsDisabled`,effects:[`syncProps`,`prepareClose`]},{reduce:`replaceProps`,effects:`syncProps`}]}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,reduce:`transition`,effects:`prepareOpen`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}}}}},{context:{transition:{reason:`pointer`,instant:!1}},props:e,reducers:{transition:({context:e,props:t,event:n})=>({context:{transition:{reason:k(n),instant:n.instant===!0}},props:t}),replaceProps:({context:e,props:t,event:n})=>({context:e,props:n.props??t}),replacePropsDisabled:({context:e,props:t,event:n})=>({context:{transition:{reason:`disabled`,instant:!0}},props:n.props??t})},guards:{canOpen:({props:e})=>!e.disabled,becomesDisabled:({event:e})=>e.props?.disabled===!0},effects:t}),j=p({definition:{component:`ui.tooltip`,parts:{root:{base:`contents`},content:{base:[_,`pointer-events-auto min-h-control-md max-w-72 auto-cols-max grid-flow-col items-center gap-2 rounded-overlay-sm px-2 py-1`,`font-body text-1 [font-weight:var(--font-weight-normal)]`,`data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0`],variants:{color:{neutral:``,accent:``,success:``,warning:``,danger:``},variant:{surface:``,soft:``,solid:``}},defaults:{color:`neutral`,variant:`surface`}},shortcut:{base:`ml-1 inline-flex items-center gap-1 text-[var(--ui-semantic-surface-ink-muted)]`}}}}),M=new WeakMap,N=e=>{let t=M.get(e);return t||(t={active:null},M.set(e,t)),t},P=(e,t)=>{let n=new Set((e.getAttribute(`aria-describedby`)??``).split(/\s+/).filter(Boolean));n.add(t),e.setAttribute(`aria-describedby`,[...n].join(` `))},F=(e,t)=>{let n=(e.getAttribute(`aria-describedby`)??``).split(/\s+/).filter(e=>e&&e!==t);n.length?e.setAttribute(`aria-describedby`,n.join(` `)):e.removeAttribute(`aria-describedby`)},I=({owner:e,trigger:t,content:n,schema:r,syncShortcut:i})=>{let a=[],c=null,u=null,p=null,m=``,h=!1,_=!1,v=e=>{let t=e===`open`?u:p;t!==null&&clearTimeout(t),e===`open`?u=null:p=null},y=()=>C.getSnapshot().props,b=()=>C.hasTag(`visible`),x=()=>{let e=y(),r=n();r.dataset.state=C.hasTag(`expanded`)?`open`:`closed`,r.setAttribute(`data-ui-semantic-surface`,``),r.dataset.color=e.color,r.dataset.variant=e.variant,r.dataset.uiSurface=e.surface,r.dataset.uiElevation=e.elevation,r.className=f({part:j.parts.content,props:e,className:r.dataset.class}),i?.(t().dataset.uiTooltipShortcut??``),c?.sync()},S={prepareOpen(){n().hidden=!1,c?.open(),x()},finishOpen(){x(),o({el:e(),name:`ui:open`})},prepareClose(){x()},finishClose:()=>{c?.close(),n().hidden=!0,x();let t=N(e().ownerDocument);t.active===k&&(t.active=null),o({el:e(),name:`ui:close`})},syncProps(){x(),y().disabled&&b()&&k.close(`disabled`,!0)}},C=l({schema:r,hooks:O,createMachine:({props:e})=>A(e,S)}),w=(t,n=!1)=>{if(v(`open`),v(`close`),y().disabled||C.hasTag(`expanded`))return;let r=N(e().ownerDocument),i=r.active!==null&&r.active!==k;r.active&&r.active!==k&&r.active.close(`replacement`,!0),r.active=k,C.send({type:`OPEN`,reason:t,instant:n||i})},T=(e,t=!1)=>{v(`open`),v(`close`),b()&&C.send({type:`CLOSE`,reason:e,instant:t})},E=()=>{if(v(`close`),b()||y().disabled)return;let t=N(e().ownerDocument).active?0:y().openDelay;v(`open`),u=setTimeout(()=>w(`pointer`,t===0),t)},D=()=>{v(`open`),b()&&(v(`close`),p=setTimeout(()=>T(`pointer`),y().closeDelay))},k={bridge:C,connect(r){C.connect(e(),r),m=n().id||`ui-tooltip-${crypto.randomUUID()}`,n().id=m,n().setAttribute(`role`,`tooltip`),n().setAttribute(`popover`,`hint`),n().setAttribute(`data-ui-tooltip-content`,``),n().hidden=!0,t().setAttribute(`data-ui-tooltip-trigger`,``),P(t(),m),`interestForElement`in t()&&t().setAttribute(`interestfor`,m),c=d({reference:t,floating:n,position:()=>y().side,align:()=>y().align,gap:()=>y().gap,offset:()=>y().offset}),x(),a=[s({target:t(),event:`pointerenter`,handler:()=>{h=!0,E()}}),s({target:t(),event:`pointerleave`,handler:()=>{h=!1,_||D()}}),s({target:n(),event:`pointerenter`,handler:()=>{_=!0,v(`close`)}}),s({target:n(),event:`pointerleave`,handler:()=>{_=!1,h||D()}}),s({target:t(),event:`focusin`,handler:()=>w(`focus`,!0)}),s({target:t(),event:`focusout`,handler:()=>{!h&&!_&&T(`blur`,!0)}}),s({target:t(),event:`pointerdown`,handler:()=>T(`activation`,!0)}),s({target:t(),event:`click`,handler:()=>T(`activation`,!0)}),s({target:t(),event:`interest`,handler:E}),s({target:t(),event:`loseinterest`,handler:D}),s({target:e().ownerDocument,event:`keydown`,handler:e=>{e instanceof KeyboardEvent&&e.key===`Escape`&&b()&&T(`escape`,!0)}}),s({target:e().ownerDocument,event:`scroll`,options:{capture:!0},handler:()=>{b()&&T(`scroll`,!0)}}),g({targets:t(),read:()=>t().dataset.uiTooltipShortcut??``,onChange:x,observer:{attributes:!0,attributeFilter:[`data-ui-tooltip-shortcut`]}})]},close:T,sync:x,destroy(){v(`open`),v(`close`),a.forEach(e=>e()),a=[];let n=N(e().ownerDocument);n.active===k&&(n.active=null),c?.destroy(),c=null,F(t(),m),t().removeAttribute(`data-ui-tooltip-trigger`),t().removeAttribute(`interestfor`),C.disconnect()}};return k},L=()=>{let e=null,t=null,n=()=>{if(!e)throw Error(`Tooltip has not been initialized.`);return e},r=()=>{let e=n().querySelector(`:scope > [data-ui-tooltip-content]`);if(!(e instanceof HTMLElement))throw Error(`Tooltip requires ui.tooltip.content.`);return e},i=()=>{let e=Array.from(n().children).find(e=>e instanceof HTMLElement&&e!==r());if(!(e instanceof HTMLElement))throw Error(`Tooltip requires an interactive trigger before its content.`);return e};return{...l({schema:T,hooks:O,createMachine:({props:e})=>A(e,{prepareOpen(){},finishOpen(){},prepareClose(){},finishClose(){},syncProps(){}})}),init(){e=this.$el,t=I({owner:n,trigger:i,content:r,schema:T}),t.connect(this.snapshot)},destroy(){t?.destroy(),t=null,e=null},get root(){return m({inputs:[f({part:j.parts.root,props:this.snapshot.current?.props??{}}),{"data-ui-tooltip-root":``}]})},get content(){return{"data-ui-tooltip-content":``}}}},R=e=>{e.addInitSelector(()=>`[x-ui-tooltip]`),e.directive(`ui-tooltip`,e.skipDuringClone((e,{expression:t},n)=>{if(!(e instanceof HTMLElement))return;let r=e.ownerDocument.createElement(`div`),i=e.ownerDocument.createElement(`span`);i.setAttribute(`data-ui-tooltip-label`,``),r.append(i);let a=e.ownerDocument.createElement(`span`);a.setAttribute(`data-ui-keybinding`,``),a.setAttribute(`aria-hidden`,`true`),a.className=f({part:C.parts.root,className:f({part:j.parts.shortcut})}),r.append(a);let o=w(a);e.insertAdjacentElement(`afterend`,r);let s=I({owner:()=>e,trigger:()=>e,content:()=>r,schema:E,syncShortcut:e=>o.setValue(e)});s.connect();let c=n.evaluateLater(t);n.effect(()=>c(t=>{let n=typeof t==`string`?t.trim():``;i.textContent=n,e.toggleAttribute(`data-ui-tooltip-disabled`,!n),s.sync()})),n.cleanup(()=>{s.destroy(),o.destroy(),r.remove()})})).before(`ui-transition`)},z=e=>{u(`UiTooltip`,L)(e),R(e)},B=new WeakSet,V=t=>{B.has(t)||(B.add(t),e(t),S(t),z(t))};export{L as n,R as r,V as t};
2
- //# sourceMappingURL=entry.generated-B-PuCg-D.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-B-PuCg-D.js","names":[],"sources":["../../../../../../../../client/src/components/tooltip/contract.ts","../../../../../../../../client/src/components/tooltip/machine.ts","../../../../../../../../client/src/components/tooltip/styles.ts","../../../../../../../../client/src/components/tooltip/index.ts","../../../../../../../../client/src/components/tooltip/entry.generated.ts"],"sourcesContent":["import {attribute, bool, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n ALIGNMENTS,\n ELEVATION_REFERENCES,\n POSITIONS,\n SURFACE_REFERENCES,\n type Alignment,\n type ElevationReference,\n type Position,\n type SurfaceReference,\n} from '../common';\n\nconst TOOLTIP_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOOLTIP_VARIANTS = ['surface', 'soft', 'solid'] as const;\n\nconst tooltipSchema = {\n side: oneOf(POSITIONS, 'bottom' as Position),\n align: oneOf(ALIGNMENTS, 'center' as Alignment),\n offset: number.clamp(-100, 100).default(0),\n gap: number.clamp(0, 50).default(8),\n openDelay: number.clamp(0, 5000).default(400),\n closeDelay: number.clamp(0, 5000).default(150),\n color: oneOf(TOOLTIP_COLORS, 'neutral'),\n variant: oneOf(TOOLTIP_VARIANTS, 'surface'),\n surface: oneOf(SURFACE_REFERENCES, '2' as SurfaceReference),\n elevation: oneOf(ELEVATION_REFERENCES, '4' as ElevationReference),\n disabled: bool,\n class: string,\n};\n\nconst tooltipDirectiveSchema = {\n side: attribute(tooltipSchema.side, 'ui-tooltip-side'),\n align: attribute(tooltipSchema.align, 'ui-tooltip-align'),\n offset: attribute(tooltipSchema.offset, 'ui-tooltip-offset'),\n gap: attribute(tooltipSchema.gap, 'ui-tooltip-gap'),\n openDelay: attribute(tooltipSchema.openDelay, 'ui-tooltip-open-delay'),\n closeDelay: attribute(tooltipSchema.closeDelay, 'ui-tooltip-close-delay'),\n color: attribute(tooltipSchema.color, 'ui-tooltip-color'),\n variant: attribute(tooltipSchema.variant, 'ui-tooltip-variant'),\n surface: attribute(tooltipSchema.surface, 'ui-tooltip-surface'),\n elevation: attribute(tooltipSchema.elevation, 'ui-tooltip-elevation'),\n disabled: attribute(tooltipSchema.disabled, 'ui-tooltip-disabled'),\n};\n\ntype TooltipProps = SchemaToProps<typeof tooltipSchema>;\ntype TooltipDirectiveProps = SchemaToProps<typeof tooltipDirectiveSchema>;\ntype TooltipColor = typeof TOOLTIP_COLORS[number];\ntype TooltipVariant = typeof TOOLTIP_VARIANTS[number];\n\nexport {\n TOOLTIP_COLORS,\n TOOLTIP_VARIANTS,\n tooltipDirectiveSchema,\n tooltipSchema,\n};\nexport type {TooltipColor, TooltipDirectiveProps, TooltipProps, TooltipVariant};\n","import {createMachine, type Machine, type MachineEventObject} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {TooltipProps} from './contract';\n\ntype TooltipReason = 'pointer' | 'focus' | 'escape' | 'activation' | 'scroll' | 'blur' | 'disabled' | 'replacement';\ntype TooltipContext = {transition: {reason: TooltipReason; instant: boolean}};\ntype TooltipTransitionData = {reason: TooltipReason; instant: boolean};\ntype TooltipMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n prepareClose(): void;\n finishClose(): void;\n syncProps(): void;\n};\n\nconst transitionData = ({context}: {context: TooltipContext}): TooltipTransitionData => context.transition;\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: transitionData, onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<TooltipContext, TooltipProps, TooltipTransitionData, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: transitionData, onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<TooltipContext, TooltipProps, TooltipTransitionData, 'closing'>);\nconst tooltipHooks = [openingHook, closingHook] as const;\n\nconst reasonFrom = (event: MachineEventObject): TooltipReason => {\n const reason = event.reason;\n return reason === 'focus' || reason === 'escape' || reason === 'activation' || reason === 'scroll'\n || reason === 'blur' || reason === 'disabled' || reason === 'replacement' ? reason : 'pointer';\n};\n\nconst createTooltipMachine = (\n props: TooltipProps,\n effects: TooltipMachineEffects,\n): Machine<TooltipContext, TooltipProps> => createMachine<TooltipContext, TooltipProps>({\n initial: 'closed',\n states: {\n closed: {tags: ['closed'], on: {\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'transition', effects: 'prepareOpen'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n }},\n opening: {tags: ['visible', 'expanded', 'transitioning'], on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', reduce: 'transition', effects: 'prepareClose'},\n PROPS_CHANGED: [\n {target: 'closing', guard: 'becomesDisabled', reduce: 'replacePropsDisabled', effects: ['syncProps', 'prepareClose']},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n }},\n open: {tags: ['visible', 'expanded', 'open'], on: {\n CLOSE: {target: 'closing', reduce: 'transition', effects: 'prepareClose'},\n PROPS_CHANGED: [\n {target: 'closing', guard: 'becomesDisabled', reduce: 'replacePropsDisabled', effects: ['syncProps', 'prepareClose']},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n }},\n closing: {tags: ['visible', 'transitioning'], on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'transition', effects: 'prepareOpen'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n }},\n },\n}, {\n context: {transition: {reason: 'pointer', instant: false}},\n props,\n reducers: {\n transition: ({context, props: currentProps, event}) => ({\n context: {transition: {reason: reasonFrom(event), instant: event.instant === true}},\n props: currentProps,\n }),\n replaceProps: ({context, props: currentProps, event}) => ({\n context,\n props: (event.props as TooltipProps | undefined) ?? currentProps,\n }),\n replacePropsDisabled: ({context, props: currentProps, event}) => ({\n context: {transition: {reason: 'disabled', instant: true}},\n props: (event.props as TooltipProps | undefined) ?? currentProps,\n }),\n },\n guards: {\n canOpen: ({props: currentProps}) => !currentProps.disabled,\n becomesDisabled: ({event}) => (event.props as TooltipProps | undefined)?.disabled === true,\n },\n effects,\n});\n\nexport {createTooltipMachine, tooltipHooks};\nexport type {TooltipContext, TooltipMachineEffects, TooltipReason, TooltipTransitionData};\n","import {defineStyles} from '../../runtime';\nimport {POPOVER_GEOMETRY_CLASSES} from '../common';\n\nconst tooltipStyles = defineStyles({definition: {\n component: 'ui.tooltip',\n parts: {\n root: {base: 'contents'},\n content: {\n base: [\n POPOVER_GEOMETRY_CLASSES,\n 'pointer-events-auto min-h-control-md max-w-72 auto-cols-max grid-flow-col items-center gap-2 rounded-overlay-sm px-2 py-1',\n 'font-body text-1 [font-weight:var(--font-weight-normal)]',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n color: {neutral: '', accent: '', success: '', warning: '', danger: ''},\n variant: {surface: '', soft: '', solid: ''},\n },\n defaults: {color: 'neutral', variant: 'surface'},\n },\n shortcut: {base: 'ml-1 inline-flex items-center gap-1 text-[var(--ui-semantic-surface-ink-muted)]'},\n },\n}});\n\nexport {tooltipStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type SchemaToProps,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {createAnchoredPopoverSurface, type AnchoredPopoverSurface} from '@client/runtime/anchored-popover';\nimport type {CodecFn} from '@client/runtime/codecs';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {observeSemanticChanges} from '@client/runtime/semantic-observer';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, dispatch, type CleanupStack} from '@client/utils';\nimport {createKeybindingController} from '../keybinding/controller';\nimport {keybindingStyles} from '../keybinding/styles';\nimport {\n tooltipDirectiveSchema,\n type TooltipDirectiveProps,\n type TooltipProps,\n tooltipSchema,\n} from './contract';\nimport {\n createTooltipMachine,\n tooltipHooks,\n type TooltipContext,\n type TooltipReason,\n} from './machine';\nimport {tooltipStyles} from './styles';\n\ntype TooltipTransitionName = (typeof tooltipHooks)[number]['name'];\ntype TooltipTransition<TName extends TooltipTransitionName = TooltipTransitionName> = TransitionForHook<\n Extract<(typeof tooltipHooks)[number], {name: TName}>,\n HTMLElement\n>;\ntype PopoverElement = HTMLElement & {showPopover(): void; hidePopover(): void};\ntype TooltipSchema = Record<string, CodecFn<unknown>>;\ntype TooltipBridge = ReturnType<typeof createAlpineMachine<TooltipContext, typeof tooltipSchema, typeof tooltipHooks>>;\n\ntype TooltipController = {\n bridge: TooltipBridge;\n connect(snapshot?: {current: TooltipBridge['snapshot']['current']}): void;\n destroy(): void;\n sync(): void;\n close(reason: TooltipReason, instant?: boolean): void;\n};\n\ntype TooltipWarmStore = {active: TooltipController | null};\nconst warmStores = new WeakMap<Document, TooltipWarmStore>();\nconst warmStore = (document: Document): TooltipWarmStore => {\n let store = warmStores.get(document);\n if (!store) {\n store = {active: null};\n warmStores.set(document, store);\n }\n return store;\n};\n\nconst appendDescription = (trigger: HTMLElement, id: string): void => {\n const tokens = new Set((trigger.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean));\n tokens.add(id);\n trigger.setAttribute('aria-describedby', [...tokens].join(' '));\n};\n\nconst removeDescription = (trigger: HTMLElement, id: string): void => {\n const tokens = (trigger.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter((token) => token && token !== id);\n if (tokens.length) trigger.setAttribute('aria-describedby', tokens.join(' '));\n else trigger.removeAttribute('aria-describedby');\n};\n\nconst createTooltipController = <TSchema extends TooltipSchema>({\n owner,\n trigger,\n content,\n schema,\n syncShortcut,\n}: {\n owner: () => HTMLElement & Alpine.ElementWithXAttributes;\n trigger: () => HTMLElement;\n content: () => PopoverElement;\n schema: TSchema;\n syncShortcut?: (value: string) => void;\n}): TooltipController => {\n let cleanup: CleanupStack = [];\n let popover: AnchoredPopoverSurface | null = null;\n let openTimer: ReturnType<typeof setTimeout> | null = null;\n let closeTimer: ReturnType<typeof setTimeout> | null = null;\n let describedById = '';\n let pointerOnTrigger = false;\n let pointerOnContent = false;\n\n const clearTimer = (timer: 'open' | 'close'): void => {\n const current = timer === 'open' ? openTimer : closeTimer;\n if (current !== null) clearTimeout(current);\n if (timer === 'open') openTimer = null;\n else closeTimer = null;\n };\n const props = (): Readonly<TooltipProps> => bridge.getSnapshot().props as TooltipProps;\n const visible = (): boolean => bridge.hasTag('visible');\n const syncSurface = (): void => {\n const value = props();\n const surface = content();\n surface.dataset.state = bridge.hasTag('expanded') ? 'open' : 'closed';\n surface.setAttribute('data-ui-semantic-surface', '');\n surface.dataset.color = value.color;\n surface.dataset.variant = value.variant;\n surface.dataset.uiSurface = value.surface;\n surface.dataset.uiElevation = value.elevation;\n surface.className = resolveStyle({\n part: tooltipStyles.parts.content,\n props: value,\n className: surface.dataset.class,\n });\n syncShortcut?.(trigger().dataset.uiTooltipShortcut ?? '');\n popover?.sync();\n };\n const finishClose = (): void => {\n popover?.close();\n content().hidden = true;\n syncSurface();\n const store = warmStore(owner().ownerDocument);\n if (store.active === controller) store.active = null;\n dispatch({el: owner(), name: 'ui:close'});\n };\n const effects = {\n prepareOpen(): void {\n content().hidden = false;\n popover?.open();\n syncSurface();\n },\n finishOpen(): void {\n syncSurface();\n dispatch({el: owner(), name: 'ui:open'});\n },\n prepareClose(): void { syncSurface(); },\n finishClose,\n syncProps(): void {\n syncSurface();\n if (props().disabled && visible()) controller.close('disabled', true);\n },\n };\n const machineBridge = createAlpineMachine({\n schema,\n hooks: tooltipHooks,\n createMachine: ({props: machineProps}) => createTooltipMachine(machineProps as TooltipProps, effects) as never,\n });\n const bridge = machineBridge as unknown as TooltipBridge;\n\n const open = (reason: TooltipReason, instant = false): void => {\n clearTimer('open');\n clearTimer('close');\n if (props().disabled || bridge.hasTag('expanded')) return;\n const store = warmStore(owner().ownerDocument);\n const warm = store.active !== null && store.active !== controller;\n if (store.active && store.active !== controller) store.active.close('replacement', true);\n store.active = controller;\n bridge.send({type: 'OPEN', reason, instant: instant || warm});\n };\n const close = (reason: TooltipReason, instant = false): void => {\n clearTimer('open');\n clearTimer('close');\n if (!visible()) return;\n bridge.send({type: 'CLOSE', reason, instant});\n };\n const scheduleOpen = (): void => {\n clearTimer('close');\n if (visible() || props().disabled) return;\n const delay = warmStore(owner().ownerDocument).active ? 0 : props().openDelay;\n clearTimer('open');\n openTimer = setTimeout(() => open('pointer', delay === 0), delay);\n };\n const scheduleClose = (): void => {\n clearTimer('open');\n if (!visible()) return;\n clearTimer('close');\n closeTimer = setTimeout(() => close('pointer'), props().closeDelay);\n };\n\n const controller: TooltipController = {\n bridge,\n connect(snapshot): void {\n bridge.connect(owner(), snapshot);\n describedById = content().id || `ui-tooltip-${crypto.randomUUID()}`;\n content().id = describedById;\n content().setAttribute('role', 'tooltip');\n content().setAttribute('popover', 'hint');\n content().setAttribute('data-ui-tooltip-content', '');\n content().hidden = true;\n trigger().setAttribute('data-ui-tooltip-trigger', '');\n appendDescription(trigger(), describedById);\n if ('interestForElement' in trigger()) trigger().setAttribute('interestfor', describedById);\n popover = createAnchoredPopoverSurface({\n reference: trigger,\n floating: content,\n position: () => props().side,\n align: () => props().align,\n gap: () => props().gap,\n offset: () => props().offset,\n });\n syncSurface();\n cleanup = [\n addListener({target: trigger(), event: 'pointerenter', handler: () => {\n pointerOnTrigger = true;\n scheduleOpen();\n }}),\n addListener({target: trigger(), event: 'pointerleave', handler: () => {\n pointerOnTrigger = false;\n if (!pointerOnContent) scheduleClose();\n }}),\n addListener({target: content(), event: 'pointerenter', handler: () => {\n pointerOnContent = true;\n clearTimer('close');\n }}),\n addListener({target: content(), event: 'pointerleave', handler: () => {\n pointerOnContent = false;\n if (!pointerOnTrigger) scheduleClose();\n }}),\n addListener({target: trigger(), event: 'focusin', handler: () => open('focus', true)}),\n addListener({target: trigger(), event: 'focusout', handler: () => {\n if (!pointerOnTrigger && !pointerOnContent) close('blur', true);\n }}),\n addListener({target: trigger(), event: 'pointerdown', handler: () => close('activation', true)}),\n addListener({target: trigger(), event: 'click', handler: () => close('activation', true)}),\n addListener({target: trigger(), event: 'interest', handler: scheduleOpen}),\n addListener({target: trigger(), event: 'loseinterest', handler: scheduleClose}),\n addListener({target: owner().ownerDocument, event: 'keydown', handler: (event) => {\n if (event instanceof KeyboardEvent && event.key === 'Escape' && visible()) close('escape', true);\n }}),\n addListener({target: owner().ownerDocument, event: 'scroll', options: {capture: true}, handler: () => {\n if (visible()) close('scroll', true);\n }}),\n observeSemanticChanges({\n targets: trigger(),\n read: () => trigger().dataset.uiTooltipShortcut ?? '',\n onChange: syncSurface,\n observer: {attributes: true, attributeFilter: ['data-ui-tooltip-shortcut']},\n }),\n ];\n },\n close,\n sync: syncSurface,\n destroy(): void {\n clearTimer('open');\n clearTimer('close');\n cleanup.forEach((dispose) => dispose());\n cleanup = [];\n const store = warmStore(owner().ownerDocument);\n if (store.active === controller) store.active = null;\n popover?.destroy();\n popover = null;\n removeDescription(trigger(), describedById);\n trigger().removeAttribute('data-ui-tooltip-trigger');\n trigger().removeAttribute('interestfor');\n bridge.disconnect();\n },\n };\n return controller;\n};\n\ntype TooltipData = TooltipBridge & {\n readonly root: BindingObject;\n readonly content: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst UiTooltip = (): TrellisAlpineComponent<TooltipData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let controller: TooltipController | null = null;\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Tooltip has not been initialized.');\n return rootEl;\n };\n const content = (): PopoverElement => {\n const el = root().querySelector<HTMLElement>(':scope > [data-ui-tooltip-content]');\n if (!(el instanceof HTMLElement)) throw new Error('Tooltip requires ui.tooltip.content.');\n return el as PopoverElement;\n };\n const trigger = (): HTMLElement => {\n const el = Array.from(root().children).find((child) => child instanceof HTMLElement && child !== content());\n if (!(el instanceof HTMLElement)) throw new Error('Tooltip requires an interactive trigger before its content.');\n return el;\n };\n const bridge = createAlpineMachine({\n schema: tooltipSchema,\n hooks: tooltipHooks,\n createMachine: ({props}) => createTooltipMachine(props, {\n prepareOpen() {}, finishOpen() {}, prepareClose() {}, finishClose() {}, syncProps() {},\n }),\n }) as TooltipBridge;\n const component: TrellisAlpineComponent<TooltipData> = {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n controller = createTooltipController({owner: root, trigger, content, schema: tooltipSchema});\n controller.connect(this.snapshot);\n },\n destroy(): void {\n controller?.destroy();\n controller = null;\n rootEl = null;\n },\n get root(): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: tooltipStyles.parts.root, props: this.snapshot.current?.props ?? {}}),\n {'data-ui-tooltip-root': ''},\n ]});\n },\n get content(): BindingObject {\n return {'data-ui-tooltip-content': ''};\n },\n };\n return component;\n};\n\nconst registerTooltipDirective = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.addInitSelector(() => '[x-ui-tooltip]');\n AlpineInstance.directive('ui-tooltip', AlpineInstance.skipDuringClone((el, {expression}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n const content = el.ownerDocument.createElement('div') as PopoverElement;\n const label = el.ownerDocument.createElement('span');\n label.setAttribute('data-ui-tooltip-label', '');\n content.append(label);\n const shortcut = el.ownerDocument.createElement('span');\n shortcut.setAttribute('data-ui-keybinding', '');\n shortcut.setAttribute('aria-hidden', 'true');\n shortcut.className = resolveStyle({\n part: keybindingStyles.parts.root,\n className: resolveStyle({part: tooltipStyles.parts.shortcut}),\n });\n content.append(shortcut);\n const keybinding = createKeybindingController(shortcut);\n el.insertAdjacentElement('afterend', content);\n const owner = () => el as HTMLElement & Alpine.ElementWithXAttributes;\n const controller = createTooltipController({\n owner,\n trigger: () => el,\n content: () => content,\n schema: tooltipDirectiveSchema,\n syncShortcut: (value) => keybinding.setValue(value),\n });\n controller.connect();\n const evaluator = utilities.evaluateLater(expression);\n utilities.effect(() => evaluator((value) => {\n const text = typeof value === 'string' ? value.trim() : '';\n label.textContent = text;\n el.toggleAttribute('data-ui-tooltip-disabled', !text);\n controller.sync();\n }));\n utilities.cleanup(() => {\n controller.destroy();\n keybinding.destroy();\n content.remove();\n });\n })).before('ui-transition');\n};\n\nconst registerTooltip = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiTooltip', UiTooltip)(AlpineInstance);\n registerTooltipDirective(AlpineInstance);\n};\n\nexport {registerTooltip, registerTooltipDirective, UiTooltip};\nexport type {TooltipData, TooltipDirectiveProps, TooltipTransition};\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 {registerShortcutCapability} from '../../capabilities/shortcut';\nimport {registerTooltip as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerTooltip = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerShortcutCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerTooltip};\nexport default registerTooltip;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{_ as e,f as t,g as n,h as r,o as i,u as a}from"./motion-D2EM1olE.js";import{t as o}from"./capability-motion-LgqzTNla.js";import{c as s,f as c,l,n as u,o as d}from"./codecs-Cb1ns_47.js";import{r as f,t as p}from"./dom-qAeVl7dc.js";import{i as m,t as h}from"./alpine-machine-BS13dbK4.js";import{t as g}from"./alpine-data-CytyCyfk.js";import{n as _,t as v}from"./styles-TfvwVPGw.js";import{t as y}from"./machine-Dqut4h89.js";var b={x:!1,y:!1};function x(){return b.x||b.y}function S(e,t){let r=n(e),i=new AbortController;return[r,{passive:!0,...t,signal:i.signal},()=>i.abort()]}function C(e){return!(e.pointerType===`touch`||x())}function w(e,t,n={}){let[r,i,a]=S(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(!C(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 T=[`info`,`success`,`warning`,`danger`,`debug`],E=[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`],D=[`default`,`soft`,`surface`,`solid`,`outline`],O=[`top-right`,`top-left`,`top-center`,`bottom-right`,`bottom-left`,`bottom-center`],k={level:l(T,`info`),color:l(E,`auto`),variant:l(D,`default`),title:c,description:c,duration:s.default(5e3).min(0),dismissible:u.default(!0),class:c,contentClass:c,closeClass:c},A={id:c.default(`ui-toast-root`),position:l(O,`top-right`),duration:s.default(5e3).min(0),includeMessages:u.default(!0),maxItems:s.default(3).min(0),class:c},j=[m({name:`opening`,state:`opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),m({name:`closing`,state:`closing`,project:({context:e})=>({reason:e.dismissal.reason}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],M=(e,t)=>y({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)}}),N=v({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`}}}}}),P=e=>[`info`,`success`,`warning`,`danger`,`debug`].includes(String(e)),F=e=>[`auto`,`neutral`,`accent`,`success`,`warning`,`danger`].includes(String(e)),I=e=>[`default`,`soft`,`surface`,`solid`,`outline`].includes(String(e)),L=e=>e===`info`?`accent`:e===`success`||e===`warning`||e===`danger`?e:`neutral`,R=(e,t)=>F(e)&&e!==`auto`?e:L(t),z=(e,t)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)&&n>=0?n:t},B=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})`},V=e=>Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`)).filter(e=>e.dataset.state!==`closing`&&e.dataset.state!==`closed`),H=new WeakMap,U=e=>{let t=H.get(e);t&&(H.delete(e),t.handle.stop(),e.style.height=t.baseline)},W=(e,t=!1,n)=>{let r=n??e.getBoundingClientRect().height;U(e);let a=Array.from(e.querySelectorAll(`:scope > [data-ui-toast]`));e.dataset.stack=a.length>1?`collapsed`:`single`;let o=getComputedStyle(e),s=Number.parseFloat(o.rowGap||o.gap||`0`)||0,c=a.map(e=>Math.ceil(e.scrollHeight||e.getBoundingClientRect().height)),l=Number.parseFloat(o.getPropertyValue(`--ui-toast-stack-peek`))||8,u=e.dataset.position?.startsWith(`bottom`)?-1:1,d=e.dataset.stackExpanded===`true`,f=Math.min(Math.max(0,a.length-1),3);e.style.setProperty(`--ui-toast-front-height`,`${c[0]??0}px`),e.style.setProperty(`--ui-toast-stack-height`,`${(c[0]??0)+f*l}px`),e.style.setProperty(`--ui-toast-stack-expanded-height`,`${c.reduce((e,t)=>e+t,0)+Math.max(0,a.length-1)*s}px`);let p=e.getBoundingClientRect().height;if(t&&Math.abs(r-p)>=1){let t=e.style.height,n=i(e).animate({height:[`${r}px`,`${p}px`]}).role(`layout`).play(),a={baseline:t,handle:n};H.set(e,a),n.finished.finally(()=>{H.get(e)===a&&(H.delete(e),e.style.height=t)})}let m=0;a.forEach((n,r)=>{let o=Math.min(r,3),f=d?m*u:o*l*u,p=d?1:Math.max(.91,1-o*.03),h=d?1:Math.max(.72,1-o*.08);d&&(m+=(c[r]??0)+s),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(o)),n.style.setProperty(`--ui-toast-stack-direction`,String(u)),n.style.setProperty(`--ui-toast-outside`,u>0?`-100%`:`100%`),n.style.setProperty(`--ui-toast-stack-offset`,`${f}px`),n.style.setProperty(`--ui-toast-stack-scale`,String(p)),n.style.setProperty(`--ui-toast-stack-opacity`,String(h)),n.style.zIndex=String(a.length-r);let g=`translateY(${f}px) scale(${p})`;n.dataset.swiping!==`true`&&(t&&n.dataset.state===`open`?i(n).animate({opacity:h,transform:g}).role(`layout`).play():n.dataset.state===`open`&&(n.style.opacity=String(h),n.style.transform=g))})},G=(e,t)=>{e.dispatchEvent(new CustomEvent(`ui:toast-dismiss-request`,{detail:{reason:t}}))},K=(e,t)=>{t!==0&&V(e).slice(t).forEach(e=>G(e,`api`))},q=(e,t)=>{let n=R(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=_({part:N.parts.root,props:{variant:t.variant,color:n,hasDescription:r,hasMarker:i},className:t.class}),e.querySelector(`[data-ui-toast-marker]`)?.setAttribute(`class`,_({part:N.parts.marker,props:{variant:t.variant,color:n}})),e.querySelectorAll(`[data-ui-toast-content]`).forEach(e=>{e.className=_({part:N.parts.content,className:t.contentClass})}),e.querySelectorAll(`[data-ui-toast-title]`).forEach(e=>{e.className=`text-sm font-medium ${_({part:N.parts.title})}`}),e.querySelectorAll(`[data-ui-toast-description]`).forEach(e=>{e.className=`text-sm ${_({part:N.parts.description})}`}),e.querySelectorAll(`[data-ui-toast-close]`).forEach(e=>{e.hidden=!t.dismissible,e.className=_({part:N.parts.close,className:t.closeClass})})},J=()=>{let n=null,i=[],o=0,s=null,c=null,l=0,u=new Set,d=()=>{if(!n)throw Error(`Toast has not been initialized.`);return n},m=()=>d().parentElement?.matches(`[data-ui-toast-outlet]`)?d().parentElement:null,g=()=>s===null?v.getSnapshot().context.timer.remaining:Math.max(0,o-performance.now()),_=()=>{s!==null&&clearTimeout(s),c!==null&&clearInterval(c),s=c=null},v=h({schema:k,hooks:j,createMachine:({props:e})=>M(e,{prepareOpen:()=>{d().dataset.state=`opening`,q(d(),v.getSnapshot().props),m()&&W(m(),!0)},finishOpen:()=>{d().dataset.state=`open`,m()&&W(m(),!0)},startTimer:()=>{let e=v.getSnapshot().context.timer.remaining;e<=0||(o=performance.now()+e,s=window.setTimeout(()=>v.send({type:`DISMISS`,reason:`timeout`}),e),c=window.setInterval(()=>v.send({type:`TICK`,remaining:g()}),100))},stopTimer:_,prepareClose:()=>{_(),d().dataset.state=`closing`,m()&&W(m(),!0)},finishClose:e=>{let t=d(),n=m();t.dataset.state=`closed`,f({el:t,name:`ui:dismiss`,detail:{reason:e}}),t.remove(),n&&W(n,!0)},syncProps:()=>{let e=v.getSnapshot().props;q(d(),e),e.duration!==l&&(l=e.duration,v.send(`DURATION_CHANGED`)),m()&&W(m())}})}),y=e=>{let t=u.size===0;u.add(e),t&&v.send({type:`PAUSE`,remaining:g()})},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`),p({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}),p({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}),p({target:d(),event:`ui:toast-pause-request`,handler:e=>{e instanceof CustomEvent&&e.detail?.paused===!0?y(`outlet`):b(`outlet`)},cleanup:i}),p({target:document,event:`visibilitychange`,handler:()=>document.hidden?y(`visibility`):b(`visibility`),cleanup:i}),p({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(),o=m()?.dataset.position??`bottom-right`,s=o.endsWith(`left`)||o.endsWith(`right`),c=s?o.endsWith(`left`)?-1:1:o.startsWith(`top`)?-1:1,l=s?n.clientX:n.clientY,u=performance.now(),f=B(i),p=Number.parseFloat(i.style.getPropertyValue(`--ui-toast-stack-opacity`))||1,h=e(0);t(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=`${f} ${t}`;let n=Math.abs(e),r=s?i.offsetWidth:i.offsetHeight;i.style.opacity=String(Math.max(.35,p*(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=(e,t=!1)=>{if(e.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,m=!t&&o*c>0&&(Math.abs(o)>=45||d>.11),v=m?r(h,c*(s?window.innerWidth:window.innerHeight),a.gestureExit):r(h,0,{type:`spring`,...a.gestureSettle}),y=r(i,{opacity:m?0:p},a.gestureExit);Promise.allSettled([v.finished,y.finished]).then(()=>{g(),delete i.dataset.swiping,b(`gesture`),m?G(i,`swipe`):(i.style.opacity=String(p),i.style.transform=f)})},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`)}}},Y=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},X=(e,t)=>{let n=P(e.level)?e.level:`info`,r=I(e.variant)?e.variant:`default`,i=typeof e.title==`string`?e.title:``,a=typeof e.description==`string`?e.description:``,o=z(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:F(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(Y(_({part:N.parts.closeIcon}))),c.append(e)}return c},Z=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),W(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),W(n,!0,i)};return{props:null,cleanup:[],init(){this.props=d({el:this.$el,schema:A,onChange:()=>this.sync()});let e=this.$el;n=e,this.sync(),this.cleanup.push(w(e,()=>(i(`pointer`),()=>a(`pointer`)))),p({target:e,event:`focusin`,handler:()=>i(`focus`),cleanup:this.cleanup}),p({target:e,event:`focusout`,handler:()=>queueMicrotask(()=>{e.contains(document.activeElement)||a(`focus`)}),cleanup:this.cleanup}),p({target:document,event:`ui:toast`,handler:e=>this.add(e instanceof CustomEvent?e.detail:{}),cleanup:this.cleanup}),queueMicrotask(()=>K(e,this.props.maxItems))},destroy(){n&&U(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=_({part:N.parts.outlet,props:{position:this.props.position},className:this.props.class}),W(e),K(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=X(n,this.props.duration);a.prepend(o),e.initTree(o),t.size>0&&o.dispatchEvent(new CustomEvent(`ui:toast-pause-request`,{detail:{paused:!0}})),W(a),K(a,this.props.maxItems)}}},Q=e=>{g(`UiToast`,J)(e),g(`UiToastOutlet`,()=>Z(e))(e)},$=new WeakSet,ee=e=>{$.has(e)||($.add(e),o(e),Q(e))};export{J as n,Z as r,ee as t};
2
- //# sourceMappingURL=entry.generated-B956G6Cz.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-B956G6Cz.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 {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 = createMotionPlan(outlet).animate({\n height: [`${renderedHeight}px`, `${targetHeight}px`],\n }).role('layout').play();\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 +0,0 @@
1
- import{a as e,d as t,f as n,l as r,m as i,p as a,u as o,y as s}from"./element-adapter-native-data-key-CW8suC9A.js";import{c,f as l,l as u,n as d}from"./codecs-Cb1ns_47.js";import{r as f,s 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";import{n as x,r as ee}from"./form-control-BkVb2Qed.js";function S(e){return e.source.types.includes(`Files`)}function te(e){return e.source.items.filter(function(e){return e.kind===`file`}).map(function(e){return e.getAsFile()}).filter(function(e){return e!=null})}var C=s();function w(e){var r=e.dragEnter,i=r.type,s=r.relatedTarget;return i===`dragenter`?n()?t({dragEnter:r}):s==null?!0:a()?o(s):s instanceof HTMLIFrameElement:!1}function T(e){var t=e.type,n=e.value;return!(t===`application/vnd.pdnd`||t===`text/plain`&&n===`pdnd:android-fallback`)}function E(e){return Array.from(e.types).filter(function(t){return T({type:t,value:e.getData(t)})})}function D(e){return Array.from(e.items).filter(function(t){return t.kind===`file`||T({type:t.type,value:e.getData(t.type)})})}var O=!1,k=e({typeKey:`external`,defaultDropEffect:`copy`,mount:function(e){return(0,C.bind)(window,{type:`dragenter`,listener:function(t){if(!O&&t.dataTransfer&&e.canStart(t)&&w({dragEnter:t})){var n=E(t.dataTransfer);if(n.length){var r={types:n,items:[],getStringData:function(){return null}};e.start({event:t,dragType:{type:`external`,startedFrom:`external`,payload:r,getDropPayload:function(e){if(!e.dataTransfer)return r;var t=D(e.dataTransfer),i=e.dataTransfer.getData.bind(e.dataTransfer);return{types:n,items:t,getStringData:function(e){if(!n.includes(e))return null;var t=i(e);return T({type:e,value:t})?t:null}}}}})}}}})}});function A(e){return k.dropTarget(e)}function j(e){return k.monitor(e)}(function(){if(typeof window>`u`)return;k.registerUsage();var e={type:`idle`},t=e;function n(){t.type===`dragging`&&(O=!1,t.cleanup(),t=e)}function a(){return(0,C.bindAll)(window,[{type:`dragend`,listener:n}].concat(i(r({onDragEnd:n}))),{capture:!0})}(0,C.bind)(window,{type:`dragstart`,listener:function(){t.type===`idle`&&(O=!0,t={type:`dragging`,cleanup:a()})},options:{capture:!0}})})();var M=[`stack`,`inline`],ne=[`auto`,`image`,`none`],N=[`sm`,`md`,`lg`],P={name:l,accept:l,capture:l,multiple:d,required:d,disabled:d,invalid:d,preview:u(ne,`auto`),layout:u(M,`stack`),size:u(N,`md`),heading:l.default(`Drop files here or browse`),text:l,browseLabel:l,empty:l,maxItems:c.min(0).default(0),clearable:d.default(!0),transport:u([`native`,`direct`],`native`),rootClass:l,dropzoneClass:l,listClass:l,itemClass:l,class:l};l.default(`Drop files here or browse`),l.default(`cloud__upload`),u(M,`stack`),u(N,`md`),l.default(`document__blank`),l.default(`Remove file`);var re=[h({name:`uploading`,state:`transfer.direct.uploading`,project:e=>({files:e.context.selection.files.filter(({id:t})=>e.context.transfer.activeIds.includes(t))}),onDone:`UPLOADING_DONE`,onError:`UPLOADING_ERROR`,required:!0,sends:{progress:(e,t,n)=>({type:`UPLOAD_PROGRESS`,id:e,loaded:t,total:n}),cancel:()=>({type:`CANCEL_UPLOAD`})}})],F=e=>e,I=e=>{let t=e.source;return t===`picker`||t===`drop`||t===`remove`||t===`props`?t:`clear`},L=(e,t)=>{let n=t.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean);if(n.length===0)return!0;let r=e.name.toLowerCase(),i=e.type.toLowerCase();return n.some(e=>e.startsWith(`.`)?r.endsWith(e):e.endsWith(`/*`)?i.startsWith(e.slice(0,-1)):e.includes(`/`)&&i===e)},R=(e,t,n)=>{let r=F(n).records??[],i=r.filter(e=>L(e,t.accept)),a=F(n).append&&t.multiple?[...e.selection.files]:[],o=t.multiple?[...a,...i]:i.slice(0,1),s=t.maxItems>0?o.slice(0,t.maxItems):o;return{files:s,limitReached:t.maxItems>0&&s.length>=t.maxItems,rejectedCount:r.length-i.length+o.length-s.length,limitRejectedCount:o.length-s.length,source:I(n)}},z=({context:e,props:t,event:n})=>R(e,t,n).files,ie=e=>z(e).length===0,ae=({context:e,props:t,event:n})=>R(e,t,n).limitReached,B=({context:e,props:t})=>!t.disabled&&e.transfer.status!==`uploading`,V=({props:e})=>e.transport===`direct`,H=({props:e})=>e.transport===`native`,U=e=>V(e)&&(I(e.event)===`picker`||I(e.event)===`drop`)&&z(e).length>0,W=({context:e,props:t,event:n})=>({context:{selection:R(e,t,n)}}),G=({context:e})=>({context:{selection:{...e.selection,files:[],limitReached:!1,rejectedCount:0,limitRejectedCount:0,source:`clear`}}}),K=({context:e,props:t,event:n})=>{let r=R(e,t,n).files,i=new Set(e.selection.files.map(({id:e})=>e)),a=F(n).append?r.filter(({id:e})=>!i.has(e)).map(({id:e})=>e):r.map(({id:e})=>e);return{context:{transfer:{...e.transfer,status:`uploading`,activeIds:a,progress:{...e.transfer.progress,...Object.fromEntries(a.map(e=>[e,0]))},error:``}}}},q=(e,t,n=``)=>({...e.transfer,status:t,error:n}),oe=({context:e})=>({context:{transfer:{...q(e,`complete`),progress:{...e.transfer.progress,...Object.fromEntries(e.transfer.activeIds.map(e=>[e,1]))},results:{...e.transfer.results,...Object.fromEntries(e.transfer.activeIds.map(e=>[e,`complete`]))}}}}),se=({context:e,event:t})=>({context:{transfer:{...q(e,`failed`,t.error instanceof Error?t.error.message:String(t.error??`Upload failed.`)),results:{...e.transfer.results,...Object.fromEntries(e.transfer.activeIds.map(e=>[e,`failed`]))}}}}),ce=({context:e})=>({context:{transfer:{...q(e,`canceled`),results:{...e.transfer.results,...Object.fromEntries(e.transfer.activeIds.map(e=>[e,`canceled`]))}}}}),le=({context:e,event:t})=>{let n=typeof t.id==`string`?t.id:``;if(!e.transfer.activeIds.includes(n))return;let r=Number(t.loaded),i=Number(t.total),a=Number.isFinite(r)&&Number.isFinite(i)&&i>0?Math.min(1,Math.max(0,r/i)):0;return{context:{transfer:{...e.transfer,progress:{...e.transfer.progress,[n]:a}}}}},J=[{target:`#inventory-empty`,guard:e=>B(e)&&ie(e),reduce:`planSelection`,effects:`commitSelection`},{target:`#inventory-capped`,guard:e=>B(e)&&ae(e),reduce:`planSelection`,effects:`commitSelection`},{target:`#inventory-populated`,guard:B,reduce:`planSelection`,effects:`commitSelection`}],ue=({props:e,context:t,effects:n})=>b({type:`parallel`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}},states:{interaction:{initial:`idle`,states:{idle:{on:{DRAG_ENTER:{target:`dragging`,guard:B,effects:`syncDragging`}}},dragging:{tags:[`dragging`],on:{DRAG_LEAVE:{target:`idle`,effects:`syncDragging`},DROP:{target:`idle`,effects:`syncDragging`},RECONCILE:{target:`idle`,guard:({props:e})=>e.disabled,effects:`syncDragging`}}}}},inventory:{initial:`empty`,on:{FILES_CHANGED:J,RECONCILE:J,FILES_RESET:{target:`#inventory-empty`,guard:B,reduce:`clearSelection`,effects:`resetSelection`},CLEAR_EXISTING:{guard:B,reduce:`clearExisting`,effects:`clearExisting`}},states:{empty:{id:`inventory-empty`,tags:[`empty`]},populated:{id:`inventory-populated`,tags:[`has-files`]},capped:{id:`inventory-capped`,tags:[`has-files`,`limit-reached`]}}},transfer:{initial:`inactive`,states:{inactive:{on:{RECONCILE:[{target:`#transfer-direct-idle`,guard:V,reduce:`setDirectIdle`,effects:`syncTransfer`},{target:`#transfer-native`,reduce:`setNative`,effects:`syncTransfer`}]}},native:{id:`transfer-native`,on:{RECONCILE:{target:`#transfer-direct-idle`,guard:V,reduce:`setDirectIdle`,effects:`syncTransfer`}}},direct:{initial:`idle`,on:{RECONCILE:{target:`#transfer-native`,guard:H,reduce:`setNative`,effects:`syncTransfer`}},states:{idle:{id:`transfer-direct-idle`,on:{FILES_CHANGED:{target:`uploading`,guard:U,reduce:`beginUpload`,effects:`syncTransfer`}}},uploading:{id:`transfer-uploading`,tags:[`uploading`],on:{UPLOAD_PROGRESS:{reduce:`updateProgress`,effects:`syncTransfer`},UPLOADING_DONE:{target:`complete`,reduce:`finishUpload`,effects:[`syncTransfer`,`emitComplete`]},UPLOADING_ERROR:{target:`failed`,reduce:`failUpload`,effects:[`syncTransfer`,`emitError`]},CANCEL_UPLOAD:{target:`canceled`,reduce:`cancelUpload`,effects:[`syncTransfer`,`emitCancel`]},RECONCILE:{target:`canceled`,guard:({props:e})=>e.disabled||e.transport!==`direct`,reduce:`cancelUpload`,effects:[`syncTransfer`,`emitCancel`]}}},complete:{on:{FILES_CHANGED:{target:`uploading`,guard:U,reduce:`beginUpload`,effects:`syncTransfer`}}},failed:{tags:[`upload-failed`],on:{RETRY_UPLOAD:{target:`uploading`,reduce:`retryUpload`,effects:`syncTransfer`},FILES_CHANGED:{target:`uploading`,guard:U,reduce:`beginUpload`,effects:`syncTransfer`}}},canceled:{on:{RETRY_UPLOAD:{target:`uploading`,reduce:`retryUpload`,effects:`syncTransfer`},FILES_CHANGED:{target:`uploading`,guard:U,reduce:`beginUpload`,effects:`syncTransfer`}}}}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e,props:t})=>({props:e.props??t}),planSelection:W,clearSelection:G,clearExisting:({context:e})=>({context:{existing:{...e.existing,cleared:!0}}}),beginUpload:K,retryUpload:({context:e})=>({context:{transfer:{...e.transfer,status:`uploading`,error:``,activeIds:e.selection.files.filter(({id:t})=>e.transfer.results[t]!==`complete`).map(({id:e})=>e)}}}),finishUpload:oe,failUpload:se,cancelUpload:ce,updateProgress:le,setNative:({context:e})=>({context:{transfer:q(e,`native`)}}),setDirectIdle:({context:e})=>({context:{transfer:q(e,`idle`)}})},effects:{commitSelection:n.commitSelection,resetSelection:n.resetSelection,syncProps:n.syncProps,syncDragging:n.syncDragging,clearExisting:n.clearExisting,syncTransfer:n.syncTransfer,emitComplete:n.emitComplete,emitError:n.emitError,emitCancel:n.emitCancel}}),Y=e=>e.selection.files.map(t=>({...t,status:e.transfer.activeIds.includes(t.id)&&e.transfer.status===`uploading`?`uploading`:e.transfer.results[t.id]??`selected`,progress:e.transfer.progress[t.id]??0})),X=y({definition:{component:`ui.file-upload`,parts:{root:{base:[`grid w-full min-w-0 gap-3`]},control:{base:`relative grid min-w-0 gap-3`},input:{base:`sr-only`},dropzone:{base:[`relative grid min-w-0 overflow-hidden rounded-surface-md text-inherit outline-none`],variants:{layout:{stack:`justify-items-center text-center`,inline:`grid-cols-[auto_minmax(0,1fr)_auto] items-center text-left`},size:{sm:`gap-2 p-3`,md:`gap-3 p-4`,lg:`gap-3 p-5`}},defaults:{layout:`stack`,size:`md`}},icon:{base:`size-icon-lg shrink-0 fill-current text-surface-ink-muted`},body:{base:`grid min-w-0 gap-1`},heading:{base:`text-sm font-medium text-inherit`},text:{base:`text-xs font-normal text-surface-ink-muted`},browse:{base:[`inline-flex min-w-0 items-center justify-center rounded-control-md px-2 py-1 text-xs font-medium`]},list:{base:`grid min-w-0 gap-2`},empty:{base:`text-xs text-surface-ink-muted`},item:{base:[`grid min-w-0 grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-3 rounded-surface-sm px-3 py-2`]},preview:{base:`flex size-9 shrink-0 items-center justify-center overflow-hidden rounded-surface-xs bg-interaction-hover text-surface-ink-muted`},previewImage:{base:`size-full`},itemIcon:{base:`size-icon fill-current`},itemBody:{base:`grid min-w-0 gap-0.5`},itemName:{base:`truncate text-sm font-medium text-inherit`},itemMeta:{base:`truncate text-xs font-normal text-surface-ink-muted`},itemError:{base:`truncate text-xs font-normal text-intent-danger-text`},remove:{base:[`relative z-20 inline-flex size-control-sm shrink-0 items-center justify-center rounded-control-md border-0 bg-transparent`,`text-surface-ink-muted outline-none`]},removeIcon:{base:`size-icon-xs fill-current leading-none`},clear:{base:`sr-only`}}}}),de=e=>{if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1),r=e/1024**n;return`${r>=10||n===0?Math.round(r):Number(r.toFixed(1))} ${t[n]}`},fe=e=>e?Array.from(e):[],Z=e=>e.type.startsWith(`image/`),pe=(e,t)=>t!==`none`&&(t===`image`||Z(e)),me=e=>{if(typeof DataTransfer>`u`)return null;let t=new DataTransfer;return e.forEach(e=>t.items.add(e)),t.files},he=(e,t)=>{let n=me(t);if(!n)return!1;try{return e.files=n,!0}catch{return!1}},ge=(e,t)=>{let n=`http://www.w3.org/2000/svg`,r=document.createElementNS(n,`svg`),i=document.createElementNS(n,`path`);return r.setAttribute(`viewBox`,`0 0 32 32`),r.setAttribute(`aria-hidden`,`true`),r.setAttribute(`class`,t),i.setAttribute(`d`,e),r.append(i),r},_e=e=>{let t=`http://www.w3.org/2000/svg`,n=document.createElementNS(t,`svg`),r=document.createElementNS(t,`polygon`);return n.setAttribute(`viewBox`,`0 0 32 32`),n.setAttribute(`aria-hidden`,`true`),n.setAttribute(`class`,e),r.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`),n.append(r),n},Q=()=>{let e=null,t=[],n=!1,r=0,i=new Map,a=new Map,o=()=>{if(!e)throw Error(`File upload has not been initialized.`);return e},s=()=>{let e=o().querySelector(`[data-ui-file-upload-input]`);if(!e)throw Error(`File upload requires a native file input.`);return e},c=()=>o().querySelector(`[data-ui-file-upload-dropzone]`),l=()=>o().querySelector(`[data-ui-file-upload-list]`),u=()=>D.getSnapshot().props,d=()=>D.getSnapshot().context,h=e=>({id:`file-${++r}`,name:e.name,bytes:e.size,size:de(e.size),type:e.type||`File`}),_=e=>e.map(e=>{let t=h(e);return i.set(t.id,e),t}),y=e=>{let t=a.get(e);t&&URL.revokeObjectURL(t),a.delete(e)},b=()=>{n=!0,s().dispatchEvent(new Event(`input`,{bubbles:!0})),s().dispatchEvent(new Event(`change`,{bubbles:!0}))},C=(e,t,n=!1)=>{u().disabled||D.hasTag(`uploading`)||D.send({type:`FILES_CHANGED`,records:e,source:t,append:n})},w=(e,t)=>{let n=l();if(!n)return;n.querySelectorAll(`[data-ui-file-upload-pending]`).forEach(e=>e.remove());let r=Y(e),o=new Set(r.map(({id:e})=>e));[...a.keys()].filter(e=>!o.has(e)).forEach(y),[...i.keys()].filter(e=>!o.has(e)).forEach(e=>i.delete(e));let s=n.querySelector(`[data-existing-file]:not([hidden])`),c=n.querySelector(`[data-ui-file-upload-empty]`);c&&(c.hidden=r.length>0||!!s);let u=v({part:X.parts.item,className:t.itemClass}),d=v({part:X.parts.preview}),f=v({part:X.parts.previewImage}),p=v({part:X.parts.itemBody}),m=v({part:X.parts.itemName}),h=v({part:X.parts.itemMeta}),g=v({part:X.parts.remove}),_=v({part:X.parts.removeIcon}),b=v({part:X.parts.itemIcon});r.forEach(e=>{let r=document.createElement(`li`);r.dataset.uiFileUploadItem=``,r.dataset.uiFileUploadPending=``,r.dataset.fileId=e.id,r.dataset.status=e.status,r.dataset.progress=String(e.progress),r.className=u;let o=document.createElement(`span`);o.dataset.uiFileUploadPreview=``,o.className=d,o.setAttribute(`aria-hidden`,`true`);let s=i.get(e.id);if(s&&pe(s,t.preview)){let t=a.get(e.id);t||(t=URL.createObjectURL(s),a.set(e.id,t));let n=document.createElement(`img`);n.src=t,n.alt=``,n.loading=`lazy`,n.decoding=`async`,n.className=`outline outline-1 -outline-offset-1 outline-black/10 dark:outline-white/10 block size-full object-cover ${f}`,o.append(n)}else o.append(ge(`M25.7,9.3l-7-7A.9078.9078,0,0,0,18,2H8A2.0059,2.0059,0,0,0,6,4V28a2.0059,2.0059,0,0,0,2,2H24a2.0059,2.0059,0,0,0,2-2V10A.9078.9078,0,0,0,25.7,9.3ZM18,4.4,23.6,10H18ZM24,28H8V4h8v6a2.0059,2.0059,0,0,0,2,2h6Z`,b));let c=document.createElement(`span`);c.className=p;let l=document.createElement(`span`);l.dataset.uiFileUploadItemName=``,l.className=m,l.textContent=e.name;let v=document.createElement(`span`);v.dataset.uiFileUploadItemMeta=``,v.className=h,v.textContent=[e.size,e.type].filter(Boolean).join(` · `),c.append(l,v);let y=document.createElement(`button`);y.type=`button`,y.dataset.uiFileUploadRemove=``,y.dataset.fileId=e.id,y.className=g,y.disabled=D.hasTag(`uploading`),y.setAttribute(`aria-label`,`Remove ${e.name}`),y.append(_e(_)),r.append(o,c,y),n.append(r)})},T=(e=d(),t=u())=>{let n=Y(e),r=e.existing.present&&!e.existing.cleared,i=n.length>0||r,a=t.disabled||e.selection.limitReached||e.transfer.status===`uploading`,l=s();ee({input:l,state:{disabled:t.disabled,required:t.required,invalid:t.invalid}}),t.transport===`native`&&t.name?l.name=t.name:l.removeAttribute(`name`),l.multiple=t.multiple,t.accept?l.setAttribute(`accept`,t.accept):l.removeAttribute(`accept`),t.capture?l.setAttribute(`capture`,t.capture):l.removeAttribute(`capture`),a&&!t.disabled?(l.setAttribute(`aria-disabled`,`true`),l.tabIndex=-1):t.disabled||(l.removeAttribute(`aria-disabled`),l.removeAttribute(`tabindex`)),l.form&&(l.form.enctype=`multipart/form-data`),x({el:o(),state:t,value:`true`}),p({el:o(),attr:`data-empty`,present:!i,value:`true`}),p({el:o(),attr:`data-has-files`,present:i,value:`true`}),p({el:o(),attr:`data-multiple`,present:t.multiple,value:`true`}),p({el:o(),attr:`data-max-items-reached`,present:e.selection.limitReached,value:`true`}),p({el:o(),attr:`data-has-existing-file`,present:r,value:`true`}),o().dataset.transport=t.transport,o().dataset.transferState=e.transfer.status;let f=c();f&&(x({el:f,state:{disabled:a,invalid:t.invalid},value:`true`}),p({el:f,attr:`data-multiple`,present:t.multiple,value:`true`}),p({el:f,attr:`data-has-files`,present:i,value:`true`}),p({el:f,attr:`data-max-items-reached`,present:e.selection.limitReached,value:`true`})),w(e,t)},E=e=>({selection:{files:[],limitReached:!1,rejectedCount:0,limitRejectedCount:0,source:`clear`},existing:{present:!!o().querySelector(`[data-ui-file-upload-item][data-existing-file]`),cleared:!1},transfer:{status:e.transport===`native`?`native`:`idle`,activeIds:[],progress:{},results:{},error:``}}),D=g({schema:P,hooks:re,createMachine:({props:e})=>ue({props:e,context:E(e),effects:{commitSelection:e=>{let t=e.context.selection.files.flatMap(({id:e})=>i.get(e)??[]);if(!he(s(),t)){s().value=``,D.send(`FILES_RESET`);return}T(e.context,e.props),e.context.selection.limitRejectedCount>0&&f({el:o(),name:`ui:file-upload-limit`,detail:{rejectedCount:e.context.selection.limitRejectedCount}}),e.context.selection.source!==`picker`&&b(),f({el:o(),name:`ui:file-upload-change`,detail:{files:Y(e.context),source:e.context.selection.source}})},resetSelection:e=>{s().value=``,T(e.context,e.props)},syncProps:e=>{T(e.context,e.props),D.send({type:`RECONCILE`,records:e.context.selection.files,source:`props`})},syncDragging:e=>{let t=e.snapshot.tags.includes(`dragging`);p({el:o(),attr:`data-dragging`,present:t,value:`true`});let n=c();n&&p({el:n,attr:`data-dragging`,present:t,value:`true`})},clearExisting:e=>{let t=o().querySelector(`[data-ui-file-upload-clear]`);t&&(t.checked=!0,t.dispatchEvent(new Event(`change`,{bubbles:!0})));let n=o().querySelector(`[data-ui-file-upload-item][data-existing-file]`);n&&(n.hidden=!0),T(e.context,e.props),f({el:o(),name:`ui:file-upload-change`,detail:{files:Y(e.context),source:e.context.selection.source}})},syncTransfer:e=>T(e.context,e.props),emitComplete:e=>f({el:o(),name:`ui:file-upload-complete`,detail:{files:Y(e.context)}}),emitError:e=>f({el:o(),name:`ui:file-upload-error`,detail:{files:Y(e.context),error:e.context.transfer.error}}),emitCancel:e=>f({el:o(),name:`ui:file-upload-cancel`,detail:{files:Y(e.context)}})}})}),O={...D,get files(){return this.snapshot.current?Y(this.snapshot.current.context):[]},get hasFiles(){return(this.snapshot.current?.context.selection.files.length??0)>0||!!(this.snapshot.current?.context.existing.present&&!this.snapshot.current.context.existing.cleared)},get isDragging(){return this.snapshot.current?.tags.includes(`dragging`)??!1},get isUploading(){return this.snapshot.current?.tags.includes(`uploading`)??!1},get isLimitReached(){return this.snapshot.current?.context.selection.limitReached??!1},init(){e=this.$el,D.connect(this.$el,this.snapshot);let r=s();m({target:r,event:`change`,handler:()=>{if(n){n=!1;return}C(_(fe(r.files)),`picker`)},cleanup:t}),m({target:o(),event:`click`,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-ui-file-upload-remove][data-file-id]`);if(n?.dataset.fileId){e.preventDefault(),O.remove(n.dataset.fileId);return}t.closest(`[data-ui-file-upload-remove][data-existing-file]`)&&(e.preventDefault(),D.send(`CLEAR_EXISTING`))},cleanup:t});let i=c();i&&(t.push(A({element:i,canDrop:({source:e})=>!u().disabled&&!D.hasTag(`uploading`)&&S({source:e}),getDropEffect:()=>`copy`,onDragEnter:()=>D.send(`DRAG_ENTER`),onDragLeave:()=>D.send(`DRAG_LEAVE`),onDrop:({source:e})=>{D.send(`DROP`),S({source:e})&&C(_(te({source:e})),`drop`,u().multiple)}})),t.push(j({canMonitor:({source:e})=>S({source:e}),onDrop:()=>D.send(`DRAG_LEAVE`)}))),T(),D.send({type:`RECONCILE`,records:[],source:`props`})},destroy(){t.forEach(e=>e()),t=[],a.forEach(e=>URL.revokeObjectURL(e)),a.clear(),i.clear(),D.disconnect(),e=null},browse(){!u().disabled&&!D.hasTag(`uploading`)&&s().click()},remove(e){u().disabled||D.hasTag(`uploading`)||!i.has(e)||C(d().selection.files.filter(t=>t.id!==e),`remove`)},retry(){D.send(`RETRY_UPLOAD`)},cancel(){D.send(`CANCEL_UPLOAD`)},file(e){return i.get(e)??null}};return O},ve=_(`UiFileUpload`,Q),$=new WeakSet,ye=e=>{$.has(e)||($.add(e),ve(e))};export{Q as n,ye as t};
2
- //# sourceMappingURL=entry.generated-DNtvOM3X.js.map