@vireo-ai/trellis-ui 0.1.46 → 0.1.48

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 (137) hide show
  1. package/package.json +1 -1
  2. package/packages/client/src/components/checkbox/styles.css +5 -0
  3. package/packages/client/src/components/sidebar/styles.css +8 -0
  4. package/packages/client/src/styles/generated/theme-fonts.css +1 -1
  5. package/packages/client/src/styles/generated/theme-palette.css +1 -1
  6. package/packages/client/src/styles/generated/theme-runtime.css +37 -37
  7. package/packages/client/src/styles/generated-sources.css +1 -1
  8. package/packages/client/src/styles/recipes/selection.css +0 -4
  9. package/packages/client/types/components/app/contract.d.ts +7 -7
  10. package/packages/client/types/components/box/contract.d.ts +2 -2
  11. package/packages/client/types/components/card/contract.d.ts +2 -2
  12. package/packages/client/types/components/container/contract.d.ts +2 -2
  13. package/packages/client/types/components/date-picker/contract.d.ts +2 -2
  14. package/packages/client/types/components/date-picker/machine.d.ts +4 -4
  15. package/packages/client/types/components/file-upload/contract.d.ts +1 -1
  16. package/packages/client/types/components/file-upload/index.d.ts +2 -0
  17. package/packages/client/types/components/file-upload/machine.d.ts +2 -1
  18. package/packages/client/types/components/flex/contract.d.ts +2 -2
  19. package/packages/client/types/components/frame/contract.d.ts +2 -2
  20. package/packages/client/types/components/grid/contract.d.ts +2 -2
  21. package/packages/client/types/components/layout.d.ts +2 -2
  22. package/packages/client/types/components/menu/contract.d.ts +2 -2
  23. package/packages/client/types/components/modal/contract.d.ts +2 -2
  24. package/packages/client/types/components/section/contract.d.ts +2 -2
  25. package/packages/client/types/components/select/contract.d.ts +2 -2
  26. package/packages/client/types/components/select/machine.d.ts +4 -4
  27. package/packages/client/types/components/sidebar/contract.d.ts +3 -3
  28. package/packages/client/types/components/sidebar/machine.d.ts +3 -3
  29. package/packages/client/types/components/stack/contract.d.ts +2 -2
  30. package/packages/client/types/components/tooltip/contract.d.ts +4 -4
  31. package/packages/client/types/motion/flip.d.ts +14 -0
  32. package/packages/client/types/motion/index.d.ts +2 -0
  33. package/packages/client/types/motion/size.d.ts +25 -0
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +43 -42
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +294 -280
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-C8JwDQHB.js +2 -0
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-LgqzTNla.js.map → capability-motion-C8JwDQHB.js.map} +1 -1
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js +2 -0
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js.map +1 -0
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ms02uATJ.js +3 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-DhIaUo4k.js.map → capability-sortable-Ms02uATJ.js.map} +1 -1
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-DsXbNzqk.js → controller-BOf7dxV2.js} +2 -2
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-DsXbNzqk.js.map → controller-BOf7dxV2.js.map} +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DFCT8LQq.js → core-D_APohl9.js} +2 -2
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DFCT8LQq.js.map → core-D_APohl9.js.map} +1 -1
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-invalidation-Dw6clnS4.js +2 -0
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-invalidation-Dw6clnS4.js.map +1 -0
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DnQY2zaY.js → entry.generated-6GztwKjx.js} +2 -2
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DnQY2zaY.js.map → entry.generated-6GztwKjx.js.map} +1 -1
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BK8q8vxJ.js +2 -0
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BK8q8vxJ.js.map +1 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BNM7EWpC.js +2 -0
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BNM7EWpC.js.map +1 -0
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bl38ruYD.js +2 -0
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bl38ruYD.js.map +1 -0
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DpIBgUZ3.js → entry.generated-C0kdsGqX.js} +2 -2
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DpIBgUZ3.js.map → entry.generated-C0kdsGqX.js.map} +1 -1
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5kjUnFe.js +2 -0
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5kjUnFe.js.map +1 -0
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CZWpqP88.js +2 -0
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CZWpqP88.js.map +1 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6qaa8bk.js +2 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6qaa8bk.js.map +1 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DRZyI4u3.js +2 -0
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DRZyI4u3.js.map +1 -0
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BTe_Q79G.js → entry.generated-DcCdeWRk.js} +2 -2
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BTe_Q79G.js.map → entry.generated-DcCdeWRk.js.map} +1 -1
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-pap9Z0I-.js → entry.generated-DckTWjSU.js} +2 -2
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-pap9Z0I-.js.map → entry.generated-DckTWjSU.js.map} +1 -1
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVQC6yVd.js → entry.generated-DldFffYN.js} +2 -2
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVQC6yVd.js.map → entry.generated-DldFffYN.js.map} +1 -1
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-OqzkZfIu.js +2 -0
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-OqzkZfIu.js.map +1 -0
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-XfwHguip.js → entry.generated-RR5GZAgO.js} +2 -2
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-XfwHguip.js.map → entry.generated-RR5GZAgO.js.map} +1 -1
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dyQ_HJ8D.js +2 -0
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dyQ_HJ8D.js.map +1 -0
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-jxSblEo7.js +2 -0
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-jxSblEo7.js.map +1 -0
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BlyJpJAE.js +3 -0
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BlyJpJAE.js.map +1 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js +4 -0
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js.map +1 -0
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -1
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +125 -108
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-LgqzTNla.js +0 -2
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js +0 -2
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Br_XBf7u.js.map +0 -1
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-DhIaUo4k.js +0 -3
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B-PuCg-D.js +0 -2
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B-PuCg-D.js.map +0 -1
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B8aXTJK6.js +0 -2
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B8aXTJK6.js.map +0 -1
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B956G6Cz.js +0 -2
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B956G6Cz.js.map +0 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js +0 -2
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js.map +0 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSgqcIg6.js +0 -2
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSgqcIg6.js.map +0 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DNtvOM3X.js +0 -2
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DNtvOM3X.js.map +0 -1
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-RnJw-Qs4.js +0 -2
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-RnJw-Qs4.js.map +0 -1
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ifMDOEy_.js +0 -2
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ifMDOEy_.js.map +0 -1
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js +0 -2
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-jP0UEZIS.js.map +0 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CB866C3K.js +0 -2
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CB866C3K.js.map +0 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-D2EM1olE.js +0 -3
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-D2EM1olE.js.map +0 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CV0dnUFY.js +0 -4
  137. 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{f as e,l as t,n,t as r}from"./codecs-Cb1ns_47.js";import{o as i,s as a,t as o}from"./dom-qAeVl7dc.js";import{t as s}from"./alpine-machine-BS13dbK4.js";import{t as c}from"./alpine-data-CytyCyfk.js";import{n as l,t as u}from"./styles-TfvwVPGw.js";import{t as d}from"./machine-Dqut4h89.js";import{n as f,t as p}from"./props-change-2xfsIAEN.js";import{n as m,r as h}from"./form-control-BkVb2Qed.js";import{L as g,M as _,N as v,P as y,b,o as x,s as ee,v as te,y as S}from"./common-Dfj6NCjU.js";import{i as C,n as w,r as T}from"./styles-CpTCQjY5.js";var E=y,D=[`default`,`cards`,`pills`,`menu`],O=te,k=x,A=[`default`,`cards`,`pills`,`menu`],j=g,M=S,ne={name:e,value:r(e,`prop-value`),orientation:t(E,`vertical`),variant:t(D,`default`),color:t(j,`neutral`),interaction:t(M,`tonal`),indicator:n.default(!0),placement:t(O,`leading`),disabled:r(n,`prop-disabled`),required:r(n,`prop-required`),invalid:r(n,`prop-invalid`),loop:n.default(!0),class:e},re={value:e,name:e,label:e,description:e,checked:r(n,`prop-checked`),disabled:r(n,`prop-disabled`),required:r(n,`prop-required`),invalid:r(n,`prop-invalid`),indicator:n.default(!0),placement:t(O,`leading`),icon:e,variant:t(A,`default`),color:t(j,`neutral`),interaction:t(M,`tonal`),size:t(k,`md`),inputClass:e,indicatorClass:e,iconClass:e,contentClass:e,labelClass:e,descriptionClass:e,class:e};t(k,`md`);var N=[],P=[],F=e=>typeof e.value==`string`?e.value:``,I=e=>{let t=e.item;if(!t||typeof t!=`object`)return null;let n=t;return typeof n.id!=`string`||typeof n.value!=`string`?null:{id:n.id,value:n.value,disabled:n.disabled===!0,checked:n.checked===!0}},L=e=>{let{context:t,event:n}=e;if(e.props.disabled)return!1;let r=F(n);return r?t.collection.items.some(e=>e.value===r&&!e.disabled):!e.props.required},R=e=>({event:t})=>!!F(t)===e,z=({event:e})=>p(e,`value`),B=e=>{let t=f(e.event)?.props;return!z(e)||!t?e.context.selection.value:t.value||e.context.collection.items.find(e=>e.checked)?.value||``},V=e=>t=>z(t)&&!!B(t)===e,H=e=>({context:{...e.context,selection:{value:F(e.event)}}}),U=e=>{let t=f(e.event)?.props;if(t)return{props:t,context:z(e)?{...e.context,selection:{value:B(e)}}:e.context}},W=e=>{let t=I(e.event);if(!t)return;let n=[...e.context.collection.items.filter(e=>e.id!==t.id),t];if(n.some(e=>e.id!==t.id&&e.value&&e.value===t.value))throw Error(`Radio group values must be unique: ${t.value}`);return{context:{selection:{value:e.props.value||e.context.selection.value||(t.checked?t.value:``)},collection:{items:n}}}},G=e=>{let t=typeof e.event.id==`string`?e.event.id:``,n=e.context.collection.items.find(e=>e.id===t),r=e.context.collection.items.filter(e=>e.id!==t);return{context:{selection:{value:n?.value===e.context.selection.value?``:e.context.selection.value},collection:{items:r}}}},K=e=>{let t=I(e.event);if(!t)return;let n=e.context.collection.items.find(e=>e.id===t.id),r=e.context.collection.items.map(e=>e.id===t.id?t:e);if(r.some(e=>e.id!==t.id&&e.value&&e.value===t.value))throw Error(`Radio group values must be unique: ${t.value}`);let i=e.context.selection.value;return!e.props.value&&t.checked?i=t.value:!e.props.value&&n?.checked&&!t.checked&&n.value===i?i=``:n?.value===i&&t.value!==n.value&&(i=t.value),{context:{selection:{value:i},collection:{items:r}}}},q=({props:e,effects:t})=>d({initial:e.value?`selected`:`empty`,on:{NATIVE_SELECTED:{target:`selected`,guard:L,reduce:`select`,effects:`sync`},SET_VALUE:[{target:`selected`,guard:e=>L(e)&&R(!0)(e),reduce:`select`,effects:[`sync`,`emitInput`,`emitChange`]},{target:`empty`,guard:e=>L(e)&&R(!1)(e),reduce:`select`,effects:`sync`}],NAVIGATE:{target:`selected`,guard:L,reduce:`select`,effects:[`sync`,`emitInput`,`emitChange`,`focus`]},ITEM_REGISTERED:{reduce:`registerItem`,effects:`sync`},ITEM_UPDATED:{reduce:`updateItem`,effects:`sync`},ITEM_UNREGISTERED:{reduce:`unregisterItem`,effects:`sync`},PROPS_CHANGED:[{target:`selected`,guard:V(!0),reduce:`reconcileProps`,effects:`sync`},{target:`empty`,guard:V(!1),reduce:`reconcileProps`,effects:`sync`},{reduce:`reconcileProps`,effects:`sync`}]},states:{empty:{tags:[`empty`]},selected:{tags:[`selected`]}}},{context:{selection:{value:e.value},collection:{items:[]}},props:e,reducers:{select:H,reconcileProps:U,registerItem:W,unregisterItem:G,updateItem:K},effects:t}),J=({props:e,effects:t})=>d({initial:`ready`,states:{ready:{on:{NATIVE_SELECTED:{reduce:`select`,effects:`sync`},PROPS_CHANGED:{reduce:`reconcileProps`,effects:`sync`}}}}},{context:{checked:e.checked},props:e,reducers:{select:e=>({context:{...e.context,checked:!0}}),reconcileProps:e=>{let t=f(e.event);if(!t)return;let n=t.changes.some(({key:e})=>e===`checked`);return{props:t.props,context:n?{...e.context,checked:t.props.checked}:e.context}}},effects:t}),Y=u({definition:{component:`ui.radio`,parts:{group:{base:`w-full min-w-0`,variants:{orientation:{vertical:``,horizontal:``},variant:{default:``,cards:``,pills:``,menu:`contents`}},compounds:[{when:{variant:`default`,orientation:`vertical`},class:`grid gap-2`},{when:{variant:`default`,orientation:`horizontal`},class:`flex flex-wrap items-start gap-3`},{when:{variant:`cards`,orientation:`vertical`},class:`grid gap-3`},{when:{variant:`cards`,orientation:`horizontal`},class:`flex flex-wrap items-stretch gap-3`},{when:{variant:`pills`,orientation:`vertical`},class:`inline-grid gap-2`},{when:{variant:`pills`,orientation:`horizontal`},class:`flex flex-wrap items-center gap-2`}],defaults:{orientation:`vertical`,variant:`default`}},radio:{base:[`relative flex min-w-0 cursor-pointer items-start gap-2 rounded-control-md outline-none`,`text-inherit`],variants:{variant:{default:[`w-full py-0.5`,b],cards:`w-auto flex-1 cursor-pointer items-start gap-3`,pills:[w,C.soft,T.md,`w-auto flex-none rounded-full`],menu:[v,`!items-center`]},size:ee},defaults:{variant:`default`,size:`md`}},input:{base:`sr-only`},indicator:{base:[`mt-0.5 flex shrink-0 items-center justify-center rounded-full border-0`],variants:{variant:{default:``,cards:``,pills:``,menu:`order-10 !mt-0 ml-auto`},size:{xs:`size-radio-indicator-xs`,sm:`size-radio-indicator-sm`,md:`size-radio-indicator-md`,lg:`size-radio-indicator-lg`,xlg:`size-radio-indicator-xlg`}},defaults:{variant:`default`,size:`md`}},indicatorDot:{base:`rounded-full bg-current opacity-0 data-checked:opacity-100`,variants:{size:{xs:`size-radio-dot-xs`,sm:`size-radio-dot-sm`,md:`size-radio-dot-md`,lg:`size-radio-dot-lg`,xlg:`size-radio-dot-xlg`}},defaults:{size:`md`}},menuIndicator:{base:[`order-10 flex`,_]},menuIndicatorIcon:{base:`size-icon shrink-0 fill-current`},content:{base:`grid min-w-0 gap-0.5`},icon:{base:`mt-0.5 size-icon shrink-0 fill-current text-current opacity-75`},label:{base:``},description:{base:`text-surface-ink-muted`}}}}),X=new WeakMap,ie=0,ae=e=>{let t=e.parentElement?.closest(`[data-ui-radio-group]`)??null;return t?X.get(t)??null:null},Z=()=>{let e=`ui-radio-${++ie}`,t=null,n=null,r=[],c=null,u=null,d=!1,f=()=>{if(!t)throw Error(`Radio has not been initialized.`);return t},p=()=>{if(!n)throw Error(`Radio requires a native radio input.`);return n},g=()=>y.getCommittedSnapshot(),_=()=>({id:e,value:g().props.value||p().value||``,disabled:g().props.disabled,checked:g().props.checked}),v=e=>{let t=g().props,n=p(),r=e?.checked??g().context.checked,o=t.name||e?.name||``,s=t.disabled||e?.disabled===!0,c=t.required||e?.required===!0,u=t.invalid||e?.invalid===!0,d=t.variant===`menu`||e?.variant===`menu`;n.checked=r,o||n.removeAttribute(`name`),h({input:n,state:{name:o,value:t.value,disabled:s,required:c,invalid:u}}),i({el:f(),attr:`data-state`,value:r?`checked`:`unchecked`}),a({el:f(),attr:`data-checked`,present:r}),m({el:f(),state:{disabled:s,required:c,invalid:u}}),a({el:n,attr:`data-checked`,present:r}),f().className=l({part:Y.parts.radio,props:{...t,variant:d?`menu`:t.variant},className:f().dataset.class}),a({el:f(),attr:`data-ui-menu-item`,present:d}),a({el:f(),attr:`data-ui-option-recipe`,present:d}),a({el:f(),attr:`data-keep-open`,present:d,value:`true`}),a({el:f(),attr:`data-selected`,present:d&&r}),d?(f().setAttribute(`role`,`menuitemradio`),f().setAttribute(`aria-checked`,r?`true`:`false`),f().tabIndex=-1,n.tabIndex=-1,n.setAttribute(`aria-hidden`,`true`)):(f().removeAttribute(`role`),f().removeAttribute(`aria-checked`),f().removeAttribute(`tabindex`),n.removeAttribute(`aria-hidden`));let _=f().querySelector(`[data-ui-radio-indicator]`);_&&(_.hidden=d,_.className=l({part:Y.parts.indicator,props:{...t,variant:d?`menu`:t.variant},className:_.dataset.class}),a({el:_,attr:`data-checked`,present:r}),a({el:_,attr:`data-disabled`,present:s}),a({el:_,attr:`data-invalid`,present:u}));let v=f().querySelector(`[data-ui-radio-indicator-dot]`);v&&a({el:v,attr:`data-checked`,present:r});let y=f().querySelector(`[data-ui-radio-menu-indicator]`);y&&(y.hidden=!d,a({el:y,attr:`data-selected`,present:r}))},y=s({schema:re,hooks:P,createMachine:({props:e})=>J({props:e,effects:{sync:()=>{c?.update(b),c||v()}}})}),b={record:_,input:p,sync:v,emit(e){d=!0;try{p().dispatchEvent(new Event(e,{bubbles:!0}))}finally{d=!1}},focus:()=>p().focus({preventScroll:!0})};return{...y,init(){if(t=this.$el,n=f().querySelector(`[data-ui-radio-input]`),!n)throw Error(`Radio requires a native radio input.`);y.connect(t,this.snapshot),c=ae(f()),c&&(u=c.register(b)),o({target:n,event:`change`,handler:()=>{d||!p().checked||(c?c.nativeSelected(b):y.send(`NATIVE_SELECTED`))},cleanup:r}),o({target:n,event:`keydown`,handler:e=>{if(!c||!(e instanceof KeyboardEvent))return;let t=e.key===`ArrowUp`||e.key===`ArrowLeft`,n=e.key===`ArrowDown`||e.key===`ArrowRight`;!t&&!n||(e.preventDefault(),c.navigate(b,t?-1:1))},cleanup:r}),c||v()},destroy(){u?.(),u=null,c=null,r.splice(0).reverse().forEach(e=>e()),y.disconnect(),t=null,n=null}}},Q=()=>{let e=null,t=new Map,n=()=>{if(!e)throw Error(`Radio group has not been initialized.`);return e},r=()=>l.getCommittedSnapshot(),o=()=>{let e=r(),o=e.props,s=e.context.selection.value;i({el:n(),attr:`data-orientation`,value:o.orientation}),i({el:n(),attr:`data-variant`,value:o.variant}),i({el:n(),attr:`data-placement`,value:o.placement}),i({el:n(),attr:`aria-orientation`,value:o.orientation}),a({el:n(),attr:`data-indicator`,present:!o.indicator,value:`false`}),i({el:n(),attr:`role`,value:o.variant===`menu`?`group`:`radiogroup`}),m({el:n(),state:o});let c=e.context.collection.items.filter(e=>!e.disabled)[0]?.id??``;e.context.collection.items.forEach(e=>{let n=t.get(e.id);if(!n)return;let r=e.value===s;n.sync({checked:r,name:o.name,disabled:o.disabled,required:o.required,invalid:o.invalid,variant:o.variant}),n.input().tabIndex=o.variant===`menu`||e.disabled?-1:r||!s&&e.id===c?0:-1})},c=(e,n)=>{let r=typeof n==`string`?n:e.context.selection.value,i=e.context.collection.items.find(e=>e.value===r);return i?t.get(i.id)??null:null},l=s({schema:ne,hooks:N,createMachine:({props:e})=>q({props:e,effects:{sync:o,emitInput:e=>c(e.snapshot,e.event.value)?.emit(`input`),emitChange:e=>c(e.snapshot,e.event.value)?.emit(`change`),focus:e=>c(e.snapshot,e.event.value)?.focus()}})}),u={register(e){let n=e.record();return t.set(n.id,e),l.send({type:`ITEM_REGISTERED`,item:n}),()=>{t.delete(n.id),l.send({type:`ITEM_UNREGISTERED`,id:n.id})}},update(e){l.send({type:`ITEM_UPDATED`,item:e.record()})},nativeSelected(e){l.send({type:`NATIVE_SELECTED`,value:e.record().value})},navigate(e,t){let n=l.getCommittedSnapshot(),r=n.context.collection.items.filter(e=>!e.disabled),i=r.findIndex(t=>t.id===e.record().id);if(i<0||r.length===0)return;let a=i+t;if(a<0||a>=r.length){if(!n.props.loop)return;a=a<0?r.length-1:0}let o=r[a];o&&l.send({type:`NAVIGATE`,value:o.value})}};return{...l,init(){e=this.$el,l.connect(e,this.snapshot),X.set(n(),u),o()},destroy(){X.delete(n()),t.clear(),l.disconnect(),e=null},get value(){return l.getCommittedSnapshot().context.selection.value},setValue(e){e!==l.getCommittedSnapshot().context.selection.value&&l.send({type:`SET_VALUE`,value:e})}}},oe=e=>{c(`UiRadio`,Z)(e),c(`UiRadioGroup`,Q)(e)},$=new WeakSet,se=e=>{$.has(e)||($.add(e),oe(e))};export{Z as n,Q as r,se as t};
