@vireo-ai/trellis-ui 0.1.54 → 0.1.55

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 (192) hide show
  1. package/package.json +22 -22
  2. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +413 -1077
  3. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +2 -2
  4. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge.js +1 -1
  5. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +823 -793
  6. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  7. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +1 -1
  8. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js.map +1 -1
  9. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
  10. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  11. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-Dvc_bXq6.js.map +1 -1
  12. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{alpine-machine-9HwatUrm.js → alpine-machine-CE2UN4Qu.js} +2 -2
  13. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{alpine-machine-9HwatUrm.js.map → alpine-machine-CE2UN4Qu.js.map} +1 -1
  14. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js +2 -0
  15. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js.map +1 -0
  16. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js +2 -0
  17. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{bridge-TcE7HSvq.js.map → bridge-DMrvM3JE.js.map} +1 -1
  18. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-B-msaaMx.js +2 -0
  19. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-B-msaaMx.js.map +1 -0
  20. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-C3q5Xzv2.js +2 -0
  21. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-C3q5Xzv2.js.map +1 -0
  22. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js +2 -0
  23. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js.map +1 -0
  24. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-shortcut-CGpfLNL-.js → capability-shortcut-BwvEqEbL.js} +2 -2
  25. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-shortcut-CGpfLNL-.js.map → capability-shortcut-BwvEqEbL.js.map} +1 -1
  26. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bh6pkITu.js +5 -0
  27. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bh6pkITu.js.map +1 -0
  28. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cleanup-manager-D9QiZF_Q.js.map +1 -1
  29. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{codecs-Cb1ns_47.js → codecs-CQ7olTJL.js} +2 -2
  30. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{codecs-Cb1ns_47.js.map → codecs-CQ7olTJL.js.map} +1 -1
  31. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{collection-navigation-CfTZUJrL.js → collection-navigation-BbxUBQFs.js} +2 -2
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{collection-navigation-CfTZUJrL.js.map → collection-navigation-BbxUBQFs.js.map} +1 -1
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controlled-open-Hy4-OT-6.js.map +1 -1
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-CzqwFGEd.js → controller-crMEr9_l.js} +2 -2
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-CzqwFGEd.js.map → controller-crMEr9_l.js.map} +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DOHj5fa1.js +2 -0
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-CogF8tNb.js.map → core-DOHj5fa1.js.map} +1 -1
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-FA9FLGtB.js +2 -0
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{cursor-data-source-B2mQNyzN.js.map → cursor-data-source-FA9FLGtB.js.map} +1 -1
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js.map +1 -1
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dom-DiTFTWeR.js.map +1 -1
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js +6 -0
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js.map +1 -0
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js +2 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js.map +1 -0
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-x0moHcUM.js → entry.generated-B7n4iFyw.js} +2 -2
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-x0moHcUM.js.map → entry.generated-B7n4iFyw.js.map} +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js.map +1 -1
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CmvKWs0J.js → entry.generated-BLduYCHm.js} +2 -2
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CmvKWs0J.js.map → entry.generated-BLduYCHm.js.map} +1 -1
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QV-az1in.js → entry.generated-BeNK2EFl.js} +2 -2
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-QV-az1in.js.map → entry.generated-BeNK2EFl.js.map} +1 -1
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BmVGptdJ.js +2 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BOk2j8j3.js.map → entry.generated-BmVGptdJ.js.map} +1 -1
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js +2 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DTRN8-Ks.js.map → entry.generated-BnqcHAaF.js.map} +1 -1
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CnFggOc8.js → entry.generated-Bq2KAnfO.js} +2 -2
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CnFggOc8.js.map → entry.generated-Bq2KAnfO.js.map} +1 -1
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BBuJrkhp.js → entry.generated-C3cRWutN.js} +2 -2
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3cRWutN.js.map +1 -0
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CnY5J5bD.js → entry.generated-C3y5qBcc.js} +2 -2
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CnY5J5bD.js.map → entry.generated-C3y5qBcc.js.map} +1 -1
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B3hMqvMn.js → entry.generated-CC6pQ0nu.js} +2 -2
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B3hMqvMn.js.map → entry.generated-CC6pQ0nu.js.map} +1 -1
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CGasYxmV.js +2 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-De9SwKec.js.map → entry.generated-CGasYxmV.js.map} +1 -1
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvL196IN.js +2 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvL196IN.js.map +1 -0
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js +2 -0
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js.map +1 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-dkzHCN26.js → entry.generated-D8iA1e6i.js} +2 -2
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D8iA1e6i.js.map +1 -0
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C-4OkQdv.js → entry.generated-DDJEGHq-.js} +2 -2
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DDJEGHq-.js.map +1 -0
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js +2 -0
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js.map +1 -0
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Bqy0wCWo.js → entry.generated-DVOBR4CK.js} +2 -2
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Bqy0wCWo.js.map → entry.generated-DVOBR4CK.js.map} +1 -1
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dcm3s3ey.js +2 -0
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CuZffmX3.js.map → entry.generated-Dcm3s3ey.js.map} +1 -1
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DjKX5KuB.js +2 -0
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BMLdOzZs.js.map → entry.generated-DjKX5KuB.js.map} +1 -1
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Da6pELhK.js → entry.generated-O0hEhk-2.js} +2 -2
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Da6pELhK.js.map → entry.generated-O0hEhk-2.js.map} +1 -1
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-R1BlPlZW.js +2 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BMeqWpPy.js.map → entry.generated-R1BlPlZW.js.map} +1 -1
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BhINWOfZ.js → entry.generated-iMJrYzAB.js} +2 -2
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BhINWOfZ.js.map → entry.generated-iMJrYzAB.js.map} +1 -1
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-n_t4T8XC.js +2 -0
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-sKnD2JaT.js.map → entry.generated-n_t4T8XC.js.map} +1 -1
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C-lyYGbo.js → entry.generated-oJwO9fIY.js} +2 -2
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C-lyYGbo.js.map → entry.generated-oJwO9fIY.js.map} +1 -1
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-ollD3I52.js +2 -0
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CfkH92RS.js.map → entry.generated-ollD3I52.js.map} +1 -1
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-XeJ05afl.js +2 -0
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-XeJ05afl.js.map +1 -0
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js.map +1 -1
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DtaPVNl5.js.map +1 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{fragment-BzHC-hAJ.js → fragment-9OT0mn7F.js} +2 -2
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{fragment-BzHC-hAJ.js.map → fragment-9OT0mn7F.js.map} +1 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js +2 -0
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{machine-DQfpKM3w.js.map → machine-CNnHDbyo.js.map} +1 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{merge-bindings-C8ewA_FD.js → merge-bindings-BtqW3UgP.js} +2 -2
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{merge-bindings-C8ewA_FD.js.map → merge-bindings-BtqW3UgP.js.map} +1 -1
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/morph-Cq3V_23_.js.map +1 -1
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-CbwLBhMt.js +3 -0
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-CbwLBhMt.js.map +1 -0
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/object-SRW-YaCA.js.map +1 -1
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js +2 -0
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js.map +1 -0
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/props-change-2xfsIAEN.js.map +1 -1
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-CIoriWtV.js.map +1 -1
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-BstOueoe.js → styles-C9PrQrca.js} +2 -2
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-BstOueoe.js.map → styles-C9PrQrca.js.map} +1 -1
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CX2j92ex.js +2 -0
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-TfvwVPGw.js.map → styles-CX2j92ex.js.map} +1 -1
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CGwc8KXJ.js +4 -0
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-BGfrCghL.js.map → ui-CGwc8KXJ.js.map} +1 -1
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button.js +1 -1
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -1
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +1 -1
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  143. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  144. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +327 -324
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +11 -9
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +11 -9
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-CSBqS_MK.js +0 -2
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-CSBqS_MK.js.map +0 -1
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-TcE7HSvq.js +0 -2
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-Z6G-rzr-.js +0 -2
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cally-Z6G-rzr-.js.map +0 -1
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DAUyPPWa.js +0 -2
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DAUyPPWa.js.map +0 -1
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-BQgJCSHn.js +0 -2
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-BQgJCSHn.js.map +0 -1
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BLyIVEh9.js +0 -3
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BLyIVEh9.js.map +0 -1
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-CogF8tNb.js +0 -2
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-B2mQNyzN.js +0 -2
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-cns3DNcf.js +0 -2
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-cns3DNcf.js.map +0 -1
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-CW8suC9A.js +0 -6
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-CW8suC9A.js.map +0 -1
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B1wGmQth.js +0 -2
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B1wGmQth.js.map +0 -1
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BBuJrkhp.js.map +0 -1
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMLdOzZs.js +0 -2
  173. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BMeqWpPy.js +0 -2
  174. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BOk2j8j3.js +0 -2
  175. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C-4OkQdv.js.map +0 -1
  176. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfkH92RS.js +0 -2
  177. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CuZffmX3.js +0 -2
  178. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DTRN8-Ks.js +0 -2
  179. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-De9SwKec.js +0 -2
  180. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-sKnD2JaT.js +0 -2
  181. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bu7BMlbI.js +0 -2
  182. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bu7BMlbI.js.map +0 -1
  183. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bxu-sgBm.js +0 -2
  184. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Bxu-sgBm.js.map +0 -1
  185. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-dkzHCN26.js.map +0 -1
  186. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-g1AVE90L.js +0 -2
  187. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-g1AVE90L.js.map +0 -1
  188. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-DQfpKM3w.js +0 -2
  189. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-mw9QhBgu.js +0 -3
  190. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-mw9QhBgu.js.map +0 -1
  191. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-TfvwVPGw.js +0 -2
  192. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BGfrCghL.js +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-adapter-native-data-key-DrqJDAVH.js","names":["_arrayLikeToArray","_unsupportedIterableToArray","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_navigator","bindAll","ownKeys","_objectSpread","_createForOfIteratorHelper","_unsupportedIterableToArray","_arrayLikeToArray"],"sources":["../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../../../../../../../node_modules/.pnpm/bind-event-listener@3.0.0/node_modules/bind-event-listener/dist/bind.js","../../../../../../../../../node_modules/.pnpm/bind-event-listener@3.0.0/node_modules/bind-event-listener/dist/bind-all.js","../../../../../../../../../node_modules/.pnpm/bind-event-listener@3.0.0/node_modules/bind-event-listener/dist/index.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../../../../../../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js","../../../../../../../../../node_modules/.pnpm/raf-schd@4.0.3/node_modules/raf-schd/dist/raf-schd.esm.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js","../../../../../../../../../node_modules/.pnpm/@atlaskit+pragmatic-drag-and-drop@2.0.2/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js"],"sourcesContent":["function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","// pulling this into a separate file so adapter(s) that don't\n// need the honey pot can pay as little as possible for it.\nexport var honeyPotDataAttribute = 'data-pdnd-honey-pot';","import { honeyPotDataAttribute } from './honey-pot-data-attribute';\nexport function isHoneyPotElement(target) {\n return target instanceof Element && target.hasAttribute(honeyPotDataAttribute);\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { isHoneyPotElement } from './is-honey-pot-element';\nexport function getElementFromPointWithoutHoneypot(client) {\n // eslint-disable-next-line no-restricted-syntax\n var _document$elementsFro = document.elementsFromPoint(client.x, client.y),\n _document$elementsFro2 = _slicedToArray(_document$elementsFro, 2),\n top = _document$elementsFro2[0],\n second = _document$elementsFro2[1];\n if (!top) {\n return null;\n }\n if (isHoneyPotElement(top)) {\n return second !== null && second !== void 0 ? second : null;\n }\n return top;\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/** Provide a function that you only ever want to be called a single time */\nexport function once(fn) {\n var cache = null;\n return function wrapped() {\n if (!cache) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var result = fn.apply(this, args);\n cache = {\n result: result\n };\n }\n return cache.result;\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import { once } from '../public-utils/once';\n\n// using `cache` as our `isFirefox()` result will not change in a browser\n\n/**\n * Returns `true` if a `Firefox` browser\n * */\nexport var isFirefox = once(function isFirefox() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return navigator.userAgent.includes('Firefox');\n});","import { once } from '../public-utils/once';\n\n// using `cache` as our `isSafari()` result will not change in a browser\n\n/**\n * Returns `true` if a `Safari` browser.\n * Returns `true` if the browser is running on iOS (they are all Safari).\n *\n * Use `isSafariOnIOS` if you want to check if something is Safari + iOS\n * */\nexport var isSafari = once(function isSafari() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n var _navigator = navigator,\n userAgent = _navigator.userAgent;\n return userAgent.includes('AppleWebKit') && !userAgent.includes('Chrome');\n});","import { bindAll } from 'bind-event-listener';\nimport { isSafari } from '../is-safari';\n\n/* For \"dragenter\" events, the browser should set `relatedTarget` to the previous element.\n * For external drag operations, our first \"dragenter\" event should have a `event.relatedTarget` of `null`.\n *\n * Unfortunately in Safari `event.relatedTarget` is *always* set to `null`\n * Safari bug: https://bugs.webkit.org/show_bug.cgi?id=242627\n * To work around this we count \"dragenter\" and \"dragleave\" events */\n\n// Using symbols for event properties so we don't clash with\n// anything on the `event` object\nvar symbols = {\n isLeavingWindow: Symbol('leaving'),\n isEnteringWindow: Symbol('entering')\n};\nexport function isEnteringWindowInSafari(_ref) {\n var dragEnter = _ref.dragEnter;\n if (!isSafari()) {\n return false;\n }\n return dragEnter.hasOwnProperty(symbols.isEnteringWindow);\n}\n\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport function isLeavingWindowInSafari(_ref2) {\n var dragLeave = _ref2.dragLeave;\n if (!isSafari()) {\n return false;\n }\n return dragLeave.hasOwnProperty(symbols.isLeavingWindow);\n}\n(function fixSafari() {\n // Don't do anything when server side rendering\n if (typeof window === 'undefined') {\n return;\n }\n\n // rather than checking the userAgent for \"jsdom\" we can do this check\n // so that the check will be removed completely in production code\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n if (!isSafari()) {\n return;\n }\n function getInitialState() {\n return {\n enterCount: 0,\n isOverWindow: false\n };\n }\n var state = getInitialState();\n function resetState() {\n state = getInitialState();\n }\n\n // These event listeners are bound _forever_ and _never_ removed\n // We don't bother cleaning up these event listeners (for now)\n // as this workaround is only for Safari\n\n // This is how the event count works:\n //\n // lift (+1 enterCount)\n // - dragstart(draggable) [enterCount: 0]\n // - dragenter(draggable) [enterCount: 1]\n // leaving draggable (+0 enterCount)\n // - dragenter(document.body) [enterCount: 2]\n // - dragleave(draggable) [enterCount: 1]\n // leaving window (-1 enterCount)\n // - dragleave(document.body) [enterCount: 0] {leaving the window}\n\n // Things to note:\n // - dragenter and dragleave bubble\n // - the first dragenter when entering a window might not be on `window`\n // - it could be on an element that is pressed up against the window\n // - (so we cannot rely on `event.target` values)\n\n bindAll(window, [{\n type: 'dragstart',\n listener: function listener() {\n state.enterCount = 0;\n // drag start occurs in the source window\n state.isOverWindow = true;\n // When a drag first starts it will also trigger a \"dragenter\" on the draggable element\n }\n }, {\n type: 'drop',\n listener: resetState\n }, {\n type: 'dragend',\n listener: resetState\n }, {\n type: 'dragenter',\n listener: function listener(event) {\n if (!state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object\n // The `event` object is shared with all event listeners for the event\n event[symbols.isEnteringWindow] = true;\n }\n state.isOverWindow = true;\n state.enterCount++;\n }\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n state.enterCount--;\n if (state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object as it is shared with all event listeners\n // The `event` object is shared with all event listeners for the event\n event[symbols.isLeavingWindow] = true;\n state.isOverWindow = false;\n }\n }\n }],\n // using `capture: true` so that adding event listeners\n // in bubble phase will have the correct symbols\n {\n capture: true\n });\n})();","/**\n * Does the `EventTarget` look like a `Node` based on \"duck typing\".\n *\n * Helpful when the `Node` might be outside of the current document\n * so we cannot to an `target instanceof Node` check.\n */\nfunction isNodeLike(target) {\n return 'nodeName' in target;\n}\n\n/**\n * Is an `EventTarget` a `Node` from another `window`?\n */\nexport function isFromAnotherWindow(eventTarget) {\n return isNodeLike(eventTarget) && eventTarget.ownerDocument !== document;\n}","import { isFirefox } from '../is-firefox';\nimport { isSafari } from '../is-safari';\nimport { isLeavingWindowInSafari } from './count-events-for-safari';\nimport { isFromAnotherWindow } from './is-from-another-window';\nexport function isLeavingWindow(_ref) {\n var dragLeave = _ref.dragLeave;\n var type = dragLeave.type,\n relatedTarget = dragLeave.relatedTarget;\n if (type !== 'dragleave') {\n return false;\n }\n if (isSafari()) {\n return isLeavingWindowInSafari({\n dragLeave: dragLeave\n });\n }\n\n // Standard check: if going to `null` we are leaving the `window`\n if (relatedTarget == null) {\n return true;\n }\n\n /**\n * 🦊 Exception: `iframe` in Firefox (`125.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is element _inside_ the child `iframe`\n * (foreign element)\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n * (foreign element)\n */\n\n if (isFirefox()) {\n return isFromAnotherWindow(relatedTarget);\n }\n\n /**\n * 🌏 Exception: `iframe` in Chrome (`124.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is `null` *(standard check)*\n */\n\n // Case 2\n // Using `instanceof` check as the element will be in the same `window`\n return relatedTarget instanceof HTMLIFrameElement;\n}","export function getBindingsForBrokenDrags(_ref) {\n var onDragEnd = _ref.onDragEnd;\n return [\n // ## Detecting drag ending for removed draggables\n //\n // If a draggable element is removed during a drag and the user drops:\n // 1. if over a valid drop target: we get a \"drop\" event to know the drag is finished\n // 2. if not over a valid drop target (or cancelled): we get nothing\n // The \"dragend\" event will not fire on the source draggable if it has been\n // removed from the DOM.\n // So we need to figure out if a drag operation has finished by looking at other events\n // We can do this by looking at other events\n\n // ### First detection: \"pointermove\" events\n\n // 1. \"pointermove\" events cannot fire during a drag and drop operation\n // according to the spec. So if we get a \"pointermove\" it means that\n // the drag and drop operations has finished. So if we get a \"pointermove\"\n // we know that the drag is over\n // 2. 🦊😤 Drag and drop operations are _supposed_ to suppress\n // other pointer events. However, firefox will allow a few\n // pointer event to get through after a drag starts.\n // The most I've seen is 3\n {\n type: 'pointermove',\n listener: function () {\n var callCount = 0;\n return function listener() {\n // Using 20 as it is far bigger than the most observed (3)\n if (callCount < 20) {\n callCount++;\n return;\n }\n onDragEnd();\n };\n }()\n },\n // ### Second detection: \"pointerdown\" events\n\n // If we receive this event then we know that a drag operation has finished\n // and potentially another one is about to start.\n // Note: `pointerdown` fires on all browsers / platforms before \"dragstart\"\n {\n type: 'pointerdown',\n listener: onDragEnd\n }];\n}","export function getInput(event) {\n return {\n altKey: event.altKey,\n button: event.button,\n buttons: event.buttons,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n clientX: event.clientX,\n clientY: event.clientY,\n pageX: event.pageX,\n pageY: event.pageY\n };\n}","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import rafSchd from 'raf-schd';\nvar scheduleOnDrag = rafSchd(function (fn) {\n return fn();\n});\nvar dragStart = function () {\n var scheduled = null;\n function schedule(fn) {\n var frameId = requestAnimationFrame(function () {\n scheduled = null;\n fn();\n });\n scheduled = {\n frameId: frameId,\n fn: fn\n };\n }\n function flush() {\n if (scheduled) {\n cancelAnimationFrame(scheduled.frameId);\n scheduled.fn();\n scheduled = null;\n }\n }\n return {\n schedule: schedule,\n flush: flush\n };\n}();\nexport function makeDispatch(_ref) {\n var source = _ref.source,\n initial = _ref.initial,\n dispatchEvent = _ref.dispatchEvent;\n var previous = {\n dropTargets: []\n };\n function safeDispatch(args) {\n dispatchEvent(args);\n previous = {\n dropTargets: args.payload.location.current.dropTargets\n };\n }\n var dispatch = {\n start: function start(_ref2) {\n var nativeSetDragImage = _ref2.nativeSetDragImage;\n // Ensuring that both `onGenerateDragPreview` and `onDragStart` get the same location.\n // We do this so that `previous` is`[]` in `onDragStart` (which is logical)\n var location = {\n current: initial,\n previous: previous,\n initial: initial\n };\n // a `onGenerateDragPreview` does _not_ add another entry for `previous`\n // onDragPreview\n safeDispatch({\n eventName: 'onGenerateDragPreview',\n payload: {\n source: source,\n location: location,\n nativeSetDragImage: nativeSetDragImage\n }\n });\n dragStart.schedule(function () {\n safeDispatch({\n eventName: 'onDragStart',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n dragUpdate: function dragUpdate(_ref3) {\n var current = _ref3.current;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDropTargetChange',\n payload: {\n source: source,\n location: {\n initial: initial,\n previous: previous,\n current: current\n }\n }\n });\n },\n drag: function drag(_ref4) {\n var current = _ref4.current;\n scheduleOnDrag(function () {\n dragStart.flush();\n var location = {\n initial: initial,\n previous: previous,\n current: current\n };\n safeDispatch({\n eventName: 'onDrag',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n drop: function drop(_ref5) {\n var current = _ref5.current,\n updatedSourcePayload = _ref5.updatedSourcePayload;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDrop',\n payload: {\n source: updatedSourcePayload !== null && updatedSourcePayload !== void 0 ? updatedSourcePayload : source,\n location: {\n current: current,\n previous: previous,\n initial: initial\n }\n }\n });\n }\n };\n return dispatch;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { bindAll } from 'bind-event-listener';\nimport { getElementFromPointWithoutHoneypot } from '../honey-pot-fix/get-element-from-point-without-honey-pot';\nimport { isHoneyPotElement } from '../honey-pot-fix/is-honey-pot-element';\nimport { isLeavingWindow } from '../util/changing-window/is-leaving-window';\nimport { getBindingsForBrokenDrags } from '../util/detect-broken-drag';\nimport { getInput } from '../util/get-input';\nimport { makeDispatch } from './dispatch-consumer-event';\nvar globalState = {\n isActive: false\n};\nfunction canStart() {\n return !globalState.isActive;\n}\nfunction getNativeSetDragImage(event) {\n if (event.dataTransfer) {\n // need to use `.bind` as `setDragImage` is required\n // to be run with `event.dataTransfer` as the \"this\" context\n return event.dataTransfer.setDragImage.bind(event.dataTransfer);\n }\n return null;\n}\nfunction hasHierarchyChanged(_ref) {\n var current = _ref.current,\n next = _ref.next;\n if (current.length !== next.length) {\n return true;\n }\n // not checking stickiness, data or dropEffect,\n // just whether the hierarchy has changed\n for (var i = 0; i < current.length; i++) {\n if (current[i].element !== next[i].element) {\n return true;\n }\n }\n return false;\n}\nfunction start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType,\n getDropTargetsOver = _ref2.getDropTargetsOver,\n dispatchEvent = _ref2.dispatchEvent;\n if (!canStart()) {\n return;\n }\n var initial = getStartLocation({\n event: event,\n dragType: dragType,\n getDropTargetsOver: getDropTargetsOver\n });\n globalState.isActive = true;\n var state = {\n current: initial\n };\n\n // Setting initial drop effect for the drag\n setDropEffectOnEvent({\n event: event,\n current: initial.dropTargets\n });\n var dispatch = makeDispatch({\n source: dragType.payload,\n dispatchEvent: dispatchEvent,\n initial: initial\n });\n function updateState(next) {\n // only looking at whether hierarchy has changed to determine whether something as 'changed'\n var hasChanged = hasHierarchyChanged({\n current: state.current.dropTargets,\n next: next.dropTargets\n });\n\n // Always updating the state to include latest data, dropEffect and stickiness\n // Only updating consumers if the hierarchy has changed in some way\n // Consumers can get the latest data by using `onDrag`\n state.current = next;\n if (hasChanged) {\n dispatch.dragUpdate({\n current: state.current\n });\n }\n }\n function onUpdateEvent(event) {\n var input = getInput(event);\n\n // If we are over the honey pot, we need to get the element\n // that the user would have been over if not for the honey pot\n var target = isHoneyPotElement(event.target) ? getElementFromPointWithoutHoneypot({\n x: input.clientX,\n y: input.clientY\n }) : event.target;\n var nextDropTargets = getDropTargetsOver({\n target: target,\n input: input,\n source: dragType.payload,\n current: state.current.dropTargets\n });\n if (nextDropTargets.length) {\n // 🩸 must call `event.preventDefault()` to allow a browser drop to occur\n event.preventDefault();\n setDropEffectOnEvent({\n event: event,\n current: nextDropTargets\n });\n }\n updateState({\n dropTargets: nextDropTargets,\n input: input\n });\n }\n function cancel() {\n // The spec behaviour is that when a drag is cancelled, or when dropping on no drop targets,\n // a \"dragleave\" event is fired on the active drop target before a \"dragend\" event.\n // We are replicating that behaviour in `cancel` if there are any active drop targets to\n // ensure consistent behaviour.\n //\n // Note: When cancelling, or dropping on no drop targets, a \"dragleave\" event\n // will have already cleared the dropTargets to `[]` (as that particular \"dragleave\" has a `relatedTarget` of `null`)\n\n if (state.current.dropTargets.length) {\n updateState({\n dropTargets: [],\n input: state.current.input\n });\n }\n dispatch.drop({\n current: state.current,\n updatedSourcePayload: null\n });\n finish();\n }\n function finish() {\n globalState.isActive = false;\n unbindEvents();\n }\n var unbindEvents = bindAll(window, [{\n // 👋 Note: we are repurposing the `dragover` event as our `drag` event\n // this is because firefox does not publish pointer coordinates during\n // a `drag` event, but does for every other type of drag event\n // `dragover` fires on all elements that are being dragged over\n // Because we are binding to `window` - our `dragover` is effectively the same as a `drag`\n // 🦊😤\n type: 'dragover',\n listener: function listener(event) {\n // We need to regularly calculate the drop targets in order to allow:\n // - dynamic `canDrop()` checks\n // - rapid updating `getData()` calls to attach data in response to user input (eg for edge detection)\n // Sadly we cannot schedule inspecting changes resulting from this event\n // we need to be able to conditionally cancel the event with `event.preventDefault()`\n // to enable the correct native drop experience.\n\n // 1. check to see if anything has changed\n onUpdateEvent(event);\n\n // 2. let consumers know a move has occurred\n // This will include the latest 'input' values\n dispatch.drag({\n current: state.current\n });\n }\n }, {\n type: 'dragenter',\n listener: onUpdateEvent\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n if (!isLeavingWindow({\n dragLeave: event\n })) {\n return;\n }\n\n /**\n * At this point we don't know if a drag is being cancelled,\n * or if a drag is leaving the `window`.\n *\n * Both have:\n * 1. \"dragleave\" (with `relatedTarget: null`)\n * 2. \"dragend\" (a \"dragend\" can occur when outside the `window`)\n *\n * **Clearing drop targets**\n *\n * For either case we are clearing the the drop targets\n *\n * - cancelling: we clear drop targets in `\"dragend\"` anyway\n * - leaving the `window`: we clear the drop targets (to clear stickiness)\n *\n * **Leaving the window and finishing the drag**\n *\n * _internal drags_\n *\n * - The drag continues when the user is outside the `window`\n * and can resume if the user drags back over the `window`,\n * or end when the user drops in an external `window`.\n * - We will get a `\"dragend\"`, or we can listen for other\n * events to determine the drag is finished when the user re-enters the `window`).\n *\n * _external drags_\n *\n * - We conclude the drag operation.\n * - We have no idea if the user will drag back over the `window`,\n * or if the drag ends elsewhere.\n * - We will create a new drag if the user re-enters the `window`.\n *\n * **Not updating `input`**\n *\n * 🐛 Bug[Chrome] the final `\"dragleave\"` has default input values (eg `clientX == 0`)\n * Workaround: intentionally not updating `input` in \"dragleave\"\n * rather than the users current input values\n * - [Conversation](https://twitter.com/alexandereardon/status/1642697633864241152)\n * - [Bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937)\n **/\n\n updateState({\n input: state.current.input,\n dropTargets: []\n });\n if (dragType.startedFrom === 'external') {\n cancel();\n }\n }\n }, {\n // A \"drop\" can only happen if the browser allowed the drop\n type: 'drop',\n listener: function listener(event) {\n // Capture the final input.\n // We are capturing the final `input` for the\n // most accurate honey pot experience\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n\n /** If there are no drop targets, then we will get\n * a \"drop\" event if:\n * - `preventUnhandled()` is being used\n * - there is an unmanaged drop target (eg another library)\n * In these cases, it's up to the consumer\n * to handle the drop if it's not over one of our drop targets\n * - `preventUnhandled()` will cancel the \"drop\"\n * - unmanaged drop targets can handle the \"drop\" how they want to\n * We won't call `event.preventDefault()` in this call path */\n\n if (!state.current.dropTargets.length) {\n cancel();\n return;\n }\n event.preventDefault();\n\n // applying the latest drop effect to the event\n setDropEffectOnEvent({\n event: event,\n current: state.current.dropTargets\n });\n dispatch.drop({\n current: state.current,\n // When dropping something native, we need to extract the latest\n // `.items` from the \"drop\" event as it is now accessible\n updatedSourcePayload: dragType.type === 'external' ? dragType.getDropPayload(event) : null\n });\n finish();\n }\n }, {\n // \"dragend\" fires when on the drag source (eg a draggable element)\n // when the drag is finished.\n // \"dragend\" will fire after \"drop\" (if there was a successful drop)\n // \"dragend\" does not fire if the draggable source has been removed during the drag\n // or for external drag sources (eg files)\n\n // This \"dragend\" listener will not fire if there was a successful drop\n // as we will have already removed the event listener\n\n type: 'dragend',\n listener: function listener(event) {\n // In firefox, the position of the \"dragend\" event can\n // be a bit different to the last \"dragover\" event.\n // Updating the input so we can get the best possible\n // information for the honey pot.\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n cancel();\n }\n }].concat(_toConsumableArray(getBindingsForBrokenDrags({\n onDragEnd: cancel\n }))),\n // Once we have started a managed drag operation it is important that we see / own all drag events\n // We got one adoption bug pop up where some code was stopping (`event.stopPropagation()`)\n // all \"drop\" events in the bubble phase on the `document.body`.\n // This meant that we never saw the \"drop\" event.\n {\n capture: true\n });\n dispatch.start({\n nativeSetDragImage: getNativeSetDragImage(event)\n });\n}\nfunction setDropEffectOnEvent(_ref3) {\n var _current$;\n var event = _ref3.event,\n current = _ref3.current;\n // setting the `dropEffect` to be the innerMost drop targets dropEffect\n var innerMost = (_current$ = current[0]) === null || _current$ === void 0 ? void 0 : _current$.dropEffect;\n if (innerMost != null && event.dataTransfer) {\n event.dataTransfer.dropEffect = innerMost;\n }\n}\nfunction getStartLocation(_ref4) {\n var event = _ref4.event,\n dragType = _ref4.dragType,\n getDropTargetsOver = _ref4.getDropTargetsOver;\n var input = getInput(event);\n\n // When dragging from outside of the browser,\n // the drag is not being sourced from any local drop targets\n if (dragType.startedFrom === 'external') {\n return {\n input: input,\n dropTargets: []\n };\n }\n var dropTargets = getDropTargetsOver({\n input: input,\n source: dragType.payload,\n target: event.target,\n current: []\n });\n return {\n input: input,\n dropTargets: dropTargets\n };\n}\nexport var lifecycle = {\n canStart: canStart,\n start: start\n};","// Extending `Map` to allow us to link Key and Values together\n\nvar ledger = new Map();\nfunction registerUsage(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount;\n var entry = ledger.get(typeKey);\n if (entry) {\n entry.usageCount++;\n return entry;\n }\n var initial = {\n typeKey: typeKey,\n unmount: mount(),\n usageCount: 1\n };\n ledger.set(typeKey, initial);\n return initial;\n}\nexport function register(args) {\n var entry = registerUsage(args);\n return function unregister() {\n entry.usageCount--;\n if (entry.usageCount > 0) {\n return;\n }\n // Only a single usage left, remove it\n entry.unmount();\n ledger.delete(args.typeKey);\n };\n}","/** Create a new combined function that will call all the provided functions */\nexport function combine() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function cleanup() {\n fns.forEach(function (fn) {\n return fn();\n });\n };\n}","export function addAttribute(element, _ref) {\n var attribute = _ref.attribute,\n value = _ref.value;\n element.setAttribute(attribute, value);\n return function () {\n return element.removeAttribute(attribute);\n };\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { combine } from '../public-utils/combine';\nimport { once } from '../public-utils/once';\nimport { addAttribute } from '../util/add-attribute';\nfunction copyReverse(array) {\n return array.slice(0).reverse();\n}\nexport function makeDropTarget(_ref) {\n var typeKey = _ref.typeKey,\n defaultDropEffect = _ref.defaultDropEffect;\n var registry = new WeakMap();\n var dropTargetDataAtt = \"data-drop-target-for-\".concat(typeKey);\n var dropTargetSelector = \"[\".concat(dropTargetDataAtt, \"]\");\n function addToRegistry(args) {\n registry.set(args.element, args);\n return function () {\n return registry.delete(args.element);\n };\n }\n function dropTargetForConsumers(args) {\n // Guardrail: warn if the draggable element is already registered\n if (process.env.NODE_ENV !== 'production') {\n var existing = registry.get(args.element);\n if (existing) {\n // eslint-disable-next-line no-console\n console.warn(\"You have already registered a [\".concat(typeKey, \"] dropTarget on the same element\"), {\n existing: existing,\n proposed: args\n });\n }\n if (args.element instanceof HTMLIFrameElement) {\n // eslint-disable-next-line no-console\n console.warn(\"\\n We recommend not registering <iframe> elements as drop targets\\n as it can result in some strange browser event ordering.\\n \" // Removing newlines and excessive whitespace\n .replace(/\\s{2,}/g, ' ').trim());\n }\n }\n var cleanup = combine(addAttribute(args.element, {\n attribute: dropTargetDataAtt,\n value: 'true'\n }), addToRegistry(args));\n\n // Wrapping in `once` to prevent unexpected side effects if consumers call\n // the clean up function multiple times.\n return once(cleanup);\n }\n function getActualDropTargets(_ref2) {\n var _args$getData, _args$getData2, _args$getDropEffect, _args$getDropEffect2;\n var source = _ref2.source,\n target = _ref2.target,\n input = _ref2.input,\n _ref2$result = _ref2.result,\n result = _ref2$result === void 0 ? [] : _ref2$result;\n if (target == null) {\n return result;\n }\n if (!(target instanceof Element)) {\n // For \"text-selection\" drags, the original `target`\n // is not an `Element`, so we need to start looking from\n // the parent element\n if (target instanceof Node) {\n return getActualDropTargets({\n source: source,\n target: target.parentElement,\n input: input,\n result: result\n });\n }\n\n // not sure what we are working with,\n // so we can exit.\n return result;\n }\n var closest = target.closest(dropTargetSelector);\n\n // Cannot find anything else\n if (closest == null) {\n return result;\n }\n var args = registry.get(closest);\n\n // error: something had a dropTargetSelector but we could not\n // find a match. For now, failing silently\n if (args == null) {\n return result;\n }\n var feedback = {\n input: input,\n source: source,\n element: args.element\n };\n\n // if dropping is not allowed, skip this drop target\n // and continue looking up the DOM tree\n if (args.canDrop && !args.canDrop(feedback)) {\n return getActualDropTargets({\n source: source,\n target: args.element.parentElement,\n input: input,\n result: result\n });\n }\n\n // calculate our new record\n var data = (_args$getData = (_args$getData2 = args.getData) === null || _args$getData2 === void 0 ? void 0 : _args$getData2.call(args, feedback)) !== null && _args$getData !== void 0 ? _args$getData : {};\n var dropEffect = (_args$getDropEffect = (_args$getDropEffect2 = args.getDropEffect) === null || _args$getDropEffect2 === void 0 ? void 0 : _args$getDropEffect2.call(args, feedback)) !== null && _args$getDropEffect !== void 0 ? _args$getDropEffect : defaultDropEffect;\n var record = {\n data: data,\n element: args.element,\n dropEffect: dropEffect,\n // we are collecting _actual_ drop targets, so these are\n // being applied _not_ due to stickiness\n isActiveDueToStickiness: false\n };\n return getActualDropTargets({\n source: source,\n target: args.element.parentElement,\n input: input,\n // Using bubble ordering. Same ordering as `event.getPath()`\n result: [].concat(_toConsumableArray(result), [record])\n });\n }\n function notifyCurrent(_ref3) {\n var eventName = _ref3.eventName,\n payload = _ref3.payload;\n var _iterator = _createForOfIteratorHelper(payload.location.current.dropTargets),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _entry$eventName;\n var record = _step.value;\n var entry = registry.get(record.element);\n var args = _objectSpread(_objectSpread({}, payload), {}, {\n self: record\n });\n entry === null || entry === void 0 || (_entry$eventName = entry[eventName]) === null || _entry$eventName === void 0 || _entry$eventName.call(entry,\n // I cannot seem to get the types right here.\n // TS doesn't seem to like that one event can need `nativeSetDragImage`\n // @ts-expect-error\n args);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n var actions = {\n onGenerateDragPreview: notifyCurrent,\n onDrag: notifyCurrent,\n onDragStart: notifyCurrent,\n onDrop: notifyCurrent,\n onDropTargetChange: function onDropTargetChange(_ref4) {\n var payload = _ref4.payload;\n var isCurrent = new Set(payload.location.current.dropTargets.map(function (record) {\n return record.element;\n }));\n var visited = new Set();\n var _iterator2 = _createForOfIteratorHelper(payload.location.previous.dropTargets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _entry$onDropTargetCh;\n var record = _step2.value;\n visited.add(record.element);\n var entry = registry.get(record.element);\n var isOver = isCurrent.has(record.element);\n var args = _objectSpread(_objectSpread({}, payload), {}, {\n self: record\n });\n entry === null || entry === void 0 || (_entry$onDropTargetCh = entry.onDropTargetChange) === null || _entry$onDropTargetCh === void 0 || _entry$onDropTargetCh.call(entry, args);\n\n // if we cannot find the drop target in the current array, then it has been left\n if (!isOver) {\n var _entry$onDragLeave;\n entry === null || entry === void 0 || (_entry$onDragLeave = entry.onDragLeave) === null || _entry$onDragLeave === void 0 || _entry$onDragLeave.call(entry, args);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n var _iterator3 = _createForOfIteratorHelper(payload.location.current.dropTargets),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _entry$onDropTargetCh2, _entry$onDragEnter;\n var _record = _step3.value;\n // already published an update to this drop target\n if (visited.has(_record.element)) {\n continue;\n }\n // at this point we have a new drop target that is being entered into\n var _args = _objectSpread(_objectSpread({}, payload), {}, {\n self: _record\n });\n var _entry = registry.get(_record.element);\n _entry === null || _entry === void 0 || (_entry$onDropTargetCh2 = _entry.onDropTargetChange) === null || _entry$onDropTargetCh2 === void 0 || _entry$onDropTargetCh2.call(_entry, _args);\n _entry === null || _entry === void 0 || (_entry$onDragEnter = _entry.onDragEnter) === null || _entry$onDragEnter === void 0 || _entry$onDragEnter.call(_entry, _args);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n };\n function dispatchEvent(args) {\n actions[args.eventName](args);\n }\n function getIsOver(_ref5) {\n var source = _ref5.source,\n target = _ref5.target,\n input = _ref5.input,\n current = _ref5.current;\n var actual = getActualDropTargets({\n source: source,\n target: target,\n input: input\n });\n\n // stickiness is only relevant when we have less\n // drop targets than we did before\n if (actual.length >= current.length) {\n return actual;\n }\n\n // less 'actual' drop targets than before,\n // we need to see if 'stickiness' applies\n\n // An old drop target will continue to be dropped on if:\n // 1. it has the same parent\n // 2. nothing exists in it's previous index\n\n var lastCaptureOrdered = copyReverse(current);\n var actualCaptureOrdered = copyReverse(actual);\n var resultCaptureOrdered = [];\n for (var index = 0; index < lastCaptureOrdered.length; index++) {\n var _argsForLast$getIsSti;\n var last = lastCaptureOrdered[index];\n var fresh = actualCaptureOrdered[index];\n\n // if a record is in the new index -> use that\n // it will have the latest data + dropEffect\n if (fresh != null) {\n resultCaptureOrdered.push(fresh);\n continue;\n }\n\n // At this point we have no drop target in the old spot\n // Check to see if we can use a previous sticky drop target\n\n // The \"parent\" is the one inside of `resultCaptureOrdered`\n // (the parent might be a drop target that was sticky)\n var parent = resultCaptureOrdered[index - 1];\n var lastParent = lastCaptureOrdered[index - 1];\n\n // Stickiness is based on parent relationships, so if the parent relationship has change\n // then we can stop our search\n if ((parent === null || parent === void 0 ? void 0 : parent.element) !== (lastParent === null || lastParent === void 0 ? void 0 : lastParent.element)) {\n break;\n }\n\n // We need to check whether the old drop target can still be dropped on\n\n var argsForLast = registry.get(last.element);\n\n // We cannot drop on a drop target that is no longer mounted\n if (!argsForLast) {\n break;\n }\n var feedback = {\n input: input,\n source: source,\n element: argsForLast.element\n };\n\n // We cannot drop on a drop target that no longer allows being dropped on\n if (argsForLast.canDrop && !argsForLast.canDrop(feedback)) {\n break;\n }\n\n // We cannot drop on a drop target that is no longer sticky\n if (!((_argsForLast$getIsSti = argsForLast.getIsSticky) !== null && _argsForLast$getIsSti !== void 0 && _argsForLast$getIsSti.call(argsForLast, feedback))) {\n break;\n }\n\n // Note: intentionally not recollecting `getData()` or `getDropEffect()`\n // Previous values for `data` and `dropEffect` will be borrowed\n // This is to prevent things like the 'closest edge' changing when\n // no longer over a drop target.\n // We could change our mind on this behaviour in the future\n\n resultCaptureOrdered.push(_objectSpread(_objectSpread({}, last), {}, {\n // making it clear to consumers this drop target is active due to stickiness\n isActiveDueToStickiness: true\n }));\n }\n\n // return bubble ordered result\n return copyReverse(resultCaptureOrdered);\n }\n return {\n dropTargetForConsumers: dropTargetForConsumers,\n getIsOver: getIsOver,\n dispatchEvent: dispatchEvent\n };\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { once } from '../public-utils/once';\nexport function makeMonitor() {\n var registry = new Set();\n var dragging = null;\n function tryAddToActive(monitor) {\n if (!dragging) {\n return;\n }\n // Monitor is allowed to monitor events if:\n // 1. It has no `canMonitor` function (default is that a monitor can listen to everything)\n // 2. `canMonitor` returns true\n if (!monitor.canMonitor || monitor.canMonitor(dragging.canMonitorArgs)) {\n dragging.active.add(monitor);\n }\n }\n function monitorForConsumers(args) {\n // We are giving each `args` a new reference so that you\n // can create multiple monitors with the same `args`.\n var entry = _objectSpread({}, args);\n registry.add(entry);\n\n // if there is an active drag we need to see if this new monitor is relevant\n tryAddToActive(entry);\n function cleanup() {\n registry.delete(entry);\n\n // We need to stop publishing events during a drag to this monitor!\n if (dragging) {\n dragging.active.delete(entry);\n }\n }\n\n // Wrapping in `once` to prevent unexpected side effects if consumers call\n // the clean up function multiple times.\n return once(cleanup);\n }\n function dispatchEvent(_ref) {\n var eventName = _ref.eventName,\n payload = _ref.payload;\n if (eventName === 'onGenerateDragPreview') {\n dragging = {\n canMonitorArgs: {\n initial: payload.location.initial,\n source: payload.source\n },\n active: new Set()\n };\n var _iterator = _createForOfIteratorHelper(registry),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var monitor = _step.value;\n tryAddToActive(monitor);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n // This should never happen.\n if (!dragging) {\n return;\n }\n\n // Creating an array from the set _before_ iterating\n // This is so that monitors added during the current event will not be called.\n // This behaviour matches native EventTargets where an event listener\n // cannot add another event listener during an active event to the same\n // event target in the same event (for us we have a single global event target)\n var active = Array.from(dragging.active);\n for (var _i = 0, _active = active; _i < _active.length; _i++) {\n var _monitor = _active[_i];\n // A monitor can be removed by another monitor during an event.\n // We need to check that the monitor is still registered before calling it\n if (dragging.active.has(_monitor)) {\n var _monitor$eventName;\n // @ts-expect-error: I cannot get this type working!\n (_monitor$eventName = _monitor[eventName]) === null || _monitor$eventName === void 0 || _monitor$eventName.call(_monitor, payload);\n }\n }\n if (eventName === 'onDrop') {\n dragging.active.clear();\n dragging = null;\n }\n }\n return {\n dispatchEvent: dispatchEvent,\n monitorForConsumers: monitorForConsumers\n };\n}","import { lifecycle } from '../ledger/lifecycle-manager';\nimport { register } from '../ledger/usage-ledger';\nimport { makeDropTarget } from './make-drop-target';\nimport { makeMonitor } from './make-monitor';\nexport function makeAdapter(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount,\n dispatchEventToSource = _ref.dispatchEventToSource,\n onPostDispatch = _ref.onPostDispatch,\n defaultDropEffect = _ref.defaultDropEffect;\n var monitorAPI = makeMonitor();\n var dropTargetAPI = makeDropTarget({\n typeKey: typeKey,\n defaultDropEffect: defaultDropEffect\n });\n function dispatchEvent(args) {\n // 1. forward the event to source\n dispatchEventToSource === null || dispatchEventToSource === void 0 || dispatchEventToSource(args);\n\n // 2. forward the event to relevant dropTargets\n dropTargetAPI.dispatchEvent(args);\n\n // 3. forward event to monitors\n monitorAPI.dispatchEvent(args);\n\n // 4. post consumer dispatch (used for honey pot fix)\n onPostDispatch === null || onPostDispatch === void 0 || onPostDispatch(args);\n }\n function start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType;\n lifecycle.start({\n event: event,\n dragType: dragType,\n getDropTargetsOver: dropTargetAPI.getIsOver,\n dispatchEvent: dispatchEvent\n });\n }\n function registerUsage() {\n function mountAdapter() {\n var api = {\n canStart: lifecycle.canStart,\n start: start\n };\n return mount(api);\n }\n return register({\n typeKey: typeKey,\n mount: mountAdapter\n });\n }\n return {\n registerUsage: registerUsage,\n dropTarget: dropTargetAPI.dropTargetForConsumers,\n monitor: monitorAPI.monitorForConsumers\n };\n}","import { once } from '../public-utils/once';\n\n// Using `once` as the value won't change in a browser\n\nexport var isAndroid = once(function isAndroid() {\n return navigator.userAgent.toLocaleLowerCase().includes('android');\n});\n\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport var androidFallbackText = 'pdnd:android-fallback';","// Why we put the media types in their own files:\n//\n// - we are not putting them all in one file as not all adapters need all types\n// - we are not putting them in the external helpers as some things just need the\n// types and not the external functions code\nexport var textMediaType = 'text/plain';","/**\n * This key has been pulled into a separate module\n * so that the external adapter does not need to import\n * the element adapter\n */\nexport var elementAdapterNativeDataKey = 'application/vnd.pdnd';"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{i as e,r as t,s as n,t as r}from"./dom-DiTFTWeR.js";import{f as i,s as a}from"./motion-CbwLBhMt.js";import{t as o}from"./capability-motion-C3q5Xzv2.js";import{n as s}from"./morph-Cq3V_23_.js";import{a as c,f as l,l as u,n as d}from"./codecs-CQ7olTJL.js";import{i as f,t as ee}from"./alpine-machine-CE2UN4Qu.js";import{t as te}from"./cleanup-manager-D9QiZF_Q.js";import{n as p,t as ne}from"./alpine-data-Dvc_bXq6.js";import{n as m,t as h}from"./styles-CX2j92ex.js";import{t as re}from"./merge-bindings-BtqW3UgP.js";import{t as g}from"./machine-CNnHDbyo.js";import{i as ie}from"./focus-scope-DtaPVNl5.js";import{t as ae}from"./semantic-observer-CIoriWtV.js";import{n as oe,t as _}from"./capability-resizable-ByUbMIHF.js";var se=(e,t)=>{let n=getComputedStyle(e).getPropertyValue(`--breakpoint-${t}`),r=Number.parseFloat(n);return Number.isFinite(r)?r:1/0},v=[`horizontal`,`vertical`],y=[`div`,`section`,`aside`,`main`,`nav`],b=[`1`,`2`,`3`,`4`,`5`,`6`,`fill`],x=[`none`,`start`,`end`],ce=[`toggle`,`expand`,`collapse`],le={id:l.default(`ui-panels`),orientation:u(v,`horizontal`),persist:d,divider:d.default(!0),class:l},ue={id:l,as:u(y,`section`),size:u(b,`fill`),resize:u(x,`none`),collapsible:d,defaultCollapsed:d,class:l},S={target:l,action:u(ce,`toggle`),icon:l.default(`menu`),label:l.default(`Expand`),class:l},de=[f({name:`opening`,state:`changing`,projectEach:e=>e.context.change.openingIds.map(e=>({panelId:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{expand:e=>({type:`EXPAND`,panelId:e}),collapse:e=>({type:`COLLAPSE`,panelId:e}),toggle:e=>({type:`TOGGLE`,panelId:e})}}),f({name:`closing`,state:`changing`,projectEach:e=>e.context.change.closingIds.map(e=>({panelId:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{expand:e=>({type:`EXPAND`,panelId:e}),collapse:e=>({type:`COLLAPSE`,panelId:e}),toggle:e=>({type:`TOGGLE`,panelId:e})}}),f({name:`sizing`,state:`sizing`,projectEach:e=>e.context.sizing.changes,onDone:`SIZE_DONE`,onError:`SIZE_ERROR`}),f({name:`persisting`,state:`persisting`,project:e=>({groupId:e.props.id,collapsed:[...e.context.layout.collapsedIds],sizes:{...e.context.layout.committedSizes}}),onDone:`PERSIST_DONE`,onError:`PERSIST_ERROR`})],C=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],w=e=>typeof e.panelId==`string`?e.panelId:``,T=e=>typeof e==`number`&&Number.isFinite(e)?e:null,E=e=>(Array.isArray(e.changes)?e.changes:[e]).flatMap(e=>{if(typeof e!=`object`||!e)return[];let t=e,n=typeof t.panelId==`string`?t.panelId:``,r=T(t.from),i=T(t.to),a=t.reset===!0;return n&&r!==null&&i!==null&&(r!==i||a)?[{panelId:n,from:r,to:i,...a?{reset:!0}:{}}]:[]}),D=(e,t)=>typeof e.props==`object`&&e.props!==null?e.props:t,O=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),k=e=>{if(!Array.isArray(e))return[];let t=[];return e.forEach(e=>{if(typeof e!=`object`||!e)return;let n=e;if(typeof n.id!=`string`||!n.id)return;let r=n.collapsible===!0?{collapsible:!0,defaultCollapsed:n.defaultCollapsed===!0}:{collapsible:!1,defaultCollapsed:!1};n.kind===`fill`&&t.push({id:n.id,kind:`fill`,...r}),n.kind===`bounded`&&t.push({id:n.id,kind:`bounded`,resizable:n.resizable===!0,...r})}),t},A=e=>new Map(e.map(e=>[e.id,e])),j=(e,t)=>Object.fromEntries(e.flatMap(e=>e.kind===`bounded`&&Object.hasOwn(t,e.id)?[[e.id,t[e.id]]]:[])),M=e=>{let t=w(e.event),n=e.context.layout.collapsedIds,r=e.context.collection,i=A(r).get(t);switch(e.event.type){case`COLLAPSE`:return i?.collapsible&&!n.includes(t)?r.map(e=>e.id).filter(e=>n.includes(e)||e===t):n;case`EXPAND`:return n.filter(e=>e!==t);case`TOGGLE`:return i?.collapsible?n.includes(t)?n.filter(e=>e!==t):r.map(e=>e.id).filter(e=>n.includes(e)||e===t):n;default:return n}},N=e=>{let t=w(e.event);return A(e.context.collection).has(t)&&!O(e.context.layout.collapsedIds,M(e))},P=e=>{let t=w(e.event),n=A(e.context.collection).get(t);return n?.kind===`bounded`&&n.resizable&&!e.context.layout.collapsedIds.includes(t)&&T(e.event.size)!==null},F=e=>{let t=E(e.event),n=A(e.context.collection);return t.length>0&&t.every(({panelId:t})=>n.get(t)?.kind===`bounded`&&!e.context.layout.collapsedIds.includes(t))},I=e=>{let t=E(e.event),n=A(e.context.collection);return t.length>0&&t.every(({panelId:t})=>n.get(t)?.kind===`bounded`&&e.context.layout.collapsedIds.includes(t))},L=e=>{let t=C(e.event.ids),n=A(e.context.collection);return t.length>0&&t.every(t=>n.get(t)?.kind===`bounded`&&e.context.layout.collapsedIds.includes(t)&&Object.hasOwn(e.context.layout.committedSizes,t))},R=e=>{let t=E(e.event),n={...e.context.layout.committedSizes};return t.forEach(({panelId:e,to:t,reset:r})=>{r?delete n[e]:n[e]=t}),{context:{...e.context,layout:{...e.context.layout,committedSizes:j(e.context.collection,n)},sizing:{changes:t}}}},z=e=>{let t=E(e.event),n={...e.context.layout.committedSizes,...Object.fromEntries(t.map(({panelId:e,to:t})=>[e,t]))};return{context:{...e.context,layout:{...e.context.layout,committedSizes:j(e.context.collection,n)}}}},fe=e=>{let t={...e.context.layout.committedSizes};return C(e.event.ids).forEach(e=>delete t[e]),{context:{...e.context,layout:{...e.context.layout,committedSizes:j(e.context.collection,t)}}}},B=e=>{let t=M(e),n=e.context.layout.collapsedIds;return{context:{...e.context,layout:{...e.context.layout,collapsedIds:t},change:{openingIds:n.filter(e=>!t.includes(e)),closingIds:t.filter(e=>!n.includes(e))}}}},V=e=>{let t=k(e.event.collection),n=A(e.context.collection),r=t.filter(t=>(e.context.layout.collapsedIds.includes(t.id)||!n.has(t.id)&&t.defaultCollapsed)&&t.collapsible).map(e=>e.id),i=j(t,e.context.layout.committedSizes),a=A(t).get(e.context.resize.activeId),o=a?.kind===`bounded`&&a.resizable;return{context:{...e.context,collection:t,layout:{collapsedIds:r,committedSizes:i},resize:o?e.context.resize:{activeId:``,initialSize:null,previewSize:null}}}},H=e=>{let t=A(k(e.event.collection)).get(e.context.resize.activeId);return t?.kind!==`bounded`||!t.resizable},pe=({props:e,context:t,effects:n})=>g({initial:`stable`,on:{DOM_INVALIDATED:{effects:`sync`}},states:{stable:{tags:[`stable`],on:{COLLAPSE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},EXPAND:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},SIZE:{target:`sizing`,guard:F,reduce:R,effects:`prepareSizing`},RESTORE_HIDDEN_SIZES:{guard:I,reduce:z},RESET_HIDDEN_SIZES:{target:`persisting`,guard:L,reduce:fe,effects:[`sync`,`persist`]},RESIZE_START:{target:`resizing`,guard:P,reduce:`startResize`,effects:`beginResize`},PANELS_CHANGED:{reduce:V,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},changing:{tags:[`changing`,`transitioning`],on:{CHANGE_DONE:{target:`persisting`,effects:[`finishChange`,`persist`]},CHANGE_ERROR:{target:`persisting`,effects:[`finishChange`,`persist`]},COLLAPSE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},EXPAND:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},PANELS_CHANGED:{reduce:V,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},sizing:{tags:[`sizing`,`transitioning`],on:{SIZE_DONE:{target:`persisting`,effects:[`finishSizing`,`persist`]},SIZE_ERROR:{target:`persisting`,effects:[`finishSizing`,`persist`]},SIZE:{target:`sizing`,guard:F,reduce:R,effects:`prepareSizing`},RESIZE_START:{target:`resizing`,guard:P,reduce:`startResize`,effects:`beginResize`},PANELS_CHANGED:{reduce:V,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},resizing:{tags:[`resizing`],on:{RESIZE:{guard:`activeResize`,reduce:`previewResize`,effects:`previewResize`},RESIZE_END:{target:`persisting`,guard:`activeResize`,reduce:`commitResize`,effects:[`commitResize`,`persist`]},RESIZE_CANCEL:{target:`stable`,reduce:`clearResize`,effects:`cancelResize`},PANELS_CHANGED:[{target:`stable`,guard:H,reduce:V,effects:[`cancelResize`,`sync`]},{reduce:V,effects:`sync`}],PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}},persisting:{tags:[`persisting`],on:{PERSIST_DONE:`stable`,PERSIST_ERROR:`stable`,COLLAPSE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},EXPAND:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:N,reduce:B,effects:`prepareChange`},SIZE:{target:`sizing`,guard:F,reduce:R,effects:`prepareSizing`},PANELS_CHANGED:{reduce:V,effects:`sync`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`}}}}},{props:e,context:t,reducers:{replaceProps:e=>({props:D(e.event,e.props)}),startResize:e=>{let t=T(e.event.size);return{context:{...e.context,resize:{activeId:w(e.event),initialSize:t,previewSize:t}}}},previewResize:e=>({context:{...e.context,resize:{...e.context.resize,previewSize:T(e.event.size)}}}),commitResize:e=>{let t=w(e.event),n=T(e.event.size);if(n!==null)return{context:{...e.context,layout:{...e.context.layout,committedSizes:j(e.context.collection,{...e.context.layout.committedSizes,[t]:n})},resize:{activeId:``,initialSize:null,previewSize:null}}}},clearResize:e=>({context:{...e.context,resize:{activeId:``,initialSize:null,previewSize:null}}})},guards:{activeResize:e=>w(e.event)===e.context.resize.activeId&&T(e.event.size)!==null},effects:{prepareChange:n.prepareChange,finishChange:n.finishChange,sync:n.sync,beginResize:n.beginResize,previewResize:n.previewResize,commitResize:n.commitResize,cancelResize:n.cancelResize,prepareSizing:n.prepareSizing,finishSizing:n.finishSizing,persist:n.persist}}),U=h({definition:{component:`ui.panels`,parts:{root:{base:`relative flex h-full min-h-0 w-full min-w-0`,variants:{orientation:{horizontal:`flex-row`,vertical:`flex-col`}},defaults:{orientation:`horizontal`}},panel:{base:`relative min-w-0 overflow-hidden`,variants:{orientation:{horizontal:`h-full`,vertical:`w-full`},divider:{true:``,false:``},resize:{none:``,start:``,end:``}},defaults:{orientation:`horizontal`,divider:!0,resize:`none`}},expanded:{base:`h-full min-h-0 w-full min-w-0`},collapsed:{base:`flex h-full min-h-0 w-full min-w-0 items-center justify-center overflow-hidden`},resizeHandle:{base:[`absolute z-20 touch-none border-transparent outline-none`,`hover:border-intent-neutral-edge-hover focus-visible:ui-focus-ring-inset`,`data-resizing:border-intent-neutral-edge-strong`],variants:{orientation:{horizontal:`inset-y-0 w-panel-resize-handle cursor-col-resize`,vertical:`inset-x-0 h-panel-resize-handle cursor-row-resize`},edge:{start:``,end:``}},defaults:{orientation:`horizontal`,edge:`end`}},toggle:{base:`inline-flex size-control-md items-center justify-center outline-none focus-visible:ui-focus-ring-inset`},toggleIcon:{base:`size-icon-md shrink-0`}}}}),W=new Set,G=e=>e instanceof CustomEvent&&e.detail&&typeof e.detail==`object`?e.detail:{},me=(()=>{let e=!1;return()=>{if(e||typeof document>`u`)return;let t=e=>t=>{let n=G(t);!n.__panelsNotification&&n.panelId&&W.forEach(t=>{n.groupId&&n.groupId!==t.id||t.hasPanel(n.panelId)&&t.perform(n.action??e,n.panelId,n.trigger)})};document.addEventListener(`ui:panel-collapse`,t(`collapse`)),document.addEventListener(`ui:panel-expand`,t(`expand`)),document.addEventListener(`ui:panel-toggle`,t(`toggle`)),document.addEventListener(`ui:panel-size`,e=>{let t=G(e);!t.__panelsNotification&&t.panelId&&Number.isFinite(t.size)&&W.forEach(e=>{t.groupId&&t.groupId!==e.id||e.hasPanel(t.panelId)&&e.resize(t.panelId,t.size)})}),document.addEventListener(`ui:panels-reset`,e=>{let t=G(e);t.__panelsNotification||W.forEach(e=>{t.groupId&&t.groupId!==e.id||(!t.panelId||e.hasPanel(t.panelId))&&e.reset(t.panelId)})}),e=!0}})(),he=e=>`trellis-ui:panels:${e}:v1`,ge=e=>typeof e!=`object`||!e||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`number`&&Number.isFinite(e[1]))),K=()=>{let o=null,l=null,u=null,d=`wide`,f,p=null,h=new Set,g=new Set,_=new Map,v=new Map,y=new Map,b=new Map,x=()=>{if(!o)throw Error(`Panels has not been initialized.`);return o},ce=e=>e.closest(`[data-ui-panels]`)===x(),S=()=>Array.from(x().children).flatMap(e=>{if(!(e instanceof HTMLElement)||!e.hasAttribute(`data-ui-panel`))return[];let t=e.querySelector(`:scope > [data-ui-panel-expanded]`);return!t||!ce(t)?[]:[{panel:e,expanded:t,collapsed:e.querySelector(`:scope > [data-ui-panel-collapsed]`),handle:e.querySelector(`:scope > [data-ui-panel-resize-handle]`),props:c({el:e,schema:ue})}]}),C=e=>S().find(t=>t.props.id===e)??null,w=()=>Q.getCommittedSnapshot().context,T=()=>Q.getCommittedSnapshot().props,E=e=>w().layout.collapsedIds.includes(e),D=()=>T().orientation===`horizontal`&&d===`stacked`,O=()=>D()?`vertical`:T().orientation,k=()=>x().dataset.orientation===`vertical`?`vertical`:`horizontal`,A=e=>{let t=e.getBoundingClientRect();return k()===`horizontal`?t.width:t.height},j=()=>{let e=S(),t=e.map(({props:e})=>e.id);if(t.some(e=>!e))throw Error(`Every Panel requires a stable id.`);if(new Set(t).size!==t.length)throw Error(`Panel ids must be unique within a Panels group.`);if(e.length>0&&!e.some(({props:e})=>e.size===`fill`))throw Error(`A Panels group requires at least one size="fill" Panel.`);if(e.some(({props:e})=>e.size===`fill`&&e.resize!==`none`))throw Error(`A size="fill" Panel cannot own a resize handle.`);return e.map(({props:e})=>{let t=e.collapsible?{collapsible:!0,defaultCollapsed:e.defaultCollapsed}:{collapsible:!1,defaultCollapsed:!1};return e.size===`fill`?{id:e.id,kind:`fill`,...t}:{id:e.id,kind:`bounded`,resizable:e.resize!==`none`,...t}})},M=e=>{let t=document.createElement(`div`);t.style.cssText=`position:absolute;visibility:hidden;pointer-events:none;inset:0 auto auto 0;`,k()===`horizontal`?t.style.width=`var(${e})`:t.style.height=`var(${e})`,x().append(t);let n=A(t);return t.remove(),n},N=e=>e.props.size===`fill`?{minimum:0,maximum:1/0}:{minimum:M(`--spacing-panel-${e.props.size}-min`),maximum:M(`--spacing-panel-${e.props.size}-max`)},P=(e,t)=>{let{minimum:n,maximum:r}=N(e);return Math.min(r,Math.max(n,t))},F=()=>{let e=j();return{collection:e,layout:{collapsedIds:e.filter(e=>e.defaultCollapsed).map(({id:e})=>e),committedSizes:{}},change:{openingIds:[],closingIds:[]},resize:{activeId:``,initialSize:null,previewSize:null},sizing:{changes:[]}}},I=(e,t,n)=>{k()===`horizontal`?(e.style.minWidth=t,e.style.maxWidth=n,e.style.minHeight=``,e.style.maxHeight=``):(e.style.minHeight=t,e.style.maxHeight=n,e.style.minWidth=``,e.style.maxWidth=``)},L=e=>{e.style.flex=``,e.style.minWidth=``,e.style.maxWidth=``,e.style.minHeight=``,e.style.maxHeight=``},R=(e,t)=>{if(D()){L(e.panel);return}if(t!==void 0){e.panel.style.flex=`0 0 ${t}px`,I(e.panel,`0px`,`none`);return}if(E(e.props.id)){if(w().collection.find(({id:t})=>t===e.props.id)?.defaultCollapsed){L(e.panel);return}let t=e.collapsed?`var(--spacing-panel-collapsed)`:`0px`;e.panel.style.flex=`0 0 ${t}`,I(e.panel,t,t);return}if(e.props.size===`fill`){L(e.panel);return}let n=w().resize.activeId===e.props.id?w().resize.previewSize:w().layout.committedSizes[e.props.id];if(n==null){L(e.panel);return}let r=`${P(e,n)}px`;e.panel.style.flex=`0 1 ${r}`,I(e.panel,`var(--spacing-panel-${e.props.size}-min)`,`var(--spacing-panel-${e.props.size}-max)`)},z=(e,t)=>{e.toggleAttribute(`inert`,t),e.setAttribute(`aria-hidden`,t?`true`:`false`)},fe=e=>{let t=T(),r=O(),i=E(e.props.id),a=Q.hasTag(`changing`)&&w().change.openingIds.includes(e.props.id),o=Q.hasTag(`changing`)&&w().change.closingIds.includes(e.props.id),s=!(i&&!o),c=i&&!o&&!a&&e.collapsed!==null;if(e.panel.dataset.state=i?`collapsed`:`expanded`,e.panel.dataset.orientation=r,e.panel.dataset.size=e.props.size,e.panel.dataset.resize=e.props.resize,e.panel.className=m({part:U.parts.panel,props:{orientation:r,divider:t.divider,resize:e.props.resize},className:e.props.class}),n({el:e.panel,attr:`data-collapsible`,present:e.props.collapsible}),n({el:e.panel,attr:`data-resizing`,present:w().resize.activeId===e.props.id}),R(e),e.expanded.hidden=!s,z(e.expanded,!s),e.collapsed&&(e.collapsed.hidden=!c,z(e.collapsed,!c)),e.handle){let t=D()||i||e.props.size===`fill`||e.props.resize===`none`;e.handle.dataset.orientation=r,e.handle.dataset.resizeEdge=e.props.resize,e.handle.setAttribute(`aria-label`,`Resize ${e.props.id} panel`),e.handle.toggleAttribute(`data-resize-disabled`,t),e.handle.hidden=D(),e.handle.className=m({part:U.parts.resizeHandle,props:{orientation:r,edge:e.props.resize},className:e.handle.dataset.class??``})}},B=e=>{e.forEach((t,r)=>{let i=e[r+1],a=t.props.resize===`end`||i?.props.resize===`start`;s(t.panel,`data-divider`),n({el:t.panel,attr:`data-divider`,present:T().divider&&i!==void 0&&!a})})},V=e=>{let t=e.dataset.target||``;if(!t){let t=e.closest(`[data-ui-panel]`),n=t?.closest(`[data-ui-panels]`),r=[...W].find(e=>e.id===n?.id),i=t&&r===$?C(t.id):null;return i&&r?{record:i,controller:r}:null}let n=e.dataset.groupId||e.closest(`[data-ui-panels]`)?.id,r=[...W].filter(e=>!n||e.id===n).find(e=>e.hasPanel(t)),i=r===$?C(t):null;return i&&r?{record:i,controller:r}:null},H=()=>{document.querySelectorAll(`[data-ui-panel-toggle]`).forEach(e=>{let t=V(e);if(!t||t.controller!==$)return;let n=E(t.record.props.id);e.dataset.target=t.record.props.id,e.dataset.groupId=T().id,e.dataset.state=n?`collapsed`:`expanded`,e.setAttribute(`aria-controls`,t.record.panel.id),e.setAttribute(`aria-expanded`,n?`false`:`true`),e.toggleAttribute(`disabled`,!t.record.props.collapsible)})},G=()=>{let e=T(),t=O();x().dataset.responsiveMode=d,x().dataset.layoutOrientation=t,x().style.flexDirection=t===`horizontal`?`row`:`column`,x().className=m({part:U.parts.root,props:{...e,orientation:t},className:e.class}),n({el:x(),attr:`data-resizing`,present:Q.hasTag(`resizing`)}),n({el:x(),attr:`data-transitioning`,present:Q.hasTag(`transitioning`)});let r=S();r.forEach(fe),B(r),H()},K=(e,t=!1)=>{let n=document.activeElement;if(!t&&(!(n instanceof HTMLElement)||!e.collapsed?.contains(n)))return;let r=y.get(e.props.id);r?.isConnected&&e.expanded.contains(r)?r.focus({preventScroll:!0}):(e.expanded.tabIndex=-1,e.expanded.focus({preventScroll:!0}))},q=(e,t=!1)=>{let n=document.activeElement;if(!t&&(!(n instanceof HTMLElement)||!e.expanded.contains(n)))return;let r=e.collapsed?ie(e.collapsed)[0]:void 0,i=b.get(e.props.id),a=i?.isConnected&&!e.panel.contains(i)?i:void 0;r?r.focus({preventScroll:!0}):a?a.focus({preventScroll:!0}):(x().tabIndex=-1,x().focus({preventScroll:!0}))},_e=()=>{let e=[...w().change.openingIds,...w().change.closingIds],t=new Set(w().change.openingIds.filter(e=>{let t=C(e),n=document.activeElement;return t!==null&&t.collapsed!==null&&n instanceof HTMLElement&&t.collapsed.contains(n)})),n=new Map(e.flatMap(e=>{let t=C(e);if(!t)return[];if(w().change.closingIds.includes(e)){let n=document.activeElement;n instanceof HTMLElement&&t.expanded.contains(n)&&y.set(e,n)}return[[e,A(t.panel)]]}));G(),w().change.openingIds.forEach(e=>{let n=C(e);n&&K(n,t.has(e))}),e.forEach(e=>{let t=C(e),r=n.get(e);if(!t||r===void 0)return;let i=A(t.panel);v.set(e,{from:r,to:i}),R(t,r)})},J=()=>{let e=[...w().change.openingIds],t=[...w().change.closingIds],n=new Set(t.filter(e=>{let t=C(e),n=document.activeElement;return t!==null&&n instanceof HTMLElement&&t.expanded.contains(n)}));S().forEach(e=>R(e)),G(),t.forEach(e=>{let t=C(e);t&&q(t,n.has(e))}),e.forEach(e=>Y(`ui:panel-expand`,e)),t.forEach(e=>Y(`ui:panel-collapse`,e)),[...e,...t].forEach(e=>v.delete(e))},Y=(e,n,r={})=>{t({el:x(),name:e,detail:{groupId:T().id,panelId:n,__panelsNotification:!0,...r}})},ve=()=>{let e=w().layout;if(T().persist)try{localStorage.setItem(he(T().id),JSON.stringify({collapsed:e.collapsedIds,sizes:e.committedSizes}))}catch{}t({el:x(),name:`ui:panels-layout-change`,detail:{groupId:T().id,collapsed:[...e.collapsedIds],sizes:{...e.committedSizes},__panelsNotification:!0}})},X=e=>{if(!o)return;if(Q.hasTag(`stable`)){e();return}let t=window.setTimeout(()=>{h.delete(t),X(e)},16);h.add(t)},Z=(e,t)=>{let n=e.find(e=>t(e)!==E(e));n&&(Q.send({type:t(n)?`COLLAPSE`:`EXPAND`,panelId:n}),X(()=>Z(e,t)))},ye=()=>{if(!T().persist)return;let e;try{e=JSON.parse(localStorage.getItem(he(T().id))??`null`)}catch{return}if(typeof e!=`object`||!e)return;let t=j(),n=t.filter(e=>e.collapsible),r=new Set((Array.isArray(e.collapsed)?e.collapsed:[]).filter(e=>typeof e==`string`&&n.some(t=>t.id===e))),i=ge(e.sizes),a=()=>{Z(n.map(({id:e})=>e),e=>r.has(e))},o=()=>{let e=t.filter(e=>e.kind===`bounded`).flatMap(({id:e})=>{let t=C(e),n=i[e];if(!t||n===void 0)return[];let r=A(t.panel),a=P(t,n);return Math.abs(r-a)<.5?[]:[{panelId:e,from:r,to:a}]});if(D()){e.length>0&&Q.send({type:`RESTORE_HIDDEN_SIZES`,changes:e}),a();return}let n=e.filter(({panelId:e})=>E(e)),r=e.filter(({panelId:e})=>!E(e));if(n.length>0&&Q.send({type:`RESTORE_HIDDEN_SIZES`,changes:n}),r.length>0){Q.send({type:`SIZE`,changes:r}),X(a);return}a()},s=n.map(({id:e})=>e).filter(e=>E(e)&&!r.has(e));s.length>0?(Z(s,()=>!1),X(o)):o()},be=()=>{let e=requestAnimationFrame(()=>{g.delete(e);let t=requestAnimationFrame(()=>{g.delete(t),ye()});g.add(t)});g.add(e)},xe=e=>{let t=j(),n=e?t.filter(({id:t})=>t===e):t;if(n.length===0)return;let r=()=>{Z(n.filter(e=>e.collapsible).map(({id:e})=>e),e=>t.find(t=>t.id===e)?.defaultCollapsed===!0)},i=n.filter(e=>e.kind===`bounded`).map(({id:e})=>e).filter(e=>Object.hasOwn(w().layout.committedSizes,e));if(D()){i.length>0?(Q.send({type:`RESET_HIDDEN_SIZES`,ids:i}),X(r)):r();return}let a=i.filter(E);a.length>0&&Q.send({type:`RESET_HIDDEN_SIZES`,ids:a});let o=i.filter(e=>!E(e)).flatMap(e=>{let t=C(e);return!t||t.props.size===`fill`?[]:[{panelId:e,from:A(t.panel),to:M(`--spacing-panel-${t.props.size}`),reset:!0}]});if(o.length>0){Q.send({type:`SIZE`,changes:o}),X(r);return}r()},Se=()=>{w().sizing.changes.forEach(({panelId:e,from:t})=>{let n=C(e);n&&R(n,t)})},Ce=()=>{w().sizing.changes.forEach(({panelId:e,to:t})=>{let n=C(e);n&&(R(n),Y(`ui:panel-resize-end`,e,{size:t}))}),G()},we=t=>{if(O()===`vertical`)return t===`start`?`negative`:`positive`;let n=e({el:x()});return t===`start`?n?`positive`:`negative`:n?`negative`:`positive`},Te=()=>{let e=p;if(!e)return;let t=new Set(S().map(({panel:e})=>e));_.forEach((e,n)=>{t.has(n)||(e.run(),_.delete(n))}),S().forEach(t=>{if(_.has(t.panel)||!t.handle||t.props.size===`fill`||t.props.resize===`none`)return;let n=N(t),r=M(`--spacing-panel-resize-handle`),i=M(`--spacing-panel-resize-handle-coarse`),a=new te;e.addChild(a),a.add(oe({element:t.panel,handle:t.handle,axis:O()===`horizontal`?`x`:`y`,direction:we(t.props.resize),min:n.minimum,max:n.maximum,mode:`onChange`,hitArea:r,coarseHitArea:i,disabled:()=>D()||E(t.props.id),onStart:e=>Q.send({type:`RESIZE_START`,panelId:t.props.id,size:De(e)}),onResize:e=>Q.send({type:`RESIZE`,panelId:t.props.id,size:De(e)}),onEnd:e=>Q.send({type:`RESIZE_END`,panelId:t.props.id,size:De(e)})})),_.set(t.panel,a)})},Ee=()=>{p?.run(),_.clear(),p=new te,f.addChild(p),Te()},De=e=>O()===`horizontal`?e.previewWidth:e.previewHeight,Oe=e=>{let t=T().orientation===`horizontal`&&e<se(x(),`sm`)?`stacked`:`wide`;t!==d&&(d=t,G(),Ee())},Q=ee({schema:le,hooks:de,resolveTransitionElement:({data:e})=>{let t=e?.panelId;return t?C(t)?.panel??null:x()},createMachine:({props:e})=>pe({props:e,context:F(),effects:{prepareChange:_e,finishChange:J,sync:()=>{G(),Ee()},beginResize:()=>{G()},previewResize:()=>{let e=w().resize.activeId,t=C(e);t&&R(t);let n=w().resize.previewSize;n!==null&&Y(`ui:panel-resize`,e,{size:n})},commitResize:e=>{G();let t=typeof e.event.panelId==`string`?e.event.panelId:``,n=w().layout.committedSizes[t];t&&n!==void 0&&Y(`ui:panel-resize-end`,t,{size:n})},cancelResize:G,prepareSizing:Se,finishSizing:Ce,persist:ve}})}),ke=()=>{let e=j();Q.send({type:`PANELS_CHANGED`,collection:e}),Te()},Ae=()=>{l=ae({targets:x(),read:j,onChange:ke,observer:{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`id`,`data-size`,`data-resize`,`data-collapsible`,`data-default-collapsed`]}})},$;return $={...Q,get id(){return x().id||T().id},get orientation(){return O()},get collapsed(){return[...w().layout.collapsedIds]},get sizes(){return{...w().layout.committedSizes}},get root(){let e=this.snapshot.current?.props??T();return re({inputs:[m({part:U.parts.root,props:e,className:e.class}),{"data-ui-panels":``}]})},init(){f=ne(this),p=new te,f.addChild(p),o=this.$el,Q.connect(this.$el,this.snapshot),x().id||=T().id,d=T().orientation===`horizontal`&&x().getBoundingClientRect().width<se(x(),`sm`)?`stacked`:`wide`,W.add($),me(),G(),Te(),u=new ResizeObserver(e=>{Oe(e[0]?.contentRect.width??x().clientWidth)}),u.observe(x()),Ae(),T().persist&&be(),r({target:x(),event:`keydown`,handler:()=>H(),cleanup:f})},destroy(){W.delete($),l?.(),l=null,u?.disconnect(),u=null,_.clear(),p=null,h.forEach(e=>window.clearTimeout(e)),h.clear(),g.forEach(e=>cancelAnimationFrame(e)),g.clear(),Q.disconnect(),o=null},transitionPanel(e){let t=e.data.panelId,n=C(t),r=v.get(t);return!n||!r||r.from===r.to?(n&&R(n,r?.to),i()):a(e,{target:n.panel,keyframes:{flexBasis:[`${r.from}px`,`${r.to}px`]},role:`layout`,cleanup:()=>R(n)})},transitionPanelSize(e){let{panelId:t,from:n,to:r}=e.data,o=C(t);return!o||n===r?(o&&R(o),i()):a(e,{target:o.panel,keyframes:{flexBasis:[`${n}px`,`${r}px`]},role:`layoutQuick`,cleanup:()=>R(o)})},hasPanel(e){return C(e)!==null},isCollapsed:E,collapse(e){Q.send({type:`COLLAPSE`,panelId:e})},expand(e){Q.send({type:`EXPAND`,panelId:e})},toggle(e){Q.send({type:`TOGGLE`,panelId:e})},resize(e,t){let n=C(e);if(D()||!n||n.props.size===`fill`||E(e)||!Number.isFinite(t))return;let r=A(n.panel),i=P(n,t);Math.abs(r-i)<.5||Q.send({type:`SIZE`,panelId:e,from:r,to:i})},reset(e){xe(e)},perform(e,t,n){n&&b.set(t,n),{collapse:this.collapse,expand:this.expand,toggle:this.toggle}[e](t)},syncToggles:H},$},q=()=>{let e={};return{get props(){return e},init(){e=c({el:this.$el,schema:S})},destroy(){},get root(){return re({inputs:[m({part:U.parts.toggle,props:{},className:e.class}),{"data-ui-panel-toggle":``,":data-target":()=>e.target||void 0,":data-action":()=>e.action,"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault();let n=this.$el,r=n.closest(`[data-ui-panel]`),i=r?.closest(`[data-ui-panels]`),a=e.target||r?.id||``;a&&document.dispatchEvent(new CustomEvent(`ui:panel-toggle`,{detail:{panelId:a,groupId:i?.id,action:e.action,trigger:n}}))}}},_e=e=>{p(`UiPanels`,K)(e),p(`UiPanelToggle`,q)(e)},J=new WeakSet,Y=e=>{J.has(e)||(J.add(e),o(e),_(e),_e(e))};export{q as n,K as r,Y as t};
