@vireo-ai/trellis-ui 0.1.55 → 0.1.57

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 (183) hide show
  1. package/README.md +1 -23
  2. package/package.json +3 -2
  3. package/packages/client/src/components/data-grid/styles.css +0 -16
  4. package/packages/client/src/components/panels/styles.css +2 -10
  5. package/packages/client/src/styles/components.css +1 -1
  6. package/packages/client/src/styles/generated/theme-fonts.css +1 -1
  7. package/packages/client/src/styles/generated/theme-palette.css +275 -59
  8. package/packages/client/src/styles/generated/theme-runtime.css +1007 -24
  9. package/packages/client/src/styles/generated-sources.css +1 -1
  10. package/packages/client/src/styles/recipes/selection.css +62 -12
  11. package/packages/client/src/styles/theme-support.css +23 -2
  12. package/packages/client/types/components/accordion/index.d.ts +3 -3
  13. package/packages/client/types/components/accordion/machine.d.ts +11 -7
  14. package/packages/client/types/components/app/contract.d.ts +5 -5
  15. package/packages/client/types/components/badge/contract.d.ts +1 -1
  16. package/packages/client/types/components/box/contract.d.ts +5 -5
  17. package/packages/client/types/components/button/contract.d.ts +1 -1
  18. package/packages/client/types/components/card/contract.d.ts +2 -2
  19. package/packages/client/types/components/common.d.ts +3 -3
  20. package/packages/client/types/components/container/contract.d.ts +4 -4
  21. package/packages/client/types/components/date-picker/contract.d.ts +4 -4
  22. package/packages/client/types/components/date-picker/machine.d.ts +4 -4
  23. package/packages/client/types/components/flex/contract.d.ts +4 -4
  24. package/packages/client/types/components/frame/contract.d.ts +5 -5
  25. package/packages/client/types/components/grid/contract.d.ts +4 -4
  26. package/packages/client/types/components/input/contract.d.ts +2 -2
  27. package/packages/client/types/components/layout.d.ts +5 -5
  28. package/packages/client/types/components/menu/contract.d.ts +4 -2
  29. package/packages/client/types/components/modal/contract.d.ts +5 -4
  30. package/packages/client/types/components/modal/index.d.ts +1 -1
  31. package/packages/client/types/components/section/contract.d.ts +4 -4
  32. package/packages/client/types/components/select/contract.d.ts +3 -3
  33. package/packages/client/types/components/select/machine.d.ts +4 -4
  34. package/packages/client/types/components/sidebar/contract.d.ts +3 -3
  35. package/packages/client/types/components/stack/contract.d.ts +4 -4
  36. package/packages/client/types/components/table/contract.d.ts +1 -1
  37. package/packages/client/types/components/textarea/contract.d.ts +1 -1
  38. package/packages/client/types/components/tooltip/contract.d.ts +2 -2
  39. package/packages/client/types/runtime/engine/stream.d.ts +1 -0
  40. package/packages/client/types/runtime/focus-scope.d.ts +5 -6
  41. package/packages/client/types/runtime/focus.d.ts +9 -0
  42. package/packages/client/types/runtime/index.d.ts +2 -1
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +3278 -265
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +395 -379
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-C3q5Xzv2.js → capability-motion-BGVnZE_T.js} +2 -2
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-C3q5Xzv2.js.map → capability-motion-BGVnZE_T.js.map} +1 -1
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js +2 -0
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js.map +1 -0
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-ehmPfdn1.js +5 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-Bh6pkITu.js.map → capability-sortable-ehmPfdn1.js.map} +1 -1
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js +2 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js.map +1 -0
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js +2 -0
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js.map +1 -0
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-crMEr9_l.js → controller-CalXJ5hB.js} +2 -2
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-crMEr9_l.js.map → controller-CalXJ5hB.js.map} +1 -1
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DOHj5fa1.js → core-Ybm_WmKr.js} +2 -2
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DOHj5fa1.js.map → core-Ybm_WmKr.js.map} +1 -1
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js +2 -0
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js.map +1 -0
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BAghaHV-.js +2 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BAghaHV-.js.map +1 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D8iA1e6i.js → entry.generated-BQNpmLZO.js} +2 -2
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D8iA1e6i.js.map → entry.generated-BQNpmLZO.js.map} +1 -1
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BREj4oHG.js +2 -0
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BREj4oHG.js.map +1 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js +2 -0
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js.map +1 -0
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CvL196IN.js → entry.generated-COp9wMCd.js} +2 -2
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CvL196IN.js.map → entry.generated-COp9wMCd.js.map} +1 -1
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BmVGptdJ.js → entry.generated-CVOYoh61.js} +2 -2
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BmVGptdJ.js.map → entry.generated-CVOYoh61.js.map} +1 -1
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js +2 -0
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js.map +1 -0
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_ObpRjR.js +2 -0
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_ObpRjR.js.map +1 -0
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BLduYCHm.js → entry.generated-C_SxTqg5.js} +2 -2
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BLduYCHm.js.map → entry.generated-C_SxTqg5.js.map} +1 -1
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ollD3I52.js → entry.generated-Cb-VMAE1.js} +2 -2
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ollD3I52.js.map → entry.generated-Cb-VMAE1.js.map} +1 -1
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js +2 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +1 -0
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Dcm3s3ey.js → entry.generated-D2es_Wi2.js} +2 -2
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Dcm3s3ey.js.map → entry.generated-D2es_Wi2.js.map} +1 -1
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6ai6meC.js +2 -0
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6ai6meC.js.map +1 -0
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DYQxGle9.js +2 -0
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DYQxGle9.js.map +1 -0
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_jeOgRf.js +2 -0
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_jeOgRf.js.map +1 -0
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVOBR4CK.js → entry.generated-DaXIKPN9.js} +2 -2
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVOBR4CK.js.map → entry.generated-DaXIKPN9.js.map} +1 -1
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DqL-zI7j.js +2 -0
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DqL-zI7j.js.map +1 -0
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C3y5qBcc.js → entry.generated-EqHVGr1d.js} +2 -2
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C3y5qBcc.js.map → entry.generated-EqHVGr1d.js.map} +1 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js +2 -0
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js.map +1 -0
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-z3EbXrD0.js +2 -0
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-z3EbXrD0.js.map +1 -0
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-XeJ05afl.js → flip-Bzn312Nc.js} +2 -2
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-XeJ05afl.js.map → flip-Bzn312Nc.js.map} +1 -1
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-pk_lz9sg.js +2 -0
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-pk_lz9sg.js.map +1 -0
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-BrYxsrhc.js +2 -0
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-BrYxsrhc.js.map +1 -0
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-CbwLBhMt.js → motion-DI5H1Js0.js} +3 -3
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-CbwLBhMt.js.map → motion-DI5H1Js0.js.map} +1 -1
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-C9PrQrca.js → styles-CQDZhwd_.js} +2 -2
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-C9PrQrca.js.map → styles-CQDZhwd_.js.map} +1 -1
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CTQoglp3.js +4 -0
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CTQoglp3.js.map +1 -0
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +1 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +184 -170
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +11 -11
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +11 -11
  143. package/packages/client/src/styles/layout-participation.css +0 -17
  144. package/packages/client/types/runtime/focus-handoff.d.ts +0 -12
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BwvEqEbL.js +0 -2
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BwvEqEbL.js.map +0 -1
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bh6pkITu.js +0 -5
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-BbxUBQFs.js +0 -2
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-BbxUBQFs.js.map +0 -1
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-De1R7Xh6.js +0 -2
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-De1R7Xh6.js.map +0 -1
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-FA9FLGtB.js +0 -2
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-FA9FLGtB.js.map +0 -1
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js +0 -2
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B41qiwNq.js.map +0 -1
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B7n4iFyw.js +0 -2
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B7n4iFyw.js.map +0 -1
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BeNK2EFl.js +0 -2
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BeNK2EFl.js.map +0 -1
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bq2KAnfO.js +0 -2
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bq2KAnfO.js.map +0 -1
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3cRWutN.js +0 -2
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3cRWutN.js.map +0 -1
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CGasYxmV.js +0 -2
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CGasYxmV.js.map +0 -1
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js +0 -2
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CyynUmGS.js.map +0 -1
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js +0 -2
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DScbsE6-.js.map +0 -1
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DjKX5KuB.js +0 -2
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DjKX5KuB.js.map +0 -1
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-R1BlPlZW.js +0 -2
  173. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-R1BlPlZW.js.map +0 -1
  174. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-iMJrYzAB.js +0 -2
  175. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-iMJrYzAB.js.map +0 -1
  176. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-n_t4T8XC.js +0 -2
  177. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-n_t4T8XC.js.map +0 -1
  178. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js +0 -2
  179. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js.map +0 -1
  180. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DtaPVNl5.js +0 -2
  181. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DtaPVNl5.js.map +0 -1
  182. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CGwc8KXJ.js +0 -4
  183. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CGwc8KXJ.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-CGasYxmV.js","names":[],"sources":["../../../../../../../../client/src/components/menu/styles.ts","../../../../../../../../client/src/components/dropdown/safe-area.ts","../../../../../../../../client/src/components/dropdown/contract.ts","../../../../../../../../client/src/components/dropdown/machine.ts","../../../../../../../../client/src/components/dropdown/styles.ts","../../../../../../../../client/src/components/dropdown/index.ts","../../../../../../../../client/src/components/dropdown/entry.generated.ts"],"sourcesContent":["import {defineStyles} from '../../runtime';\nimport {\n LAYOUT_PADDING_CLASSES,\n OPTION_ICON_CLASSES,\n OPTION_ITEM_CLASSES,\n OPTION_META_CLASSES,\n POPOVER_GEOMETRY_CLASSES,\n} from '../common';\n\nconst MENU_WIDTH_CLASSES = {\n auto: '',\n '3xs': 'w-[var(--container-3xs)]',\n '2xs': 'w-[var(--container-2xs)]',\n xs: 'w-[var(--container-xs)]',\n} as const;\n\nconst minimumWidth = (token: string): string => (\n `min-w-[min(var(${token}),var(--ui-popover-available-width,var(${token})))]`\n);\n\nconst MENU_MIN_WIDTH_CLASSES = {\n auto: minimumWidth('--spacing-menu-min-width'),\n '3xs': minimumWidth('--container-3xs'),\n '2xs': minimumWidth('--container-2xs'),\n xs: minimumWidth('--container-xs'),\n} as const;\n\nconst MENU_PADDING_CLASSES = {\n auto: 'p-popover-padding',\n ...LAYOUT_PADDING_CLASSES,\n} as const;\n\nconst menuStyles = defineStyles({definition: {\n component: 'ui.menu',\n parts: {\n menu: {\n base: [\n POPOVER_GEOMETRY_CLASSES,\n 'auto-rows-min content-start max-w-[var(--ui-popover-available-width,none)] gap-1 overflow-hidden rounded-overlay-sm',\n ],\n variants: {\n width: MENU_WIDTH_CLASSES,\n minWidth: MENU_MIN_WIDTH_CLASSES,\n padding: MENU_PADDING_CLASSES,\n },\n defaults: {\n width: 'auto',\n minWidth: 'auto',\n padding: 'auto',\n },\n },\n item: {\n base: [\n OPTION_ITEM_CLASSES,\n ],\n variants: {\n variant: {\n default: '',\n subtle: '',\n filled: '',\n ghost: '',\n },\n color: {\n neutral: '',\n accent: '',\n success: '',\n warning: '',\n danger: '',\n },\n },\n defaults: {\n variant: 'default',\n color: 'neutral',\n },\n },\n itemLabel: {\n base: 'min-w-0 flex-1 truncate',\n },\n itemMeta: {\n base: OPTION_META_CLASSES,\n },\n itemIcon: {\n base: OPTION_ICON_CLASSES,\n variants: {\n position: {\n leading: '',\n trailing: 'ml-auto',\n },\n },\n defaults: {\n position: 'leading',\n },\n },\n submenu: {\n base: 'contents',\n },\n submenuPanel: {\n base: '',\n },\n group: {\n base: 'grid auto-rows-min content-start gap-1',\n },\n label: {\n base: 'px-menu-item-padding-inline py-1 font-label text-label [font-weight:var(--font-weight-label)]',\n },\n separatorRoot: {\n variants: {\n orientation: {\n vertical: 'self-stretch self-center',\n horizontal: '-mx-popover my-popover h-[var(--border-width-edge-separator)]',\n },\n },\n defaults: {\n orientation: 'horizontal',\n },\n },\n separatorRule: {\n variants: {\n orientation: {\n vertical: 'h-full w-[var(--border-width-edge-separator)] border-0',\n horizontal: 'h-[var(--border-width-edge-separator)] w-full border-0',\n },\n },\n defaults: {\n orientation: 'horizontal',\n },\n },\n },\n}});\n\nexport {MENU_MIN_WIDTH_CLASSES, MENU_PADDING_CLASSES, MENU_WIDTH_CLASSES, menuStyles};\n","type Point = {x: number; y: number};\ntype PanelRect = {left: number; right: number; top: number; bottom: number};\ntype SubmenuSafeArea = {contains(point: Point): boolean};\n\nconst edge = (point: Point, start: Point, end: Point): number => (\n (point.x - end.x) * (start.y - end.y) - (start.x - end.x) * (point.y - end.y)\n);\n\nconst createSubmenuSafeArea = ({origin, panel}: {origin: Point; panel: PanelRect}): SubmenuSafeArea => {\n const nearX = panel.left >= origin.x ? panel.left : panel.right;\n const top = {x: nearX, y: panel.top};\n const bottom = {x: nearX, y: panel.bottom};\n const minX = Math.min(origin.x, nearX);\n const maxX = Math.max(origin.x, nearX);\n\n return {\n contains(point): boolean {\n if (point.x <= minX || point.x >= maxX) return false;\n const first = edge(point, origin, top);\n const second = edge(point, top, bottom);\n const third = edge(point, bottom, origin);\n const hasNegative = first < 0 || second < 0 || third < 0;\n const hasPositive = first > 0 || second > 0 || third > 0;\n return !(hasNegative && hasPositive);\n },\n };\n};\n\nexport {createSubmenuSafeArea};\nexport type {PanelRect, Point, SubmenuSafeArea};\n","import {bool, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {ALIGNMENTS, POSITIONS, type Alignment, type Position} from '../common';\n\nconst DROPDOWN_SIDES = POSITIONS;\n\nconst DROPDOWN_ALIGNS = ALIGNMENTS;\n\ntype DropdownSide = Position;\ntype DropdownAlign = Alignment;\n\nconst dropdownSchema = {\n side: oneOf(DROPDOWN_SIDES, 'bottom' as DropdownSide),\n align: oneOf(DROPDOWN_ALIGNS, 'start' as DropdownAlign),\n offset: number.clamp(-100, 100).default(0),\n gap: number.clamp(0, 50).default(4),\n open: bool,\n disabled: bool,\n class: string,\n};\n\ntype DropdownProps = SchemaToProps<typeof dropdownSchema>;\n\nexport {\n DROPDOWN_ALIGNS,\n DROPDOWN_SIDES,\n dropdownSchema,\n};\nexport type {DropdownAlign, DropdownSide, DropdownProps};\n","import {\n createMachine,\n type Machine,\n type MachineEventObject,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport {defineControlledOpenProps} from '../shared/controlled-open';\nimport type {DropdownProps} from './contract';\n\ntype DropdownContext = {openSubmenuIds: string[]};\ntype DropdownFocus = 'menu' | 'first';\n\ntype DropdownMachineEffects = {\n prepareOpen(focus: DropdownFocus): void;\n finishOpen(): void;\n prepareClose(restoreFocus: boolean, reflectOpen: boolean): void;\n finishClose(): void;\n syncProps(): void;\n syncSubmenus(openSubmenuIds: string[]): void;\n};\n\ntype CreateDropdownMachineOptions = {\n props: DropdownProps;\n effects: DropdownMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'opening',\n project: () => ({}),\n onDone: 'OPENING_DONE',\n onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<DropdownContext, DropdownProps, Record<string, never>, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'closing',\n project: () => ({}),\n onDone: 'CLOSING_DONE',\n onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<DropdownContext, DropdownProps, Record<string, never>, 'closing'>);\n\nconst dropdownHooks = [openingHook, closingHook] as const;\nconst controlledOpenProps = defineControlledOpenProps<DropdownContext, DropdownProps>();\n\nconst focusFrom = (event: MachineEventObject): DropdownFocus => event.focus === 'first' ? 'first' : 'menu';\nconst shouldRestoreFocus = (event: MachineEventObject): boolean => event.restoreFocus === true;\nconst submenuPathFrom = (event: MachineEventObject): string[] => (\n Array.isArray(event.path) ? event.path.filter((value): value is string => typeof value === 'string') : []\n);\n\nconst createDropdownMachine = ({\n props,\n effects,\n}: CreateDropdownMachineOptions): Machine<DropdownContext, DropdownProps> => createMachine<DropdownContext, DropdownProps>({\n initial: 'closed',\n states: {\n closed: {\n tags: ['closed'],\n on: {\n OPEN: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n PROPS_CHANGED: [\n {\n target: 'opening',\n guard: controlledOpenProps.shouldOpen,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareOpen'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n opening: {\n tags: ['visible', 'expanded', 'interactive', 'transitioning'],\n on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', reduce: 'clearSubmenus', effects: ['syncSubmenus', 'prepareClose']},\n TOGGLE: {target: 'closing', reduce: 'clearSubmenus', effects: ['syncSubmenus', 'prepareClose']},\n SUBMENU_PATH_CHANGED: {reduce: 'replaceSubmenuPath', effects: 'syncSubmenus'},\n PROPS_CHANGED: [\n {\n target: 'closing',\n guard: controlledOpenProps.shouldClose,\n reduce: 'replacePropsAndClearSubmenus',\n effects: ['syncSubmenus', 'prepareClose', 'syncProps'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n open: {\n tags: ['visible', 'expanded', 'interactive', 'open'],\n on: {\n CLOSE: {target: 'closing', reduce: 'clearSubmenus', effects: ['syncSubmenus', 'prepareClose']},\n TOGGLE: {target: 'closing', reduce: 'clearSubmenus', effects: ['syncSubmenus', 'prepareClose']},\n SUBMENU_PATH_CHANGED: {reduce: 'replaceSubmenuPath', effects: 'syncSubmenus'},\n PROPS_CHANGED: [\n {\n target: 'closing',\n guard: controlledOpenProps.shouldClose,\n reduce: 'replacePropsAndClearSubmenus',\n effects: ['syncSubmenus', 'prepareClose', 'syncProps'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n closing: {\n tags: ['visible', 'transitioning'],\n on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n TOGGLE: {target: 'opening', guard: 'canOpen', effects: 'prepareOpen'},\n PROPS_CHANGED: [\n {\n target: 'opening',\n guard: controlledOpenProps.shouldOpen,\n reduce: 'replaceProps',\n effects: ['syncProps', 'prepareOpen'],\n },\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n },\n },\n },\n}, {\n context: {openSubmenuIds: []},\n props,\n reducers: {\n replaceProps: controlledOpenProps.replace,\n replaceSubmenuPath: (scope) => ({context: {...scope.context, openSubmenuIds: submenuPathFrom(scope.event)}}),\n clearSubmenus: (scope) => ({context: {...scope.context, openSubmenuIds: []}}),\n replacePropsAndClearSubmenus: (scope) => {\n const next = controlledOpenProps.replace(scope);\n return next ? {...next, context: {...scope.context, openSubmenuIds: []}} : undefined;\n },\n },\n guards: {\n canOpen: ({props: currentProps}) => !currentProps.disabled,\n },\n effects: {\n prepareOpen: ({event}) => effects.prepareOpen(focusFrom(event)),\n finishOpen: effects.finishOpen,\n prepareClose: ({event}) => effects.prepareClose(\n shouldRestoreFocus(event),\n event.type !== 'PROPS_CHANGED',\n ),\n finishClose: effects.finishClose,\n syncProps: effects.syncProps,\n syncSubmenus: ({context}) => effects.syncSubmenus(context.openSubmenuIds),\n },\n});\n\nexport {createDropdownMachine, dropdownHooks};\nexport type {\n CreateDropdownMachineOptions,\n DropdownContext,\n DropdownFocus,\n DropdownMachineEffects,\n};\n","import {defineStyles} from '../../runtime';\n\nconst dropdownStyles = defineStyles({definition: {\n component: 'ui.dropdown',\n parts: {\n root: {\n base: 'contents',\n },\n },\n}});\n\nexport {dropdownStyles};\n","import type Alpine from 'alpinejs';\n\nimport {menuStyles} from '@client/components/menu/styles';\nimport {\n type AlpineMachine,\n createAlpineMachine,\n defineAlpineData,\n reflectSchemaProp,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {cleanupManagerFor} from '@client/runtime/alpine-data';\nimport type {CleanupManager} from '@client/runtime/cleanup-manager';\nimport {createAnchoredPopoverSurface, type AnchoredPopoverSurface} from '@client/runtime/anchored-popover';\nimport {createCollectionNavigation, type CollectionNavigation} from '@client/runtime/collection-navigation';\nimport {addDismissableLayer} from '@client/runtime/dismissable-layer';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, asBool, dispatch} from '@client/utils';\nimport {createSubmenuSafeArea, type SubmenuSafeArea} from './safe-area';\nimport {dropdownSchema, type DropdownProps} from './contract';\nimport {\n createDropdownMachine,\n dropdownHooks,\n type DropdownContext,\n type DropdownFocus,\n} from './machine';\nimport {dropdownStyles} from './styles';\n\ntype DropdownTransitionName = (typeof dropdownHooks)[number]['name'];\ntype DropdownTransition<TName extends DropdownTransitionName = DropdownTransitionName> = TransitionForHook<\n Extract<(typeof dropdownHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype PopoverElement = HTMLElement & {\n showPopover(): void;\n hidePopover(): void;\n};\n\ntype TriggerBaseline = {\n ariaDisabled: string | null;\n dataDisabled: string | null;\n disabled: boolean | null;\n tabIndex: string | null;\n};\n\ntype SubmenuResource = {\n id: string;\n root: HTMLElement;\n trigger: HTMLElement;\n panel: PopoverElement;\n popover: AnchoredPopoverSurface;\n collection: CollectionNavigation;\n};\n\ntype SubmenuElements = {\n trigger: HTMLElement;\n panel: HTMLElement;\n};\n\nconst INTERACTIVE_HTML_TAGS = new Set([\n 'BUTTON', 'DETAILS', 'EMBED', 'IFRAME', 'INPUT', 'LABEL', 'OBJECT', 'SELECT', 'SUMMARY', 'TEXTAREA',\n]);\n\nconst INTERACTIVE_ARIA_ROLES = new Set([\n 'button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option',\n 'radio', 'scrollbar', 'searchbox', 'slider', 'spinbutton', 'switch', 'tab', 'textbox', 'treeitem',\n]);\n\nconst isInteractiveSubmenuContent = (element: HTMLElement): boolean => {\n const tag = element.tagName;\n const roles = element.getAttribute('role')?.trim().toLowerCase().split(/\\s+/) ?? [];\n return INTERACTIVE_HTML_TAGS.has(tag)\n || ((tag === 'A' || tag === 'AREA') && element.hasAttribute('href'))\n || ((tag === 'AUDIO' || tag === 'VIDEO') && element.hasAttribute('controls'))\n || (tag === 'IMG' && element.hasAttribute('usemap'))\n || element.hasAttribute('tabindex')\n || element.isContentEditable\n || element.hasAttribute('data-ui-interactive')\n || roles.some((role) => INTERACTIVE_ARIA_ROLES.has(role));\n};\n\nconst normalizedSubmenuTriggerText = (content: HTMLElement): string => {\n const walker = document.createTreeWalker(content, NodeFilter.SHOW_TEXT);\n const text: string[] = [];\n let node = walker.nextNode();\n while (node) {\n const parent = node.parentElement;\n const hiddenWithinContent = parent?.closest<HTMLElement>(\n '[aria-hidden=\"true\"], [hidden], script, style, template',\n );\n if (parent && (!hiddenWithinContent || !content.contains(hiddenWithinContent))) {\n text.push(node.textContent ?? '');\n }\n node = walker.nextNode();\n }\n return text.join(' ').replace(/\\s+/g, ' ').trim();\n};\n\nconst validateSubmenu = (submenuRoot: HTMLElement): SubmenuElements => {\n const trigger = submenuRoot.querySelector<HTMLElement>(':scope > [data-ui-submenu-trigger]');\n const panel = submenuRoot.querySelector<HTMLElement>(':scope > [data-ui-menu-submenu-panel]');\n if (!trigger || !panel) throw new Error('Menu submenu requires a trigger and nested menu panel.');\n\n const directChildren = Array.from(submenuRoot.children);\n if (directChildren.length !== 2 || directChildren[0] !== trigger || directChildren[1] !== panel) {\n throw new Error(\n 'Menu submenu trigger content produced invalid button structure; nested interactive content is not allowed.',\n );\n }\n\n const source = submenuRoot.dataset.uiSubmenuTriggerSource;\n if (!source || source === 'missing') throw new Error('Menu submenu requires heading or a trigger slot.');\n if (source === 'conflict') {\n throw new Error('Menu submenu accepts heading or a trigger slot, not both.');\n }\n\n const content = trigger.querySelector<HTMLElement>(':scope > [data-ui-submenu-trigger-content]');\n if (!content) throw new Error('Menu submenu requires an owned trigger-content wrapper.');\n if (Array.from(content.querySelectorAll<HTMLElement>('*')).some(isInteractiveSubmenuContent)) {\n throw new Error('Menu submenu trigger content must not contain interactive or focusable descendants.');\n }\n\n const explicitText = trigger.dataset.textValue?.trim() ?? '';\n if (!explicitText && !normalizedSubmenuTriggerText(content)) {\n throw new Error('Menu submenu trigger content requires accessible text or text_value.');\n }\n\n return {trigger, panel};\n};\n\nlet submenuId = 0;\n\n/**\n * Public Alpine API for `ui.dropdown`.\n *\n * @public\n */\ninterface UiDropdownApi {\n /** Whether the dropdown is opening or fully open. */\n readonly isOpen: boolean;\n\n /** Opens the dropdown unless it is disabled. */\n open(event?: Event): void;\n\n /** Closes the dropdown. Keyboard dismissal restores focus to the trigger. */\n close(event?: Event): void;\n\n /** Reverses the current dropdown lifecycle, including an in-flight transition. */\n toggle(event?: Event): void;\n}\n\ntype DropdownData = AlpineMachine<DropdownContext, DropdownProps, typeof dropdownHooks> & UiDropdownApi & {\n readonly root: BindingObject;\n readonly menu: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst UiDropdown = (): TrellisAlpineComponent<DropdownData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let canReflectOpen = false;\n let reflectTransitionOpen = true;\n let triggerId = '';\n let menuId = '';\n let triggerBaseline: TriggerBaseline | null = null;\n let collection: CollectionNavigation | null = null;\n let popover: AnchoredPopoverSurface | null = null;\n const submenus = new Map<HTMLElement, SubmenuResource>();\n let submenuObserver: MutationObserver | null = null;\n let submenuReconciliationScheduled = false;\n let safeArea: SubmenuSafeArea | null = null;\n let cleanup: CleanupManager;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Dropdown has not been initialized.');\n return rootEl;\n };\n\n const triggerEl = (): HTMLElement => {\n const trigger = Array.from(root().children)\n .find((el) => el instanceof HTMLElement && !el.matches('[data-ui-menu]'));\n if (!(trigger instanceof HTMLElement)) throw new Error('Dropdown requires a trigger element before the menu.');\n return trigger;\n };\n\n const menuEl = (): PopoverElement => {\n const menu = Array.from(root().children).find((element) => element instanceof HTMLElement && element.matches('[data-ui-menu]'));\n if (!(menu instanceof HTMLElement)) throw new Error('Dropdown requires a menu element.');\n return menu as PopoverElement;\n };\n\n const currentProps = (): Readonly<DropdownProps> => bridge.getSnapshot().props;\n const isExpanded = (): boolean => bridge.hasTag('expanded');\n const isVisible = (): boolean => bridge.hasTag('visible');\n\n const itemFrom = (target: EventTarget | null): HTMLElement | null => {\n if (!(target instanceof Element)) return null;\n const item = target.closest<HTMLElement>('[data-ui-menu-item]');\n return item && root().contains(item) ? item : null;\n };\n\n const itemDisabled = (item: HTMLElement): boolean => (\n asBool({value: item.dataset.disabled})\n || item.getAttribute('aria-disabled') === 'true'\n || item.hasAttribute('disabled')\n );\n\n const collectionNav = (): CollectionNavigation => {\n if (!collection) throw new Error('Dropdown navigation has not been initialized.');\n return collection;\n };\n\n const syncMenuItems = (): void => {\n const items = [collectionNav(), ...Array.from(submenus.values(), ({collection: nested}) => nested)];\n items.forEach((navigation) => navigation.allItems().forEach((item) => {\n if (!item.hasAttribute('role')) item.setAttribute('role', 'menuitem');\n item.tabIndex = -1;\n if (itemDisabled(item)) item.setAttribute('aria-disabled', 'true');\n }));\n };\n\n const submenuForTrigger = (item: HTMLElement | null): SubmenuResource | null => {\n if (!item) return null;\n return Array.from(submenus.values()).find(({trigger}) => trigger === item) ?? null;\n };\n\n const submenuForId = (id: string): SubmenuResource | null => (\n Array.from(submenus.values()).find((resource) => resource.id === id) ?? null\n );\n\n const submenuForPanel = (panel: Element | null): SubmenuResource | null => {\n if (!panel) return null;\n return Array.from(submenus.values()).find(({panel: candidate}) => candidate === panel) ?? null;\n };\n\n const parentSubmenu = (resource: SubmenuResource): SubmenuResource | null => {\n const parentPanel = resource.root.parentElement?.closest<HTMLElement>('[data-ui-menu-submenu-panel]') ?? null;\n return submenuForPanel(parentPanel);\n };\n\n const pathTo = (resource: SubmenuResource): string[] => {\n const path: string[] = [];\n let current: SubmenuResource | null = resource;\n while (current) {\n path.unshift(current.id);\n current = parentSubmenu(current);\n }\n return path;\n };\n\n const currentSubmenuPath = (): string[] => bridge.getSnapshot().context.openSubmenuIds;\n\n const syncSubmenus = (openIds: string[]): void => {\n safeArea = null;\n submenus.forEach((resource) => {\n const open = openIds.includes(resource.id);\n resource.root.dataset.state = open ? 'open' : 'closed';\n resource.trigger.dataset.state = open ? 'open' : 'closed';\n resource.trigger.setAttribute('aria-expanded', open ? 'true' : 'false');\n resource.panel.dataset.state = open ? 'open' : 'closed';\n resource.panel.hidden = !open;\n if (open) resource.popover.open();\n else {\n resource.collection.clearActiveItem();\n resource.popover.close();\n }\n });\n };\n\n const registerSubmenu = (submenuRoot: HTMLElement): void => {\n const {trigger, panel} = validateSubmenu(submenuRoot);\n if (submenus.has(submenuRoot)) return;\n\n const id = submenuRoot.dataset.submenuId || `ui-submenu-${++submenuId}`;\n const triggerIdForSubmenu = trigger.id || `${id}-trigger`;\n const panelId = panel.id || `${id}-menu`;\n submenuRoot.dataset.submenuId = id;\n submenuRoot.dataset.state = 'closed';\n trigger.id = triggerIdForSubmenu;\n trigger.dataset.state = 'closed';\n trigger.setAttribute('aria-controls', panelId);\n trigger.setAttribute('aria-expanded', 'false');\n panel.id = panelId;\n panel.dataset.state = 'closed';\n panel.setAttribute('aria-labelledby', triggerIdForSubmenu);\n panel.setAttribute('popover', 'manual');\n panel.setAttribute('role', 'menu');\n panel.tabIndex = -1;\n panel.hidden = true;\n\n const navigation = createCollectionNavigation({\n root: () => panel,\n itemSelector: '[data-ui-menu-item]',\n ownsItem: (item) => item.closest('[data-ui-menu]') === panel,\n isDisabled: itemDisabled,\n loop: () => asBool({value: panel.dataset.loop}),\n });\n const nestedPopover = createAnchoredPopoverSurface({\n reference: () => trigger,\n floating: () => panel,\n position: () => 'right',\n align: () => 'start',\n gap: () => 4,\n offset: () => 0,\n });\n submenus.set(submenuRoot, {\n id,\n root: submenuRoot,\n trigger,\n panel: panel as PopoverElement,\n popover: nestedPopover,\n collection: navigation,\n });\n };\n\n const unregisterSubmenu = (submenuRoot: HTMLElement): void => {\n const resource = submenus.get(submenuRoot);\n if (!resource) return;\n resource.collection.clearActiveItem();\n resource.popover.destroy();\n submenus.delete(submenuRoot);\n safeArea = null;\n };\n\n const reconcileOpenSubmenuPath = (): void => {\n const currentPath = currentSubmenuPath();\n let nextPath: string[] = [];\n for (let index = currentPath.length - 1; index >= 0; index -= 1) {\n const resource = submenuForId(currentPath[index] as string);\n if (!resource) continue;\n nextPath = pathTo(resource);\n break;\n }\n if (nextPath.length === currentPath.length\n && nextPath.every((id, index) => id === currentPath[index])) return;\n bridge.send({type: 'SUBMENU_PATH_CHANGED', path: nextPath});\n };\n\n const reconcileSubmenus = (): void => {\n const submenuRoots = Array.from(root().querySelectorAll<HTMLElement>('[data-ui-menu-submenu]'));\n const connectedRoots = new Set(submenuRoots);\n let removed = false;\n\n Array.from(submenus.keys()).forEach((submenuRoot) => {\n if (connectedRoots.has(submenuRoot)) return;\n unregisterSubmenu(submenuRoot);\n removed = true;\n });\n if (removed) reconcileOpenSubmenuPath();\n\n // querySelectorAll returns ancestors before their descendants.\n submenuRoots.forEach(registerSubmenu);\n reconcileOpenSubmenuPath();\n syncMenuItems();\n };\n\n const scheduleSubmenuReconciliation = (): void => {\n if (submenuReconciliationScheduled) return;\n submenuReconciliationScheduled = true;\n queueMicrotask(() => {\n submenuReconciliationScheduled = false;\n if (!rootEl) return;\n reconcileSubmenus();\n });\n };\n\n const handleSubmenuMutations = (records: MutationRecord[]): void => {\n const relevant = records.some((record) => (\n record.type === 'childList'\n || (record.target instanceof Element\n && record.target.closest('[data-ui-submenu-trigger-content]') !== null)\n ));\n if (relevant) scheduleSubmenuReconciliation();\n };\n\n const activateCommittedItem = (navigation: CollectionNavigation): boolean => {\n const selected = navigation.items().find((item) => (\n item.hasAttribute('data-selected')\n || ['true', 'mixed'].includes(item.getAttribute('aria-checked') ?? '')\n ));\n if (!selected) return false;\n navigation.activateItem({el: selected});\n return true;\n };\n\n const openSubmenu = (resource: SubmenuResource, focusFirst = false): void => {\n if (itemDisabled(resource.trigger)) return;\n bridge.send({type: 'SUBMENU_PATH_CHANGED', path: pathTo(resource)});\n queueMicrotask(() => {\n if (focusFirst) resource.collection.focusFirst();\n else activateCommittedItem(resource.collection);\n });\n };\n\n const closeSubmenu = (resource: SubmenuResource, restoreFocus = false): void => {\n const path = pathTo(resource);\n bridge.send({type: 'SUBMENU_PATH_CHANGED', path: path.slice(0, -1)});\n if (restoreFocus) resource.trigger.focus({preventScroll: true});\n };\n\n const captureTriggerBaseline = (): void => {\n const trigger = triggerEl();\n const explicitTabIndex = trigger.getAttribute('tabindex');\n triggerBaseline = {\n ariaDisabled: trigger.getAttribute('aria-disabled'),\n dataDisabled: trigger.getAttribute('data-disabled'),\n disabled: trigger instanceof HTMLButtonElement ? trigger.disabled : null,\n tabIndex: explicitTabIndex ?? (trigger.tabIndex < 0 ? '0' : null),\n };\n };\n\n const restoreAttribute = (el: HTMLElement, name: string, value: string | null): void => {\n if (value === null) el.removeAttribute(name);\n else el.setAttribute(name, value);\n };\n\n const syncTrigger = (): void => {\n if (canReflectOpen && (isExpanded() || reflectTransitionOpen)) {\n reflectSchemaProp({el: root(), schema: dropdownSchema, key: 'open', value: isExpanded()});\n }\n const trigger = triggerEl();\n const baseline = triggerBaseline;\n if (!baseline) return;\n\n trigger.id ||= triggerId;\n trigger.setAttribute('data-ui-dropdown-trigger', '');\n trigger.setAttribute('aria-expanded', isExpanded() ? 'true' : 'false');\n trigger.setAttribute('aria-controls', menuId);\n trigger.setAttribute('data-state', isExpanded() ? 'open' : 'closed');\n\n if (currentProps().disabled) {\n trigger.setAttribute('aria-disabled', 'true');\n trigger.setAttribute('data-disabled', '');\n trigger.tabIndex = -1;\n if (trigger instanceof HTMLButtonElement) trigger.disabled = true;\n return;\n }\n\n restoreAttribute(trigger, 'aria-disabled', baseline.ariaDisabled);\n restoreAttribute(trigger, 'data-disabled', baseline.dataDisabled);\n restoreAttribute(trigger, 'tabindex', baseline.tabIndex);\n if (trigger instanceof HTMLButtonElement && baseline.disabled !== null) trigger.disabled = baseline.disabled;\n };\n\n const syncMenu = (): void => {\n const menu = menuEl();\n menu.id = menuId;\n menu.setAttribute('popover', 'manual');\n menu.setAttribute('role', 'menu');\n menu.tabIndex = -1;\n menu.hidden = !isVisible();\n menu.setAttribute('data-state', isExpanded() ? 'open' : 'closed');\n syncMenuItems();\n };\n\n const prepareOpen = (focus: DropdownFocus): void => {\n reflectTransitionOpen = true;\n syncTrigger();\n syncMenu();\n popover?.open();\n queueMicrotask(() => {\n if (!bridge.hasTag('interactive')) return;\n if (focus === 'first') collectionNav().focusFirst();\n else {\n activateCommittedItem(collectionNav());\n menuEl().focus({preventScroll: true});\n }\n });\n };\n\n const finishOpen = (): void => {\n syncTrigger();\n syncMenu();\n dispatch({el: root(), name: 'ui:open'});\n };\n\n const prepareClose = (restoreFocus: boolean, reflectOpen: boolean): void => {\n reflectTransitionOpen = reflectOpen;\n collectionNav().clearActiveItem();\n syncTrigger();\n syncMenu();\n if (restoreFocus) triggerEl().focus({preventScroll: true});\n };\n\n const finishClose = (): void => {\n popover?.close();\n syncTrigger();\n syncMenu();\n reflectTransitionOpen = true;\n dispatch({el: root(), name: 'ui:close'});\n };\n\n const syncProps = (): void => {\n syncTrigger();\n syncMenu();\n popover?.sync();\n };\n\n const bridge = createAlpineMachine({\n schema: dropdownSchema,\n hooks: dropdownHooks,\n createMachine: ({props}) => createDropdownMachine({\n props,\n effects: {prepareOpen, finishOpen, prepareClose, finishClose, syncProps, syncSubmenus},\n }),\n });\n\n const open = (focus: DropdownFocus = 'menu', event?: Event): void => {\n event?.preventDefault();\n if (currentProps().disabled) return;\n if (bridge.hasTag('expanded')) {\n if (focus === 'first') collectionNav().focusFirst();\n return;\n }\n bridge.send({type: 'OPEN', focus});\n };\n\n const close = (restoreFocus: boolean, event?: Event): void => {\n event?.preventDefault();\n bridge.send({type: 'CLOSE', restoreFocus});\n };\n\n const selectItem = (item: HTMLElement, event: Event): void => {\n if (itemDisabled(item)) {\n event.preventDefault();\n return;\n }\n\n const menuKeepOpen = asBool({value: menuEl().dataset.keepOpen});\n const itemKeepOpen = item.dataset.keepOpen === undefined || item.dataset.keepOpen === ''\n ? menuKeepOpen\n : asBool({value: item.dataset.keepOpen});\n if (!itemKeepOpen) close(false);\n };\n\n const handleClick = (event: Event): void => {\n const item = itemFrom(event.target);\n if (item) {\n const submenu = submenuForTrigger(item);\n if (submenu) {\n event.preventDefault();\n openSubmenu(submenu);\n return;\n }\n selectItem(item, event);\n return;\n }\n\n const target = event.target;\n if (target instanceof Node && triggerEl().contains(target)) {\n event.preventDefault();\n if (!currentProps().disabled) bridge.send('TOGGLE');\n }\n };\n\n const handleKeydown = (event: Event): void => {\n if (!(event instanceof KeyboardEvent)) return;\n if (event.key === 'Escape' && isVisible()) {\n event.preventDefault();\n event.stopPropagation();\n const deepest = submenuForId(currentSubmenuPath().at(-1) ?? '');\n if (deepest) {\n closeSubmenu(deepest, true);\n return;\n }\n close(true);\n return;\n }\n\n const target = event.target;\n if (target instanceof Node && triggerEl().contains(target)) {\n if (event.key === 'ArrowDown') {\n open('first', event);\n return;\n }\n const trigger = triggerEl();\n if (!(trigger instanceof HTMLButtonElement) && !(trigger instanceof HTMLAnchorElement)\n && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n if (!currentProps().disabled) bridge.send('TOGGLE');\n }\n return;\n }\n\n const item = itemFrom(event.target);\n const submenu = submenuForTrigger(item);\n if (submenu && (event.key === 'ArrowRight' || event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n openSubmenu(submenu, true);\n return;\n }\n\n const containingPanel = event.target instanceof Element\n ? event.target.closest<HTMLElement>('[data-ui-menu-submenu-panel]')\n : null;\n const containingSubmenu = submenuForPanel(containingPanel);\n if (containingSubmenu && event.key === 'ArrowLeft') {\n event.preventDefault();\n closeSubmenu(containingSubmenu, true);\n return;\n }\n\n if (item && (event.key === 'Enter' || event.key === ' ')\n && item.matches('[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]')) {\n event.preventDefault();\n item.querySelector<HTMLInputElement>('input[type=\"checkbox\"], input[type=\"radio\"]')?.click();\n return;\n }\n\n if (containingSubmenu) containingSubmenu.collection.handleKeydown({event});\n else if (menuEl().contains(event.target as Node)) collectionNav().handleKeydown({event});\n };\n\n const handleFocus = (event: Event): void => {\n const item = itemFrom(event.target);\n if (item && !itemDisabled(item)) collectionNav().activateItem({el: item});\n };\n\n const handlePointer = (event: Event): void => {\n if (!(event instanceof PointerEvent)) return;\n if (safeArea?.contains({x: event.clientX, y: event.clientY})) return;\n const item = itemFrom(event.target);\n if (!item || itemDisabled(item)) return;\n safeArea = null;\n const submenu = submenuForTrigger(item);\n const containingPanel = item.closest<HTMLElement>('[data-ui-menu-submenu-panel]');\n const containingSubmenu = submenuForPanel(containingPanel);\n const navigation = containingSubmenu?.collection ?? collectionNav();\n navigation.activateItem({el: item});\n if (submenu) {\n openSubmenu(submenu);\n return;\n }\n bridge.send({type: 'SUBMENU_PATH_CHANGED', path: containingSubmenu ? pathTo(containingSubmenu) : []});\n };\n\n const handlePointerOut = (event: Event): void => {\n if (!(event instanceof PointerEvent)) return;\n if (!window.matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n const item = itemFrom(event.target);\n const submenu = submenuForTrigger(item);\n if (!submenu || !currentSubmenuPath().includes(submenu.id)) return;\n if (event.relatedTarget instanceof Node && submenu.panel.contains(event.relatedTarget)) return;\n const panel = submenu.panel.getBoundingClientRect();\n safeArea = createSubmenuSafeArea({\n origin: {x: event.clientX, y: event.clientY},\n panel: {left: panel.left, right: panel.right, top: panel.top, bottom: panel.bottom},\n });\n };\n\n const handleNativeToggle = (event: Event): void => {\n if (!('newState' in event)) return;\n if (event.newState === 'open') {\n if (!isVisible()) bridge.send('OPEN');\n return;\n }\n if (isVisible()) bridge.send('CLOSE');\n };\n\n let component!: TrellisAlpineComponent<DropdownData>;\n component = {\n ...bridge,\n get isOpen(): boolean {\n return this.snapshot.current?.tags.includes('expanded') ?? false;\n },\n init(): void {\n cleanup = cleanupManagerFor(this);\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n triggerId = triggerEl().id || this.$id('dropdown-trigger');\n menuId = menuEl().id || this.$id('dropdown-menu');\n captureTriggerBaseline();\n collection = createCollectionNavigation({\n root: () => menuEl(),\n itemSelector: '[data-ui-menu-item]',\n ownsItem: (item) => item.closest('[data-ui-menu]') === menuEl(),\n isDisabled: itemDisabled,\n loop: () => asBool({value: menuEl().dataset.loop}),\n });\n popover = createAnchoredPopoverSurface({\n reference: triggerEl,\n floating: menuEl,\n position: () => currentProps().side,\n align: () => currentProps().align,\n gap: () => currentProps().gap,\n offset: () => currentProps().offset,\n });\n reconcileSubmenus();\n submenuObserver = new MutationObserver(handleSubmenuMutations);\n submenuObserver.observe(root(), {\n attributeFilter: [\n 'contenteditable', 'controls', 'data-ui-interactive', 'href', 'role', 'tabindex', 'usemap',\n ],\n attributes: true,\n childList: true,\n subtree: true,\n });\n cleanup.add(addDismissableLayer({\n isEnabled: () => bridge.hasTag('interactive'),\n roots: () => [root(), menuEl()],\n onDismiss: () => close(false),\n }));\n const clearSafeArea = (): void => { safeArea = null; };\n addListener({target: window, event: 'blur', handler: clearSafeArea, cleanup});\n addListener({target: window, event: 'resize', handler: clearSafeArea, cleanup});\n addListener({target: window, event: 'scroll', handler: clearSafeArea, cleanup, options: {capture: true}});\n syncTrigger();\n syncMenu();\n syncSubmenus([]);\n canReflectOpen = true;\n if (currentProps().open) queueMicrotask(() => bridge.send('OPEN'));\n },\n destroy(): void {\n submenuObserver?.disconnect();\n submenuObserver = null;\n submenuReconciliationScheduled = false;\n bridge.disconnect();\n popover?.destroy();\n Array.from(submenus.keys()).forEach(unregisterSubmenu);\n safeArea = null;\n popover = null;\n collection = null;\n triggerBaseline = null;\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: dropdownStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-dropdown': '',\n ':data-state': () => (bridge.hasTag('expanded') ? 'open' : 'closed'),\n '@click': handleClick,\n '@keydown': handleKeydown,\n '@focusin': handleFocus,\n '@pointermove': handlePointer,\n '@pointerout': handlePointerOut,\n },\n ]});\n },\n get menu(): BindingObject {\n const menu = menuEl();\n return mergeBindings({inputs: [\n resolveStyle({\n part: menuStyles.parts.menu,\n props: {\n width: menu.dataset.width,\n minWidth: menu.dataset.minWidth,\n padding: menu.dataset.padding,\n },\n className: menu.dataset.class,\n }),\n {\n id: menuId,\n popover: 'manual',\n role: 'menu',\n tabindex: '-1',\n 'data-ui-menu': '',\n ':hidden': () => !bridge.hasTag('visible'),\n ':data-state': () => (bridge.hasTag('expanded') ? 'open' : 'closed'),\n '@toggle': handleNativeToggle,\n },\n ]});\n },\n open(event?: Event): void {\n open('menu', event);\n },\n close(event?: Event): void {\n close(event instanceof KeyboardEvent, event);\n },\n toggle(event?: Event): void {\n event?.preventDefault();\n if (currentProps().disabled) return;\n bridge.send({type: 'TOGGLE', restoreFocus: event instanceof KeyboardEvent});\n },\n };\n\n return component;\n};\n\nconst registerDropdown = defineAlpineData('UiDropdown', UiDropdown);\n\nexport {registerDropdown, UiDropdown};\nexport type {DropdownData, DropdownTransition, UiDropdownApi};\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 {registerDropdown as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerDropdown = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerDropdown};\nexport default registerDropdown;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{n as e,r as t,s as n,t as r}from"./dom-DiTFTWeR.js";import{t as i}from"./capability-motion-C3q5Xzv2.js";import{n as a}from"./morph-Cq3V_23_.js";import{c as o,f as s,l as c,n as l,s as u,u as d}from"./codecs-CQ7olTJL.js";import{i as f,t as ee}from"./alpine-machine-CE2UN4Qu.js";import{n as p,t as te}from"./alpine-data-Dvc_bXq6.js";import{t as m}from"./anchored-popover-BwQbt4V2.js";import{n as h,t as g}from"./styles-CX2j92ex.js";import{t as ne}from"./merge-bindings-BtqW3UgP.js";import{t as re}from"./machine-CNnHDbyo.js";import{n as ie,t as _}from"./props-change-2xfsIAEN.js";import{t as ae}from"./dismissable-layer-BROE-Ln2.js";import{i as oe,n as se,r as ce,t as le}from"./form-control-DL1Hkox3.js";import{o as ue}from"./focus-scope-DtaPVNl5.js";import{t as de}from"./semantic-observer-CIoriWtV.js";import{t as v}from"./scroll-lock-C5dQtr4Y.js";import{I as fe,L as pe,M as me,N as he,P as y,_ as b,a as x,c as S,d as ge,f as _e,h as C,i as ve,j as w,m as T,n as E,o as D,p as O,r as k,t as ye,z as A}from"./common-De1R7Xh6.js";import{a as be}from"./styles-C9PrQrca.js";import{r as xe}from"./focus-handoff-BE3g0swK.js";var j=e=>e.trim().toLowerCase(),Se=e=>{if(e)try{return JSON.parse(e)}catch{return}},Ce=(e,t)=>{if(t&&e!=null)return t.split(`.`).reduce((e,t)=>{if(typeof e==`object`&&e)return e[t]},e)},M=[`soft`,`surface`,`outline`,`solid`],we=[`neutral`,`accent`,`success`,`warning`,`danger`],N=D,P=[`span`,`button`],F=E,I=b,L=k;c(M,`soft`),c(we,`neutral`),c(N,`sm`),c(L,`sm`),c(P,`span`),c(F,`button`),c(I,`mini`),c(F,`button`),s.default(`close`),c(I,`mini`),c(N,`sm`),s.default(`Remove`);var Te=[`listbox`,`combobox`,`pillbox`,`native`],Ee=S,R=D,z=k,De=pe,B=ye,V=b,H=[`stay`,`close`],Oe=[`check`,`checkbox`,`none`],ke=A,Ae=ge,je={name:s,optionsId:s,value:s,values:u.array([]),placeholder:s,mode:c(Te,`listbox`),multiple:l,searchable:l,searchMinItems:o.min(0).default(5),virtualized:l,optionsFetchUrl:s,optionsTotalItems:o.min(0).default(0),optionItemSize:o.min(2**-52).default(36),optionBufferSize:o.min(1).default(50),optionOverscan:o.min(0).default(0),optionSearchParam:s.default(`q`),optionSearchDebounce:o.min(0).default(150),selectedLabelMap:u.object({}),creatable:l,filter:l.default(!0),clearable:l,clear:c(H,`stay`),suffix:s.default(`selected`),mark:c(Oe,`check`),open:l,disabled:l,readonly:l,required:l,invalid:l,autoHighlight:l.default(!0),loop:l.default(!0),path:s,size:c(R,`lg`),variant:c(Ee,`outline`),radius:c(z,`md`),surface:c(ke,`+2`),elevation:c(Ae,`3`),side:c(De,`bottom`),align:c(B,`start`),offset:o.clamp(-100,100).default(0),gap:o.clamp(0,50).default(4),empty:s.default(`No results found.`),icon:s,iconTrailing:s.default(`chevron__down`),iconVariant:c(V,`outline`),buttonClass:s,inputClass:s,listboxClass:s,optionClass:s,chipVariant:c(M,`soft`),chipColor:c(we,`neutral`),chipClass:s,class:s};c(V,`outline`),o.clamp(0,100).default(0);var Me=[f({name:`opening`,state:`disclosure.opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`,sends:{close:()=>({type:`CLOSE`})}}),f({name:`closing`,state:`disclosure.closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`,sends:{open:()=>({type:`OPEN`})}}),f({name:`searching`,state:`feature.searching`,project:e=>({query:e.context.search.query,optionsId:e.context.search.optionsId}),onDone:`SEARCHING_DONE`,onError:`SEARCHING_ERROR`,sends:{search:e=>({type:`SEARCH`,query:e}),close:()=>({type:`CLOSE`})}}),f({name:`creating`,state:`feature.creating`,project:e=>({query:e.context.search.query,value:e.context.creation.value}),onDone:`CREATING_DONE`,onError:`CREATING_ERROR`,sends:{close:()=>({type:`CLOSE`})}})],U=e=>ie(e)?.props??null,Ne=e=>e.disabled||e.readonly,Pe=({event:e})=>{let t=U(e);return!t||Ne(t)||!t.open?!1:_(e,`open`,`disabled`,`readonly`)},W=({event:e})=>{let t=U(e);return t?_(e,`open`)&&!t.open||_(e,`disabled`)&&t.disabled||_(e,`readonly`)&&t.readonly:!1},Fe=({event:e})=>{let t=U(e);return!!(t&&(_(e,`disabled`)&&t.disabled||_(e,`readonly`)&&t.readonly||_(e,`searchable`)&&!t.searchable))},Ie=e=>!Array.isArray(e.selection)||!e.selection.every(e=>typeof e==`object`&&!!e&&typeof e.value==`string`&&typeof e.label==`string`)?null:e.selection.map(({value:e,label:t})=>({value:e,label:t})),Le=({props:e,context:t,effects:n})=>re({type:`parallel`,on:{DOM_INVALIDATED:{effects:`syncDom`}},states:{disclosure:{initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},SEARCH:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:{target:`opening`,guard:Pe,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},CREATE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:`single`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},open:{tags:[`visible`,`expanded`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},CREATE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:`single`,effects:`prepareClose`},CLEAR:{target:`closing`,guard:`clearCloses`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},SEARCH:{target:`opening`,guard:`canOpen`,effects:`prepareOpen`},PROPS_CHANGED:{target:`opening`,guard:Pe,effects:`prepareOpen`}}}}},feature:{initial:`idle`,on:{SELECT:{reduce:`replaceSelection`,effects:`commitSelection`},DESELECT:{reduce:`replaceSelection`,effects:`commitSelection`},SELECT_ALL:{reduce:`replaceSelection`,effects:`commitSelection`},RECONCILE_SELECTION:{reduce:`replaceSelection`,effects:`syncActive`},CLEAR:{reduce:`clear`,effects:`commitSelection`},ACTIVE:{reduce:`setActive`,effects:`syncActive`},OPTIONS_CHANGED:{effects:`syncOptions`},CLOSING_DONE:{reduce:`resetTransient`,effects:`syncActive`},CLOSING_ERROR:{reduce:`resetTransient`,effects:`syncActive`}},states:{idle:{on:{CLOSE:{},SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},PROPS_CHANGED:{reduce:`replaceProps`,effects:`syncProps`}}},searching:{tags:[`searching`],on:{SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},CLOSE:{target:`idle`},SEARCHING_DONE:`idle`,SEARCHING_ERROR:`idle`,PROPS_CHANGED:[{target:`idle`,guard:Fe,reduce:`replaceProps`,effects:`syncProps`},{reduce:`replaceProps`,effects:`syncProps`}]}},creating:{tags:[`creating`],on:{SEARCH:{target:`searching`,reduce:`setSearch`,effects:`commitSearch`},CREATE:{target:`creating`,reduce:`setCreation`,effects:`prepareCreate`},CLOSE:{target:`idle`},CREATING_DONE:{target:`idle`},CREATING_ERROR:{target:`idle`},PROPS_CHANGED:[{target:`idle`,guard:Fe,reduce:`replaceProps`,effects:`syncProps`},{reduce:`replaceProps`,effects:`syncProps`}]}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=U(e);return t?{props:t}:void 0},replaceSelection:({context:e,event:t})=>{let n=Ie(t);if(n)return{context:{...e,selection:n}}},clear:({context:e})=>({context:{...e,selection:[],search:{...e.search,query:``},navigation:{activeValue:``}}}),setSearch:({context:e,event:t})=>({context:{...e,search:{query:typeof t.query==`string`?t.query:``,optionsId:typeof t.optionsId==`string`?t.optionsId:e.search.optionsId},navigation:{activeValue:typeof t.activeValue==`string`?t.activeValue:e.navigation.activeValue}}}),setActive:({context:e,event:t})=>({context:{...e,navigation:{activeValue:typeof t.value==`string`?t.value:``}}}),setCreation:({context:e,event:t})=>({context:{...e,creation:{value:typeof t.value==`string`?t.value:e.search.query}}}),resetTransient:({context:e})=>({context:{...e,search:{...e.search,query:``},navigation:{activeValue:``},creation:{value:``}}})},guards:{canOpen:({props:e})=>!Ne(e),single:({props:e})=>!e.multiple,clearCloses:({props:e})=>e.clear===`close`},effects:{prepareOpen:n.prepareOpen,finishOpen:n.finishOpen,prepareClose:n.prepareClose,finishClose:n.finishClose,commitSelection:n.commitSelection,commitSearch:n.commitSearch,prepareCreate:n.prepareCreate,syncProps:n.syncProps,syncOptions:n.syncOptions,syncActive:n.syncActive,syncDom:n.syncDom}}),Re=640,ze=256,Be=520,Ve=.72,He=12,Ue=16,G=720,We=720,Ge=({viewportWidth:e,viewportHeight:t,layoutViewportHeight:n,referenceTop:r,referenceBottom:i,touch:a})=>{if(e<=Re)return`fullscreen`;let o=t<Be||t<n*Ve;if(a&&o)return`fullscreen`;if(a)return`dialog`;let s=Math.max(0,r),c=Math.max(0,t-i);return Math.max(s,c)<ze?`dialog`:`anchored`},Ke=()=>{let e=window.visualViewport;return e?{width:e.width,height:e.height,offsetTop:e.offsetTop,offsetLeft:e.offsetLeft}:{width:window.innerWidth,height:window.innerHeight,offsetTop:0,offsetLeft:0}},qe=()=>window.matchMedia?.(`(any-pointer: coarse)`).matches===!0||navigator.maxTouchPoints>0,Je=e=>{let t=m(e),n=!1,r=`anchored`,i=null,a=null,o=()=>e.floating(),s=e=>{e?i??=v(o().ownerDocument):(i?.(),i=null)},c=e=>{e.style.removeProperty(`border-radius`),e.style.removeProperty(`height`),e.style.removeProperty(`inset`),e.style.removeProperty(`max-height`),e.style.removeProperty(`max-width`),e.style.removeProperty(`position`),e.style.removeProperty(`transform-origin`),e.style.removeProperty(`width`)},l=(e,t)=>{let n=Ke(),r=t===`dialog`?Ue:He,i=t===`dialog`?G:1/0,a=t===`dialog`?We:1/0,o=Math.min(i,Math.max(0,n.width-r*2)),s=Math.min(a,Math.max(0,n.height-r*2)),c=n.offsetLeft+(n.width-o)/2,l=n.offsetTop+(n.height-s)/2;Object.assign(e.style,{borderRadius:`var(--radius-overlay-md)`,position:`fixed`,inset:`${l}px auto auto ${c}px`,width:`${o}px`,height:`${s}px`,maxWidth:`none`,maxHeight:`none`,transformOrigin:`center`})},u=()=>{let t=Ke(),n=e.reference().getBoundingClientRect();return Ge({viewportWidth:t.width,viewportHeight:t.height,layoutViewportHeight:window.innerHeight,referenceTop:n.top-t.offsetTop,referenceBottom:n.bottom-t.offsetTop,touch:qe()})},d=()=>{if(!n)return;let i=o(),a=u();r=a,i.dataset.presentation=a;let d=i.querySelector(`[data-ui-select-sheet-heading]`);if(d&&(d.style.display=a===`anchored`?`none`:`flex`),a===`anchored`){i.removeAttribute(`aria-modal`),i.removeAttribute(`aria-labelledby`),i.removeAttribute(`role`),s(!1),c(i),t.mount();return}t.unmount(),i.setAttribute(`role`,`dialog`),i.setAttribute(`aria-modal`,`true`),i.setAttribute(`aria-labelledby`,e.labelId()),s(!0),l(i,a)},f=()=>{let e=()=>d(),t=window.visualViewport,n=window.matchMedia?.(`(any-pointer: coarse)`);return window.addEventListener(`resize`,e),window.addEventListener(`orientationchange`,e),t?.addEventListener(`resize`,e),t?.addEventListener(`scroll`,e),n?.addEventListener(`change`,e),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`orientationchange`,e),t?.removeEventListener(`resize`,e),t?.removeEventListener(`scroll`,e),n?.removeEventListener(`change`,e)}},ee=()=>{if(!n){n=!0;try{o().showPopover()}catch{}d(),a=f()}},p=()=>{if(n){n=!1,a?.(),a=null,t.unmount(),s(!1);try{o().hidePopover()}catch{}}};return{opened:()=>n,open:ee,close:p,sync:d,destroy:p,presentation:()=>r}},K=g({definition:{component:`ui.select`,parts:{root:{base:`relative inline-grid w-full min-w-0`},control:{base:C,variants:{size:ve,radius:x,variant:{outline:``,filled:``,plain:``},mode:{listbox:``,combobox:``,pillbox:`flex-wrap gap-1 py-0.5`,native:``},empty:{true:``,false:``}},compounds:[{when:{mode:`pillbox`,empty:!1},class:`!pl-1.5`}],defaults:{size:`lg`,variant:`outline`,radius:`md`,mode:`listbox`,empty:!1}},button:{base:[`flex min-w-0 flex-1 items-center gap-2 border-0 bg-transparent p-0 text-left text-inherit outline-none`]},pillboxTrigger:{base:`min-w-16 self-stretch`},value:{base:`min-w-0 flex-1 truncate`},placeholder:{base:`min-w-0 flex-1 truncate text-surface-ink-muted`},input:{base:[`w-full min-w-16 flex-1`,O]},search:{base:[`flex min-h-control-xlg shrink-0 items-center gap-2 px-3`,`text-sm`]},searchInput:{base:[`min-w-0 flex-1 text-sm`,O]},sheetHeader:{base:``},sheetHeading:{base:`min-w-0 items-center gap-3 px-4 pt-4`},sheetTitle:{base:`min-w-0 flex-1 truncate text-base font-medium`},sheetClose:{base:[`inline-flex size-control-md shrink-0 items-center justify-center rounded-control-sm border-0 bg-transparent`,`text-surface-ink-muted outline-none focus-visible:ui-focus-ring`]},chips:{base:`flex min-w-0 flex-wrap items-center gap-1`},chip:{base:[`max-w-64`]},chipLabel:{base:`flex min-w-0 flex-1 items-center`},chipPlainLabel:{base:`block min-w-0 flex-1 truncate`},chipRemove:{base:``},icon:{base:`size-icon shrink-0 fill-current text-surface-ink-muted`,variants:{position:{leading:``,trailing:``}},defaults:{position:`leading`}},action:{base:_e},popover:{base:[fe,`overflow-hidden rounded-overlay-sm`]},listbox:{base:`min-h-0 min-w-0 max-w-full overflow-hidden outline-none`},viewport:{base:`min-h-0 min-w-0 max-w-full`},options:{base:`grid w-full min-w-0 max-w-full auto-rows-min content-start gap-1 p-popover-padding`},virtualOptions:{base:`grid w-full min-w-0 max-w-full auto-rows-min content-start gap-1 px-popover-padding`},create:{base:`shrink-0 p-popover-padding`},option:{base:[he,`min-w-0 max-w-full overflow-hidden`,`[&:has([data-ui-select-option-label]>*+*)]:h-auto`,`[&:has([data-ui-select-option-label]>*+*)]:items-start`,`[&:has([data-ui-select-option-label]>*+*)]:py-2`]},optionLabel:{base:`min-w-0 flex-1 truncate`},optionMeta:{base:y},optionIcon:{base:w,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},optionIndicator:{base:me},group:{base:`grid auto-rows-min content-start gap-1`},label:{base:`px-menu-item-padding-inline py-1`},empty:{base:`px-menu-item-padding-inline py-2 text-sm text-surface-ink-muted`},separatorRoot:{base:`-mx-popover my-popover h-[var(--border-width-edge-separator)]`},separatorRule:{base:`h-[var(--border-width-edge-separator)] w-full border-0`},nativeWrapper:{base:`relative w-full min-w-0`},native:{base:[T,`appearance-none pe-10`],variants:{size:ve,radius:x},defaults:{size:`lg`,radius:`md`}},nativeIcon:{base:`pointer-events-none absolute right-3 top-1/2 size-icon -translate-y-1/2 fill-current text-icon`}}}}),Ye=class{ordinaryCount;filter;records;projections=new Map;constructor({root:t,listboxId:n,props:r,resolveLabel:i,rememberLabel:a}){this.filter=r.filter,this.records=Array.from(t.querySelectorAll(q)).map((t,a)=>{let o=i(t,r),s=t.dataset.value||o,c=t.hasAttribute(`data-ui-select-option-create`);return{el:t,id:t.id||`${n}-option-${a}`,value:s,label:o,selectedLabel:t.dataset.selectedLabel||o,disabled:e({value:t.dataset.disabled}),create:c,minLength:Number(t.dataset.minLength??`0`),suffix:t.dataset.suffix??``}});let o=new Set;this.records.forEach(e=>{e.create||o.has(e.value)||(o.add(e.value),a(e.value,e.selectedLabel))}),this.ordinaryCount=this.records.filter(e=>!e.create).length}project(e,t){let n=t.map(({value:e})=>e),r=JSON.stringify([e,n]),i=this.projections.get(r);if(i)return i;let a=j(e),o=a!==``&&this.records.some(e=>!e.create&&j(e.label)===a),s=this.records.map(t=>{let r=!a||j(`${t.label} ${t.suffix}`).includes(a);return{...t,value:t.create?t.el.dataset.value||e:t.value,selected:n.includes(t.value),visible:t.create?!o&&e.length>=t.minLength:!this.filter||a===``||r}}),c=new Map,l=new Map;s.forEach(e=>{c.has(e.value)||c.set(e.value,e),l.set(e.el,e)});let u={options:s,enabled:s.filter(e=>e.visible&&!e.disabled&&!e.create),firstByValue:c,byElement:l};return this.projections.set(r,u),u}},q=`[data-ui-select-option], [data-ui-select-option-create]`,Xe=`template[data-ui-select-option-selected-template]`,Ze=new Set([`A`,`AREA`,`BUTTON`,`DETAILS`,`EMBED`,`IFRAME`,`INPUT`,`OBJECT`,`OPTION`,`SELECT`,`SUMMARY`,`TEXTAREA`]),J=new Set([`SCRIPT`,`STYLE`]),Qe=new Set([`autofocus`,`contenteditable`,`controls`,`download`,`draggable`,`form`,`formaction`,`formenctype`,`formmethod`,`formnovalidate`,`formtarget`,`href`,`id`,`name`,`popover`,`popovertarget`,`popovertargetaction`,`role`,`tabindex`,`target`]),Y=e=>Qe.has(e)||e.startsWith(`aria-`)&&e!==`aria-hidden`||e.startsWith(`data-ui-select`)||e===`data-ui-interactive`||e.startsWith(`data-ui-action`)||e.startsWith(`data-selected`)||e.startsWith(`data-highlighted`)||e.startsWith(`data-disabled`)||e.startsWith(`x-`)||e.startsWith(`hx-`)||e.startsWith(`v-`)||e.startsWith(`wire:`)||e.startsWith(`@`)||e.startsWith(`:`)||e.startsWith(`on`),X=e=>{if(!(e instanceof Element))return e;let t=e.localName.toUpperCase();if(J.has(t))return null;let n=e;return(Ze.has(t)||e.hasAttribute(`contenteditable`))&&(n=document.createElement(`span`),Array.from(e.attributes).forEach(e=>{Y(e.name)||n.setAttribute(e.name,e.value)}),n.append(...Array.from(e.childNodes))),Array.from(n.attributes).forEach(e=>{Y(e.name)&&n.removeAttribute(e.name)}),Array.from(n.childNodes).forEach(e=>{let t=X(e);t?t!==e&&e.replaceWith(t):e.remove()}),n.setAttribute(`x-ignore`,`true`),n},$e=e=>{let t=document.createDocumentFragment();return Array.from(e).forEach(e=>{if(e instanceof HTMLTemplateElement&&e.matches(Xe))return;let n=X(e.cloneNode(!0));n&&t.append(n)}),t},et=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),Z=()=>{let i=null,o=!1,s=``,c=``,l=``,u=``,f=null,p=null,m=null,g,re=``,ie=``,_=!1,v=!1,fe=null,pe=``,me=0,he=0,y=0,b=0,x=null,S=null,ge=0,_e=new Map,C=()=>{if(!i)throw Error(`Select has not been initialized.`);return i},ve=()=>{let e=C().querySelector(`[data-ui-select-control]`);if(!e)throw Error(`Select requires a control element.`);return e},w=()=>{let e=C().querySelector(`[data-ui-select-trigger], [data-ui-select-button], [data-ui-select-input]`);if(!e)throw Error(`Select requires a trigger element.`);return e},T=()=>C().querySelector(`[data-ui-select-input]`),E=()=>C().querySelector(`[data-ui-select-search-input]`),D=()=>{let e=C().querySelector(`[data-ui-select-sheet-title]`);if(!e)throw Error(`Select requires an adaptive picker title.`);return e},O=()=>{let e=C().querySelector(`[data-ui-select-popover]`);if(!e)throw Error(`Select requires a popover element.`);return e},k=()=>{let e=C().querySelector(`[data-ui-select-listbox]`);if(!e)throw Error(`Select requires a listbox element.`);return e},ye=()=>{let e=C().querySelector(`[data-ui-select-options]`);if(!e)throw Error(`Select requires an options element.`);return e},A=()=>C().querySelector(`[data-ui-select-virtualizer]`),M=()=>A()?._x_dataStack?.find(e=>typeof e.setUrl==`function`&&typeof e.setTotalItems==`function`)??null,we=()=>C().querySelector(`[data-ui-select-chips]`),N=()=>C().querySelector(`[data-ui-select-hidden-inputs]`),P=()=>Y.getCommittedSnapshot().props,F=()=>Y.getCommittedSnapshot().context,I=()=>Y.hasTag(`expanded`),L=()=>Y.hasTag(`visible`),Te=(e,t)=>{let n=e.dataset.label||e.getAttribute(`aria-label`)||``;if(n)return n;if(e.dataset.textValue)return e.dataset.textValue;let r=Ce(Se(e.dataset.item),t.path);return r==null?(e.querySelector(`[data-ui-select-option-label]`)?.textContent??e.textContent??``).trim():String(r)},Ee=(e=P())=>new Ye({root:C(),listboxId:l,props:e,resolveLabel:Te,rememberLabel:(e,t)=>_e.set(e,t)}),R=(e,t)=>{if(S)return e(S);S=Ee(t);try{return e(S)}finally{S=null}},z=(e=F().selection)=>e.map(({value:e})=>e),De=(e=F().selection)=>e.map(({label:e})=>e),B=(e,t=F().search.query,n=F().selection)=>e.project(t,n),V=e=>{let t=P();if(!E())return!1;if(t.mode===`combobox`)return!0;let n=e.ordinaryCount;return(t.virtualized?Math.max(n,t.optionsTotalItems,b):n)>=t.searchMinItems},H=(e,t,n=P())=>{let r=Array.from(new Set(e.filter(Boolean))),i=n.multiple?r:r.slice(0,1),a=t.project(``,[]);return i.map(e=>({value:e,label:a.firstByValue.get(e)?.selectedLabel??_e.get(e)??(typeof n.selectedLabelMap[e]==`string`?n.selectedLabelMap[e]:void 0)??e}))},Oe=e=>e.multiple?Array.from(new Set([...e.values,...e.value?[e.value]:[]])):e.value?[e.value]:e.values.slice(0,1),ke=t=>R(n=>{let r=Oe(t),i=n.project(``,[]).options.filter(t=>e({value:t.el.dataset.selected})).map(e=>e.value);return{selection:H(r.length>0?r:i,n,t),search:{query:``,optionsId:``},navigation:{activeValue:``},creation:{value:``}}},t),Ae=()=>{let{selection:e}=F(),t=P();return e.length===0||t.mode===`pillbox`&&t.multiple?``:t.multiple&&e.length>1?`${e.length} ${t.suffix}`:e[0]?.label??e[0]?.value??``},U=e=>{let t=e.el.querySelector(Xe);return t?$e(t.content.childNodes):null},Ne=e=>{let t=U(e);if(t)return t;let n=e.el.querySelector(`[data-ui-select-option-selected-content]`)??e.el.querySelector(`[data-ui-select-option-label]`);if(n)return $e(n.childNodes);let r=document.createDocumentFragment();return r.append(document.createTextNode(e.selectedLabel)),r},Pe=()=>{let e=P();if(o){let t=z();(I()||!e.open||!e.disabled&&!e.readonly)&&d({el:C(),schema:je,key:`open`,value:I()}),d({el:C(),schema:je,key:`value`,value:e.multiple?``:t[0]??``}),d({el:C(),schema:je,key:`values`,value:e.multiple?[...t]:[]})}C().dataset.state=I()?`open`:`closed`,C().dataset.mark=e.mark,se({el:C(),state:{disabled:e.disabled,required:e.required,invalid:e.invalid},value:`true`})},W=()=>P().mode===`pillbox`&&P().multiple,Fe=()=>{let e=P(),t=W()&&F().selection.length===0,r=ve();r.className=h({part:K.parts.control,props:{...e,mode:W()?`pillbox`:e.mode===`combobox`?`combobox`:`listbox`,empty:t}}),r.dataset.state=I()?`open`:`closed`,r.dataset.mode=W()?`pillbox`:e.mode,n({el:r,attr:`data-ui-select-pillbox-control`,present:W(),value:``}),n({el:r,attr:`data-empty`,present:t,value:`true`}),se({el:r,state:{disabled:e.disabled,invalid:e.invalid},value:`true`})},Ie=e=>{let t=P(),r=w();r.id||=s,r.dataset.state=I()?`open`:`closed`,r.setAttribute(`aria-haspopup`,`listbox`),r.setAttribute(`aria-expanded`,I()?`true`:`false`),r.setAttribute(`aria-controls`,l),n({el:r,attr:`aria-invalid`,present:t.invalid,value:`true`}),r instanceof HTMLButtonElement&&(r.disabled=t.disabled);let i=Ae(),a=C().querySelector(`[data-ui-select-button-value]`),o=C().querySelector(`[data-ui-select-button-placeholder]`);if(a){a.replaceChildren();let t=F().selection.length===1&&i?e.project(``,F().selection).firstByValue.get(F().selection[0]?.value??``):void 0;t?a.append(Ne(t)):a.textContent=i,a.hidden=i===``}o&&(o.hidden=W()?F().selection.length>0:i!==``),C().querySelectorAll(`[data-ui-select-clear], [data-ui-select-button-clear]`).forEach(e=>{e.hidden=t.disabled||!t.clearable||F().selection.length===0,e instanceof HTMLButtonElement&&(e.disabled=t.disabled)}),C().querySelectorAll(`[data-ui-select-search-clear]`).forEach(e=>{e.hidden=t.disabled||!F().search.query,e instanceof HTMLButtonElement&&(e.disabled=t.disabled)})},Re=e=>{let t=P(),n=F(),r=T();r&&(r.id||=c,r.className=h({part:K.parts.input,className:t.inputClass}),r.value=W()||I()&&_?n.search.query:Ae(),r.placeholder=W()&&n.selection.length>0?``:t.placeholder,r.setAttribute(`role`,`combobox`),r.setAttribute(`autocomplete`,`off`),r.setAttribute(`aria-autocomplete`,`list`),r.setAttribute(`aria-expanded`,I()?`true`:`false`),r.setAttribute(`aria-controls`,l),ce({input:r,state:{disabled:t.disabled,readonly:t.readonly,required:t.required,nativeRequired:!1,invalid:t.invalid,ariaRequired:t.required}}));let i=E();if(i){let r=i.closest(`[data-ui-select-search]`);r&&(r.hidden=!V(e)),i.value=n.search.query,i.disabled=t.disabled,i.readOnly=t.readonly}let a=B(e).firstByValue.get(n.navigation.activeValue);[w(),r,i,k()].forEach(e=>{a?.id?e?.setAttribute(`aria-activedescendant`,a.id):e?.removeAttribute(`aria-activedescendant`)})},ze=()=>{let e=P(),t=O(),r=k();t.id=`${l}-popover`,t.className=h({part:K.parts.popover,props:e,className:e.listboxClass}),t.dataset.uiSurface=e.surface,t.dataset.uiElevation=e.elevation,t.setAttribute(`popover`,`manual`),t.dataset.state=I()?`open`:`closed`,t.hidden=!L(),r.id=l,r.setAttribute(`role`,`listbox`),r.tabIndex=-1,r.setAttribute(`aria-labelledby`,w().id),n({el:r,attr:`aria-multiselectable`,present:e.multiple,value:`true`})},Be=e=>{let t=P(),r=F();C().querySelectorAll(`[data-ui-select-create-query]`).forEach(e=>{e.textContent=r.search.query});let i=B(e).options;i.forEach(e=>{e.el.id=e.id,e.el.hidden=!e.visible,e.el.setAttribute(`role`,`option`),e.el.setAttribute(`aria-selected`,e.selected?`true`:`false`),e.create||(e.el.dataset.value=e.value),e.create||(e.el.dataset.label=e.label),n({el:e.el,attr:`data-selected`,present:e.selected,value:`true`}),n({el:e.el,attr:`data-highlighted`,present:e.value===r.navigation.activeValue,value:`true`}),n({el:e.el,attr:`data-disabled`,present:e.disabled,value:`true`}),n({el:e.el,attr:`aria-disabled`,present:e.disabled,value:`true`}),e.el.querySelectorAll(`[data-ui-select-option-indicator]`).forEach(t=>{n({el:t,attr:`data-selected`,present:e.selected,value:`true`})})});let a=C().querySelector(`[data-ui-select-option-empty]`);a&&(a.hidden=t.virtualized&&t.optionsFetchUrl?y!==0:i.some(e=>e.visible&&!e.create))},Ve=()=>JSON.stringify(Array.from(C().querySelectorAll(q)).map(e=>({create:e.hasAttribute(`data-ui-select-option-create`),value:e.dataset.value??``,label:e.hasAttribute(`data-ui-select-option-create`)?e.textContent?.trim()??``:e.dataset.label??e.textContent?.trim()??``,disabled:e.dataset.disabled??``,selected:e.dataset.selected??``,selectedContent:e.querySelector(Xe)?.innerHTML??null}))),He=e=>{let t=we();if(!t)return;let n=P(),r=F(),i=e.project(``,r.selection),a=r.selection.map(({value:e,label:t})=>({value:e,label:t,disabled:i.firstByValue.get(e)?.disabled??!1,option:i.firstByValue.get(e)})),o=n.size===`xs`||n.size===`sm`?`xs`:`sm`,s=JSON.stringify({chips:a.map(({value:e,label:t,disabled:n})=>({value:e,label:t,disabled:n})),optionRevision:ge,pillbox:W(),disabled:n.disabled,readonly:n.readonly,variant:n.chipVariant,color:n.chipColor,size:o,className:n.chipClass});if(s===ie||(ie=s,t.replaceChildren(),t.hidden=!W()||a.length===0,t.hidden))return;let c=h({part:be.parts.root,props:{variant:n.chipVariant,color:n.chipColor,size:o,radius:`sm`},className:h({part:K.parts.chip,props:{},className:n.chipClass})}),l=h({part:K.parts.chipLabel}),u=h({part:K.parts.chipPlainLabel}),d=h({part:be.parts.close,props:{size:o},className:h({part:K.parts.chipRemove})});a.forEach(e=>{let r=e.label||e.value,i=document.createElement(`span`);i.className=c,i.setAttribute(`data-ui-badge`,``),i.setAttribute(`data-ui-action-recipe`,`badge`),i.setAttribute(`data-ui-select-chip`,``),i.dataset.value=e.value,i.dataset.variant=n.chipVariant,i.dataset.color=n.chipColor,i.dataset.size=o,i.dataset.radius=`sm`;let a=document.createElement(`span`);a.className=l,a.setAttribute(`data-ui-select-chip-label`,``);let s=e.option?U(e.option):null;if(s)a.append(s);else{let e=document.createElement(`span`);e.className=u,e.textContent=r,a.append(e)}i.append(a);let f=document.createElement(`button`);f.type=`button`,f.className=d,f.setAttribute(`data-ui-badge-close`,``),f.setAttribute(`data-ui-select-chip-remove`,``),f.dataset.value=e.value,f.setAttribute(`aria-label`,`Remove ${r}`),f.disabled=n.disabled||n.readonly||e.disabled;let ee=C().querySelector(`[data-ui-select-chip-remove-icon]`);ee?f.append(ee.content.cloneNode(!0)):f.textContent=`x`,i.append(f),t.append(i)})},Ue=()=>{let e=N();if(!e)return;let t=P();re=oe({container:e,state:{name:t.name,required:t.required,values:t.disabled?[]:z(),form:C().dataset.form??``,marker:`data-ui-select-hidden-input`},currentKey:re})},G=()=>R(e=>{Pe(),Fe(),Ie(e),Re(e),ze(),Be(e),He(e),Ue()}),We=()=>{i&&R(e=>{if(!Y.hasTag(`interactive`))return;let t=P();f?.presentation()===`anchored`?t.mode===`combobox`?T()?.focus({preventScroll:!0}):V(e)?E()?.focus({preventScroll:!0}):w().focus({preventScroll:!0}):((V(e)?E():null)??C().querySelector(`[data-ui-select-sheet-close]`)??k()).focus({preventScroll:!0})})},Ge=()=>R(e=>{if(F().navigation.activeValue)return;let t=B(e).enabled,n=z().map(e=>t.find(t=>t.value===e)).find(e=>e!==void 0);n&&Q(n.value)}),Ke=()=>R(e=>{let t=F(),n=H(z(t.selection),e);et(De(n),De(t.selection))||Y.send({type:`RECONCILE_SELECTION`,selection:n});let r=B(e).enabled;t.navigation.activeValue&&!r.some(e=>e.value===t.navigation.activeValue)&&Y.send({type:`ACTIVE`,value:P().autoHighlight?r[0]?.value??``:``}),G()}),qe=e=>R(t=>{let n=(Array.isArray(e.changes)?e.changes:[]).flatMap(e=>e&&typeof e==`object`&&`key`in e?[String(e.key)]:[]);if(n.some(e=>e===`value`||e===`values`||e===`multiple`||e===`selectedLabelMap`)){let e=H(Oe(P()),t);Y.send({type:`RECONCILE_SELECTION`,selection:e})}n.includes(`optionsTotalItems`)&&(y=P().optionsTotalItems,b=y,M()?.setTotalItems(y)),n.includes(`optionsFetchUrl`)&&(J(),queueMicrotask(J)),G()}),Ze=e=>{let t=P(),n=new URL(t.optionsFetchUrl,document.baseURI);return e?n.searchParams.set(t.optionSearchParam,e):n.searchParams.delete(t.optionSearchParam),/^[a-z][a-z\d+.-]*:/i.test(t.optionsFetchUrl)||t.optionsFetchUrl.startsWith(`//`)?n.href:`${n.pathname}${n.search}${n.hash}`},J=()=>{if(!i)return;let e=P();if(!e.virtualized)return;let t=e.optionsFetchUrl?Ze(F().search.query):``,n=A();if(!n)return;if(n.dataset.fetchUrl===t){x=t;return}if(x===t)return;let r=M();r&&(x=t,r.setUrl(t,{reset:!0}))},Qe=()=>{window.clearTimeout(he);let e=P();e.virtualized&&e.optionsFetchUrl&&(e.searchable||e.mode===`combobox`)&&(he=window.setTimeout(()=>{J();let t=M();t&&y===0&&e.optionsTotalItems>0&&(y=e.optionsTotalItems,t.setTotalItems(y))},e.optionSearchDebounce))},Y=ee({schema:je,hooks:Me,createMachine:({props:e})=>Le({props:e,context:ke(e),effects:{prepareOpen:()=>R(()=>{v=!1,f?.open(),Ge(),G(),queueMicrotask(We)}),finishOpen:()=>{G(),t({el:C(),name:`ui:open`})},prepareClose:({event:e})=>{_=!1,v=e.restoreFocus===!0||e.type===`SELECT`||e.type===`CREATE`,v&&w().focus({preventScroll:!0}),G()},finishClose:()=>{f?.close(),G(),v&&w().focus({preventScroll:!0}),v=!1,t({el:C(),name:`ui:close`})},commitSelection:({event:e})=>{G(),a(C(),`data-value`,`data-values`),le({container:N(),fallback:C(),marker:`data-ui-select-hidden-input`});let{selection:n}=F();e.type===`CLEAR`&&t({el:C(),name:`ui:clear`}),t({el:C(),name:`ui:change`,detail:{value:n[0]?.value??``,values:z(n),label:n[0]?.label??``,labels:De(n),option:fe}}),fe=null},commitSearch:()=>{G(),t({el:C(),name:`ui:search`,detail:{search:F().search.query}}),Qe()},prepareCreate:({event:e})=>{G(),t({el:C(),name:`ui:create`,detail:{search:F().search.query,value:F().creation.value,modal:typeof e.modal==`string`?e.modal:``}})},syncProps:({event:e})=>qe(e),syncOptions:Ke,syncActive:G,syncDom:G}})}),X=(e,t)=>Y.send({type:e,selection:t}),Z=(e,t,n)=>{n?.preventDefault();let r=P();if(r.disabled||r.readonly||e.disabled)return;if(e.create){Y.send({type:`CREATE`,value:e.value||F().search.query,modal:e.el.dataset.modal??``});return}fe=e.el,_=!1;let i=z(),a=r.multiple?i.includes(e.value)?i.filter(t=>t!==e.value):[...i,e.value]:[e.value];X(`SELECT`,H(a,t))},Q=e=>R(n=>{if(e===F().navigation.activeValue)return;Y.send({type:`ACTIVE`,value:e});let r=B(n).firstByValue.get(e);t({el:C(),name:`ui:highlight`,detail:{value:e,option:r?.el??null}})}),tt=e=>R(t=>{let n=B(t).enabled;if(n.length===0)return;let r=n.findIndex(e=>e.value===F().navigation.activeValue),i=r<0?e>0?0:n.length-1:r+e;i>=n.length&&(i=P().loop?0:n.length-1),i<0&&(i=P().loop?n.length-1:0),Q(n[i]?.value??``)}),nt=e=>R(t=>{let n=P();if(n.disabled||n.readonly)return;_=!0;let r=n.autoHighlight?B(t,e).enabled[0]?.value??``:``;Y.send({type:`SEARCH`,query:e,optionsId:u,activeValue:r})}),rt=e=>R(t=>{if(e.key===`Tab`&&f?.presentation()!==`anchored`){ue(e,O());return}let n=e.target instanceof HTMLInputElement;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),I()||Y.send({type:`OPEN`}),tt(e.key===`ArrowDown`?1:-1);return}if(!n&&I()&&(e.key===`Home`||e.key===`End`)){e.preventDefault();let n=B(t).enabled;Q(e.key===`Home`?n[0]?.value??``:n.at(-1)?.value??``);return}if(I()&&(e.key===`Enter`||!n&&e.key===` `)){let n=B(t).firstByValue.get(F().navigation.activeValue);n&&Z(n,t,e);return}if((e.key===`Backspace`||e.key===`Delete`)&&W()&&!F().search.query){let n=T();if(n&&(n.selectionStart!==0||n.selectionEnd!==0))return;let r=t.project(``,F().selection),i=[...z()].reverse().find(e=>!r.firstByValue.get(e)?.disabled);i&&(e.preventDefault(),$.deselect(i,e));return}if(e.key===`Escape`&&L()){e.preventDefault(),e.stopPropagation(),Y.send({type:`CLOSE`,restoreFocus:!0});return}if(!n&&!V(t)&&e.key.length===1&&!e.metaKey&&!e.ctrlKey&&!e.altKey){pe+=e.key.toLowerCase(),window.clearTimeout(me),me=window.setTimeout(()=>{pe=``},500);let n=B(t).enabled.find(e=>j(e.label).startsWith(pe));n&&Q(n.value)}}),it=()=>{let e=C(),t=(e,t)=>t.closest(`[data-ui-select-trigger], [data-ui-select-icon="trailing"], [data-ui-select-control]`)?(e.preventDefault(),e instanceof PointerEvent||e instanceof MouseEvent&&e.detail>0?xe(w()):w().focus({preventScroll:!0}),w()instanceof HTMLInputElement?I()||Y.send({type:`OPEN`}):$.toggle(e),!0):!1;r({target:e,event:`click`,cleanup:g,handler:e=>{let n=e.target;if(!(n instanceof Element))return;if(n.closest(`[data-ui-select-sheet-close]`)){$.close(e);return}if(n.closest(`[data-ui-select-search-clear]`)){e.preventDefault(),nt(``);return}if(n.closest(`[data-ui-select-clear], [data-ui-select-button-clear]`)){$.clear(e);return}let r=n.closest(`[data-ui-select-chip-remove]`);if(r){$.deselect(r.dataset.value??``,e);return}let i=n.closest(q);if(i){R(t=>{let n=B(t).byElement.get(i);n&&Z(n,t,e)});return}(!(e instanceof MouseEvent)||e.detail===0)&&t(e,n)}}),r({target:e,event:`input`,cleanup:g,handler:e=>{let t=e.target;t instanceof HTMLInputElement&&t.matches(`[data-ui-select-input], [data-ui-select-search-input]`)&&nt(t.value)}}),r({target:e,event:`keydown`,cleanup:g,handler:e=>{e instanceof KeyboardEvent&&rt(e)}}),r({target:e,event:`pointerdown`,cleanup:g,handler:e=>{let n=e.target;if(n instanceof Element){if(n.closest(q)||n.closest(`[data-ui-select-search-clear]`)||n.closest(`[data-ui-select-clear], [data-ui-select-button-clear], [data-ui-select-chip-remove]`)){e.preventDefault();return}t(e,n)}}}),r({target:e,event:`pointerover`,cleanup:g,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(q);n&&R(e=>{let t=B(e).byElement.get(n);t&&t.visible&&!t.disabled&&Q(t.value)})}}),r({target:e,event:`focusout`,cleanup:g,handler:t=>{if(!(t instanceof FocusEvent))return;let n=t.relatedTarget;n instanceof Node&&e.contains(n)||L()&&Y.send({type:`CLOSE`})}}),r({target:e,event:`ui:virtualizer-total-change`,cleanup:g,handler:e=>{if(!(e instanceof CustomEvent)||!A()?.contains(e.target))return;let t=Number(e.detail?.totalItems);Number.isFinite(t)&&t>=0&&(y=Math.floor(t),b=Math.max(b,y)),Y.send({type:`OPTIONS_CHANGED`})}}),r({target:e,event:`ui:virtualizer-load`,cleanup:g,handler:e=>{A()?.contains(e.target)&&Y.send({type:`OPTIONS_CHANGED`})}}),r({target:O(),event:`toggle`,cleanup:g,handler:e=>{`newState`in e&&e.newState===`closed`&&L()&&Y.send({type:`CLOSE`})}}),g.add(ae({isEnabled:()=>Y.hasTag(`interactive`),roots:()=>[C(),O()],onDismiss:()=>Y.send({type:`CLOSE`})}));let n=()=>{m?.();let e=Array.from(C().querySelectorAll(Xe)).map(e=>{let t=new MutationObserver(()=>{ge+=1,Y.send({type:`OPTIONS_CHANGED`})});return t.observe(e.content,{attributes:!0,characterData:!0,childList:!0,subtree:!0}),t});m=()=>e.forEach(e=>e.disconnect())};p=de({targets:k(),read:Ve,onChange:()=>{ge+=1,n(),Y.send({type:`OPTIONS_CHANGED`})},observer:{attributes:!0,attributeFilter:[`data-disabled`,`data-item`,`data-label`,`data-selected`,`data-selected-label`,`data-text-value`,`data-ui-select-option-selected-template`,`data-value`],characterData:!0,childList:!0,subtree:!0}}),n()},$;return $={...Y,get isOpen(){return this.snapshot.current?.tags.includes(`expanded`)??!1},get isSearching(){return this.snapshot.current?.tags.includes(`searching`)??!1},get value(){return this.snapshot.current?.context.selection[0]?.value??``},get values(){return this.snapshot.current?.context.selection.map(({value:e})=>e)??[]},get selectedLabels(){return this.snapshot.current?.context.selection.map(({label:e})=>e)??[]},get search(){return this.snapshot.current?.context.search.query??``},get activeValue(){return this.snapshot.current?.context.navigation.activeValue??``},init(){g=te(this),i=this.$el,s=this.$id(`select-button`),c=this.$id(`select-input`),l=this.$id(`select-listbox`),u=ye().id||C().dataset.optionsId||this.$id(`select-options`),ye().id=u,Y.connect(this.$el,this.snapshot),y=P().optionsTotalItems,b=y,D().id||=`${l}-title`,f=Je({reference:ve,floating:O,labelId:()=>D().id,position:()=>P().side,align:()=>P().align,gap:()=>P().gap,offset:()=>P().offset,matchReferenceWidth:!0}),it(),G(),queueMicrotask(J),o=!0,P().open&&!P().disabled&&!P().readonly&&queueMicrotask(()=>Y.send({type:`OPEN`}))},destroy(){window.clearTimeout(me),window.clearTimeout(he),p?.(),p=null,m?.(),m=null,f?.destroy(),f=null,Y.disconnect(),i=null},get root(){let e=this.snapshot.current?.props??P();return ne({inputs:[h({part:K.parts.root,props:e,className:e.class}),{"data-ui-select":``,":data-state":()=>Y.hasTag(`expanded`)?`open`:`closed`}]})},open(e){e?.preventDefault(),!(P().disabled||P().readonly)&&Y.send({type:`OPEN`})},close(e){e?.preventDefault(),Y.send({type:`CLOSE`,restoreFocus:e instanceof KeyboardEvent})},toggle(e){e?.preventDefault(),!(P().disabled||P().readonly)&&Y.send({type:`TOGGLE`})},select(e,t){R(n=>{let r=n.project(``,F().selection).firstByValue.get(e);r&&!r.create&&Z(r,n,t)})},deselect(e,t){R(n=>{t?.preventDefault(),!(P().disabled||P().readonly)&&(n.project(``,F().selection).firstByValue.get(e)?.disabled||X(`DESELECT`,H(z().filter(t=>t!==e),n)))})},selectAll(e){R(t=>{if(e?.preventDefault(),!P().multiple||P().disabled||P().readonly)return;let n=B(t).enabled;X(`SELECT_ALL`,n.map(e=>({value:e.value,label:e.selectedLabel})))})},clear(e){if(e?.preventDefault(),e?.stopPropagation(),P().disabled||P().readonly)return;_=!1;let t=F().search.query!==``;Y.send({type:`CLEAR`}),t&&Qe()},setSearch:nt},$},Q=p(`UiSelect`,Z),tt=new WeakSet,nt=e=>{tt.has(e)||(tt.add(e),i(e),Q(e))};export{Z as n,nt as t};
2
- //# sourceMappingURL=entry.generated-CyynUmGS.js.map