2
- //# sourceMappingURL=entry.generated-B8aXTJK6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-B8aXTJK6.js","names":[],"sources":["../../../../../../../../client/src/components/radio/contract.ts","../../../../../../../../client/src/components/radio/machine.ts","../../../../../../../../client/src/components/radio/styles.ts","../../../../../../../../client/src/components/radio/index.ts","../../../../../../../../client/src/components/radio/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n INTERACTION_TREATMENTS,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst RADIO_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst RADIO_GROUP_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst RADIO_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst RADIO_SIZES = CONTROL_SIZES;\nconst RADIO_VARIANTS = ['default', 'cards', 'pills', 'menu'] as const;\nconst RADIO_COLORS = SELECTION_COLORS;\nconst RADIO_INTERACTIONS = INTERACTION_TREATMENTS;\n\ntype RadioGroupOrientation = Orientation;\ntype RadioGroupVariant = typeof RADIO_GROUP_VARIANTS[number];\ntype RadioPlacement = IndicatorPlacement;\ntype RadioSize = ControlSize;\ntype RadioVariant = typeof RADIO_VARIANTS[number];\ntype RadioColor = typeof RADIO_COLORS[number];\ntype RadioInteraction = typeof RADIO_INTERACTIONS[number];\n\nconst radioGroupSchema = {\n name: string,\n value: attribute(string, 'prop-value'),\n orientation: oneOf(RADIO_GROUP_ORIENTATIONS, 'vertical' as RadioGroupOrientation),\n variant: oneOf(RADIO_GROUP_VARIANTS, 'default' as RadioGroupVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n loop: bool.default(true),\n class: string,\n};\n\nconst radioSchema = {\n value: string,\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(RADIO_PLACEMENTS, 'leading' as RadioPlacement),\n icon: string,\n variant: oneOf(RADIO_VARIANTS, 'default' as RadioVariant),\n color: oneOf(RADIO_COLORS, 'neutral' as RadioColor),\n interaction: oneOf(RADIO_INTERACTIONS, 'tonal' as RadioInteraction),\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n inputClass: string,\n indicatorClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst radioIndicatorSchema = {\n size: oneOf(RADIO_SIZES, 'md' as RadioSize),\n class: string,\n};\n\ntype RadioGroupProps = SchemaToProps<typeof radioGroupSchema>;\ntype RadioProps = SchemaToProps<typeof radioSchema>;\n\nexport {\n RADIO_GROUP_ORIENTATIONS,\n RADIO_GROUP_VARIANTS,\n RADIO_COLORS,\n RADIO_INTERACTIONS,\n RADIO_PLACEMENTS,\n RADIO_SIZES,\n RADIO_VARIANTS,\n radioGroupSchema,\n radioIndicatorSchema,\n radioSchema,\n};\nexport type {\n RadioColor,\n RadioGroupOrientation,\n RadioGroupProps,\n RadioGroupVariant,\n RadioInteraction,\n RadioPlacement,\n RadioProps,\n RadioSize,\n RadioVariant,\n};\n","import {createMachine, propsChanged, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {RadioGroupProps, RadioProps} from './contract';\n\ntype RadioItemRecord = {id: string; value: string; disabled: boolean; checked: boolean};\ntype RadioGroupContext = {\n selection: {value: string};\n collection: {items: RadioItemRecord[]};\n};\ntype RadioItemContext = {checked: boolean};\n\ntype RadioGroupEffects = {\n sync(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitInput(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n emitChange(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n focus(scope: MachineScope<RadioGroupContext, RadioGroupProps>): void;\n};\ntype RadioItemEffects = {sync(scope: MachineScope<RadioItemContext, RadioProps>): void};\n\nconst radioGroupHooks = [] as const;\nconst radioItemHooks = [] as const;\nconst eventValue = (event: MachineEventObject): string => typeof event.value === 'string' ? event.value : '';\nconst eventItem = (event: MachineEventObject): RadioItemRecord | null => {\n const item = event.item;\n if (!item || typeof item !== 'object') return null;\n const candidate = item as Partial<RadioItemRecord>;\n if (typeof candidate.id !== 'string' || typeof candidate.value !== 'string') return null;\n return {\n id: candidate.id,\n value: candidate.value,\n disabled: candidate.disabled === true,\n checked: candidate.checked === true,\n };\n};\nconst isSelectable = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n const {context, event} = scope;\n if (scope.props.disabled) return false;\n const value = eventValue(event);\n if (!value) return !scope.props.required;\n return context.collection.items.some((item) => item.value === value && !item.disabled);\n};\nconst hasValue = (value: boolean) => ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n Boolean(eventValue(event)) === value\n);\nconst changedGroupValue = ({event}: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => (\n propsChanged<RadioGroupProps>(event, 'value')\n);\nconst nextGroupSelection = (scope: MachineScope<RadioGroupContext, RadioGroupProps>): string => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!changedGroupValue(scope) || !next) return scope.context.selection.value;\n return next.value || scope.context.collection.items.find((item) => item.checked)?.value || '';\n};\nconst nextGroupHasValue = (value: boolean) => (scope: MachineScope<RadioGroupContext, RadioGroupProps>): boolean => {\n return changedGroupValue(scope) && Boolean(nextGroupSelection(scope)) === value;\n};\n\nconst select = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => ({\n context: {...scope.context, selection: {value: eventValue(scope.event)}},\n});\nconst reconcileProps = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const next = propsChangedEvent<RadioGroupProps>(scope.event)?.props;\n if (!next) return;\n return {\n props: next,\n context: changedGroupValue(scope)\n ? {...scope.context, selection: {value: nextGroupSelection(scope)}}\n : scope.context,\n };\n};\nconst registerItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const items = [...scope.context.collection.items.filter((candidate) => candidate.id !== item.id), item];\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n const selected = scope.props.value || scope.context.selection.value || (item.checked ? item.value : '');\n return {context: {selection: {value: selected}, collection: {items}}};\n};\nconst unregisterItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const id = typeof scope.event.id === 'string' ? scope.event.id : '';\n const removed = scope.context.collection.items.find((item) => item.id === id);\n const items = scope.context.collection.items.filter((item) => item.id !== id);\n const value = removed?.value === scope.context.selection.value ? '' : scope.context.selection.value;\n return {context: {selection: {value}, collection: {items}}};\n};\nconst updateItem = (scope: MachineScope<RadioGroupContext, RadioGroupProps>) => {\n const item = eventItem(scope.event);\n if (!item) return;\n const previous = scope.context.collection.items.find((candidate) => candidate.id === item.id);\n const items = scope.context.collection.items.map((candidate) => candidate.id === item.id ? item : candidate);\n const duplicate = items.some((candidate) => candidate.id !== item.id && candidate.value && candidate.value === item.value);\n if (duplicate) throw new Error(`Radio group values must be unique: ${item.value}`);\n let value = scope.context.selection.value;\n if (!scope.props.value && item.checked) value = item.value;\n else if (!scope.props.value && previous?.checked && !item.checked && previous.value === value) value = '';\n else if (previous?.value === value && item.value !== previous.value) value = item.value;\n return {context: {selection: {value}, collection: {items}}};\n};\n\nconst createRadioGroupMachine = ({props, effects}: {props: RadioGroupProps; effects: RadioGroupEffects}): Machine<RadioGroupContext, RadioGroupProps> => createMachine<RadioGroupContext, RadioGroupProps>({\n initial: props.value ? 'selected' : 'empty',\n on: {\n NATIVE_SELECTED: {target: 'selected', guard: isSelectable, reduce: 'select', effects: 'sync'},\n SET_VALUE: [\n {target: 'selected', guard: (scope) => isSelectable(scope) && hasValue(true)(scope), reduce: 'select', effects: ['sync', 'emitInput', 'emitChange']},\n {target: 'empty', guard: (scope) => isSelectable(scope) && hasValue(false)(scope), reduce: 'select', effects: 'sync'},\n ],\n NAVIGATE: {target: 'selected', guard: isSelectable, reduce: 'select', effects: ['sync', 'emitInput', 'emitChange', 'focus']},\n ITEM_REGISTERED: {reduce: 'registerItem', effects: 'sync'},\n ITEM_UPDATED: {reduce: 'updateItem', effects: 'sync'},\n ITEM_UNREGISTERED: {reduce: 'unregisterItem', effects: 'sync'},\n PROPS_CHANGED: [\n {target: 'selected', guard: nextGroupHasValue(true), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'empty', guard: nextGroupHasValue(false), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {empty: {tags: ['empty']}, selected: {tags: ['selected']}},\n}, {\n context: {selection: {value: props.value}, collection: {items: []}},\n props,\n reducers: {select, reconcileProps, registerItem, unregisterItem, updateItem},\n effects,\n});\n\nconst createRadioItemMachine = ({props, effects}: {props: RadioProps; effects: RadioItemEffects}): Machine<RadioItemContext, RadioProps> => createMachine<RadioItemContext, RadioProps>({\n initial: 'ready',\n states: {ready: {on: {\n NATIVE_SELECTED: {reduce: 'select', effects: 'sync'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n }}},\n}, {\n context: {checked: props.checked},\n props,\n reducers: {\n select: (scope) => ({context: {...scope.context, checked: true}}),\n reconcileProps: (scope) => {\n const event = propsChangedEvent<RadioProps>(scope.event);\n if (!event) return;\n const checkedChanged = event.changes.some(({key}) => key === 'checked');\n return {\n props: event.props,\n context: checkedChanged ? {...scope.context, checked: event.props.checked} : scope.context,\n };\n },\n },\n effects,\n});\n\nexport {createRadioGroupMachine, createRadioItemMachine, radioGroupHooks, radioItemHooks};\nexport type {RadioGroupContext, RadioGroupEffects, RadioItemContext, RadioItemEffects, RadioItemRecord};\n","import {defineStyles} from '../../runtime';\nimport {BADGE_ROOT_BASE_CLASSES, BADGE_SIZE_CLASSES, BADGE_VARIANT_CLASSES} from '../badge/styles';\nimport {\n CONTROL_TYPOGRAPHY_CLASSES,\n INTERACTIVE_ITEM_CLASSES,\n OPTION_INDICATOR_CLASSES,\n OPTION_ITEM_CLASSES,\n} from '../common';\n\nconst radioStyles = defineStyles({definition: {\n component: 'ui.radio',\n parts: {\n group: {\n base: 'w-full min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: '',\n },\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'contents',\n },\n },\n compounds: [\n {when: {variant: 'default', orientation: 'vertical'}, class: 'grid gap-2'},\n {when: {variant: 'default', orientation: 'horizontal'}, class: 'flex flex-wrap items-start gap-3'},\n {when: {variant: 'cards', orientation: 'vertical'}, class: 'grid gap-3'},\n {when: {variant: 'cards', orientation: 'horizontal'}, class: 'flex flex-wrap items-stretch gap-3'},\n {when: {variant: 'pills', orientation: 'vertical'}, class: 'inline-grid gap-2'},\n {when: {variant: 'pills', orientation: 'horizontal'}, class: 'flex flex-wrap items-center gap-2'},\n ],\n defaults: {\n orientation: 'vertical',\n variant: 'default',\n },\n },\n radio: {\n base: [\n 'relative flex min-w-0 cursor-pointer items-start gap-2 rounded-control-md outline-none',\n 'text-inherit',\n ],\n variants: {\n variant: {\n default: ['w-full py-0.5', INTERACTIVE_ITEM_CLASSES],\n cards: 'w-auto flex-1 cursor-pointer items-start gap-3',\n pills: [\n BADGE_ROOT_BASE_CLASSES,\n BADGE_VARIANT_CLASSES.soft,\n BADGE_SIZE_CLASSES.md,\n 'w-auto flex-none rounded-full',\n ],\n menu: [OPTION_ITEM_CLASSES, '!items-center'],\n },\n size: CONTROL_TYPOGRAPHY_CLASSES,\n },\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n input: {\n base: 'sr-only',\n },\n indicator: {\n base: [\n 'mt-0.5 flex shrink-0 items-center justify-center rounded-full border-0',\n ],\n variants: {\n variant: {\n default: '',\n cards: '',\n pills: '',\n menu: 'order-10 !mt-0 ml-auto',\n },\n size: {\n xs: 'size-radio-indicator-xs',\n sm: 'size-radio-indicator-sm',\n md: 'size-radio-indicator-md',\n lg: 'size-radio-indicator-lg',\n xlg: 'size-radio-indicator-xlg',\n },\n },\n defaults: {\n variant: 'default',\n size: 'md',\n },\n },\n indicatorDot: {\n base: 'rounded-full bg-current opacity-0 data-checked:opacity-100',\n variants: {\n size: {\n xs: 'size-radio-dot-xs',\n sm: 'size-radio-dot-sm',\n md: 'size-radio-dot-md',\n lg: 'size-radio-dot-lg',\n xlg: 'size-radio-dot-xlg',\n },\n },\n defaults: {\n size: 'md',\n },\n },\n menuIndicator: {\n base: ['order-10 flex', OPTION_INDICATOR_CLASSES],\n },\n menuIndicatorIcon: {\n base: 'size-icon shrink-0 fill-current',\n },\n content: {\n base: 'grid min-w-0 gap-0.5',\n },\n icon: {\n base: 'mt-0.5 size-icon shrink-0 fill-current text-current opacity-75',\n },\n label: {\n base: '',\n },\n description: {\n base: 'text-surface-ink-muted',\n },\n },\n}});\n\nexport {radioStyles};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, defineAlpineData, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, setAttribute, setPresence, type CleanupStack} from '@client/utils';\nimport {radioGroupSchema, radioSchema, type RadioGroupProps, type RadioProps} from './contract';\nimport {\n createRadioGroupMachine,\n createRadioItemMachine,\n radioGroupHooks,\n radioItemHooks,\n type RadioGroupContext,\n type RadioItemContext,\n type RadioItemRecord,\n} from './machine';\nimport {radioStyles} from './styles';\n\n/** Public Alpine API for `ui.radio.group`. @public */\ninterface UiRadioGroupApi {\n /** Current selected value, or an empty string when the group has no selection. */\n readonly value: string;\n /** Select a registered enabled value, or clear an optional group with an empty string. */\n setValue(value: string): void;\n}\n\ntype RadioGroupData = AlpineMachine<RadioGroupContext, RadioGroupProps, typeof radioGroupHooks> & UiRadioGroupApi & {\n init(): void;\n destroy(): void;\n};\ntype RadioData = AlpineMachine<RadioItemContext, RadioProps, typeof radioItemHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype ItemDomState = {\n checked: boolean;\n name: string;\n disabled: boolean;\n required: boolean;\n invalid: boolean;\n variant: RadioGroupProps['variant'];\n};\ntype RadioItemOwner = {\n record(): RadioItemRecord;\n input(): HTMLInputElement;\n sync(state: ItemDomState): void;\n emit(type: 'input' | 'change'): void;\n focus(): void;\n};\ntype RadioGroupOwner = {\n register(item: RadioItemOwner): () => void;\n update(item: RadioItemOwner): void;\n nativeSelected(item: RadioItemOwner): void;\n navigate(item: RadioItemOwner, delta: 1 | -1): void;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, RadioGroupOwner>();\nlet radioItemId = 0;\n\nconst closestGroupOwner = (element: HTMLElement): RadioGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-radio-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiRadio = (): TrellisAlpineComponent<RadioData> => {\n const id = `ui-radio-${++radioItemId}`;\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let listeners: CleanupStack = [];\n let group: RadioGroupOwner | null = null;\n let unregister: (() => void) | null = null;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<RadioItemContext, RadioProps> => bridge.getCommittedSnapshot();\n const record = (): RadioItemRecord => ({\n id,\n value: snapshot().props.value || input().value || '',\n disabled: snapshot().props.disabled,\n checked: snapshot().props.checked,\n });\n const applyState = (state?: ItemDomState): void => {\n const props = snapshot().props;\n const native = input();\n const checked = state?.checked ?? snapshot().context.checked;\n const name = props.name || state?.name || '';\n const disabled = props.disabled || state?.disabled === true;\n const required = props.required || state?.required === true;\n const invalid = props.invalid || state?.invalid === true;\n const menu = props.variant === 'menu' || state?.variant === 'menu';\n\n native.checked = checked;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n setAttribute({el: root(), attr: 'data-state', value: checked ? 'checked' : 'unchecked'});\n setPresence({el: root(), attr: 'data-checked', present: checked});\n syncControlPresence({el: root(), state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n root().className = resolveStyle({\n part: radioStyles.parts.radio,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: root().dataset.class,\n });\n setPresence({el: root(), attr: 'data-ui-menu-item', present: menu});\n setPresence({el: root(), attr: 'data-ui-option-recipe', present: menu});\n setPresence({el: root(), attr: 'data-keep-open', present: menu, value: 'true'});\n setPresence({el: root(), attr: 'data-selected', present: menu && checked});\n if (menu) {\n root().setAttribute('role', 'menuitemradio');\n root().setAttribute('aria-checked', checked ? 'true' : 'false');\n root().tabIndex = -1;\n native.tabIndex = -1;\n native.setAttribute('aria-hidden', 'true');\n } else {\n root().removeAttribute('role');\n root().removeAttribute('aria-checked');\n root().removeAttribute('tabindex');\n native.removeAttribute('aria-hidden');\n }\n const indicator = root().querySelector<HTMLElement>('[data-ui-radio-indicator]');\n if (indicator) {\n indicator.hidden = menu;\n indicator.className = resolveStyle({\n part: radioStyles.parts.indicator,\n props: {...props, variant: menu ? 'menu' : props.variant},\n className: indicator.dataset.class,\n });\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const dot = root().querySelector<HTMLElement>('[data-ui-radio-indicator-dot]');\n if (dot) setPresence({el: dot, attr: 'data-checked', present: checked});\n const menuIndicator = root().querySelector<HTMLElement>('[data-ui-radio-menu-indicator]');\n if (menuIndicator) {\n menuIndicator.hidden = !menu;\n setPresence({el: menuIndicator, attr: 'data-selected', present: checked});\n }\n };\n const bridge = createAlpineMachine({\n schema: radioSchema,\n hooks: radioItemHooks,\n createMachine: ({props}) => createRadioItemMachine({props, effects: {sync: () => {\n group?.update(owner);\n if (!group) applyState();\n }}}),\n });\n const owner: RadioItemOwner = {\n record,\n input,\n sync: applyState,\n emit(type): void {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n },\n focus: () => input().focus({preventScroll: true}),\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-radio-input]');\n if (!inputEl) throw new Error('Radio requires a native radio input.');\n bridge.connect(rootEl, this.snapshot);\n group = closestGroupOwner(root());\n if (group) unregister = group.register(owner);\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatching || !input().checked) return;\n if (group) group.nativeSelected(owner);\n else bridge.send('NATIVE_SELECTED');\n }, cleanup: listeners});\n addListener({target: inputEl, event: 'keydown', handler: (event) => {\n if (!group || !(event instanceof KeyboardEvent)) return;\n const previous = event.key === 'ArrowUp' || event.key === 'ArrowLeft';\n const next = event.key === 'ArrowDown' || event.key === 'ArrowRight';\n if (!previous && !next) return;\n event.preventDefault();\n group.navigate(owner, previous ? -1 : 1);\n }, cleanup: listeners});\n if (!group) applyState();\n },\n destroy(): void {\n unregister?.();\n unregister = null;\n group = null;\n listeners.splice(0).reverse().forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n };\n\n function standaloneState(): ItemDomState {\n const props = snapshot().props;\n return {checked: snapshot().context.checked, name: props.name, disabled: props.disabled, required: props.required, invalid: props.invalid, variant: props.variant};\n }\n};\n\nconst UiRadioGroup = (): TrellisAlpineComponent<RadioGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Map<string, RadioItemOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Radio group has not been initialized.');\n return rootEl;\n };\n const snapshot = (): MachineSnapshot<RadioGroupContext, RadioGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const selected = current.context.selection.value;\n setAttribute({el: root(), attr: 'data-orientation', value: props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: props.variant});\n setAttribute({el: root(), attr: 'data-placement', value: props.placement});\n setAttribute({el: root(), attr: 'aria-orientation', value: props.orientation});\n setPresence({el: root(), attr: 'data-indicator', present: !props.indicator, value: 'false'});\n setAttribute({el: root(), attr: 'role', value: props.variant === 'menu' ? 'group' : 'radiogroup'});\n syncControlPresence({el: root(), state: props});\n\n const enabled = current.context.collection.items.filter((item) => !item.disabled);\n const firstEnabled = enabled[0]?.id ?? '';\n current.context.collection.items.forEach((item) => {\n const owner = members.get(item.id);\n if (!owner) return;\n const checked = item.value === selected;\n owner.sync({\n checked,\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n variant: props.variant,\n });\n owner.input().tabIndex = props.variant === 'menu'\n ? -1\n : item.disabled ? -1 : checked || (!selected && item.id === firstEnabled) ? 0 : -1;\n });\n };\n const eventOwner = (current: MachineSnapshot<RadioGroupContext, RadioGroupProps>, eventValue?: unknown): RadioItemOwner | null => {\n const value = typeof eventValue === 'string' ? eventValue : current.context.selection.value;\n const item = current.context.collection.items.find((candidate) => candidate.value === value);\n return item ? members.get(item.id) ?? null : null;\n };\n const bridge = createAlpineMachine({\n schema: radioGroupSchema,\n hooks: radioGroupHooks,\n createMachine: ({props}) => createRadioGroupMachine({props, effects: {\n sync: syncDom,\n emitInput: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('input'),\n emitChange: (scope) => eventOwner(scope.snapshot, scope.event.value)?.emit('change'),\n focus: (scope) => eventOwner(scope.snapshot, scope.event.value)?.focus(),\n }}),\n });\n const owner: RadioGroupOwner = {\n register(item): () => void {\n const record = item.record();\n members.set(record.id, item);\n bridge.send({type: 'ITEM_REGISTERED', item: record});\n return () => {\n members.delete(record.id);\n bridge.send({type: 'ITEM_UNREGISTERED', id: record.id});\n };\n },\n update(item): void {\n bridge.send({type: 'ITEM_UPDATED', item: item.record()});\n },\n nativeSelected(item): void {\n bridge.send({type: 'NATIVE_SELECTED', value: item.record().value});\n },\n navigate(item, delta): void {\n const current = bridge.getCommittedSnapshot();\n const enabled = current.context.collection.items.filter((candidate) => !candidate.disabled);\n const index = enabled.findIndex((candidate) => candidate.id === item.record().id);\n if (index < 0 || enabled.length === 0) return;\n let next = index + delta;\n if (next < 0 || next >= enabled.length) {\n if (!current.props.loop) return;\n next = next < 0 ? enabled.length - 1 : 0;\n }\n const target = enabled[next];\n if (target) bridge.send({type: 'NAVIGATE', value: target.value});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n get value(): string {\n return bridge.getCommittedSnapshot().context.selection.value;\n },\n setValue(value: string): void {\n if (value === bridge.getCommittedSnapshot().context.selection.value) return;\n bridge.send({type: 'SET_VALUE', value});\n },\n };\n};\n\nconst registerRadio = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiRadio', UiRadio)(AlpineInstance);\n defineAlpineData('UiRadioGroup', UiRadioGroup)(AlpineInstance);\n};\n\nexport {registerRadio, UiRadio, UiRadioGroup};\nexport type {RadioData, RadioGroupData, UiRadioGroupApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerRadio as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerRadio = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerRadio};\nexport default registerRadio;\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