2
+ //# sourceMappingURL=entry.generated-B41qiwNq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.generated-B41qiwNq.js","names":[],"sources":["../../../../../../../../client/src/runtime/composition-breakpoint.ts","../../../../../../../../client/src/components/panels/contract.ts","../../../../../../../../client/src/components/panels/machine.ts","../../../../../../../../client/src/components/panels/styles.ts","../../../../../../../../client/src/components/panels/index.ts","../../../../../../../../client/src/components/panels/entry.generated.ts"],"sourcesContent":["type CompositionBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nconst compositionBreakpointPixels = (\n reference: HTMLElement,\n breakpoint: CompositionBreakpoint,\n): number => {\n const value = getComputedStyle(reference).getPropertyValue(`--breakpoint-${breakpoint}`);\n const pixels = Number.parseFloat(value);\n return Number.isFinite(pixels) ? pixels : Number.POSITIVE_INFINITY;\n};\n\nexport {compositionBreakpointPixels};\nexport type {CompositionBreakpoint};\n","import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\n\nconst PANELS_ORIENTATIONS = ['horizontal', 'vertical'] as const;\nconst PANEL_AS_VALUES = ['div', 'section', 'aside', 'main', 'nav'] as const;\nconst PANEL_SIZES = ['1', '2', '3', '4', '5', '6', 'fill'] as const;\nconst PANEL_RESIZE_EDGES = ['none', 'start', 'end'] as const;\nconst PANEL_TOGGLE_ACTIONS = ['toggle', 'expand', 'collapse'] as const;\n\nconst panelsSchema = {\n id: string.default('ui-panels'),\n orientation: oneOf(PANELS_ORIENTATIONS, 'horizontal'),\n persist: bool,\n divider: bool.default(true),\n class: string,\n};\n\nconst panelSchema = {\n id: string,\n as: oneOf(PANEL_AS_VALUES, 'section'),\n size: oneOf(PANEL_SIZES, 'fill'),\n resize: oneOf(PANEL_RESIZE_EDGES, 'none'),\n collapsible: bool,\n defaultCollapsed: bool,\n class: string,\n};\n\nconst panelToggleSchema = {\n target: string,\n action: oneOf(PANEL_TOGGLE_ACTIONS, 'toggle'),\n icon: string.default('menu'),\n label: string.default('Expand'),\n class: string,\n};\n\ntype PanelsOrientation = typeof PANELS_ORIENTATIONS[number];\ntype PanelAs = typeof PANEL_AS_VALUES[number];\ntype PanelSize = typeof PANEL_SIZES[number];\ntype PanelResizeEdge = typeof PANEL_RESIZE_EDGES[number];\ntype PanelToggleAction = typeof PANEL_TOGGLE_ACTIONS[number];\ntype PanelsProps = SchemaToProps<typeof panelsSchema>;\ntype PanelProps = SchemaToProps<typeof panelSchema>;\ntype PanelToggleProps = SchemaToProps<typeof panelToggleSchema>;\n\nexport {\n PANEL_AS_VALUES,\n PANEL_RESIZE_EDGES,\n PANEL_SIZES,\n PANEL_TOGGLE_ACTIONS,\n PANELS_ORIENTATIONS,\n panelSchema,\n panelToggleSchema,\n panelsSchema,\n};\nexport type {\n PanelAs,\n PanelProps,\n PanelResizeEdge,\n PanelSize,\n PanelToggleAction,\n PanelToggleProps,\n PanelsOrientation,\n PanelsProps,\n};\n","import {createMachine, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {PanelsProps} from './contract';\n\ntype PanelCollapseCapability =\n | {collapsible: false; defaultCollapsed: false}\n | {collapsible: true; defaultCollapsed: boolean};\n\ntype PanelDescriptor = PanelCollapseCapability & (\n | {id: string; kind: 'fill'}\n | {id: string; kind: 'bounded'; resizable: boolean}\n);\n\ntype PanelsContext = {\n collection: PanelDescriptor[];\n layout: {\n collapsedIds: string[];\n committedSizes: Record<string, number>;\n };\n change: {\n openingIds: string[];\n closingIds: string[];\n };\n resize: {\n activeId: string;\n initialSize: number | null;\n previewSize: number | null;\n };\n sizing: {\n changes: PanelSizingTransitionData[];\n };\n};\n\ntype PanelTransitionData = {panelId: string};\ntype PanelSizingTransitionData = {panelId: string; from: number; to: number; reset?: boolean};\ntype PanelsPersistTransitionData = {\n groupId: string;\n collapsed: string[];\n sizes: Record<string, number>;\n};\n\ntype PanelsMachineEffects = {\n prepareChange(scope: MachineScope<PanelsContext, PanelsProps>): void;\n finishChange(scope: MachineScope<PanelsContext, PanelsProps>): void;\n sync(scope: MachineScope<PanelsContext, PanelsProps>): void;\n beginResize(scope: MachineScope<PanelsContext, PanelsProps>): void;\n previewResize(scope: MachineScope<PanelsContext, PanelsProps>): void;\n commitResize(scope: MachineScope<PanelsContext, PanelsProps>): void;\n cancelResize(scope: MachineScope<PanelsContext, PanelsProps>): void;\n prepareSizing(scope: MachineScope<PanelsContext, PanelsProps>): void;\n finishSizing(scope: MachineScope<PanelsContext, PanelsProps>): void;\n persist(scope: MachineScope<PanelsContext, PanelsProps>): void;\n};\n\ntype CreatePanelsMachineOptions = {\n props: PanelsProps;\n context: PanelsContext;\n effects: PanelsMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.openingIds.map((panelId) => ({panelId})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n expand: (panelId: string) => ({type: 'EXPAND', panelId}),\n collapse: (panelId: string) => ({type: 'COLLAPSE', panelId}),\n toggle: (panelId: string) => ({type: 'TOGGLE', panelId}),\n },\n} satisfies TransitionHookDefinition<PanelsContext, PanelsProps, PanelTransitionData, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.closingIds.map((panelId) => ({panelId})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n expand: (panelId: string) => ({type: 'EXPAND', panelId}),\n collapse: (panelId: string) => ({type: 'COLLAPSE', panelId}),\n toggle: (panelId: string) => ({type: 'TOGGLE', panelId}),\n },\n} satisfies TransitionHookDefinition<PanelsContext, PanelsProps, PanelTransitionData, 'closing'>);\n\nconst sizingHook = defineHook({\n name: 'sizing',\n state: 'sizing',\n projectEach: (snapshot) => snapshot.context.sizing.changes,\n onDone: 'SIZE_DONE',\n onError: 'SIZE_ERROR',\n} satisfies TransitionHookDefinition<PanelsContext, PanelsProps, PanelSizingTransitionData, 'sizing'>);\n\nconst persistingHook = defineHook({\n name: 'persisting',\n state: 'persisting',\n project: (snapshot) => ({\n groupId: snapshot.props.id,\n collapsed: [...snapshot.context.layout.collapsedIds],\n sizes: {...snapshot.context.layout.committedSizes},\n }),\n onDone: 'PERSIST_DONE',\n onError: 'PERSIST_ERROR',\n} satisfies TransitionHookDefinition<PanelsContext, PanelsProps, PanelsPersistTransitionData, 'persisting'>);\n\nconst panelsHooks = [openingHook, closingHook, sizingHook, persistingHook] as const;\n\nconst strings = (value: unknown): string[] => Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : [];\nconst panelId = (event: MachineEventObject): string => typeof event.panelId === 'string' ? event.panelId : '';\nconst finiteSize = (value: unknown): number | null => typeof value === 'number' && Number.isFinite(value) ? value : null;\nconst sizingChanges = (event: MachineEventObject): PanelSizingTransitionData[] => {\n const candidates = Array.isArray(event.changes) ? event.changes : [event];\n return candidates.flatMap((candidate) => {\n if (typeof candidate !== 'object' || candidate === null) return [];\n const change = candidate as Record<string, unknown>;\n const id = typeof change.panelId === 'string' ? change.panelId : '';\n const from = finiteSize(change.from);\n const to = finiteSize(change.to);\n const reset = change.reset === true;\n return id && from !== null && to !== null && (from !== to || reset)\n ? [{panelId: id, from, to, ...(reset ? {reset: true} : {})}]\n : [];\n });\n};\nconst propsFrom = (event: MachineEventObject, fallback: PanelsProps): PanelsProps => (\n typeof event.props === 'object' && event.props !== null ? event.props as PanelsProps : fallback\n);\nconst sameStrings = (left: readonly string[], right: readonly string[]): boolean => (\n left.length === right.length && left.every((value, index) => value === right[index])\n);\nconst descriptors = (value: unknown): PanelDescriptor[] => {\n if (!Array.isArray(value)) return [];\n const result: PanelDescriptor[] = [];\n value.forEach((candidate) => {\n if (typeof candidate !== 'object' || candidate === null) return;\n const descriptor = candidate as Record<string, unknown>;\n if (typeof descriptor.id !== 'string' || !descriptor.id) return;\n const collapse: PanelCollapseCapability = descriptor.collapsible === true\n ? {collapsible: true, defaultCollapsed: descriptor.defaultCollapsed === true}\n : {collapsible: false, defaultCollapsed: false};\n if (descriptor.kind === 'fill') result.push({id: descriptor.id, kind: 'fill', ...collapse});\n if (descriptor.kind === 'bounded') {\n result.push({\n id: descriptor.id,\n kind: 'bounded',\n resizable: descriptor.resizable === true,\n ...collapse,\n });\n }\n });\n return result;\n};\nconst descriptorMap = (collection: readonly PanelDescriptor[]): Map<string, PanelDescriptor> => (\n new Map(collection.map((descriptor) => [descriptor.id, descriptor]))\n);\nconst orderedSizes = (\n collection: readonly PanelDescriptor[],\n sizes: Readonly<Record<string, number>>,\n): Record<string, number> => Object.fromEntries(collection.flatMap((descriptor) => (\n descriptor.kind === 'bounded' && Object.hasOwn(sizes, descriptor.id)\n ? [[descriptor.id, sizes[descriptor.id]!]]\n : []\n)));\n\nconst requestedCollapsed = (scope: MachineScope<PanelsContext, PanelsProps>): string[] => {\n const id = panelId(scope.event);\n const current = scope.context.layout.collapsedIds;\n const collection = scope.context.collection;\n const descriptor = descriptorMap(collection).get(id);\n switch (scope.event.type) {\n case 'COLLAPSE':\n return descriptor?.collapsible && !current.includes(id)\n ? collection.map((item) => item.id).filter((item) => current.includes(item) || item === id)\n : current;\n case 'EXPAND':\n return current.filter((item) => item !== id);\n case 'TOGGLE':\n if (!descriptor?.collapsible) return current;\n return current.includes(id)\n ? current.filter((item) => item !== id)\n : collection.map((item) => item.id).filter((item) => current.includes(item) || item === id);\n default:\n return current;\n }\n};\n\nconst changeAllowed = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const id = panelId(scope.event);\n return descriptorMap(scope.context.collection).has(id)\n && !sameStrings(scope.context.layout.collapsedIds, requestedCollapsed(scope));\n};\n\nconst resizeAllowed = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const id = panelId(scope.event);\n const descriptor = descriptorMap(scope.context.collection).get(id);\n return descriptor?.kind === 'bounded'\n && descriptor.resizable\n && !scope.context.layout.collapsedIds.includes(id)\n && finiteSize(scope.event.size) !== null;\n};\n\nconst sizingAllowed = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const changes = sizingChanges(scope.event);\n const collection = descriptorMap(scope.context.collection);\n return changes.length > 0 && changes.every(({panelId: id}) => (\n collection.get(id)?.kind === 'bounded'\n && !scope.context.layout.collapsedIds.includes(id)\n ));\n};\n\nconst hiddenSizingAllowed = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const changes = sizingChanges(scope.event);\n const collection = descriptorMap(scope.context.collection);\n return changes.length > 0 && changes.every(({panelId: id}) => (\n collection.get(id)?.kind === 'bounded'\n && scope.context.layout.collapsedIds.includes(id)\n ));\n};\n\nconst hiddenResetAllowed = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const ids = strings(scope.event.ids);\n const collection = descriptorMap(scope.context.collection);\n return ids.length > 0 && ids.every((id) => (\n collection.get(id)?.kind === 'bounded'\n && scope.context.layout.collapsedIds.includes(id)\n && Object.hasOwn(scope.context.layout.committedSizes, id)\n ));\n};\n\nconst applySizing = (scope: MachineScope<PanelsContext, PanelsProps>) => {\n const changes = sizingChanges(scope.event);\n const committedSizes = {...scope.context.layout.committedSizes};\n changes.forEach(({panelId: id, to, reset}) => {\n if (reset) delete committedSizes[id];\n else committedSizes[id] = to;\n });\n return {context: {\n ...scope.context,\n layout: {\n ...scope.context.layout,\n committedSizes: orderedSizes(scope.context.collection, committedSizes),\n },\n sizing: {changes},\n }};\n};\n\nconst commitHiddenSizes = (scope: MachineScope<PanelsContext, PanelsProps>) => {\n const changes = sizingChanges(scope.event);\n const committedSizes = {\n ...scope.context.layout.committedSizes,\n ...Object.fromEntries(changes.map(({panelId: id, to}) => [id, to])),\n };\n return {context: {\n ...scope.context,\n layout: {\n ...scope.context.layout,\n committedSizes: orderedSizes(scope.context.collection, committedSizes),\n },\n }};\n};\n\nconst resetHiddenSizes = (scope: MachineScope<PanelsContext, PanelsProps>) => {\n const committedSizes = {...scope.context.layout.committedSizes};\n strings(scope.event.ids).forEach((id) => delete committedSizes[id]);\n return {context: {\n ...scope.context,\n layout: {\n ...scope.context.layout,\n committedSizes: orderedSizes(scope.context.collection, committedSizes),\n },\n }};\n};\n\nconst applyChange = (scope: MachineScope<PanelsContext, PanelsProps>) => {\n const collapsedIds = requestedCollapsed(scope);\n const previous = scope.context.layout.collapsedIds;\n return {context: {\n ...scope.context,\n layout: {...scope.context.layout, collapsedIds},\n change: {\n openingIds: previous.filter((id) => !collapsedIds.includes(id)),\n closingIds: collapsedIds.filter((id) => !previous.includes(id)),\n },\n }};\n};\n\nconst reconcile = (scope: MachineScope<PanelsContext, PanelsProps>) => {\n const collection = descriptors(scope.event.collection);\n const known = descriptorMap(scope.context.collection);\n const collapsedIds = collection.filter((descriptor) => (\n scope.context.layout.collapsedIds.includes(descriptor.id)\n || (!known.has(descriptor.id) && descriptor.defaultCollapsed)\n ) && descriptor.collapsible).map((descriptor) => descriptor.id);\n const committedSizes = orderedSizes(collection, scope.context.layout.committedSizes);\n const active = descriptorMap(collection).get(scope.context.resize.activeId);\n const activeExists = active?.kind === 'bounded' && active.resizable;\n return {context: {\n ...scope.context,\n collection,\n layout: {collapsedIds, committedSizes},\n resize: activeExists\n ? scope.context.resize\n : {activeId: '', initialSize: null, previewSize: null},\n }};\n};\n\nconst activeRemoved = (scope: MachineScope<PanelsContext, PanelsProps>): boolean => {\n const active = descriptorMap(descriptors(scope.event.collection)).get(scope.context.resize.activeId);\n return active?.kind !== 'bounded' || !active.resizable;\n};\n\nconst createPanelsMachine = ({\n props,\n context,\n effects,\n}: CreatePanelsMachineOptions): Machine<PanelsContext, PanelsProps> => createMachine<PanelsContext, PanelsProps>({\n initial: 'stable',\n on: {\n DOM_INVALIDATED: {effects: 'sync'},\n },\n states: {\n stable: {\n tags: ['stable'],\n on: {\n COLLAPSE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n EXPAND: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n SIZE: {target: 'sizing', guard: sizingAllowed, reduce: applySizing, effects: 'prepareSizing'},\n RESTORE_HIDDEN_SIZES: {guard: hiddenSizingAllowed, reduce: commitHiddenSizes},\n RESET_HIDDEN_SIZES: {\n target: 'persisting',\n guard: hiddenResetAllowed,\n reduce: resetHiddenSizes,\n effects: ['sync', 'persist'],\n },\n RESIZE_START: {target: 'resizing', guard: resizeAllowed, reduce: 'startResize', effects: 'beginResize'},\n PANELS_CHANGED: {reduce: reconcile, effects: 'sync'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n },\n },\n changing: {\n tags: ['changing', 'transitioning'],\n on: {\n CHANGE_DONE: {target: 'persisting', effects: ['finishChange', 'persist']},\n CHANGE_ERROR: {target: 'persisting', effects: ['finishChange', 'persist']},\n COLLAPSE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n EXPAND: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n PANELS_CHANGED: {reduce: reconcile, effects: 'sync'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n },\n },\n sizing: {\n tags: ['sizing', 'transitioning'],\n on: {\n SIZE_DONE: {target: 'persisting', effects: ['finishSizing', 'persist']},\n SIZE_ERROR: {target: 'persisting', effects: ['finishSizing', 'persist']},\n SIZE: {target: 'sizing', guard: sizingAllowed, reduce: applySizing, effects: 'prepareSizing'},\n RESIZE_START: {target: 'resizing', guard: resizeAllowed, reduce: 'startResize', effects: 'beginResize'},\n PANELS_CHANGED: {reduce: reconcile, effects: 'sync'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n },\n },\n resizing: {\n tags: ['resizing'],\n on: {\n RESIZE: {guard: 'activeResize', reduce: 'previewResize', effects: 'previewResize'},\n RESIZE_END: {target: 'persisting', guard: 'activeResize', reduce: 'commitResize', effects: ['commitResize', 'persist']},\n RESIZE_CANCEL: {target: 'stable', reduce: 'clearResize', effects: 'cancelResize'},\n PANELS_CHANGED: [\n {target: 'stable', guard: activeRemoved, reduce: reconcile, effects: ['cancelResize', 'sync']},\n {reduce: reconcile, effects: 'sync'},\n ],\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n },\n },\n persisting: {\n tags: ['persisting'],\n on: {\n PERSIST_DONE: 'stable',\n PERSIST_ERROR: 'stable',\n COLLAPSE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n EXPAND: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: changeAllowed, reduce: applyChange, effects: 'prepareChange'},\n SIZE: {target: 'sizing', guard: sizingAllowed, reduce: applySizing, effects: 'prepareSizing'},\n PANELS_CHANGED: {reduce: reconcile, effects: 'sync'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n },\n },\n },\n}, {\n props,\n context,\n reducers: {\n replaceProps: (scope) => ({props: propsFrom(scope.event, scope.props)}),\n startResize: (scope) => {\n const size = finiteSize(scope.event.size);\n return {context: {\n ...scope.context,\n resize: {activeId: panelId(scope.event), initialSize: size, previewSize: size},\n }};\n },\n previewResize: (scope) => ({context: {\n ...scope.context,\n resize: {...scope.context.resize, previewSize: finiteSize(scope.event.size)},\n }}),\n commitResize: (scope) => {\n const id = panelId(scope.event);\n const size = finiteSize(scope.event.size);\n if (size === null) return;\n return {context: {\n ...scope.context,\n layout: {\n ...scope.context.layout,\n committedSizes: orderedSizes(scope.context.collection, {\n ...scope.context.layout.committedSizes,\n [id]: size,\n }),\n },\n resize: {activeId: '', initialSize: null, previewSize: null},\n }};\n },\n clearResize: (scope) => ({context: {\n ...scope.context,\n resize: {activeId: '', initialSize: null, previewSize: null},\n }}),\n },\n guards: {\n activeResize: (scope) => panelId(scope.event) === scope.context.resize.activeId\n && finiteSize(scope.event.size) !== null,\n },\n effects: {\n prepareChange: effects.prepareChange,\n finishChange: effects.finishChange,\n sync: effects.sync,\n beginResize: effects.beginResize,\n previewResize: effects.previewResize,\n commitResize: effects.commitResize,\n cancelResize: effects.cancelResize,\n prepareSizing: effects.prepareSizing,\n finishSizing: effects.finishSizing,\n persist: effects.persist,\n },\n});\n\nexport {createPanelsMachine, panelsHooks};\nexport type {\n CreatePanelsMachineOptions,\n PanelDescriptor,\n PanelsContext,\n PanelsMachineEffects,\n PanelsPersistTransitionData,\n PanelSizingTransitionData,\n PanelTransitionData,\n};\n","import {defineStyles} from '../../runtime';\n\nconst panelsStyles = defineStyles({definition: {\n component: 'ui.panels',\n parts: {\n root: {\n base: 'relative flex h-full min-h-0 w-full min-w-0',\n variants: {\n orientation: {\n horizontal: 'flex-row',\n vertical: 'flex-col',\n },\n },\n defaults: {orientation: 'horizontal'},\n },\n panel: {\n base: 'relative min-w-0 overflow-hidden',\n variants: {\n orientation: {\n horizontal: 'h-full',\n vertical: 'w-full',\n },\n divider: {\n true: '',\n false: '',\n },\n resize: {\n none: '',\n start: '',\n end: '',\n },\n },\n defaults: {orientation: 'horizontal', divider: true, resize: 'none'},\n },\n expanded: {base: 'h-full min-h-0 w-full min-w-0'},\n collapsed: {base: 'flex h-full min-h-0 w-full min-w-0 items-center justify-center overflow-hidden'},\n resizeHandle: {\n base: [\n 'absolute z-20 touch-none border-transparent outline-none',\n 'hover:border-intent-neutral-edge-hover focus-visible:ui-focus-ring-inset',\n 'data-resizing:border-intent-neutral-edge-strong',\n ],\n variants: {\n orientation: {\n horizontal: 'inset-y-0 w-panel-resize-handle cursor-col-resize',\n vertical: 'inset-x-0 h-panel-resize-handle cursor-row-resize',\n },\n edge: {\n start: '',\n end: '',\n },\n },\n defaults: {orientation: 'horizontal', edge: 'end'},\n },\n toggle: {base: 'inline-flex size-control-md items-center justify-center outline-none focus-visible:ui-focus-ring-inset'},\n toggleIcon: {base: 'size-icon-md shrink-0'},\n },\n}});\n\nexport {panelsStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n createResizable,\n decodeProps,\n defineAlpineData,\n focusableElements,\n isRtl,\n mergeBindings,\n observeSemanticChanges,\n resolveStyle,\n type BindingObject,\n type ResizeDirection,\n type ResizeEvent,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {animateSize, type MotionHandle, type MotionTransitionSubject} from '@client/motion';\nimport {noopHandle} from '@client/motion/animate';\nimport {compositionBreakpointPixels} from '@client/runtime/composition-breakpoint';\nimport {declareMorphAttributes} from '@client/runtime/morph';\nimport {addListener, asBool, dispatch, setPresence} from '@client/utils';\nimport {\n panelSchema,\n panelToggleSchema,\n panelsSchema,\n type PanelProps,\n type PanelResizeEdge,\n type PanelToggleAction,\n type PanelToggleProps,\n type PanelsOrientation,\n type PanelsProps,\n} from './contract';\nimport {\n createPanelsMachine,\n panelsHooks,\n type PanelDescriptor,\n type PanelsContext,\n type PanelsPersistTransitionData,\n type PanelSizingTransitionData,\n type PanelTransitionData,\n} from './machine';\nimport {panelsStyles} from './styles';\n\ntype PanelsTransitionName = (typeof panelsHooks)[number]['name'];\ntype PanelsTransition<TName extends PanelsTransitionName = PanelsTransitionName> = TransitionForHook<\n Extract<(typeof panelsHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype PanelRecord = {\n panel: HTMLElement;\n expanded: HTMLElement;\n collapsed: HTMLElement | null;\n handle: HTMLElement | null;\n props: PanelProps;\n};\n\ntype PanelEventDetail = {\n panelId?: string;\n groupId?: string;\n size?: number;\n action?: PanelToggleAction;\n trigger?: HTMLElement | null;\n __panelsNotification?: boolean;\n};\n\ntype PanelTransitionGeometry = {from: number; to: number};\ntype PanelsResponsiveMode = 'stacked' | 'wide';\ntype PanelMotionTransition = MotionTransitionSubject & Readonly<{\n data: PanelTransitionData;\n}>;\ntype PanelSizingMotionTransition = MotionTransitionSubject & Readonly<{\n data: PanelSizingTransitionData;\n}>;\n\ntype PanelsController = {\n readonly id: string;\n hasPanel(panelId: string): boolean;\n perform(action: PanelToggleAction, panelId: string, trigger?: HTMLElement | null): void;\n resize(panelId: string, size: number): void;\n reset(panelId?: string): void;\n syncToggles(): void;\n};\n\n/** Public Alpine API for `ui.panels`. @public */\ninterface UiPanelsApi {\n /** Stable group id used by explicit controls, named events, and persistence. */\n readonly id: string;\n /** Current main axis along which direct panels negotiate space. */\n readonly orientation: 'horizontal' | 'vertical';\n /** Stable ids of panels whose collapsed representation is active. */\n readonly collapsed: readonly string[];\n /** User-committed pixel measures keyed by stable panel id. */\n readonly sizes: Readonly<Record<string, number>>;\n /** Returns whether a named panel is currently collapsed. */\n isCollapsed(id: string): boolean;\n /** Collapses a named collapsible panel. */\n collapse(id: string): void;\n /** Expands a named collapsed panel. */\n expand(id: string): void;\n /** Reverses the collapsed state of a named collapsible panel. */\n toggle(id: string): void;\n /** Moves an expanded bounded panel to a clamped pixel size through the sizing transition. */\n resize(id: string, size: number): void;\n /** Restores one panel or the whole group to its authored layout. */\n reset(id?: string): void;\n}\n\ntype PanelsData = AlpineMachine<PanelsContext, PanelsProps, typeof panelsHooks> & UiPanelsApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n perform(action: PanelToggleAction, panelId: string, trigger?: HTMLElement | null): void;\n syncToggles(): void;\n hasPanel(panelId: string): boolean;\n transitionPanel(transition: PanelMotionTransition): MotionHandle;\n transitionPanelSize(transition: PanelSizingMotionTransition): MotionHandle;\n};\n\nconst controllers = new Set<PanelsController>();\n\nconst eventDetail = (event: Event): PanelEventDetail => (\n event instanceof CustomEvent && event.detail && typeof event.detail === 'object'\n ? event.detail as PanelEventDetail\n : {}\n);\n\nconst registerDocumentListeners = (() => {\n let registered = false;\n return (): void => {\n if (registered || typeof document === 'undefined') return;\n const route = (action: PanelToggleAction) => (event: Event): void => {\n const detail = eventDetail(event);\n if (detail.__panelsNotification || !detail.panelId) return;\n controllers.forEach((controller) => {\n if (detail.groupId && detail.groupId !== controller.id) return;\n if (!controller.hasPanel(detail.panelId!)) return;\n controller.perform(detail.action ?? action, detail.panelId!, detail.trigger);\n });\n };\n document.addEventListener('ui:panel-collapse', route('collapse'));\n document.addEventListener('ui:panel-expand', route('expand'));\n document.addEventListener('ui:panel-toggle', route('toggle'));\n document.addEventListener('ui:panel-size', (event) => {\n const detail = eventDetail(event);\n if (detail.__panelsNotification || !detail.panelId || !Number.isFinite(detail.size)) return;\n controllers.forEach((controller) => {\n if (detail.groupId && detail.groupId !== controller.id) return;\n if (!controller.hasPanel(detail.panelId!)) return;\n controller.resize(detail.panelId!, detail.size!);\n });\n });\n document.addEventListener('ui:panels-reset', (event) => {\n const detail = eventDetail(event);\n if (detail.__panelsNotification) return;\n controllers.forEach((controller) => {\n if (detail.groupId && detail.groupId !== controller.id) return;\n if (detail.panelId && !controller.hasPanel(detail.panelId)) return;\n controller.reset(detail.panelId);\n });\n });\n registered = true;\n };\n})();\n\nconst storageKey = (id: string): string => `trellis-ui:panels:${id}:v1`;\nconst numericRecord = (value: unknown): Record<string, number> => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return {};\n return Object.fromEntries(Object.entries(value).filter((entry): entry is [string, number] => (\n typeof entry[1] === 'number' && Number.isFinite(entry[1])\n )));\n};\n\nconst UiPanels = (): TrellisAlpineComponent<PanelsData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let disconnectObserver: (() => void) | null = null;\n let resizeObserver: ResizeObserver | null = null;\n let responsiveMode: PanelsResponsiveMode = 'wide';\n let cleanup: CleanupManager;\n let resizeCleanup: CleanupManager | null = null;\n const deferredTimers = new Set<number>();\n const restoreFrames = new Set<number>();\n const resizeCleanups = new Map<HTMLElement, CleanupManager>();\n const transitionGeometry = new Map<string, PanelTransitionGeometry>();\n const rememberedFocus = new Map<string, HTMLElement>();\n const activeTriggers = new Map<string, HTMLElement>();\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Panels has not been initialized.');\n return rootEl;\n };\n const owns = (element: Element): boolean => element.closest('[data-ui-panels]') === root();\n const records = (): PanelRecord[] => Array.from(root().children).flatMap((child) => {\n if (!(child instanceof HTMLElement) || !child.hasAttribute('data-ui-panel')) return [];\n const expanded = child.querySelector<HTMLElement>(':scope > [data-ui-panel-expanded]');\n if (!expanded || !owns(expanded)) return [];\n return [{\n panel: child,\n expanded,\n collapsed: child.querySelector<HTMLElement>(':scope > [data-ui-panel-collapsed]'),\n handle: child.querySelector<HTMLElement>(':scope > [data-ui-panel-resize-handle]'),\n props: decodeProps({el: child, schema: panelSchema}),\n }];\n });\n const recordFor = (id: string): PanelRecord | null => records().find((record) => record.props.id === id) ?? null;\n const context = (): Readonly<PanelsContext> => bridge.getCommittedSnapshot().context;\n const currentProps = (): Readonly<PanelsProps> => bridge.getCommittedSnapshot().props;\n const isCollapsed = (id: string): boolean => context().layout.collapsedIds.includes(id);\n const isResponsiveStacked = (): boolean => (\n currentProps().orientation === 'horizontal' && responsiveMode === 'stacked'\n );\n const effectiveOrientation = (): PanelsOrientation => (\n isResponsiveStacked() ? 'vertical' : currentProps().orientation\n );\n const renderedOrientation = (): PanelsOrientation => root().dataset.orientation === 'vertical' ? 'vertical' : 'horizontal';\n const mainSize = (element: Element): number => {\n const rect = element.getBoundingClientRect();\n return renderedOrientation() === 'horizontal' ? rect.width : rect.height;\n };\n\n const collectionState = (): PanelDescriptor[] => {\n const items = records();\n const ids = items.map(({props}) => props.id);\n if (ids.some((id) => !id)) throw new Error('Every Panel requires a stable id.');\n if (new Set(ids).size !== ids.length) throw new Error('Panel ids must be unique within a Panels group.');\n if (items.length > 0 && !items.some(({props}) => props.size === 'fill')) {\n throw new Error('A Panels group requires at least one size=\"fill\" Panel.');\n }\n if (items.some(({props}) => props.size === 'fill' && props.resize !== 'none')) {\n throw new Error('A size=\"fill\" Panel cannot own a resize handle.');\n }\n return items.map(({props}): PanelDescriptor => {\n const collapse = props.collapsible\n ? {collapsible: true as const, defaultCollapsed: props.defaultCollapsed}\n : {collapsible: false as const, defaultCollapsed: false as const};\n return props.size === 'fill'\n ? {id: props.id, kind: 'fill', ...collapse}\n : {id: props.id, kind: 'bounded', resizable: props.resize !== 'none', ...collapse};\n });\n };\n\n const cssLength = (token: string): number => {\n const probe = document.createElement('div');\n probe.style.cssText = 'position:absolute;visibility:hidden;pointer-events:none;inset:0 auto auto 0;';\n if (renderedOrientation() === 'horizontal') probe.style.width = `var(${token})`;\n else probe.style.height = `var(${token})`;\n root().append(probe);\n const value = mainSize(probe);\n probe.remove();\n return value;\n };\n\n const boundsFor = (record: PanelRecord): {minimum: number; maximum: number} => {\n if (record.props.size === 'fill') return {minimum: 0, maximum: Number.POSITIVE_INFINITY};\n return {\n minimum: cssLength(`--spacing-panel-${record.props.size}-min`),\n maximum: cssLength(`--spacing-panel-${record.props.size}-max`),\n };\n };\n\n const clampPanelSize = (record: PanelRecord, value: number): number => {\n const {minimum, maximum} = boundsFor(record);\n return Math.min(maximum, Math.max(minimum, value));\n };\n\n const initialContext = (): PanelsContext => {\n const collection = collectionState();\n return {\n collection,\n layout: {\n collapsedIds: collection.filter((descriptor) => descriptor.defaultCollapsed).map(({id}) => id),\n committedSizes: {},\n },\n change: {openingIds: [], closingIds: []},\n resize: {activeId: '', initialSize: null, previewSize: null},\n sizing: {changes: []},\n };\n };\n\n const setMainConstraints = (element: HTMLElement, minimum: string, maximum: string): void => {\n if (renderedOrientation() === 'horizontal') {\n element.style.minWidth = minimum;\n element.style.maxWidth = maximum;\n element.style.minHeight = '';\n element.style.maxHeight = '';\n } else {\n element.style.minHeight = minimum;\n element.style.maxHeight = maximum;\n element.style.minWidth = '';\n element.style.maxWidth = '';\n }\n };\n\n const clearGeometry = (element: HTMLElement): void => {\n element.style.flex = '';\n element.style.minWidth = '';\n element.style.maxWidth = '';\n element.style.minHeight = '';\n element.style.maxHeight = '';\n };\n\n const applyGeometry = (record: PanelRecord, transitionSize?: number): void => {\n if (isResponsiveStacked()) {\n clearGeometry(record.panel);\n return;\n }\n if (transitionSize !== undefined) {\n record.panel.style.flex = `0 0 ${transitionSize}px`;\n setMainConstraints(record.panel, '0px', 'none');\n return;\n }\n if (isCollapsed(record.props.id)) {\n if (context().collection.find(({id}) => id === record.props.id)?.defaultCollapsed) {\n clearGeometry(record.panel);\n return;\n }\n const collapsedSize = record.collapsed ? 'var(--spacing-panel-collapsed)' : '0px';\n record.panel.style.flex = `0 0 ${collapsedSize}`;\n setMainConstraints(record.panel, collapsedSize, collapsedSize);\n return;\n }\n if (record.props.size === 'fill') {\n clearGeometry(record.panel);\n return;\n }\n const committed = context().resize.activeId === record.props.id\n ? context().resize.previewSize\n : context().layout.committedSizes[record.props.id];\n if (committed === undefined || committed === null) {\n clearGeometry(record.panel);\n return;\n }\n const basis = `${clampPanelSize(record, committed)}px`;\n record.panel.style.flex = `0 1 ${basis}`;\n setMainConstraints(\n record.panel,\n `var(--spacing-panel-${record.props.size}-min)`,\n `var(--spacing-panel-${record.props.size}-max)`,\n );\n };\n\n const setInert = (element: HTMLElement, inert: boolean): void => {\n element.toggleAttribute('inert', inert);\n element.setAttribute('aria-hidden', inert ? 'true' : 'false');\n };\n\n const syncPanel = (record: PanelRecord): void => {\n const props = currentProps();\n const orientation = effectiveOrientation();\n const collapsed = isCollapsed(record.props.id);\n const opening = bridge.hasTag('changing') && context().change.openingIds.includes(record.props.id);\n const closing = bridge.hasTag('changing') && context().change.closingIds.includes(record.props.id);\n const finalCollapsed = collapsed && !closing;\n const showExpanded = !finalCollapsed;\n const showCollapsed = collapsed && !closing && !opening && record.collapsed !== null;\n\n record.panel.dataset.state = collapsed ? 'collapsed' : 'expanded';\n record.panel.dataset.orientation = orientation;\n record.panel.dataset.size = record.props.size;\n record.panel.dataset.resize = record.props.resize;\n record.panel.className = resolveStyle({\n part: panelsStyles.parts.panel,\n props: {orientation, divider: props.divider, resize: record.props.resize},\n className: record.props.class,\n });\n setPresence({el: record.panel, attr: 'data-collapsible', present: record.props.collapsible});\n setPresence({el: record.panel, attr: 'data-resizing', present: context().resize.activeId === record.props.id});\n applyGeometry(record);\n\n record.expanded.hidden = !showExpanded;\n setInert(record.expanded, !showExpanded);\n if (record.collapsed) {\n record.collapsed.hidden = !showCollapsed;\n setInert(record.collapsed, !showCollapsed);\n }\n if (record.handle) {\n const disabled = isResponsiveStacked()\n || collapsed\n || record.props.size === 'fill'\n || record.props.resize === 'none';\n record.handle.dataset.orientation = orientation;\n record.handle.dataset.resizeEdge = record.props.resize;\n record.handle.setAttribute('aria-label', `Resize ${record.props.id} panel`);\n record.handle.toggleAttribute('data-resize-disabled', disabled);\n record.handle.hidden = isResponsiveStacked();\n record.handle.className = resolveStyle({\n part: panelsStyles.parts.resizeHandle,\n props: {orientation, edge: record.props.resize},\n className: record.handle.dataset.class ?? '',\n });\n }\n };\n\n const syncDividers = (items: PanelRecord[]): void => {\n items.forEach((record, index) => {\n const next = items[index + 1];\n const interactive = record.props.resize === 'end' || next?.props.resize === 'start';\n declareMorphAttributes(record.panel, 'data-divider');\n setPresence({\n el: record.panel,\n attr: 'data-divider',\n present: currentProps().divider && next !== undefined && !interactive,\n });\n });\n };\n\n const targetForToggle = (toggle: HTMLElement): {record: PanelRecord; controller: PanelsController} | null => {\n const explicit = toggle.dataset.target || '';\n if (!explicit) {\n const panel = toggle.closest<HTMLElement>('[data-ui-panel]');\n const group = panel?.closest<HTMLElement>('[data-ui-panels]');\n const controller = [...controllers].find((item) => item.id === group?.id);\n const record = panel && controller === component ? recordFor(panel.id) : null;\n return record && controller ? {record, controller} : null;\n }\n const groupId = toggle.dataset.groupId || toggle.closest<HTMLElement>('[data-ui-panels]')?.id;\n const candidates = [...controllers].filter((item) => !groupId || item.id === groupId);\n const controller = candidates.find((item) => item.hasPanel(explicit));\n const record = controller === component ? recordFor(explicit) : null;\n return record && controller ? {record, controller} : null;\n };\n\n const syncToggles = (): void => {\n document.querySelectorAll<HTMLElement>('[data-ui-panel-toggle]').forEach((toggle) => {\n const target = targetForToggle(toggle);\n if (!target || target.controller !== component) return;\n const collapsed = isCollapsed(target.record.props.id);\n toggle.dataset.target = target.record.props.id;\n toggle.dataset.groupId = currentProps().id;\n toggle.dataset.state = collapsed ? 'collapsed' : 'expanded';\n toggle.setAttribute('aria-controls', target.record.panel.id);\n toggle.setAttribute('aria-expanded', collapsed ? 'false' : 'true');\n toggle.toggleAttribute('disabled', !target.record.props.collapsible);\n });\n };\n\n const syncAll = (): void => {\n const props = currentProps();\n const orientation = effectiveOrientation();\n root().dataset.responsiveMode = responsiveMode;\n root().dataset.layoutOrientation = orientation;\n root().style.flexDirection = orientation === 'horizontal' ? 'row' : 'column';\n root().className = resolveStyle({\n part: panelsStyles.parts.root,\n props: {...props, orientation},\n className: props.class,\n });\n setPresence({el: root(), attr: 'data-resizing', present: bridge.hasTag('resizing')});\n setPresence({el: root(), attr: 'data-transitioning', present: bridge.hasTag('transitioning')});\n const items = records();\n items.forEach(syncPanel);\n syncDividers(items);\n syncToggles();\n };\n\n const focusExpanded = (record: PanelRecord, force = false): void => {\n const active = document.activeElement;\n if (!force && (!(active instanceof HTMLElement) || !record.collapsed?.contains(active))) return;\n const remembered = rememberedFocus.get(record.props.id);\n if (remembered?.isConnected && record.expanded.contains(remembered)) remembered.focus({preventScroll: true});\n else {\n record.expanded.tabIndex = -1;\n record.expanded.focus({preventScroll: true});\n }\n };\n\n const focusCollapsed = (record: PanelRecord, force = false): void => {\n const active = document.activeElement;\n if (!force && (!(active instanceof HTMLElement) || !record.expanded.contains(active))) return;\n const collapsedTarget = record.collapsed ? focusableElements(record.collapsed)[0] : undefined;\n const external = activeTriggers.get(record.props.id);\n const fallback = external?.isConnected && !record.panel.contains(external) ? external : undefined;\n if (collapsedTarget) collapsedTarget.focus({preventScroll: true});\n else if (fallback) fallback.focus({preventScroll: true});\n else {\n root().tabIndex = -1;\n root().focus({preventScroll: true});\n }\n };\n\n const prepareChange = (): void => {\n const changed = [...context().change.openingIds, ...context().change.closingIds];\n const openingNeedsFocus = new Set(context().change.openingIds.filter((id) => {\n const record = recordFor(id);\n const active = document.activeElement;\n return record !== null\n && record.collapsed !== null\n && active instanceof HTMLElement\n && record.collapsed.contains(active);\n }));\n const from = new Map(changed.flatMap((id) => {\n const record = recordFor(id);\n if (!record) return [];\n if (context().change.closingIds.includes(id)) {\n const active = document.activeElement;\n if (active instanceof HTMLElement && record.expanded.contains(active)) rememberedFocus.set(id, active);\n }\n return [[id, mainSize(record.panel)] as const];\n }));\n syncAll();\n context().change.openingIds.forEach((id) => {\n const record = recordFor(id);\n if (record) focusExpanded(record, openingNeedsFocus.has(id));\n });\n changed.forEach((id) => {\n const record = recordFor(id);\n const start = from.get(id);\n if (!record || start === undefined) return;\n const target = mainSize(record.panel);\n transitionGeometry.set(id, {from: start, to: target});\n applyGeometry(record, start);\n });\n };\n\n const finishChange = (): void => {\n const opening = [...context().change.openingIds];\n const closing = [...context().change.closingIds];\n const closingNeedsFocus = new Set(closing.filter((id) => {\n const record = recordFor(id);\n const active = document.activeElement;\n return record !== null && active instanceof HTMLElement && record.expanded.contains(active);\n }));\n records().forEach((record) => applyGeometry(record));\n syncAll();\n closing.forEach((id) => {\n const record = recordFor(id);\n if (record) focusCollapsed(record, closingNeedsFocus.has(id));\n });\n opening.forEach((panelId) => emitPanelEvent('ui:panel-expand', panelId));\n closing.forEach((panelId) => emitPanelEvent('ui:panel-collapse', panelId));\n [...opening, ...closing].forEach((id) => transitionGeometry.delete(id));\n };\n\n const emitPanelEvent = (name: string, panelId: string, detail: Record<string, unknown> = {}): void => {\n dispatch({el: root(), name, detail: {\n groupId: currentProps().id,\n panelId,\n __panelsNotification: true,\n ...detail,\n }});\n };\n\n const persist = (): void => {\n const layout = context().layout;\n if (currentProps().persist) {\n try {\n localStorage.setItem(storageKey(currentProps().id), JSON.stringify({\n collapsed: layout.collapsedIds,\n sizes: layout.committedSizes,\n }));\n } catch {\n // Persistence is optional; layout state remains committed in memory.\n }\n }\n dispatch({el: root(), name: 'ui:panels-layout-change', detail: {\n groupId: currentProps().id,\n collapsed: [...layout.collapsedIds],\n sizes: {...layout.committedSizes},\n __panelsNotification: true,\n }});\n };\n\n const runWhenStable = (callback: () => void): void => {\n if (!rootEl) return;\n if (bridge.hasTag('stable')) {\n callback();\n return;\n }\n const timer = window.setTimeout(() => {\n deferredTimers.delete(timer);\n runWhenStable(callback);\n }, 16);\n deferredTimers.add(timer);\n };\n\n const reconcileCollapsedState = (\n ids: readonly string[],\n wantsCollapsed: (id: string) => boolean,\n ): void => {\n const next = ids.find((id) => wantsCollapsed(id) !== isCollapsed(id));\n if (!next) return;\n bridge.send({type: wantsCollapsed(next) ? 'COLLAPSE' : 'EXPAND', panelId: next});\n runWhenStable(() => reconcileCollapsedState(ids, wantsCollapsed));\n };\n\n const restorePersistedLayout = (): void => {\n if (!currentProps().persist) return;\n let stored: {collapsed?: unknown; sizes?: unknown};\n try {\n stored = JSON.parse(localStorage.getItem(storageKey(currentProps().id)) ?? 'null') as {\n collapsed?: unknown;\n sizes?: unknown;\n };\n } catch {\n return;\n }\n if (typeof stored !== 'object' || stored === null) return;\n\n const collection = collectionState();\n const collapsible = collection.filter((descriptor) => descriptor.collapsible);\n const desiredCollapsed = new Set(\n (Array.isArray(stored.collapsed) ? stored.collapsed : [])\n .filter((id): id is string => (\n typeof id === 'string' && collapsible.some((descriptor) => descriptor.id === id)\n )),\n );\n const desiredSizes = numericRecord(stored.sizes);\n\n const restoreCollapsedState = (): void => {\n reconcileCollapsedState(collapsible.map(({id}) => id), (id) => desiredCollapsed.has(id));\n };\n\n const restoreSizes = (): void => {\n const changes = collection.filter((descriptor) => descriptor.kind === 'bounded')\n .flatMap(({id}): PanelSizingTransitionData[] => {\n const record = recordFor(id);\n const storedSize = desiredSizes[id];\n if (!record || storedSize === undefined) return [];\n const from = mainSize(record.panel);\n const to = clampPanelSize(record, storedSize);\n return Math.abs(from - to) < 0.5 ? [] : [{panelId: id, from, to}];\n });\n if (isResponsiveStacked()) {\n if (changes.length > 0) bridge.send({type: 'RESTORE_HIDDEN_SIZES', changes});\n restoreCollapsedState();\n return;\n }\n const hidden = changes.filter(({panelId: id}) => isCollapsed(id));\n const visible = changes.filter(({panelId: id}) => !isCollapsed(id));\n if (hidden.length > 0) bridge.send({type: 'RESTORE_HIDDEN_SIZES', changes: hidden});\n if (visible.length > 0) {\n bridge.send({type: 'SIZE', changes: visible});\n runWhenStable(restoreCollapsedState);\n return;\n }\n restoreCollapsedState();\n };\n\n const opening = collapsible.map(({id}) => id)\n .filter((id) => isCollapsed(id) && !desiredCollapsed.has(id));\n if (opening.length > 0) {\n reconcileCollapsedState(opening, () => false);\n runWhenStable(restoreSizes);\n } else restoreSizes();\n };\n\n const schedulePersistedRestore = (): void => {\n const first = requestAnimationFrame(() => {\n restoreFrames.delete(first);\n const second = requestAnimationFrame(() => {\n restoreFrames.delete(second);\n restorePersistedLayout();\n });\n restoreFrames.add(second);\n });\n restoreFrames.add(first);\n };\n\n const resetLayout = (panelId?: string): void => {\n const collection = collectionState();\n const targets = panelId ? collection.filter(({id}) => id === panelId) : collection;\n if (targets.length === 0) return;\n\n const restoreCollapsedState = (): void => {\n reconcileCollapsedState(\n targets.filter((descriptor) => descriptor.collapsible).map(({id}) => id),\n (id) => collection.find((descriptor) => descriptor.id === id)?.defaultCollapsed === true,\n );\n };\n\n const sizedIds = targets.filter((descriptor) => descriptor.kind === 'bounded')\n .map(({id}) => id)\n .filter((id) => Object.hasOwn(context().layout.committedSizes, id));\n if (isResponsiveStacked()) {\n if (sizedIds.length > 0) {\n bridge.send({type: 'RESET_HIDDEN_SIZES', ids: sizedIds});\n runWhenStable(restoreCollapsedState);\n } else restoreCollapsedState();\n return;\n }\n const hiddenIds = sizedIds.filter(isCollapsed);\n if (hiddenIds.length > 0) bridge.send({type: 'RESET_HIDDEN_SIZES', ids: hiddenIds});\n\n const visible = sizedIds.filter((id) => !isCollapsed(id)).flatMap((id): PanelSizingTransitionData[] => {\n const record = recordFor(id);\n if (!record || record.props.size === 'fill') return [];\n return [{\n panelId: id,\n from: mainSize(record.panel),\n to: cssLength(`--spacing-panel-${record.props.size}`),\n reset: true,\n }];\n });\n if (visible.length > 0) {\n bridge.send({type: 'SIZE', changes: visible});\n runWhenStable(restoreCollapsedState);\n return;\n }\n restoreCollapsedState();\n };\n\n const prepareSizing = (): void => {\n context().sizing.changes.forEach(({panelId: id, from}) => {\n const record = recordFor(id);\n if (record) applyGeometry(record, from);\n });\n };\n\n const finishSizing = (): void => {\n context().sizing.changes.forEach(({panelId: id, to}) => {\n const record = recordFor(id);\n if (!record) return;\n applyGeometry(record);\n emitPanelEvent('ui:panel-resize-end', id, {size: to});\n });\n syncAll();\n };\n\n const resizeDirection = (edge: PanelResizeEdge): ResizeDirection => {\n if (effectiveOrientation() === 'vertical') return edge === 'start' ? 'negative' : 'positive';\n const rtl = isRtl({el: root()});\n return edge === 'start' ? rtl ? 'positive' : 'negative' : rtl ? 'negative' : 'positive';\n };\n\n const initializeResizeHandles = (): void => {\n const group = resizeCleanup;\n if (!group) return;\n const currentPanels = new Set(records().map(({panel}) => panel));\n resizeCleanups.forEach((owner, panel) => {\n if (currentPanels.has(panel)) return;\n owner.run();\n resizeCleanups.delete(panel);\n });\n records().forEach((record) => {\n if (resizeCleanups.has(record.panel) || !record.handle || record.props.size === 'fill' || record.props.resize === 'none') return;\n const bounds = boundsFor(record);\n const handleSize = cssLength('--spacing-panel-resize-handle');\n const coarseHandleSize = cssLength('--spacing-panel-resize-handle-coarse');\n const owner = new CleanupManager();\n group.addChild(owner);\n owner.add(createResizable({\n element: record.panel,\n handle: record.handle,\n axis: effectiveOrientation() === 'horizontal' ? 'x' : 'y',\n direction: resizeDirection(record.props.resize),\n min: bounds.minimum,\n max: bounds.maximum,\n mode: 'onChange',\n hitArea: handleSize,\n coarseHitArea: coarseHandleSize,\n disabled: () => isResponsiveStacked() || isCollapsed(record.props.id),\n onStart: (event) => bridge.send({type: 'RESIZE_START', panelId: record.props.id, size: resizeValue(event)}),\n onResize: (event) => bridge.send({type: 'RESIZE', panelId: record.props.id, size: resizeValue(event)}),\n onEnd: (event) => bridge.send({type: 'RESIZE_END', panelId: record.props.id, size: resizeValue(event)}),\n }));\n resizeCleanups.set(record.panel, owner);\n });\n };\n\n const reinitializeResizeHandles = (): void => {\n resizeCleanup?.run();\n resizeCleanups.clear();\n resizeCleanup = new CleanupManager();\n cleanup.addChild(resizeCleanup);\n initializeResizeHandles();\n };\n\n const resizeValue = (event: ResizeEvent): number => effectiveOrientation() === 'horizontal'\n ? event.previewWidth\n : event.previewHeight;\n\n const reconcileResponsiveMode = (width: number): void => {\n const next: PanelsResponsiveMode = currentProps().orientation === 'horizontal'\n && width < compositionBreakpointPixels(root(), 'sm')\n ? 'stacked'\n : 'wide';\n if (next === responsiveMode) return;\n responsiveMode = next;\n syncAll();\n reinitializeResizeHandles();\n };\n\n const bridge = createAlpineMachine({\n schema: panelsSchema,\n hooks: panelsHooks,\n resolveTransitionElement: ({data}) => {\n const panelId = (data as PanelTransitionData | undefined)?.panelId;\n return panelId ? recordFor(panelId)?.panel ?? null : root();\n },\n createMachine: ({props}) => createPanelsMachine({\n props,\n context: initialContext(),\n effects: {\n prepareChange,\n finishChange,\n sync: () => {\n syncAll();\n reinitializeResizeHandles();\n },\n beginResize: () => {\n syncAll();\n },\n previewResize: () => {\n const id = context().resize.activeId;\n const record = recordFor(id);\n if (record) applyGeometry(record);\n const size = context().resize.previewSize;\n if (size !== null) emitPanelEvent('ui:panel-resize', id, {size});\n },\n commitResize: (scope) => {\n syncAll();\n const id = typeof scope.event.panelId === 'string' ? scope.event.panelId : '';\n const size = context().layout.committedSizes[id];\n if (id && size !== undefined) emitPanelEvent('ui:panel-resize-end', id, {size});\n },\n cancelResize: syncAll,\n prepareSizing,\n finishSizing,\n persist,\n },\n }),\n });\n\n const sendPanelsChanged = (): void => {\n const collection = collectionState();\n bridge.send({type: 'PANELS_CHANGED', collection});\n initializeResizeHandles();\n };\n\n const setupObserver = (): void => {\n disconnectObserver = observeSemanticChanges({\n targets: root(),\n read: collectionState,\n onChange: sendPanelsChanged,\n observer: {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\n 'id', 'data-size', 'data-resize', 'data-collapsible', 'data-default-collapsed',\n ],\n },\n });\n };\n\n let component!: TrellisAlpineComponent<PanelsData>;\n component = {\n ...bridge,\n get id() { return root().id || currentProps().id; },\n get orientation() { return effectiveOrientation(); },\n get collapsed() { return [...context().layout.collapsedIds]; },\n get sizes() { return {...context().layout.committedSizes}; },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: panelsStyles.parts.root, props, className: props.class}),\n {'data-ui-panels': ''},\n ]});\n },\n init(): void {\n cleanup = cleanupManagerFor(this);\n resizeCleanup = new CleanupManager();\n cleanup.addChild(resizeCleanup);\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n root().id ||= currentProps().id;\n responsiveMode = currentProps().orientation === 'horizontal'\n && root().getBoundingClientRect().width < compositionBreakpointPixels(root(), 'sm')\n ? 'stacked'\n : 'wide';\n controllers.add(component);\n registerDocumentListeners();\n syncAll();\n initializeResizeHandles();\n resizeObserver = new ResizeObserver((entries) => {\n reconcileResponsiveMode(entries[0]?.contentRect.width ?? root().clientWidth);\n });\n resizeObserver.observe(root());\n setupObserver();\n if (currentProps().persist) schedulePersistedRestore();\n addListener({target: root(), event: 'keydown', handler: () => syncToggles(), cleanup});\n },\n destroy(): void {\n controllers.delete(component);\n disconnectObserver?.();\n disconnectObserver = null;\n resizeObserver?.disconnect();\n resizeObserver = null;\n resizeCleanups.clear();\n resizeCleanup = null;\n deferredTimers.forEach((timer) => window.clearTimeout(timer));\n deferredTimers.clear();\n restoreFrames.forEach((frame) => cancelAnimationFrame(frame));\n restoreFrames.clear();\n bridge.disconnect();\n rootEl = null;\n },\n transitionPanel(transition: PanelMotionTransition): MotionHandle {\n const id = transition.data.panelId;\n const record = recordFor(id);\n const geometry = transitionGeometry.get(id);\n if (!record || !geometry || geometry.from === geometry.to) {\n if (record) applyGeometry(record, geometry?.to);\n return noopHandle();\n }\n return animateSize(transition, {\n target: record.panel,\n keyframes: {flexBasis: [`${geometry.from}px`, `${geometry.to}px`]},\n role: 'layout',\n cleanup: () => applyGeometry(record),\n });\n },\n transitionPanelSize(transition: PanelSizingMotionTransition): MotionHandle {\n const {panelId: id, from, to} = transition.data;\n const record = recordFor(id);\n if (!record || from === to) {\n if (record) applyGeometry(record);\n return noopHandle();\n }\n return animateSize(transition, {\n target: record.panel,\n keyframes: {flexBasis: [`${from}px`, `${to}px`]},\n role: 'layoutQuick',\n cleanup: () => applyGeometry(record),\n });\n },\n hasPanel(id: string): boolean { return recordFor(id) !== null; },\n isCollapsed,\n collapse(id: string): void { bridge.send({type: 'COLLAPSE', panelId: id}); },\n expand(id: string): void { bridge.send({type: 'EXPAND', panelId: id}); },\n toggle(id: string): void { bridge.send({type: 'TOGGLE', panelId: id}); },\n resize(id: string, size: number): void {\n const record = recordFor(id);\n if (\n isResponsiveStacked()\n || !record\n || record.props.size === 'fill'\n || isCollapsed(id)\n || !Number.isFinite(size)\n ) return;\n const from = mainSize(record.panel);\n const to = clampPanelSize(record, size);\n if (Math.abs(from - to) < 0.5) return;\n bridge.send({type: 'SIZE', panelId: id, from, to});\n },\n reset(id?: string): void { resetLayout(id); },\n perform(action: PanelToggleAction, id: string, trigger?: HTMLElement | null): void {\n if (trigger) activeTriggers.set(id, trigger);\n ({collapse: this.collapse, expand: this.expand, toggle: this.toggle})[action](id);\n },\n syncToggles,\n };\n\n return component;\n};\n\nconst UiPanelToggle = (): TrellisAlpineComponent<{\n props: PanelToggleProps;\n readonly root: BindingObject;\n trigger(event?: Event): void;\n}> => {\n let props = {} as PanelToggleProps;\n return {\n get props() { return props; },\n init() { props = decodeProps({el: this.$el, schema: panelToggleSchema}); },\n destroy() {},\n get root() {\n return mergeBindings({inputs: [\n resolveStyle({part: panelsStyles.parts.toggle, props: {}, className: props.class}),\n {\n 'data-ui-panel-toggle': '',\n ':data-target': () => props.target || undefined,\n ':data-action': () => props.action,\n '@click': (event: Event) => this.trigger(event),\n },\n ]});\n },\n trigger(event?: Event) {\n event?.preventDefault();\n const button = this.$el as HTMLElement;\n const closestPanel = button.closest<HTMLElement>('[data-ui-panel]');\n const closestGroup = closestPanel?.closest<HTMLElement>('[data-ui-panels]');\n const target = props.target || closestPanel?.id || '';\n if (!target) return;\n document.dispatchEvent(new CustomEvent('ui:panel-toggle', {detail: {\n panelId: target,\n groupId: closestGroup?.id,\n action: props.action,\n trigger: button,\n }}));\n },\n };\n};\n\nconst registerPanels = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiPanels', UiPanels)(AlpineInstance);\n defineAlpineData('UiPanelToggle', UiPanelToggle)(AlpineInstance);\n};\n\nexport {registerPanels, UiPanels, UiPanelToggle};\nexport type {\n PanelEventDetail,\n PanelsData,\n PanelsPersistTransitionData,\n PanelSizingTransitionData,\n PanelsTransition,\n UiPanelsApi,\n};\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 {registerResizableCapability} from '../../capabilities/resizable';\nimport {registerPanels as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerPanels = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerPanels};\nexport default registerPanels;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as e,t}from"./dom-DiTFTWeR.js";import{t as n}from"./morph-Cq3V_23_.js";import{c as r,f as i,n as a,s as o}from"./codecs-Cb1ns_47.js";import{t as s}from"./alpine-machine-9HwatUrm.js";import{n as c,t as l}from"./alpine-data-Dvc_bXq6.js";import{t as u}from"./machine-DQfpKM3w.js";import{n as d}from"./props-change-2xfsIAEN.js";import{t as f}from"./focus-scope-DtaPVNl5.js";var p={prefix:i.trim,minForms:r.min(0).step(1).default(0),maxForms:o(null),disabled:a},m=e=>d(e.event)?.props??e.props,h=({props:e,context:t,effects:n})=>u({initial:`ready`,states:{ready:{tags:[`ready`],on:{ADD:[{guard:`canIncrease`,effects:`add`},{guard:`atMax`,effects:`maxLimit`}],REMOVE:[{guard:`canRemove`,effects:`remove`},{guard:`atMin`,effects:`minLimit`}],RESTORE:[{guard:`canIncrease`,effects:`restore`},{guard:`atMax`,effects:`maxLimit`}],REFRESH:{effects:`refresh`},DOM_INVALIDATED:{effects:`refresh`},RECONCILED:{reduce:`reconcile`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`refresh`}}}}},{context:t,props:e,reducers:{reconcile:e=>({context:{activeCount:typeof e.event.activeCount==`number`?e.event.activeCount:e.context.activeCount}}),replaceProps:e=>({props:m(e)})},guards:{canIncrease:({context:e,props:t})=>!t.disabled&&(t.maxForms===null||e.activeCount<t.maxForms),atMax:({context:e,props:t})=>!t.disabled&&t.maxForms!==null&&e.activeCount>=t.maxForms,canRemove:({context:e,props:t})=>!t.disabled&&e.activeCount>t.minForms,atMin:({context:e,props:t})=>!t.disabled&&e.activeCount<=t.minForms},effects:n}),g=[],_=`[data-ui-formset-item]`,v=[`data-can-add`,`data-can-remove`,`data-active-count`],y=r=>{let i=null,a=null,o=null,c=null,u=null,d=!1,m,y=0,b=()=>{if(!i)throw Error(`Formset has not been initialized.`);return i},x=()=>{if(!a)throw Error(`Formset template is unavailable.`);return a},S=()=>{if(!o)throw Error(`Formset container is unavailable.`);return o},C=()=>{if(!c)throw Error(`Formset management inputs are unavailable.`);return c},w=()=>q.getCommittedSnapshot().props,T=()=>q.getCommittedSnapshot().context,E=e=>e.closest(`[data-ui-formset]`)===b(),D=e=>Array.from(b().querySelectorAll(e)).find(E)??null,O=()=>{if(a=D(`template[data-ui-formset-template]`),o=D(`[data-ui-formset-container]`),!a||!o)throw Error(`ui.formset requires one template and live item container.`)},k=e=>Array.from(b().querySelectorAll(`input[name]`)).find(t=>t.name===e&&E(t))??null,A=e=>{let t=Number(e.dataset.formIndex);return Number.isInteger(t)&&t>=0?t:null},j=()=>Array.from(S().querySelectorAll(_)).filter(e=>E(e)&&e.closest(_)===e),M=(e,t=w().prefix)=>{let n=A(e);if(n===null)return null;let r=`${t}-${n}-DELETE`;return Array.from(e.querySelectorAll(`input[name]`)).find(e=>e.name===r&&e.type===`checkbox`)??null},N=()=>{let e=Array.from(x().content.querySelectorAll(_)).filter(e=>!e.parentElement?.closest(_));if(e.length!==1)throw Error(`ui.formset empty slot must contain exactly one ui.formset.item.`);return e[0]},P=e=>{let t={total:`${e}-TOTAL_FORMS`,initial:`${e}-INITIAL_FORMS`,min:`${e}-MIN_NUM_FORMS`,max:`${e}-MAX_NUM_FORMS`},n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,k(t)]));if(!n.total||!n.initial||!n.min||!n.max)throw Error(`ui.formset requires a complete Django management form.`);return n},F=e=>{if(O(),!e.prefix||e.prefix.includes(`__prefix__`))throw Error(`ui.formset requires a safe, non-empty prefix.`);if(e.maxForms!==null&&(!Number.isInteger(e.maxForms)||e.maxForms<0))throw Error(`ui.formset maxForms must be null or a non-negative integer.`);let t=N();if(t.dataset.formIndex!==`__prefix__`)throw Error(`ui.formset empty item requires the __prefix__ form index.`);let n=`${e.prefix}-__prefix__-DELETE`;if(!Array.from(t.querySelectorAll(`input[name]`)).find(e=>e.name===n&&e.type===`checkbox`))throw Error(`ui.formset empty item requires a Boolean DELETE input.`);let r=P(e.prefix);if(Object.values(r).map(e=>Number(e.value)).some(e=>!Number.isInteger(e)||e<0))throw Error(`ui.formset management counts must be non-negative integers.`);let i=Number(r.total.value),a=new Set,o=0;for(let t of j()){let n=A(t);if(n===null||a.has(n)||n>=i)throw Error(`ui.formset items require unique indexes below TOTAL_FORMS.`);a.add(n);let r=M(t,e.prefix);if(!r)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);r.checked||(o+=1)}return c=r,{activeCount:o}},I=e=>{let t=M(e);if(!t)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);t.setAttribute(`data-ui-formset-delete`,``);let n=t.checked;e.dataset.formState=n?`deleted`:`active`,e.hidden=n},L=()=>{let e=w();c=P(e.prefix);let t=j();t.forEach(I);let n=t.filter(e=>e.dataset.formState!==`deleted`).length;q.send({type:`RECONCILED`,activeCount:n});let r=!e.disabled&&(e.maxForms===null||n<e.maxForms),i=!e.disabled&&n>e.minForms;return b().dataset.activeCount=String(n),b().dataset.canAdd=String(r),b().dataset.canRemove=String(i),b().querySelectorAll(`[data-ui-formset-empty]`).forEach(e=>{E(e)&&(e.hidden=n!==0)}),n},R=e=>{if(b().dataset.announce===`false`)return;let t=D(`[data-ui-formset-status]`);t&&(t.textContent=e)},z=(t,n,r,i)=>{e({el:b(),name:`ui:formset-${t}`,detail:{index:n,item:r,activeCount:i},composed:!0}),e({el:b(),name:`ui:formset-change`,detail:{operation:t,index:n,activeCount:i},composed:!0})},B=(e,t)=>{[e,...Array.from(e.querySelectorAll(`*`))].forEach(e=>Array.from(e.attributes).forEach(n=>{n.value.includes(`__prefix__`)&&e.setAttribute(n.name,n.value.replaceAll(`__prefix__`,String(t)))}))},V=e=>{let t=b().dataset.focus,n=null;if(t)try{n=e.matches(t)?e:e.querySelector(t)}catch{n=null}n??=e.querySelector(f),n&&!n.hasAttribute(`disabled`)&&n.focus()},H=e=>{if(e instanceof HTMLElement){let t=e.matches(_)?e:e.closest(_);return t&&j().includes(t)?t:null}if(typeof e==`number`&&Number.isInteger(e))return j().find(t=>A(t)===e)??null;let t=b().ownerDocument.activeElement;return t instanceof HTMLElement?H(t):null},U=e=>{let t=j(),n=t.indexOf(e),r=t.filter(e=>e.dataset.formState!==`deleted`),i=r.find(e=>t.indexOf(e)>n),a=[...r].reverse().find(e=>t.indexOf(e)<n),o=i??a;if(o)return o.querySelector(f);let s=D(`[data-ui-formset-add]`);return s?s.matches(f)?s:s.querySelector(f):null},W=e=>{let t=new Set((b().getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/).filter(Boolean));v.forEach(n=>e?t.add(n):t.delete(n)),t.size>0?b().setAttribute(n,[...t].join(` `)):b().removeAttribute(n)},G=e=>{let t=e.detail?.source;return t instanceof Element&&(t.contains(b())||b().contains(t))},K,q=s({schema:p,hooks:g,createMachine:({props:t})=>h({props:t,context:F(t),effects:{add(){d=!1,u=null;let e=Number(C().total.value),t=N().cloneNode(!0);B(t,e);let n=M(t);if(!n)throw Error(`ui.formset empty item requires a Boolean DELETE input.`);n.checked=!1,I(t),S().append(t);try{r.initTree(t)}catch(e){throw r.destroyTree(t),t.remove(),e}C().total.value=String(e+1);let i=L();V(t),u=t,d=!0,R(`Row ${e+1} added.`),z(`add`,e,t,i)},remove(e){d=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!j().includes(t))return;let n=M(t),r=A(t);if(!n||r===null||n.checked)return;let i=U(t);n.checked=!0,I(t);let a=L();i?.focus(),d=!0,R(`Row ${r+1} removed.`),z(`remove`,r,t,a)},restore(e){d=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!j().includes(t))return;let n=M(t),r=A(t);if(!n||r===null||!n.checked)return;n.checked=!1,I(t);let i=L();d=!0,z(`restore`,r,t,i)},refresh(){F(w()),L()},maxLimit(){e({el:b(),name:`ui:formset-limit`,detail:{limit:`max`,activeCount:T().activeCount},composed:!0})},minLimit(){e({el:b(),name:`ui:formset-limit`,detail:{limit:`min`,activeCount:T().activeCount},composed:!0})}}})});return K={...q,get activeCount(){return this.snapshot.current?.context.activeCount??0},get canAdd(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&(e.props.maxForms===null||e.context.activeCount<e.props.maxForms))},get canRemove(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&e.context.activeCount>e.props.minForms)},init(){m=l(this),i=this.$el,q.connect(this.$el,this.snapshot),L(),t({target:b().ownerDocument,event:`ui:request:start`,cleanup:m,handler:e=>{G(e)&&(y+=1,W(!0))}}),t({target:b().ownerDocument,event:`ui:request:finish`,cleanup:m,handler:e=>{G(e)&&(y=Math.max(0,y-1),y===0&&W(!1),q.send(`REFRESH`))}})},destroy(){y>0&&W(!1),y=0,q.disconnect(),c=null,o=null,a=null,i=null,u=null},add(){return u=null,q.send(`ADD`),u},remove(e){let t=H(e);return d=!1,!t||t.dataset.formState===`deleted`?!1:(q.send({type:`REMOVE`,item:t}),d)},restore(e){let t=H(e);return d=!1,!t||t.dataset.formState!==`deleted`?!1:(q.send({type:`RESTORE`,item:t}),d)},refresh(){q.send(`REFRESH`)}},K},b=e=>{c(`UiFormset`,()=>y(e))(e)},x=new WeakSet,S=e=>{x.has(e)||(x.add(e),b(e))};export{y as n,S as t};
2
- //# sourceMappingURL=entry.generated-x0moHcUM.js.map
1
+ import{r as e,t}from"./dom-DiTFTWeR.js";import{t as n}from"./morph-Cq3V_23_.js";import{c as r,f as i,n as a,s as o}from"./codecs-CQ7olTJL.js";import{t as s}from"./alpine-machine-CE2UN4Qu.js";import{n as c,t as l}from"./alpine-data-Dvc_bXq6.js";import{t as u}from"./machine-CNnHDbyo.js";import{n as d}from"./props-change-2xfsIAEN.js";import{t as f}from"./focus-scope-DtaPVNl5.js";var p={prefix:i.trim,minForms:r.min(0).step(1).default(0),maxForms:o(null),disabled:a},m=e=>d(e.event)?.props??e.props,h=({props:e,context:t,effects:n})=>u({initial:`ready`,states:{ready:{tags:[`ready`],on:{ADD:[{guard:`canIncrease`,effects:`add`},{guard:`atMax`,effects:`maxLimit`}],REMOVE:[{guard:`canRemove`,effects:`remove`},{guard:`atMin`,effects:`minLimit`}],RESTORE:[{guard:`canIncrease`,effects:`restore`},{guard:`atMax`,effects:`maxLimit`}],REFRESH:{effects:`refresh`},DOM_INVALIDATED:{effects:`refresh`},RECONCILED:{reduce:`reconcile`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`refresh`}}}}},{context:t,props:e,reducers:{reconcile:e=>({context:{activeCount:typeof e.event.activeCount==`number`?e.event.activeCount:e.context.activeCount}}),replaceProps:e=>({props:m(e)})},guards:{canIncrease:({context:e,props:t})=>!t.disabled&&(t.maxForms===null||e.activeCount<t.maxForms),atMax:({context:e,props:t})=>!t.disabled&&t.maxForms!==null&&e.activeCount>=t.maxForms,canRemove:({context:e,props:t})=>!t.disabled&&e.activeCount>t.minForms,atMin:({context:e,props:t})=>!t.disabled&&e.activeCount<=t.minForms},effects:n}),g=[],_=`[data-ui-formset-item]`,v=[`data-can-add`,`data-can-remove`,`data-active-count`],y=r=>{let i=null,a=null,o=null,c=null,u=null,d=!1,m,y=0,b=()=>{if(!i)throw Error(`Formset has not been initialized.`);return i},x=()=>{if(!a)throw Error(`Formset template is unavailable.`);return a},S=()=>{if(!o)throw Error(`Formset container is unavailable.`);return o},C=()=>{if(!c)throw Error(`Formset management inputs are unavailable.`);return c},w=()=>q.getCommittedSnapshot().props,T=()=>q.getCommittedSnapshot().context,E=e=>e.closest(`[data-ui-formset]`)===b(),D=e=>Array.from(b().querySelectorAll(e)).find(E)??null,O=()=>{if(a=D(`template[data-ui-formset-template]`),o=D(`[data-ui-formset-container]`),!a||!o)throw Error(`ui.formset requires one template and live item container.`)},k=e=>Array.from(b().querySelectorAll(`input[name]`)).find(t=>t.name===e&&E(t))??null,A=e=>{let t=Number(e.dataset.formIndex);return Number.isInteger(t)&&t>=0?t:null},j=()=>Array.from(S().querySelectorAll(_)).filter(e=>E(e)&&e.closest(_)===e),M=(e,t=w().prefix)=>{let n=A(e);if(n===null)return null;let r=`${t}-${n}-DELETE`;return Array.from(e.querySelectorAll(`input[name]`)).find(e=>e.name===r&&e.type===`checkbox`)??null},N=()=>{let e=Array.from(x().content.querySelectorAll(_)).filter(e=>!e.parentElement?.closest(_));if(e.length!==1)throw Error(`ui.formset empty slot must contain exactly one ui.formset.item.`);return e[0]},P=e=>{let t={total:`${e}-TOTAL_FORMS`,initial:`${e}-INITIAL_FORMS`,min:`${e}-MIN_NUM_FORMS`,max:`${e}-MAX_NUM_FORMS`},n=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,k(t)]));if(!n.total||!n.initial||!n.min||!n.max)throw Error(`ui.formset requires a complete Django management form.`);return n},F=e=>{if(O(),!e.prefix||e.prefix.includes(`__prefix__`))throw Error(`ui.formset requires a safe, non-empty prefix.`);if(e.maxForms!==null&&(!Number.isInteger(e.maxForms)||e.maxForms<0))throw Error(`ui.formset maxForms must be null or a non-negative integer.`);let t=N();if(t.dataset.formIndex!==`__prefix__`)throw Error(`ui.formset empty item requires the __prefix__ form index.`);let n=`${e.prefix}-__prefix__-DELETE`;if(!Array.from(t.querySelectorAll(`input[name]`)).find(e=>e.name===n&&e.type===`checkbox`))throw Error(`ui.formset empty item requires a Boolean DELETE input.`);let r=P(e.prefix);if(Object.values(r).map(e=>Number(e.value)).some(e=>!Number.isInteger(e)||e<0))throw Error(`ui.formset management counts must be non-negative integers.`);let i=Number(r.total.value),a=new Set,o=0;for(let t of j()){let n=A(t);if(n===null||a.has(n)||n>=i)throw Error(`ui.formset items require unique indexes below TOTAL_FORMS.`);a.add(n);let r=M(t,e.prefix);if(!r)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);r.checked||(o+=1)}return c=r,{activeCount:o}},I=e=>{let t=M(e);if(!t)throw Error(`ui.formset requires a Boolean DELETE input for every row.`);t.setAttribute(`data-ui-formset-delete`,``);let n=t.checked;e.dataset.formState=n?`deleted`:`active`,e.hidden=n},L=()=>{let e=w();c=P(e.prefix);let t=j();t.forEach(I);let n=t.filter(e=>e.dataset.formState!==`deleted`).length;q.send({type:`RECONCILED`,activeCount:n});let r=!e.disabled&&(e.maxForms===null||n<e.maxForms),i=!e.disabled&&n>e.minForms;return b().dataset.activeCount=String(n),b().dataset.canAdd=String(r),b().dataset.canRemove=String(i),b().querySelectorAll(`[data-ui-formset-empty]`).forEach(e=>{E(e)&&(e.hidden=n!==0)}),n},R=e=>{if(b().dataset.announce===`false`)return;let t=D(`[data-ui-formset-status]`);t&&(t.textContent=e)},z=(t,n,r,i)=>{e({el:b(),name:`ui:formset-${t}`,detail:{index:n,item:r,activeCount:i},composed:!0}),e({el:b(),name:`ui:formset-change`,detail:{operation:t,index:n,activeCount:i},composed:!0})},B=(e,t)=>{[e,...Array.from(e.querySelectorAll(`*`))].forEach(e=>Array.from(e.attributes).forEach(n=>{n.value.includes(`__prefix__`)&&e.setAttribute(n.name,n.value.replaceAll(`__prefix__`,String(t)))}))},V=e=>{let t=b().dataset.focus,n=null;if(t)try{n=e.matches(t)?e:e.querySelector(t)}catch{n=null}n??=e.querySelector(f),n&&!n.hasAttribute(`disabled`)&&n.focus()},H=e=>{if(e instanceof HTMLElement){let t=e.matches(_)?e:e.closest(_);return t&&j().includes(t)?t:null}if(typeof e==`number`&&Number.isInteger(e))return j().find(t=>A(t)===e)??null;let t=b().ownerDocument.activeElement;return t instanceof HTMLElement?H(t):null},U=e=>{let t=j(),n=t.indexOf(e),r=t.filter(e=>e.dataset.formState!==`deleted`),i=r.find(e=>t.indexOf(e)>n),a=[...r].reverse().find(e=>t.indexOf(e)<n),o=i??a;if(o)return o.querySelector(f);let s=D(`[data-ui-formset-add]`);return s?s.matches(f)?s:s.querySelector(f):null},W=e=>{let t=new Set((b().getAttribute(`data-ui-preserve-attr`)??``).split(/\s+/).filter(Boolean));v.forEach(n=>e?t.add(n):t.delete(n)),t.size>0?b().setAttribute(n,[...t].join(` `)):b().removeAttribute(n)},G=e=>{let t=e.detail?.source;return t instanceof Element&&(t.contains(b())||b().contains(t))},K,q=s({schema:p,hooks:g,createMachine:({props:t})=>h({props:t,context:F(t),effects:{add(){d=!1,u=null;let e=Number(C().total.value),t=N().cloneNode(!0);B(t,e);let n=M(t);if(!n)throw Error(`ui.formset empty item requires a Boolean DELETE input.`);n.checked=!1,I(t),S().append(t);try{r.initTree(t)}catch(e){throw r.destroyTree(t),t.remove(),e}C().total.value=String(e+1);let i=L();V(t),u=t,d=!0,R(`Row ${e+1} added.`),z(`add`,e,t,i)},remove(e){d=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!j().includes(t))return;let n=M(t),r=A(t);if(!n||r===null||n.checked)return;let i=U(t);n.checked=!0,I(t);let a=L();i?.focus(),d=!0,R(`Row ${r+1} removed.`),z(`remove`,r,t,a)},restore(e){d=!1;let t=e.event.item;if(!(t instanceof HTMLElement)||!j().includes(t))return;let n=M(t),r=A(t);if(!n||r===null||!n.checked)return;n.checked=!1,I(t);let i=L();d=!0,z(`restore`,r,t,i)},refresh(){F(w()),L()},maxLimit(){e({el:b(),name:`ui:formset-limit`,detail:{limit:`max`,activeCount:T().activeCount},composed:!0})},minLimit(){e({el:b(),name:`ui:formset-limit`,detail:{limit:`min`,activeCount:T().activeCount},composed:!0})}}})});return K={...q,get activeCount(){return this.snapshot.current?.context.activeCount??0},get canAdd(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&(e.props.maxForms===null||e.context.activeCount<e.props.maxForms))},get canRemove(){let e=this.snapshot.current;return!!(e&&!e.props.disabled&&e.context.activeCount>e.props.minForms)},init(){m=l(this),i=this.$el,q.connect(this.$el,this.snapshot),L(),t({target:b().ownerDocument,event:`ui:request:start`,cleanup:m,handler:e=>{G(e)&&(y+=1,W(!0))}}),t({target:b().ownerDocument,event:`ui:request:finish`,cleanup:m,handler:e=>{G(e)&&(y=Math.max(0,y-1),y===0&&W(!1),q.send(`REFRESH`))}})},destroy(){y>0&&W(!1),y=0,q.disconnect(),c=null,o=null,a=null,i=null,u=null},add(){return u=null,q.send(`ADD`),u},remove(e){let t=H(e);return d=!1,!t||t.dataset.formState===`deleted`?!1:(q.send({type:`REMOVE`,item:t}),d)},restore(e){let t=H(e);return d=!1,!t||t.dataset.formState!==`deleted`?!1:(q.send({type:`RESTORE`,item:t}),d)},refresh(){q.send(`REFRESH`)}},K},b=e=>{c(`UiFormset`,()=>y(e))(e)},x=new WeakSet,S=e=>{x.has(e)||(x.add(e),b(e))};export{y as n,S as t};
2
+ //# sourceMappingURL=entry.generated-B7n4iFyw.js.map