@vireo-ai/trellis-ui 0.1.27 → 0.1.30

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 (203) hide show
  1. package/package.json +7 -2
  2. package/packages/client/src/components/checkbox/styles.css +7 -0
  3. package/packages/client/src/components/field/styles.css +71 -0
  4. package/packages/client/src/components/file-upload/styles.css +68 -0
  5. package/packages/client/src/components/radio/styles.css +2 -8
  6. package/packages/client/src/components/tabs/styles.css +73 -0
  7. package/packages/client/src/components/toast/styles.css +123 -0
  8. package/packages/client/src/styles/components.css +15 -4
  9. package/packages/client/src/styles/generated/theme-fonts.css +1 -1
  10. package/packages/client/src/styles/generated/theme-palette.css +77 -1462
  11. package/packages/client/src/styles/generated/theme-runtime.css +1 -1390
  12. package/packages/client/src/styles/generated-sources.css +1 -1
  13. package/packages/client/src/styles/recipes/action.css +175 -0
  14. package/packages/client/src/styles/recipes/disabled.css +16 -0
  15. package/packages/client/src/styles/recipes/option.css +123 -0
  16. package/packages/client/src/styles/recipes/selection.css +78 -0
  17. package/packages/client/src/styles/theme.css +45 -719
  18. package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
  19. package/packages/client/types/capabilities/motion.entry.generated.d.ts +3 -0
  20. package/packages/client/types/capabilities/resizable.entry.generated.d.ts +3 -0
  21. package/packages/client/types/capabilities/sortable.entry.generated.d.ts +3 -0
  22. package/packages/client/types/component-api.d.ts +10 -10
  23. package/packages/client/types/components/accordion/index.d.ts +7 -4
  24. package/packages/client/types/components/accordion/machine.d.ts +51 -57
  25. package/packages/client/types/components/card/contract.d.ts +5 -2
  26. package/packages/client/types/components/checkbox/contract.d.ts +17 -7
  27. package/packages/client/types/components/common.d.ts +6 -1
  28. package/packages/client/types/components/date-picker/index.d.ts +7 -4
  29. package/packages/client/types/components/date-picker/machine.d.ts +46 -362
  30. package/packages/client/types/components/dropdown/index.d.ts +7 -4
  31. package/packages/client/types/components/dropdown/machine.d.ts +5 -67
  32. package/packages/client/types/components/field/index.d.ts +1 -2
  33. package/packages/client/types/components/file-upload/index.d.ts +7 -4
  34. package/packages/client/types/components/file-upload/machine.d.ts +17 -39
  35. package/packages/client/types/components/input/index.d.ts +1 -2
  36. package/packages/client/types/components/modal/index.d.ts +6 -2
  37. package/packages/client/types/components/modal/machine.d.ts +5 -103
  38. package/packages/client/types/components/panels/index.d.ts +6 -2
  39. package/packages/client/types/components/panels/machine.d.ts +59 -81
  40. package/packages/client/types/components/radio/contract.d.ts +12 -4
  41. package/packages/client/types/components/runtime.d.ts +10 -10
  42. package/packages/client/types/components/scroll-area/index.d.ts +1 -2
  43. package/packages/client/types/components/select/index.d.ts +7 -4
  44. package/packages/client/types/components/select/machine.d.ts +37 -331
  45. package/packages/client/types/components/sidebar/index.d.ts +6 -2
  46. package/packages/client/types/components/sidebar/machine.d.ts +11 -47
  47. package/packages/client/types/components/slider/index.d.ts +1 -2
  48. package/packages/client/types/components/switch/index.d.ts +1 -2
  49. package/packages/client/types/components/tabs/contract.d.ts +6 -2
  50. package/packages/client/types/components/tabs/index.d.ts +7 -4
  51. package/packages/client/types/components/tabs/machine.d.ts +11 -29
  52. package/packages/client/types/components/toast/index.d.ts +6 -2
  53. package/packages/client/types/components/toast/machine.d.ts +7 -66
  54. package/packages/client/types/core.d.ts +2 -2
  55. package/packages/client/types/runtime/alpine-data.d.ts +6 -0
  56. package/packages/client/types/runtime/alpine-machine.d.ts +3 -8
  57. package/packages/client/types/runtime/engine/request.d.ts +1 -0
  58. package/packages/client/types/runtime/index.d.ts +7 -3
  59. package/packages/client/types/runtime/transition-coordinator.d.ts +41 -7
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +638 -3428
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +492 -376
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +2 -0
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js.map +1 -0
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +2 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js.map +1 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js.map +1 -0
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-DZ17j0jc.js +2 -0
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-data-DZ17j0jc.js.map +1 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-BS13dbK4.js +2 -0
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-BS13dbK4.js.map +1 -0
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-wMoceguq.js +2 -0
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-wMoceguq.js.map +1 -0
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-C6LKIbpv.js +2 -0
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-C6LKIbpv.js.map +1 -0
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BurX5yRd.js +3 -0
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BurX5yRd.js.map +1 -0
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{common-DAxHCzB-.js → common-BOd_thC-.js} +2 -2
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{common-DAxHCzB-.js.map → common-BOd_thC-.js.map} +1 -1
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BuKz1uWk.js +2 -0
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-DjoX4J-6.js.map → core-BuKz1uWk.js.map} +1 -1
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-BV6kB47L.js +2 -0
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/drag-and-drop-BV6kB47L.js.map +1 -0
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-9sxiaVVI.js +2 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-9sxiaVVI.js.map +1 -0
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BehM6Hle.js +2 -0
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BehM6Hle.js.map +1 -0
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BhPEF6oz.js +2 -0
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-xcXw-cEl.js.map → entry.generated-BhPEF6oz.js.map} +1 -1
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BqOi_tIN.js +2 -0
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BqOi_tIN.js.map +1 -0
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BuXeU4zt.js +2 -0
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BuXeU4zt.js.map +1 -0
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C-MH09sf.js +2 -0
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C-MH09sf.js.map +1 -0
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3h9Czzn.js +2 -0
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C3h9Czzn.js.map +1 -0
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5Bueyfb.js +2 -0
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C5Bueyfb.js.map +1 -0
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CCka3fIO.js +2 -0
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CCka3fIO.js.map +1 -0
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSxEK8G9.js +2 -0
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CSxEK8G9.js.map +1 -0
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CoJxfxlc.js +2 -0
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CoJxfxlc.js.map +1 -0
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6cdmqiV.js +2 -0
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D6cdmqiV.js.map +1 -0
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DBSwLHmm.js +2 -0
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DBSwLHmm.js.map +1 -0
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DEiL4FhC.js +2 -0
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DEiL4FhC.js.map +1 -0
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DRqap77P.js +2 -0
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DRqap77P.js.map +1 -0
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dzw2Rg5F.js +2 -0
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Dzw2Rg5F.js.map +1 -0
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EtCfrZfr.js +2 -0
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EtCfrZfr.js.map +1 -0
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-cMueWbY7.js +2 -0
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-cMueWbY7.js.map +1 -0
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js +2 -0
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Dqut4h89.js.map +1 -0
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BRaHJwNf.js +3 -0
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BRaHJwNf.js.map +1 -0
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-BUswpsNx.js +2 -0
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{semantic-observer-9VxzbQBi.js.map → semantic-observer-BUswpsNx.js.map} +1 -1
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/stream-pMBGbBZH.js +4 -0
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/stream-pMBGbBZH.js.map +1 -0
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-H3t7UHMs.js +2 -0
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-H3t7UHMs.js.map +1 -0
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +2 -1
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -0
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  143. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
  144. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +232 -127
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DjoX4J-6.js +0 -2
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-5kNpQFGr.js +0 -2
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-5kNpQFGr.js.map +0 -1
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B85L90Qp.js +0 -2
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B85L90Qp.js.map +0 -1
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BGCM6LAW.js +0 -2
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BGCM6LAW.js.map +0 -1
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bc-uE56r.js +0 -2
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bc-uE56r.js.map +0 -1
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C6ldtrmy.js +0 -2
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C6ldtrmy.js.map +0 -1
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPWoMIwn.js +0 -2
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPWoMIwn.js.map +0 -1
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Co0bLLZE.js +0 -2
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Co0bLLZE.js.map +0 -1
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CtyXH8zf.js +0 -2
  173. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CtyXH8zf.js.map +0 -1
  174. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DGrOItIx.js +0 -2
  175. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DGrOItIx.js.map +0 -1
  176. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DHMRhcYF.js +0 -2
  177. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DHMRhcYF.js.map +0 -1
  178. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DgmqZx_W.js +0 -2
  179. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DgmqZx_W.js.map +0 -1
  180. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DoOgk6l4.js +0 -2
  181. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DoOgk6l4.js.map +0 -1
  182. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DxUOcPkU.js +0 -2
  183. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DxUOcPkU.js.map +0 -1
  184. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DyIjCOhT.js +0 -2
  185. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DyIjCOhT.js.map +0 -1
  186. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DzG9Lai4.js +0 -3
  187. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DzG9Lai4.js.map +0 -1
  188. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-K6qKowpw.js +0 -2
  189. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-K6qKowpw.js.map +0 -1
  190. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oAIExc1V.js +0 -2
  191. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oAIExc1V.js.map +0 -1
  192. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wHjTggCn.js +0 -2
  193. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-wHjTggCn.js.map +0 -1
  194. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xcXw-cEl.js +0 -2
  195. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CX3wFSoV.js +0 -2
  196. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CX3wFSoV.js.map +0 -1
  197. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-Bpttk6iZ.js +0 -3
  198. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-Bpttk6iZ.js.map +0 -1
  199. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resizable-BixtYF9M.js +0 -2
  200. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resizable-BixtYF9M.js.map +0 -1
  201. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/semantic-observer-9VxzbQBi.js +0 -2
  202. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-xTjuF3uC.js +0 -4
  203. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-xTjuF3uC.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-K6qKowpw.js","names":[],"sources":["../../../../../../../../client/src/components/input/contract.ts","../../../../../../../../client/src/components/input/machine.ts","../../../../../../../../client/src/components/input/index.ts","../../../../../../../../client/src/components/input/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n CONTROL_VARIANTS,\n COMPONENT_RADII,\n ICON_VARIANTS,\n type ComponentRadius,\n type ControlSize,\n type ControlVariant,\n type IconVariant,\n} from '../common';\n\nconst INPUT_SIZES = CONTROL_SIZES;\nconst INPUT_VARIANTS = CONTROL_VARIANTS;\nconst INPUT_RADII = COMPONENT_RADII;\nconst INPUT_ICON_VARIANTS = ICON_VARIANTS;\n\ntype InputSize = ControlSize;\ntype InputVariant = ControlVariant;\ntype InputRadius = ComponentRadius;\ntype InputIconVariant = IconVariant;\n\nconst inputSchema = {\n type: string.default('text'),\n name: string,\n value: string,\n placeholder: string,\n size: oneOf(INPUT_SIZES, 'lg' as InputSize),\n variant: oneOf(INPUT_VARIANTS, 'outline' as InputVariant),\n radius: oneOf(INPUT_RADII, 'md' as InputRadius),\n disabled: bool,\n readonly: bool,\n required: bool,\n invalid: bool,\n icon: string,\n iconTrailing: string,\n iconVariant: oneOf(INPUT_ICON_VARIANTS, 'outline' as InputIconVariant),\n clearable: bool,\n copyable: bool,\n kbd: string,\n prefix: string,\n suffix: string,\n rootClass: string,\n controlClass: string,\n class: string,\n};\n\nconst inputGroupSchema = {\n size: oneOf(INPUT_SIZES, 'lg' as InputSize),\n variant: oneOf(INPUT_VARIANTS, 'outline' as InputVariant),\n radius: oneOf(INPUT_RADII, 'md' as InputRadius),\n label: string,\n description: string,\n descriptionTrailing: string,\n error: string,\n errors: string,\n badge: string,\n fieldClass: string,\n class: string,\n};\n\nconst inputAffixSchema = {\n class: string,\n};\n\ntype InputProps = SchemaToProps<typeof inputSchema>;\n\nexport {INPUT_ICON_VARIANTS, INPUT_RADII, INPUT_SIZES, INPUT_VARIANTS, inputAffixSchema, inputGroupSchema, inputSchema};\nexport type {InputIconVariant, InputProps, InputRadius, InputSize, InputVariant};\n","import {createMachine, propsChangedEvent, type Machine, type MachineEventObject, type MachineScope} from '../../runtime/state-machine';\nimport type {InputProps} from './contract';\n\ntype InputContext = {value: string};\ntype InputEffects = {\n sync(scope: MachineScope<InputContext, InputProps>): void;\n copy(scope: MachineScope<InputContext, InputProps>): void;\n emitInput(scope: MachineScope<InputContext, InputProps>): void;\n emitChange(scope: MachineScope<InputContext, InputProps>): void;\n focus(scope: MachineScope<InputContext, InputProps>): void;\n startCopiedTimer(scope: MachineScope<InputContext, InputProps>): void;\n};\nconst inputHooks = [] as const;\nconst eventValue = (event: MachineEventObject): string => typeof event.value === 'string' ? event.value : '';\nconst setValue = (scope: MachineScope<InputContext, InputProps>) => ({context: {value: eventValue(scope.event)}});\nconst clearValue = () => ({context: {value: ''}});\nconst reconcileProps = (scope: MachineScope<InputContext, InputProps>) => {\n const event = propsChangedEvent<InputProps>(scope.event);\n if (!event) return;\n const valueChanged = event.changes.some(({key}) => key === 'value');\n return {props: event.props, context: valueChanged ? {value: event.props.value} : scope.context};\n};\n\nconst createInputMachine = ({props, effects}: {props: InputProps; effects: InputEffects}): Machine<InputContext, InputProps> => createMachine<InputContext, InputProps>({\n initial: 'idle',\n on: {\n VALUE_CHANGED: {reduce: 'setValue', effects: 'sync'},\n CLEAR: {target: 'idle', reduce: 'clearValue', effects: ['sync', 'emitInput', 'emitChange', 'focus']},\n COPY: {target: 'copying', effects: 'copy'},\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n },\n states: {\n idle: {},\n copying: {on: {\n COPY_DONE: {target: 'copied', effects: ['sync', 'startCopiedTimer']},\n COPY_ERROR: {target: 'idle', effects: 'sync'},\n }},\n copied: {tags: ['copied'], on: {\n COPY: {target: 'copying', effects: 'copy'},\n COPIED_TIMEOUT: {target: 'idle', effects: 'sync'},\n }},\n },\n}, {\n context: {value: props.value},\n props,\n reducers: {setValue, clearValue, reconcileProps},\n effects,\n});\n\nexport {createInputMachine, inputHooks};\nexport type {InputContext, InputEffects};\n","import type Alpine from 'alpinejs';\n\nimport {type AlpineMachine, createAlpineMachine, type MachineSnapshot, type TrellisAlpineComponent} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {addListener, setPresence, type CleanupStack} from '@client/utils';\nimport {inputSchema, type InputProps} from './contract';\nimport {createInputMachine, inputHooks, type InputContext} from './machine';\n\n/** Public Alpine API for `ui.input` and `ui.input.control`. @public */\ninterface UiInputApi {\n /** Current native input value. */\n readonly value: string;\n /** Clear the input, emit native input/change events, and restore focus. */\n clear(): void;\n /** Copy the current value to the clipboard. */\n copy(): void;\n}\n\ntype InputData = AlpineMachine<InputContext, InputProps, typeof inputHooks> & UiInputApi & {\n init(): void;\n destroy(): void;\n};\n\nconst UiInput = (): TrellisAlpineComponent<InputData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let listeners: CleanupStack = [];\n let copiedTimer: number | null = null;\n let dispatching = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Input has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Input requires a native input element.');\n return inputEl;\n };\n const snapshot = (): MachineSnapshot<InputContext, InputProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const current = snapshot();\n const props = current.props;\n const native = input();\n if (native.value !== current.context.value) native.value = current.context.value;\n native.type = props.type;\n if (props.placeholder) native.placeholder = props.placeholder;\n else native.removeAttribute('placeholder');\n syncNativeControl({input: native, state: {\n name: props.name,\n disabled: props.disabled,\n readonly: props.readonly,\n required: props.required,\n invalid: props.invalid,\n }});\n syncControlPresence({el: root(), state: props, value: 'true'});\n const control = root().querySelector<HTMLElement>('[data-ui-input-control]');\n if (control) syncControlPresence({el: control, state: {disabled: props.disabled, invalid: props.invalid}, value: 'true'});\n root().querySelectorAll<HTMLElement>('[data-ui-input-clear]').forEach((button) => {\n button.hidden = current.context.value.length === 0;\n if (button instanceof HTMLButtonElement) button.disabled = props.disabled || props.readonly;\n });\n root().querySelectorAll<HTMLElement>('[data-ui-input-copy]').forEach((button) => {\n if (button instanceof HTMLButtonElement) button.disabled = props.disabled;\n setPresence({el: button, attr: 'data-copied', present: current.tags.includes('copied'), value: 'true'});\n });\n setPresence({el: root(), attr: 'data-copied', present: current.tags.includes('copied'), value: 'true'});\n };\n const dispatchNative = (type: 'input' | 'change'): void => {\n dispatching = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatching = false; }\n };\n const bridge = createAlpineMachine({\n schema: inputSchema,\n hooks: inputHooks,\n createMachine: ({props}) => createInputMachine({props, effects: {\n sync: syncDom,\n copy: (scope) => {\n const write = navigator.clipboard?.writeText(scope.context.value) ?? Promise.resolve();\n void write.then(() => bridge.send('COPY_DONE')).catch(() => bridge.send('COPY_ERROR'));\n },\n emitInput: () => dispatchNative('input'),\n emitChange: () => dispatchNative('change'),\n focus: () => input().focus({preventScroll: true}),\n startCopiedTimer: () => {\n if (copiedTimer !== null) window.clearTimeout(copiedTimer);\n copiedTimer = window.setTimeout(() => bridge.send('COPIED_TIMEOUT'), 1200);\n },\n }}),\n });\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-input]');\n if (!inputEl) throw new Error('Input requires a native input element.');\n bridge.connect(rootEl, this.snapshot);\n addListener({target: inputEl, event: 'input', handler: () => {\n if (!dispatching) bridge.send({type: 'VALUE_CHANGED', value: input().value});\n }, cleanup: listeners});\n addListener({target: rootEl, event: 'click', handler: (event) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n if (target.closest('[data-ui-input-clear]')) {\n event.preventDefault();\n bridge.send('CLEAR');\n } else if (target.closest('[data-ui-input-copy]')) {\n event.preventDefault();\n bridge.send('COPY');\n }\n }, cleanup: listeners});\n syncDom();\n },\n destroy(): void {\n if (copiedTimer !== null) window.clearTimeout(copiedTimer);\n copiedTimer = null;\n listeners.splice(0).reverse().forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n get value(): string {\n return bridge.getCommittedSnapshot().context.value;\n },\n clear(): void {\n if (!input().disabled && !input().readOnly) bridge.send('CLEAR');\n },\n copy(): void {\n if (!input().disabled) bridge.send('COPY');\n },\n };\n};\n\nconst registerInput = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.data('UiInput', () => UiInput());\n};\n\nexport {registerInput, UiInput};\nexport type {InputData, UiInputApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerInput as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerInput = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerInput};\nexport default registerInput;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{f as e,l as t,n}from"./codecs-Cb1ns_47.js";import{i as r,o as i,s as a,t as o}from"./dom-qAeVl7dc.js";import{n as s,t as c}from"./machine-CX3wFSoV.js";import{t as l}from"./number-BCZdoG0B.js";import{n as u,t as d}from"./styles-TfvwVPGw.js";import{t as f}from"./merge-bindings-C8ewA_FD.js";import{n as p}from"./props-change-2xfsIAEN.js";var m={orientation:t([`vertical`,`horizontal`,`both`],`vertical`),type:t([`hover`,`always`,`scroll`],`hover`),fill:n,hideNative:n.default(!0),disabled:n,class:e,viewportClass:e,scrollbarClass:e,thumbClass:e,cornerClass:e},h=e=>({event:t})=>t.axis===e,g=[],_=({props:e,context:t,effects:n})=>c({type:`parallel`,on:{PROPS_CHANGED:{reduce:`replaceProps`,effects:`sync`},MEASURED:{reduce:`setOverflow`,effects:`sync`}},states:{pointer:{initial:`outside`,states:{outside:{on:{POINTER_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`hovered`],on:{POINTER_LEFT:{target:`outside`,effects:`sync`}}}}},focus:{initial:`outside`,states:{outside:{on:{FOCUS_ENTERED:{target:`inside`,effects:`sync`}}},inside:{tags:[`focused`],on:{FOCUS_LEFT:{target:`outside`,effects:`sync`}}}}},scrolling:{initial:`idle`,states:{idle:{on:{SCROLLED:{target:`active`,effects:`sync`}}},active:{tags:[`scrolling`],on:{SCROLL_SETTLED:{target:`idle`,effects:`sync`}}}}},dragging:{initial:`idle`,states:{idle:{on:{DRAG_STARTED:[{target:`vertical`,guard:h(`y`),effects:`sync`},{target:`horizontal`,guard:h(`x`),effects:`sync`}]}},vertical:{tags:[`dragging`,`dragging-y`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}},horizontal:{tags:[`dragging`,`dragging-x`],on:{DRAG_ENDED:{target:`idle`,effects:`sync`}}}}}}},{context:t,props:e,reducers:{replaceProps:({event:e})=>{let t=p(e);return t?{props:t.props}:{}},setOverflow:({context:e,event:t})=>({context:{...e,overflow:{x:t.overflowX===!0,y:t.overflowY===!0}}})},effects:{sync:n.sync}}),v=d({definition:{component:`ui.scroll-area`,parts:{root:{base:[`relative min-w-0 overflow-hidden text-surface-ink`,`data-disabled:opacity-60`],variants:{fill:{true:`flex min-h-0 flex-1 flex-col`,false:``}},defaults:{fill:!1}},viewport:{base:[`min-h-0 min-w-0 outline-none`,`focus-visible:ui-focus-ring`],variants:{orientation:{vertical:`h-full w-full overflow-x-hidden overflow-y-auto`,horizontal:`h-full w-full overflow-x-auto overflow-y-hidden`,both:`size-full overflow-auto`},fill:{true:`flex-1`,false:``}},defaults:{orientation:`vertical`,fill:!1}},content:{base:`min-w-0`,variants:{orientation:{vertical:``,horizontal:`w-max min-w-full`,both:`min-w-full`}},defaults:{orientation:`vertical`}},scrollbar:{base:[`pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0`,`data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none`],variants:{orientation:{vertical:`bottom-scrollbar-inset right-scrollbar-inset top-scrollbar-inset w-scrollbar`,horizontal:`bottom-scrollbar-inset left-scrollbar-inset right-scrollbar-inset h-scrollbar`}},defaults:{orientation:`vertical`}},thumb:{base:[`absolute rounded-scrollbar-thumb bg-scrollbar-thumb`,`hover:bg-scrollbar-thumb-hover data-dragging:bg-scrollbar-thumb-hover`],variants:{orientation:{vertical:`left-0 top-0 w-full`,horizontal:`left-0 top-0 h-full`}},defaults:{orientation:`vertical`}},corner:{base:[`pointer-events-none absolute bottom-scrollbar-inset right-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb`,`bg-transparent opacity-0`,`data-visible:opacity-100`]}}}}),y=18,b=1e3,x=null,S=(e,t)=>e===`both`||e===`horizontal`&&t===`x`||e===`vertical`&&t===`y`,C=()=>{if(x)return x;let e=document.createElement(`div`),t=document.createElement(`div`);return e.dir=`rtl`,e.style.cssText=`position:absolute;left:-9999px;width:4px;height:1px;overflow:scroll;`,t.style.cssText=`width:8px;height:1px;`,e.append(t),document.body.append(e),e.scrollLeft=1,e.scrollLeft===0?x=`negative`:(e.scrollLeft=0,x=e.scrollLeft===0?`reverse`:`default`),e.remove(),x},w=e=>{let t=Math.max(0,e.scrollWidth-e.clientWidth);if(!r({el:e}))return e.scrollLeft;let n=C();return n===`negative`?-e.scrollLeft:n===`reverse`?t-e.scrollLeft:e.scrollLeft},T=(e,t)=>{let n=Math.max(0,e.scrollWidth-e.clientWidth),i=l(t,0,n);if(!r({el:e})){e.scrollLeft=i;return}let a=C();a===`negative`?e.scrollLeft=-i:a===`reverse`?e.scrollLeft=n-i:e.scrollLeft=i},E=e=>e.dataset.orientation===`horizontal`?`x`:`y`,D=e=>e instanceof HTMLElement,O=(e,t)=>{let n=e.querySelector(`:scope > ${t}`);return D(n)?n:null},k=()=>{let e=null,t=[],n=null,r=null,c=0,d=0,p=0,h=null,x=null,C=null,D=()=>{if(!e)throw Error(`Scroll Area has not been initialized.`);return e},k=()=>K.getCommittedSnapshot(),A=()=>k().props,j=e=>k().tags.includes(e),M=()=>{let e=D(),t=O(e,`[data-ui-scroll-area-viewport]`)??e;return{root:e,viewport:t,content:O(t,`[data-ui-scroll-area-content]`),verticalScrollbar:O(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"]`),horizontalScrollbar:O(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"]`),verticalThumb:O(e,`[data-ui-scroll-area-scrollbar][data-orientation="vertical"] > [data-ui-scroll-area-thumb][data-orientation="vertical"]`),horizontalThumb:O(e,`[data-ui-scroll-area-scrollbar][data-orientation="horizontal"] > [data-ui-scroll-area-thumb][data-orientation="horizontal"]`),corner:O(e,`[data-ui-scroll-area-corner]`)}},N=()=>{p&&=(window.clearTimeout(p),0)},P=()=>{N(),p=window.setTimeout(()=>{p=0,K.send(`SCROLL_SETTLED`)},b)},F=(e=M())=>{let{viewport:t}=e;if(e.verticalThumb&&x){let n=x.maxOffset*l(t.scrollTop/x.maxScroll,0,1);e.verticalThumb.style.transform=`translate3d(0, ${n}px, 0)`}if(e.horizontalThumb&&C){let n=C.maxOffset*l(w(t)/C.maxScroll,0,1);e.horizontalThumb.style.transform=`translate3d(${n}px, 0, 0)`}},I=e=>{let{viewport:t}=e,n=(e,n,r,i)=>{if(!n||!r||!i)return r&&(r.style.width=``,r.style.height=``,r.style.transform=``),null;let a=e===`y`?n.clientHeight:n.clientWidth,o=e===`y`?t.clientHeight:t.clientWidth,s=e===`y`?t.scrollHeight:t.scrollWidth,c=Math.max(1,s-o),l=Math.min(a,Math.max(y,o/s*a)),u=Math.max(0,a-l);return e===`y`?(r.style.height=`${l}px`,r.style.width=``):(r.style.width=`${l}px`,r.style.height=``),{trackLength:a,thumbLength:l,maxOffset:u,maxScroll:c}},{overflow:r}=k().context;x=n(`y`,e.verticalScrollbar,e.verticalThumb,r.y),C=n(`x`,e.horizontalScrollbar,e.horizontalThumb,r.x),F(e)},L=e=>{let t=A(),{overflow:n}=k().context,r=j(`hovered`)||j(`focused`)||j(`scrolling`)||j(`dragging`),i=e=>e?t.type===`always`?!0:t.type===`scroll`?j(`scrolling`)||j(`dragging`):r:!1,o=i(n.y),s=i(n.x);[e.verticalScrollbar,e.verticalThumb].forEach(e=>{e&&a({el:e,attr:`data-visible`,present:o})}),[e.horizontalScrollbar,e.horizontalThumb].forEach(e=>{e&&a({el:e,attr:`data-visible`,present:s})}),[e.verticalScrollbar,e.horizontalScrollbar].forEach(e=>{e&&a({el:e,attr:`data-disabled`,present:t.disabled})}),e.verticalThumb&&a({el:e.verticalThumb,attr:`data-dragging`,present:j(`dragging-y`)}),e.horizontalThumb&&a({el:e.horizontalThumb,attr:`data-dragging`,present:j(`dragging-x`)}),e.corner&&a({el:e.corner,attr:`data-visible`,present:o&&s})},R=()=>{if(!h)return;let e=h;h=null;let t=M(),n=e.axis===`y`?t.verticalThumb:t.horizontalThumb;try{n?.releasePointerCapture?.(e.pointerId)}catch{}K.send({type:`DRAG_ENDED`,axis:e.axis})},z=()=>{let e=M(),t=A(),{overflow:n}=k().context;t.disabled&&h&&R(),a({el:e.root,attr:`data-overflow-x`,present:n.x}),a({el:e.root,attr:`data-overflow-y`,present:n.y}),a({el:e.root,attr:`data-scrolling`,present:j(`scrolling`)}),a({el:e.root,attr:`data-dragging`,present:j(`dragging`)}),a({el:e.root,attr:`data-disabled`,present:t.disabled}),i({el:e.viewport,attr:`data-orientation`,value:t.orientation}),a({el:e.viewport,attr:`data-hide-native`,present:t.hideNative}),I(e),L(e)},B=()=>{c||=requestAnimationFrame(()=>{c=0;let e=M(),t=A(),n=S(t.orientation,`x`)&&e.viewport.scrollWidth>e.viewport.clientWidth+1,r=S(t.orientation,`y`)&&e.viewport.scrollHeight>e.viewport.clientHeight+1,i=k().context.overflow;n!==i.x||r!==i.y?K.send({type:`MEASURED`,overflowX:n,overflowY:r}):(I(e),L(e))})},V=()=>{d||=requestAnimationFrame(()=>{d=0,F()})},H=()=>{V(),j(`scrolling`)||K.send(`SCROLLED`),(k().context.overflow.y&&!x||k().context.overflow.x&&!C)&&B(),P()},U=(e,t)=>{if(A().disabled)return;let n=M(),r=n.viewport,i=t===`y`?n.verticalScrollbar:n.horizontalScrollbar,a=t===`y`?n.verticalThumb:n.horizontalThumb,o=t===`y`?k().context.overflow.y:k().context.overflow.x;if(!i||!a||!o)return;let s=t===`y`?i.clientHeight:i.clientWidth,c=t===`y`?a.offsetHeight:a.offsetWidth,l=t===`y`?Math.max(0,r.scrollHeight-r.clientHeight):Math.max(0,r.scrollWidth-r.clientWidth);h={axis:t,pointerId:e.pointerId,startPointer:t===`y`?e.clientY:e.clientX,startScroll:t===`y`?r.scrollTop:w(r),trackLength:s,thumbLength:c,maxScroll:l};try{a.setPointerCapture?.(e.pointerId)}catch{h=null;return}N(),K.send({type:`DRAG_STARTED`,axis:t})},W=e=>{if(!h||h.pointerId!==e.pointerId)return;e.preventDefault();let{viewport:t}=M(),n=(h.axis===`y`?e.clientY:e.clientX)-h.startPointer,r=Math.max(1,h.trackLength-h.thumbLength),i=h.startScroll+n/r*h.maxScroll;h.axis===`y`?t.scrollTop=l(i,0,h.maxScroll):T(t,i),V()},G=e=>{!h||h.pointerId!==e.pointerId||(R(),P())},K=s({schema:m,hooks:g,createMachine:({props:e})=>_({props:e,context:{overflow:{x:!1,y:!1}},effects:{sync:z}})}),q;return q={...K,get overflowX(){return this.snapshot.current?.context.overflow.x??!1},get overflowY(){return this.snapshot.current?.context.overflow.y??!1},get isScrolling(){return this.snapshot.current?.tags.includes(`scrolling`)??!1},get isDragging(){return this.snapshot.current?.tags.includes(`dragging`)??!1},init(){e=this.$el,K.connect(this.$el,this.snapshot);let i=M();n=new ResizeObserver(B),n.observe(i.viewport),i.content&&n.observe(i.content),r=new MutationObserver(B),i.content&&r.observe(i.content,{childList:!0,subtree:!0,characterData:!0}),o({target:i.viewport,event:`scroll`,handler:H,cleanup:t,options:{passive:!0}}),o({target:document,event:`pointermove`,handler:e=>W(e),cleanup:t}),o({target:document,event:`pointerup`,handler:e=>G(e),cleanup:t}),o({target:document,event:`pointercancel`,handler:e=>G(e),cleanup:t}),B()},destroy(){R(),N(),c&&cancelAnimationFrame(c),d&&cancelAnimationFrame(d),c=0,d=0,n?.disconnect(),r?.disconnect(),n=null,r=null,t.splice(0).forEach(e=>e()),K.disconnect(),e=null},get root(){let e=this.snapshot.current?.props??A();return f({inputs:[u({part:v.parts.root,props:e,className:e.class}),{"data-ui-scroll-area":``,":data-orientation":()=>A().orientation,":data-type":()=>A().type,":data-fill":()=>A().fill?``:void 0,":data-disabled":()=>A().disabled?``:void 0,"@pointerenter":()=>K.send(`POINTER_ENTERED`),"@pointerleave":()=>K.send(`POINTER_LEFT`),"@focusin":()=>K.send(`FOCUS_ENTERED`),"@focusout":e=>{(!(e.relatedTarget instanceof Node)||!D().contains(e.relatedTarget))&&K.send(`FOCUS_LEFT`)}}]})},viewport(e){return f({inputs:[u({part:v.parts.viewport,props:{orientation:A().orientation,fill:A().fill},className:e.dataset.class}),{tabindex:`0`,"data-ui-scroll-area-viewport":``,":data-orientation":()=>A().orientation,":data-hide-native":()=>A().hideNative?``:void 0}]})},scrollbar(e){let t=E(e)===`x`?`horizontal`:`vertical`;return f({inputs:[u({part:v.parts.scrollbar,props:{orientation:t},className:e.dataset.class}),{"data-ui-scroll-area-scrollbar":``,"aria-hidden":`true`,":data-disabled":()=>A().disabled?``:void 0}]})},thumb(e){let t=E(e),n=t===`x`?`horizontal`:`vertical`;return f({inputs:[u({part:v.parts.thumb,props:{orientation:n},className:e.dataset.class}),{"data-ui-scroll-area-thumb":``,"aria-hidden":`true`,"@pointerdown.prevent":e=>U(e,t),":data-dragging":()=>j(t===`x`?`dragging-x`:`dragging-y`)?``:void 0}]})},corner(e){return f({inputs:[u({part:v.parts.corner,className:e.dataset.class}),{"data-ui-scroll-area-corner":``,"aria-hidden":`true`}]})}},q},A=e=>{e.data(`UiScrollArea`,()=>k())},j=new WeakSet,M=e=>{j.has(e)||(j.add(e),A(e))};export{k as n,M as t};
2
- //# sourceMappingURL=entry.generated-oAIExc1V.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-oAIExc1V.js","names":[],"sources":["../../../../../../../../client/src/components/scroll-area/contract.ts","../../../../../../../../client/src/components/scroll-area/machine.ts","../../../../../../../../client/src/components/scroll-area/styles.ts","../../../../../../../../client/src/components/scroll-area/index.ts","../../../../../../../../client/src/components/scroll-area/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\n\nconst SCROLL_AREA_ORIENTATIONS = ['vertical', 'horizontal', 'both'] as const;\nconst SCROLL_AREA_TYPES = ['hover', 'always', 'scroll'] as const;\nconst scrollAreaSchema = {\n orientation: oneOf(SCROLL_AREA_ORIENTATIONS, 'vertical'),\n type: oneOf(SCROLL_AREA_TYPES, 'hover'),\n fill: bool,\n hideNative: bool.default(true),\n disabled: bool,\n class: string,\n viewportClass: string,\n scrollbarClass: string,\n thumbClass: string,\n cornerClass: string,\n};\n\ntype ScrollAreaOrientation = typeof SCROLL_AREA_ORIENTATIONS[number];\ntype ScrollAreaType = typeof SCROLL_AREA_TYPES[number];\ntype ScrollAreaProps = SchemaToProps<typeof scrollAreaSchema>;\n\nexport {\n SCROLL_AREA_ORIENTATIONS,\n SCROLL_AREA_TYPES,\n scrollAreaSchema,\n};\nexport type {\n ScrollAreaOrientation,\n ScrollAreaProps,\n ScrollAreaType,\n};\n","import {\n createMachine,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {ScrollAreaProps} from './contract';\n\ntype ScrollAxis = 'x' | 'y';\n\ntype ScrollAreaContext = {\n overflow: {x: boolean; y: boolean};\n};\n\ntype ScrollAreaMachineEffects = {\n sync(scope: MachineScope<ScrollAreaContext, ScrollAreaProps>): void;\n};\n\ntype CreateScrollAreaMachineOptions = {\n props: ScrollAreaProps;\n context: ScrollAreaContext;\n effects: ScrollAreaMachineEffects;\n};\n\n\nconst axisIs = (axis: ScrollAxis) => ({event}: MachineScope<ScrollAreaContext, ScrollAreaProps>): boolean => (\n event.axis === axis\n);\n\nconst scrollAreaHooks = [] as const;\n\nconst createScrollAreaMachine = ({\n props,\n context,\n effects,\n}: CreateScrollAreaMachineOptions): Machine<ScrollAreaContext, ScrollAreaProps> => createMachine<ScrollAreaContext, ScrollAreaProps>({\n type: 'parallel',\n on: {\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'sync'},\n MEASURED: {reduce: 'setOverflow', effects: 'sync'},\n },\n states: {\n pointer: {\n initial: 'outside',\n states: {\n outside: {on: {POINTER_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['hovered'], on: {POINTER_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n focus: {\n initial: 'outside',\n states: {\n outside: {on: {FOCUS_ENTERED: {target: 'inside', effects: 'sync'}}},\n inside: {tags: ['focused'], on: {FOCUS_LEFT: {target: 'outside', effects: 'sync'}}},\n },\n },\n scrolling: {\n initial: 'idle',\n states: {\n idle: {on: {SCROLLED: {target: 'active', effects: 'sync'}}},\n active: {tags: ['scrolling'], on: {SCROLL_SETTLED: {target: 'idle', effects: 'sync'}}},\n },\n },\n dragging: {\n initial: 'idle',\n states: {\n idle: {\n on: {\n DRAG_STARTED: [\n {target: 'vertical', guard: axisIs('y'), effects: 'sync'},\n {target: 'horizontal', guard: axisIs('x'), effects: 'sync'},\n ],\n },\n },\n vertical: {tags: ['dragging', 'dragging-y'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n horizontal: {tags: ['dragging', 'dragging-x'], on: {DRAG_ENDED: {target: 'idle', effects: 'sync'}}},\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n replaceProps: ({event}) => {\n const next = propsChangedEvent<ScrollAreaProps>(event);\n return next ? {props: next.props} : {};\n },\n setOverflow: ({context, event}) => ({\n context: {\n ...context,\n overflow: {\n x: event.overflowX === true,\n y: event.overflowY === true,\n },\n },\n }),\n },\n effects: {sync: effects.sync},\n});\n\nexport {createScrollAreaMachine, scrollAreaHooks};\nexport type {\n CreateScrollAreaMachineOptions,\n ScrollAreaContext,\n ScrollAreaMachineEffects,\n ScrollAxis,\n};\n","import {defineStyles} from '../../runtime';\n\nconst scrollAreaStyles = defineStyles({definition: {\n component: 'ui.scroll-area',\n parts: {\n root: {\n base: [\n 'relative min-w-0 overflow-hidden text-surface-ink',\n 'data-disabled:opacity-60',\n ],\n variants: {\n fill: {\n true: 'flex min-h-0 flex-1 flex-col',\n false: '',\n },\n },\n defaults: {\n fill: false,\n },\n },\n viewport: {\n base: [\n 'min-h-0 min-w-0 outline-none',\n 'focus-visible:ui-focus-ring',\n ],\n variants: {\n orientation: {\n vertical: 'h-full w-full overflow-x-hidden overflow-y-auto',\n horizontal: 'h-full w-full overflow-x-auto overflow-y-hidden',\n both: 'size-full overflow-auto',\n },\n fill: {\n true: 'flex-1',\n false: '',\n },\n },\n defaults: {\n orientation: 'vertical',\n fill: false,\n },\n },\n content: {\n base: 'min-w-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'w-max min-w-full',\n both: 'min-w-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n scrollbar: {\n base: [\n 'pointer-events-none absolute z-10 rounded-scrollbar-thumb opacity-0',\n 'data-visible:pointer-events-auto data-visible:opacity-100 data-disabled:pointer-events-none',\n ],\n variants: {\n orientation: {\n vertical: 'bottom-scrollbar-inset right-scrollbar-inset top-scrollbar-inset w-scrollbar',\n horizontal: 'bottom-scrollbar-inset left-scrollbar-inset right-scrollbar-inset h-scrollbar',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n thumb: {\n base: [\n 'absolute rounded-scrollbar-thumb bg-scrollbar-thumb',\n 'hover:bg-scrollbar-thumb-hover data-dragging:bg-scrollbar-thumb-hover',\n ],\n variants: {\n orientation: {\n vertical: 'left-0 top-0 w-full',\n horizontal: 'left-0 top-0 h-full',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n corner: {\n base: [\n 'pointer-events-none absolute bottom-scrollbar-inset right-scrollbar-inset z-10 size-scrollbar rounded-scrollbar-thumb',\n 'bg-transparent opacity-0',\n 'data-visible:opacity-100',\n ],\n },\n },\n}});\n\nexport {scrollAreaStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n mergeBindings,\n type BindingObject,\n type MachineSnapshot,\n resolveStyle,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {addListener, clamp, isRtl, setAttribute, setPresence, type CleanupStack} from '@client/utils';\nimport {scrollAreaSchema, type ScrollAreaOrientation, type ScrollAreaProps} from './contract';\nimport {\n createScrollAreaMachine,\n type ScrollAreaContext,\n scrollAreaHooks,\n type ScrollAxis,\n} from './machine';\nimport {scrollAreaStyles} from './styles';\n\ntype DragState = {\n axis: ScrollAxis;\n pointerId: number;\n startPointer: number;\n startScroll: number;\n trackLength: number;\n thumbLength: number;\n maxScroll: number;\n};\n\ntype ScrollAreaElements = {\n root: HTMLElement;\n viewport: HTMLElement;\n content: HTMLElement | null;\n verticalScrollbar: HTMLElement | null;\n horizontalScrollbar: HTMLElement | null;\n verticalThumb: HTMLElement | null;\n horizontalThumb: HTMLElement | null;\n corner: HTMLElement | null;\n};\n\ntype AxisGeometry = {\n trackLength: number;\n thumbLength: number;\n maxOffset: number;\n maxScroll: number;\n};\n\n/**\n * Public Alpine API for `ui.scroll-area`.\n *\n * @public\n */\ninterface UiScrollAreaApi {\n /** Whether content currently overflows the horizontal axis. */\n readonly overflowX: boolean;\n /** Whether content currently overflows the vertical axis. */\n readonly overflowY: boolean;\n /** Whether the native viewport is in an active scroll session. */\n readonly isScrolling: boolean;\n /** Whether a custom scrollbar thumb is being dragged. */\n readonly isDragging: boolean;\n}\n\ntype ScrollAreaData = AlpineMachine<ScrollAreaContext, ScrollAreaProps, typeof scrollAreaHooks> & UiScrollAreaApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n viewport(el: HTMLElement): BindingObject;\n scrollbar(el: HTMLElement): BindingObject;\n thumb(el: HTMLElement): BindingObject;\n corner(el: HTMLElement): BindingObject;\n};\n\nconst MIN_THUMB_SIZE = 18;\nconst SCROLL_CHROME_FADE_DELAY = 1000;\n\nlet rtlScrollType: 'negative' | 'reverse' | 'default' | null = null;\n\nconst includesAxis = (orientation: ScrollAreaOrientation, axis: ScrollAxis): boolean => (\n orientation === 'both' || (orientation === 'horizontal' && axis === 'x') || (orientation === 'vertical' && axis === 'y')\n);\n\nconst detectRtlScrollType = (): 'negative' | 'reverse' | 'default' => {\n if (rtlScrollType) return rtlScrollType;\n\n const outer = document.createElement('div');\n const inner = document.createElement('div');\n outer.dir = 'rtl';\n outer.style.cssText = 'position:absolute;left:-9999px;width:4px;height:1px;overflow:scroll;';\n inner.style.cssText = 'width:8px;height:1px;';\n outer.append(inner);\n document.body.append(outer);\n\n outer.scrollLeft = 1;\n if (outer.scrollLeft === 0) rtlScrollType = 'negative';\n else {\n outer.scrollLeft = 0;\n rtlScrollType = outer.scrollLeft === 0 ? 'reverse' : 'default';\n }\n\n outer.remove();\n return rtlScrollType;\n};\n\nconst horizontalScrollPosition = (viewport: HTMLElement): number => {\n const max = Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n if (!isRtl({el: viewport})) return viewport.scrollLeft;\n\n const type = detectRtlScrollType();\n if (type === 'negative') return -viewport.scrollLeft;\n if (type === 'reverse') return max - viewport.scrollLeft;\n return viewport.scrollLeft;\n};\n\nconst setHorizontalScrollPosition = (viewport: HTMLElement, value: number): void => {\n const max = Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n const next = clamp(value, 0, max);\n if (!isRtl({el: viewport})) {\n viewport.scrollLeft = next;\n return;\n }\n\n const type = detectRtlScrollType();\n if (type === 'negative') viewport.scrollLeft = -next;\n else if (type === 'reverse') viewport.scrollLeft = max - next;\n else viewport.scrollLeft = next;\n};\n\nconst axisFromOrientation = (el: HTMLElement): ScrollAxis => (\n el.dataset.orientation === 'horizontal' ? 'x' : 'y'\n);\n\nconst isHTMLElement = (value: Element | null): value is HTMLElement => value instanceof HTMLElement;\n\nconst queryDirectPart = (root: HTMLElement, selector: string): HTMLElement | null => {\n const el = root.querySelector(`:scope > ${selector}`);\n return isHTMLElement(el) ? el : null;\n};\n\nconst UiScrollArea = (): TrellisAlpineComponent<ScrollAreaData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let listeners: CleanupStack = [];\n let resizeObserver: ResizeObserver | null = null;\n let mutationObserver: MutationObserver | null = null;\n let measureFrame = 0;\n let positionFrame = 0;\n let fadeTimer = 0;\n let dragging: DragState | null = null;\n let verticalGeometry: AxisGeometry | null = null;\n let horizontalGeometry: AxisGeometry | null = null;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Scroll Area has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<ScrollAreaContext, ScrollAreaProps> => (\n bridge.getCommittedSnapshot()\n );\n const currentProps = (): Readonly<ScrollAreaProps> => currentSnapshot().props;\n const hasTag = (tag: string): boolean => currentSnapshot().tags.includes(tag);\n const elements = (): ScrollAreaElements => {\n const rootElement = root();\n const viewport = queryDirectPart(rootElement, '[data-ui-scroll-area-viewport]') ?? rootElement;\n return {\n root: rootElement,\n viewport,\n content: queryDirectPart(viewport, '[data-ui-scroll-area-content]'),\n verticalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"]'),\n horizontalScrollbar: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"]'),\n verticalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"vertical\"] > [data-ui-scroll-area-thumb][data-orientation=\"vertical\"]'),\n horizontalThumb: queryDirectPart(rootElement, '[data-ui-scroll-area-scrollbar][data-orientation=\"horizontal\"] > [data-ui-scroll-area-thumb][data-orientation=\"horizontal\"]'),\n corner: queryDirectPart(rootElement, '[data-ui-scroll-area-corner]'),\n };\n };\n\n const clearFadeTimer = (): void => {\n if (!fadeTimer) return;\n window.clearTimeout(fadeTimer);\n fadeTimer = 0;\n };\n const startFadeTimer = (): void => {\n clearFadeTimer();\n fadeTimer = window.setTimeout(() => {\n fadeTimer = 0;\n bridge.send('SCROLL_SETTLED');\n }, SCROLL_CHROME_FADE_DELAY);\n };\n\n const updateThumbPositions = (parts = elements()): void => {\n const {viewport} = parts;\n if (parts.verticalThumb && verticalGeometry) {\n const offset = verticalGeometry.maxOffset * clamp(viewport.scrollTop / verticalGeometry.maxScroll, 0, 1);\n parts.verticalThumb.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n if (parts.horizontalThumb && horizontalGeometry) {\n const offset = horizontalGeometry.maxOffset * clamp(\n horizontalScrollPosition(viewport) / horizontalGeometry.maxScroll,\n 0,\n 1,\n );\n parts.horizontalThumb.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n };\n\n const updateGeometry = (parts: ScrollAreaElements): void => {\n const {viewport} = parts;\n const updateAxis = (\n axis: ScrollAxis,\n scrollbar: HTMLElement | null,\n thumb: HTMLElement | null,\n overflow: boolean,\n ): AxisGeometry | null => {\n if (!scrollbar || !thumb || !overflow) {\n if (thumb) {\n thumb.style.width = '';\n thumb.style.height = '';\n thumb.style.transform = '';\n }\n return null;\n }\n\n const trackLength = axis === 'y' ? scrollbar.clientHeight : scrollbar.clientWidth;\n const viewportLength = axis === 'y' ? viewport.clientHeight : viewport.clientWidth;\n const scrollLength = axis === 'y' ? viewport.scrollHeight : viewport.scrollWidth;\n const maxScroll = Math.max(1, scrollLength - viewportLength);\n const thumbLength = Math.min(\n trackLength,\n Math.max(MIN_THUMB_SIZE, (viewportLength / scrollLength) * trackLength),\n );\n const maxOffset = Math.max(0, trackLength - thumbLength);\n\n if (axis === 'y') {\n thumb.style.height = `${thumbLength}px`;\n thumb.style.width = '';\n } else {\n thumb.style.width = `${thumbLength}px`;\n thumb.style.height = '';\n }\n return {trackLength, thumbLength, maxOffset, maxScroll};\n };\n\n const {overflow} = currentSnapshot().context;\n verticalGeometry = updateAxis('y', parts.verticalScrollbar, parts.verticalThumb, overflow.y);\n horizontalGeometry = updateAxis('x', parts.horizontalScrollbar, parts.horizontalThumb, overflow.x);\n updateThumbPositions(parts);\n };\n\n const updateVisibility = (parts: ScrollAreaElements): void => {\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n const interacting = hasTag('hovered') || hasTag('focused') || hasTag('scrolling') || hasTag('dragging');\n const visibleFor = (axisOverflows: boolean): boolean => {\n if (!axisOverflows) return false;\n if (props.type === 'always') return true;\n if (props.type === 'scroll') return hasTag('scrolling') || hasTag('dragging');\n return interacting;\n };\n const verticalVisible = visibleFor(overflow.y);\n const horizontalVisible = visibleFor(overflow.x);\n\n [parts.verticalScrollbar, parts.verticalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: verticalVisible});\n });\n [parts.horizontalScrollbar, parts.horizontalThumb].forEach((el) => {\n if (el) setPresence({el, attr: 'data-visible', present: horizontalVisible});\n });\n [parts.verticalScrollbar, parts.horizontalScrollbar].forEach((el) => {\n if (el) setPresence({el, attr: 'data-disabled', present: props.disabled});\n });\n if (parts.verticalThumb) setPresence({el: parts.verticalThumb, attr: 'data-dragging', present: hasTag('dragging-y')});\n if (parts.horizontalThumb) setPresence({el: parts.horizontalThumb, attr: 'data-dragging', present: hasTag('dragging-x')});\n if (parts.corner) setPresence({el: parts.corner, attr: 'data-visible', present: verticalVisible && horizontalVisible});\n };\n\n const releaseDrag = (): void => {\n if (!dragging) return;\n const active = dragging;\n dragging = null;\n const parts = elements();\n const thumb = active.axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n try {\n thumb?.releasePointerCapture?.(active.pointerId);\n } catch {\n // Pointer capture cleanup is best-effort after interrupted gestures.\n }\n bridge.send({type: 'DRAG_ENDED', axis: active.axis});\n };\n\n const syncDom = (): void => {\n const parts = elements();\n const props = currentProps();\n const {overflow} = currentSnapshot().context;\n if (props.disabled && dragging) releaseDrag();\n\n setPresence({el: parts.root, attr: 'data-overflow-x', present: overflow.x});\n setPresence({el: parts.root, attr: 'data-overflow-y', present: overflow.y});\n setPresence({el: parts.root, attr: 'data-scrolling', present: hasTag('scrolling')});\n setPresence({el: parts.root, attr: 'data-dragging', present: hasTag('dragging')});\n setPresence({el: parts.root, attr: 'data-disabled', present: props.disabled});\n setAttribute({el: parts.viewport, attr: 'data-orientation', value: props.orientation});\n setPresence({el: parts.viewport, attr: 'data-hide-native', present: props.hideNative});\n updateGeometry(parts);\n updateVisibility(parts);\n };\n\n const scheduleMeasure = (): void => {\n if (measureFrame) return;\n measureFrame = requestAnimationFrame(() => {\n measureFrame = 0;\n const parts = elements();\n const props = currentProps();\n const overflowX = includesAxis(props.orientation, 'x') && parts.viewport.scrollWidth > parts.viewport.clientWidth + 1;\n const overflowY = includesAxis(props.orientation, 'y') && parts.viewport.scrollHeight > parts.viewport.clientHeight + 1;\n const current = currentSnapshot().context.overflow;\n if (overflowX !== current.x || overflowY !== current.y) {\n bridge.send({type: 'MEASURED', overflowX, overflowY});\n } else {\n updateGeometry(parts);\n updateVisibility(parts);\n }\n });\n };\n const schedulePosition = (): void => {\n if (positionFrame) return;\n positionFrame = requestAnimationFrame(() => {\n positionFrame = 0;\n updateThumbPositions();\n });\n };\n\n const onScroll = (): void => {\n schedulePosition();\n if (!hasTag('scrolling')) bridge.send('SCROLLED');\n if ((currentSnapshot().context.overflow.y && !verticalGeometry)\n || (currentSnapshot().context.overflow.x && !horizontalGeometry)) scheduleMeasure();\n startFadeTimer();\n };\n\n const startDrag = (event: PointerEvent, axis: ScrollAxis): void => {\n if (currentProps().disabled) return;\n const parts = elements();\n const viewport = parts.viewport;\n const scrollbar = axis === 'y' ? parts.verticalScrollbar : parts.horizontalScrollbar;\n const thumb = axis === 'y' ? parts.verticalThumb : parts.horizontalThumb;\n const overflow = axis === 'y' ? currentSnapshot().context.overflow.y : currentSnapshot().context.overflow.x;\n if (!scrollbar || !thumb || !overflow) return;\n\n const trackLength = axis === 'y' ? scrollbar.clientHeight : scrollbar.clientWidth;\n const thumbLength = axis === 'y' ? thumb.offsetHeight : thumb.offsetWidth;\n const maxScroll = axis === 'y'\n ? Math.max(0, viewport.scrollHeight - viewport.clientHeight)\n : Math.max(0, viewport.scrollWidth - viewport.clientWidth);\n dragging = {\n axis,\n pointerId: event.pointerId,\n startPointer: axis === 'y' ? event.clientY : event.clientX,\n startScroll: axis === 'y' ? viewport.scrollTop : horizontalScrollPosition(viewport),\n trackLength,\n thumbLength,\n maxScroll,\n };\n try {\n thumb.setPointerCapture?.(event.pointerId);\n } catch {\n dragging = null;\n return;\n }\n clearFadeTimer();\n bridge.send({type: 'DRAG_STARTED', axis});\n };\n\n const moveDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n event.preventDefault();\n const {viewport} = elements();\n const pointer = dragging.axis === 'y' ? event.clientY : event.clientX;\n const delta = pointer - dragging.startPointer;\n const maxOffset = Math.max(1, dragging.trackLength - dragging.thumbLength);\n const nextScroll = dragging.startScroll + (delta / maxOffset) * dragging.maxScroll;\n if (dragging.axis === 'y') viewport.scrollTop = clamp(nextScroll, 0, dragging.maxScroll);\n else setHorizontalScrollPosition(viewport, nextScroll);\n schedulePosition();\n };\n\n const endDrag = (event: PointerEvent): void => {\n if (!dragging || dragging.pointerId !== event.pointerId) return;\n releaseDrag();\n startFadeTimer();\n };\n\n const bridge = createAlpineMachine({\n schema: scrollAreaSchema,\n hooks: scrollAreaHooks,\n createMachine: ({props}) => createScrollAreaMachine({\n props,\n context: {overflow: {x: false, y: false}},\n effects: {\n sync: syncDom,\n },\n }),\n });\n\n let component!: TrellisAlpineComponent<ScrollAreaData>;\n component = {\n ...bridge,\n get overflowX(): boolean {\n return this.snapshot.current?.context.overflow.x ?? false;\n },\n get overflowY(): boolean {\n return this.snapshot.current?.context.overflow.y ?? false;\n },\n get isScrolling(): boolean {\n return this.snapshot.current?.tags.includes('scrolling') ?? false;\n },\n get isDragging(): boolean {\n return this.snapshot.current?.tags.includes('dragging') ?? false;\n },\n init(): void {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n const parts = elements();\n resizeObserver = new ResizeObserver(scheduleMeasure);\n resizeObserver.observe(parts.viewport);\n if (parts.content) resizeObserver.observe(parts.content);\n mutationObserver = new MutationObserver(scheduleMeasure);\n if (parts.content) mutationObserver.observe(parts.content, {childList: true, subtree: true, characterData: true});\n\n addListener({target: parts.viewport, event: 'scroll', handler: onScroll, cleanup: listeners, options: {passive: true}});\n addListener({target: document, event: 'pointermove', handler: (event) => moveDrag(event as PointerEvent), cleanup: listeners});\n addListener({target: document, event: 'pointerup', handler: (event) => endDrag(event as PointerEvent), cleanup: listeners});\n addListener({target: document, event: 'pointercancel', handler: (event) => endDrag(event as PointerEvent), cleanup: listeners});\n scheduleMeasure();\n },\n destroy(): void {\n releaseDrag();\n clearFadeTimer();\n if (measureFrame) cancelAnimationFrame(measureFrame);\n if (positionFrame) cancelAnimationFrame(positionFrame);\n measureFrame = 0;\n positionFrame = 0;\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n resizeObserver = null;\n mutationObserver = null;\n listeners.splice(0).forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-scroll-area': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-type': () => currentProps().type,\n ':data-fill': () => currentProps().fill ? '' : undefined,\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n '@pointerenter': () => bridge.send('POINTER_ENTERED'),\n '@pointerleave': () => bridge.send('POINTER_LEFT'),\n '@focusin': () => bridge.send('FOCUS_ENTERED'),\n '@focusout': (event: FocusEvent) => {\n if (!(event.relatedTarget instanceof Node) || !root().contains(event.relatedTarget)) {\n bridge.send('FOCUS_LEFT');\n }\n },\n },\n ]});\n },\n viewport(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({\n part: scrollAreaStyles.parts.viewport,\n props: {orientation: currentProps().orientation, fill: currentProps().fill},\n className: el.dataset.class,\n }),\n {\n tabindex: '0',\n 'data-ui-scroll-area-viewport': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-hide-native': () => currentProps().hideNative ? '' : undefined,\n },\n ]});\n },\n scrollbar(el: HTMLElement): BindingObject {\n const orientation = axisFromOrientation(el) === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.scrollbar, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-scrollbar': '',\n 'aria-hidden': 'true',\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n },\n ]});\n },\n thumb(el: HTMLElement): BindingObject {\n const axis = axisFromOrientation(el);\n const orientation = axis === 'x' ? 'horizontal' : 'vertical';\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.thumb, props: {orientation}, className: el.dataset.class}),\n {\n 'data-ui-scroll-area-thumb': '',\n 'aria-hidden': 'true',\n '@pointerdown.prevent': (event: PointerEvent) => startDrag(event, axis),\n ':data-dragging': () => hasTag(axis === 'x' ? 'dragging-x' : 'dragging-y') ? '' : undefined,\n },\n ]});\n },\n corner(el: HTMLElement): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: scrollAreaStyles.parts.corner, className: el.dataset.class}),\n {'data-ui-scroll-area-corner': '', 'aria-hidden': 'true'},\n ]});\n },\n };\n\n return component;\n};\n\nconst registerScrollArea = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.data('UiScrollArea', () => UiScrollArea());\n};\n\nexport {registerScrollArea, UiScrollArea};\nexport type {ScrollAreaData, ScrollAreaElements, UiScrollAreaApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerScrollArea as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerScrollArea = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerScrollArea};\nexport default registerScrollArea;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{f as e,l as t,n,t as r}from"./codecs-Cb1ns_47.js";import{a as i,o as a,s as o,t as s}from"./dom-qAeVl7dc.js";import{n as c,t as l}from"./machine-CX3wFSoV.js";import{n as u,t as d}from"./props-change-2xfsIAEN.js";import{n as f,r as p}from"./form-control-BkVb2Qed.js";import{S as m,_ as h,o as g}from"./common-DAxHCzB-.js";var _=m,v=[`default`,`pills`],y=h,b=g,x={value:e.default(`on`),name:e,label:e,description:e,checked:r(n,`prop-checked`),indeterminate:r(n,`prop-indeterminate`),disabled:r(n,`prop-disabled`),required:r(n,`prop-required`),invalid:r(n,`prop-invalid`),indicator:n.default(!0),placement:t(y,`leading`),icon:e,variant:t([`default`,`pills`],`default`),size:t(b,`md`),inputClass:e,indicatorClass:e,indicatorIconClass:e,iconClass:e,contentClass:e,labelClass:e,descriptionClass:e,class:e};({...x});var S={name:e,orientation:t(_,`vertical`),variant:t(v,`default`),indicator:n.default(!0),placement:t(y,`leading`),disabled:r(n,`prop-disabled`),required:r(n,`prop-required`),invalid:r(n,`prop-invalid`),class:e};t(b,`md`);var C=[],w=[],T={name:``,disabled:!1,required:!1,invalid:!1},E=e=>e.indeterminate?`indeterminate`:e.checked?`checked`:`unchecked`,D=e=>e.state===`checked`||e.state===`indeterminate`?e.state:`unchecked`,O=({event:e})=>d(e,`checked`,`indeterminate`),k=e=>t=>{let n=u(t.event)?.props;return O(t)&&!!n&&E(n)===e},A=e=>({event:t})=>D(t)===e,j=e=>({context:{...e.context,selection:{state:D(e.event)}}}),M=e=>{let t=u(e.event)?.props;if(t)return{props:t,context:O(e)?{...e.context,selection:{state:E(t)}}:e.context}},N=e=>[{target:`unchecked`,guard:A(`unchecked`),reduce:`setSelection`,effects:e},{target:`checked`,guard:A(`checked`),reduce:`setSelection`,effects:e},{target:`indeterminate`,guard:A(`indeterminate`),reduce:`setSelection`,effects:e}],P=({props:e,inherited:t=T,effects:n})=>{let r=E(e);return l({initial:r,on:{NATIVE_CHANGED:N([`sync`]),API_SET:N([`sync`,`emitInput`,`emitChange`]),INHERITANCE_CHANGED:{reduce:`setInheritance`,effects:`sync`},PROPS_CHANGED:[{target:`unchecked`,guard:k(`unchecked`),reduce:`reconcileProps`,effects:`sync`},{target:`checked`,guard:k(`checked`),reduce:`reconcileProps`,effects:`sync`},{target:`indeterminate`,guard:k(`indeterminate`),reduce:`reconcileProps`,effects:`sync`},{reduce:`reconcileProps`,effects:`sync`}]},states:{unchecked:{tags:[`unchecked`]},checked:{tags:[`checked`]},indeterminate:{tags:[`indeterminate`]}}},{context:{selection:{state:r},inherited:{...t}},props:e,reducers:{setSelection:j,reconcileProps:M,setInheritance:e=>({context:{...e.context,inherited:{name:typeof e.event.name==`string`?e.event.name:``,disabled:e.event.disabled===!0,required:e.event.required===!0,invalid:e.event.invalid===!0}}})},effects:n})},F=e=>({name:e.name,disabled:e.disabled,required:e.required,invalid:e.invalid}),I=({props:e,effects:t})=>l({initial:`ready`,states:{ready:{tags:[`ready`],on:{PROPS_CHANGED:{reduce:`reconcileProps`,effects:`sync`}}}}},{context:{inherited:F(e)},props:e,reducers:{reconcileProps:e=>{let t=u(e.event)?.props;return t?{props:t,context:{inherited:F(t)}}:void 0}},effects:t}),L=new WeakMap,R=e=>{let t=e.parentElement?.closest(`[data-ui-checkbox-group]`)??null;return t?L.get(t)??null:null},z=()=>{let e=null,t=null,n=[],r=null,l=!1,u=()=>{if(!e)throw Error(`Checkbox has not been initialized.`);return e},d=()=>{if(!t)throw Error(`Checkbox requires a native checkbox input.`);return t},m=()=>_.getCommittedSnapshot(),h=()=>{let e=u(),t=d(),n=m(),r=n.props,s=n.context.inherited,c=n.context.selection.state,l=c===`checked`,h=c===`indeterminate`,g=r.disabled||s.disabled,_=r.required||s.required,v=r.invalid||s.invalid,y=r.name||s.name;t.checked=l,t.indeterminate=h,y||t.removeAttribute(`name`),p({input:t,state:{name:y,value:r.value,disabled:g,required:_,invalid:v}}),h?t.setAttribute(`aria-checked`,`mixed`):t.removeAttribute(`aria-checked`),a({el:e,attr:`data-state`,value:c}),o({el:e,attr:`data-checked`,present:l}),o({el:e,attr:`data-indeterminate`,present:h}),f({el:e,state:{disabled:g,required:_,invalid:v}}),o({el:t,attr:`data-checked`,present:l}),o({el:t,attr:`data-indeterminate`,present:h});let b=e.querySelector(`[data-ui-checkbox-indicator]`);b&&(a({el:b,attr:`data-state`,value:c}),o({el:b,attr:`data-checked`,present:l}),o({el:b,attr:`data-indeterminate`,present:h}),o({el:b,attr:`data-disabled`,present:g}),o({el:b,attr:`data-invalid`,present:v}));let x=e.querySelector(`[data-ui-checkbox-indicator-icon="checked"]`);x&&(o({el:x,attr:`data-checked`,present:l}),i({el:x,attr:`data-indeterminate`}));let S=e.querySelector(`[data-ui-checkbox-indicator-icon="indeterminate"]`);S&&(o({el:S,attr:`data-indeterminate`,present:h}),i({el:S,attr:`data-checked`}))},g=e=>{l=!0;try{d().dispatchEvent(new Event(e,{bubbles:!0}))}finally{l=!1}},_=c({schema:x,hooks:C,createMachine:({props:e})=>P({props:e,effects:{sync:h,emitInput:()=>g(`input`),emitChange:()=>g(`change`)}})}),v={setInheritance(e){_.send({type:`INHERITANCE_CHANGED`,...e})}};return{..._,init(){if(e=this.$el,t=u().querySelector(`[data-ui-checkbox-input]`),!t)throw Error(`Checkbox requires a native checkbox input.`);_.connect(e,this.snapshot),s({target:t,event:`input`,handler:()=>{l||_.send({type:`NATIVE_CHANGED`,state:d().checked?`checked`:`unchecked`})},cleanup:n}),s({target:t,event:`change`,handler:()=>{l||_.send({type:`NATIVE_CHANGED`,state:d().checked?`checked`:`unchecked`})},cleanup:n});let i=R(u());i&&(r=i.register(v)),h()},destroy(){r?.(),r=null,n.splice(0).reverse().forEach(e=>e()),_.disconnect(),e=null,t=null},get state(){return _.getCommittedSnapshot().context.selection.state},setState(e){if(![`unchecked`,`checked`,`indeterminate`].includes(e))throw Error(`Unknown checkbox state: ${String(e)}`);e!==_.getCommittedSnapshot().context.selection.state&&_.send({type:`API_SET`,state:e})}}},B=()=>{let e=null,t=new Set,n=()=>{if(!e)throw Error(`Checkbox group has not been initialized.`);return e},r=()=>o.getCommittedSnapshot(),i=()=>{let e=r();a({el:n(),attr:`data-orientation`,value:e.props.orientation}),a({el:n(),attr:`data-variant`,value:e.props.variant}),f({el:n(),state:e.context.inherited}),t.forEach(t=>t.setInheritance(e.context.inherited))},o=c({schema:S,hooks:w,createMachine:({props:e})=>I({props:e,effects:{sync:i}})}),s={register(e){return t.add(e),e.setInheritance(r().context.inherited),()=>t.delete(e)},inherited:()=>r().context.inherited};return{...o,init(){e=this.$el,o.connect(e,this.snapshot),L.set(n(),s),i()},destroy(){L.delete(n()),t.clear(),o.disconnect(),e=null}}},V=e=>{e.data(`UiCheckbox`,()=>z()),e.data(`UiCheckboxGroup`,()=>B())},H=new WeakSet,U=e=>{H.has(e)||(H.add(e),V(e))};export{z as n,B as r,U as t};
2
- //# sourceMappingURL=entry.generated-wHjTggCn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entry.generated-wHjTggCn.js","names":[],"sources":["../../../../../../../../client/src/components/checkbox/contract.ts","../../../../../../../../client/src/components/checkbox/machine.ts","../../../../../../../../client/src/components/checkbox/index.ts","../../../../../../../../client/src/components/checkbox/entry.generated.ts"],"sourcesContent":["import {attribute, bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n CONTROL_SIZES,\n INDICATOR_PLACEMENTS,\n ORIENTATIONS,\n type ControlSize,\n type IndicatorPlacement,\n type Orientation,\n} from '../common';\n\nconst CHECKBOX_GROUP_ORIENTATIONS = ORIENTATIONS;\nconst CHECKBOX_GROUP_VARIANTS = ['default', 'pills'] as const;\nconst CHECKBOX_PLACEMENTS = INDICATOR_PLACEMENTS;\nconst CHECKBOX_SIZES = CONTROL_SIZES;\nconst CHECKBOX_VARIANTS = ['default', 'pills'] as const;\n\ntype CheckboxGroupOrientation = Orientation;\ntype CheckboxGroupVariant = (typeof CHECKBOX_GROUP_VARIANTS)[number];\ntype CheckboxPlacement = IndicatorPlacement;\ntype CheckboxSize = ControlSize;\ntype CheckboxVariant = (typeof CHECKBOX_VARIANTS)[number];\n\nconst checkboxControlSchema = {\n value: string.default('on'),\n name: string,\n label: string,\n description: string,\n checked: attribute(bool, 'prop-checked'),\n indeterminate: attribute(bool, 'prop-indeterminate'),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n indicator: bool.default(true),\n placement: oneOf(CHECKBOX_PLACEMENTS, 'leading' as CheckboxPlacement),\n icon: string,\n variant: oneOf(CHECKBOX_VARIANTS, 'default' as CheckboxVariant),\n size: oneOf(CHECKBOX_SIZES, 'md' as CheckboxSize),\n inputClass: string,\n indicatorClass: string,\n indicatorIconClass: string,\n iconClass: string,\n contentClass: string,\n labelClass: string,\n descriptionClass: string,\n class: string,\n};\n\nconst checkboxSchema = {\n ...checkboxControlSchema,\n label: string,\n description: string,\n descriptionTrailing: string,\n error: string,\n errors: string,\n badge: string,\n fieldClass: string,\n};\n\nconst checkboxGroupSchema = {\n name: string,\n orientation: oneOf(CHECKBOX_GROUP_ORIENTATIONS, 'vertical' as CheckboxGroupOrientation),\n variant: oneOf(CHECKBOX_GROUP_VARIANTS, 'default' as CheckboxGroupVariant),\n indicator: bool.default(true),\n placement: oneOf(CHECKBOX_PLACEMENTS, 'leading' as CheckboxPlacement),\n disabled: attribute(bool, 'prop-disabled'),\n required: attribute(bool, 'prop-required'),\n invalid: attribute(bool, 'prop-invalid'),\n class: string,\n};\n\nconst checkboxIndicatorSchema = {\n size: oneOf(CHECKBOX_SIZES, 'md' as CheckboxSize),\n class: string,\n};\n\ntype CheckboxControlProps = SchemaToProps<typeof checkboxControlSchema>;\ntype CheckboxGroupProps = SchemaToProps<typeof checkboxGroupSchema>;\ntype CheckboxProps = SchemaToProps<typeof checkboxSchema>;\n\nexport {\n CHECKBOX_GROUP_ORIENTATIONS,\n CHECKBOX_GROUP_VARIANTS,\n CHECKBOX_PLACEMENTS,\n CHECKBOX_SIZES,\n CHECKBOX_VARIANTS,\n checkboxControlSchema,\n checkboxGroupSchema,\n checkboxIndicatorSchema,\n checkboxSchema,\n};\nexport type {\n CheckboxControlProps,\n CheckboxGroupOrientation,\n CheckboxGroupProps,\n CheckboxGroupVariant,\n CheckboxPlacement,\n CheckboxProps,\n CheckboxSize,\n CheckboxVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport type {CheckboxControlProps, CheckboxGroupProps} from './contract';\n\ntype CheckboxState = 'unchecked' | 'checked' | 'indeterminate';\ntype CheckboxInheritance = {name: string; disabled: boolean; required: boolean; invalid: boolean};\ntype CheckboxContext = {\n selection: {state: CheckboxState};\n inherited: CheckboxInheritance;\n};\ntype CheckboxGroupContext = {inherited: CheckboxInheritance};\n\ntype CheckboxMachineEffects = {\n sync(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n emitInput(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n emitChange(scope: MachineScope<CheckboxContext, CheckboxControlProps>): void;\n};\ntype CheckboxGroupMachineEffects = {\n sync(scope: MachineScope<CheckboxGroupContext, CheckboxGroupProps>): void;\n};\n\nconst checkboxHooks = [] as const;\nconst checkboxGroupHooks = [] as const;\nconst EMPTY_INHERITANCE: CheckboxInheritance = {name: '', disabled: false, required: false, invalid: false};\n\nconst checkboxStateFromProps = (props: CheckboxControlProps): CheckboxState => {\n if (props.indeterminate) return 'indeterminate';\n return props.checked ? 'checked' : 'unchecked';\n};\n\nconst stateFromEvent = (event: MachineEventObject): CheckboxState => {\n if (event.state === 'checked' || event.state === 'indeterminate') return event.state;\n return 'unchecked';\n};\n\nconst selectionPropsChanged = ({event}: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => (\n propsChanged<CheckboxControlProps>(event, 'checked', 'indeterminate')\n);\nconst nextSelectionIs = (state: CheckboxState) => (scope: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => {\n const next = propsChangedEvent<CheckboxControlProps>(scope.event)?.props;\n return selectionPropsChanged(scope) && Boolean(next) && checkboxStateFromProps(next as CheckboxControlProps) === state;\n};\nconst eventStateIs = (state: CheckboxState) => ({event}: MachineScope<CheckboxContext, CheckboxControlProps>): boolean => (\n stateFromEvent(event) === state\n);\n\nconst setSelection = (scope: MachineScope<CheckboxContext, CheckboxControlProps>) => ({\n context: {...scope.context, selection: {state: stateFromEvent(scope.event)}},\n});\nconst reconcileProps = (scope: MachineScope<CheckboxContext, CheckboxControlProps>) => {\n const next = propsChangedEvent<CheckboxControlProps>(scope.event)?.props;\n if (!next) return;\n return {\n props: next,\n context: selectionPropsChanged(scope)\n ? {...scope.context, selection: {state: checkboxStateFromProps(next)}}\n : scope.context,\n };\n};\n\nconst selectionTransitions = (effects: string[]) => [\n {target: 'unchecked', guard: eventStateIs('unchecked'), reduce: 'setSelection', effects},\n {target: 'checked', guard: eventStateIs('checked'), reduce: 'setSelection', effects},\n {target: 'indeterminate', guard: eventStateIs('indeterminate'), reduce: 'setSelection', effects},\n];\n\nconst createCheckboxMachine = ({\n props,\n inherited = EMPTY_INHERITANCE,\n effects,\n}: {\n props: CheckboxControlProps;\n inherited?: CheckboxInheritance;\n effects: CheckboxMachineEffects;\n}): Machine<CheckboxContext, CheckboxControlProps> => {\n const initial = checkboxStateFromProps(props);\n return createMachine<CheckboxContext, CheckboxControlProps>({\n initial,\n on: {\n NATIVE_CHANGED: selectionTransitions(['sync']),\n API_SET: selectionTransitions(['sync', 'emitInput', 'emitChange']),\n INHERITANCE_CHANGED: {reduce: 'setInheritance', effects: 'sync'},\n PROPS_CHANGED: [\n {target: 'unchecked', guard: nextSelectionIs('unchecked'), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'checked', guard: nextSelectionIs('checked'), reduce: 'reconcileProps', effects: 'sync'},\n {target: 'indeterminate', guard: nextSelectionIs('indeterminate'), reduce: 'reconcileProps', effects: 'sync'},\n {reduce: 'reconcileProps', effects: 'sync'},\n ],\n },\n states: {\n unchecked: {tags: ['unchecked']},\n checked: {tags: ['checked']},\n indeterminate: {tags: ['indeterminate']},\n },\n }, {\n context: {selection: {state: initial}, inherited: {...inherited}},\n props,\n reducers: {\n setSelection,\n reconcileProps,\n setInheritance: (scope) => ({\n context: {\n ...scope.context,\n inherited: {\n name: typeof scope.event.name === 'string' ? scope.event.name : '',\n disabled: scope.event.disabled === true,\n required: scope.event.required === true,\n invalid: scope.event.invalid === true,\n },\n },\n }),\n },\n effects,\n });\n};\n\nconst inheritanceFromGroupProps = (props: CheckboxGroupProps): CheckboxInheritance => ({\n name: props.name,\n disabled: props.disabled,\n required: props.required,\n invalid: props.invalid,\n});\n\nconst createCheckboxGroupMachine = ({\n props,\n effects,\n}: {\n props: CheckboxGroupProps;\n effects: CheckboxGroupMachineEffects;\n}): Machine<CheckboxGroupContext, CheckboxGroupProps> => createMachine<CheckboxGroupContext, CheckboxGroupProps>({\n initial: 'ready',\n states: {\n ready: {\n tags: ['ready'],\n on: {\n PROPS_CHANGED: {reduce: 'reconcileProps', effects: 'sync'},\n },\n },\n },\n}, {\n context: {inherited: inheritanceFromGroupProps(props)},\n props,\n reducers: {\n reconcileProps: (scope) => {\n const next = propsChangedEvent<CheckboxGroupProps>(scope.event)?.props;\n return next ? {props: next, context: {inherited: inheritanceFromGroupProps(next)}} : undefined;\n },\n },\n effects,\n});\n\nexport {\n checkboxGroupHooks,\n checkboxHooks,\n checkboxStateFromProps,\n createCheckboxGroupMachine,\n createCheckboxMachine,\n EMPTY_INHERITANCE,\n};\nexport type {\n CheckboxContext,\n CheckboxGroupContext,\n CheckboxGroupMachineEffects,\n CheckboxInheritance,\n CheckboxMachineEffects,\n CheckboxState,\n};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n type MachineSnapshot,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {syncControlPresence, syncNativeControl} from '@client/runtime/form-control';\nimport {addListener, removeAttribute, setAttribute, setPresence, type CleanupStack} from '@client/utils';\nimport {checkboxControlSchema, checkboxGroupSchema, type CheckboxControlProps, type CheckboxGroupProps} from './contract';\nimport {\n checkboxGroupHooks,\n checkboxHooks,\n createCheckboxGroupMachine,\n createCheckboxMachine,\n type CheckboxContext,\n type CheckboxGroupContext,\n type CheckboxInheritance,\n type CheckboxState,\n} from './machine';\n\n/**\n * Public Alpine API for `ui.checkbox` and `ui.checkbox.control`.\n *\n * @public\n */\ninterface UiCheckboxApi {\n /** Current semantic checkbox state. */\n readonly state: CheckboxState;\n /** Set and commit the semantic checkbox state. */\n setState(state: CheckboxState): void;\n}\n\ntype CheckboxData = AlpineMachine<CheckboxContext, CheckboxControlProps, typeof checkboxHooks> & UiCheckboxApi & {\n init(): void;\n destroy(): void;\n};\ntype CheckboxGroupData = AlpineMachine<CheckboxGroupContext, CheckboxGroupProps, typeof checkboxGroupHooks> & {\n init(): void;\n destroy(): void;\n};\n\ntype CheckboxOwner = {setInheritance(inherited: CheckboxInheritance): void};\ntype CheckboxGroupOwner = {\n register(owner: CheckboxOwner): () => void;\n inherited(): CheckboxInheritance;\n};\n\nconst groupOwners = new WeakMap<HTMLElement, CheckboxGroupOwner>();\n\nconst closestGroupOwner = (element: HTMLElement): CheckboxGroupOwner | null => {\n const group = element.parentElement?.closest<HTMLElement>('[data-ui-checkbox-group]') ?? null;\n return group ? groupOwners.get(group) ?? null : null;\n};\n\nconst UiCheckbox = (): TrellisAlpineComponent<CheckboxData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let inputEl: HTMLInputElement | null = null;\n let listeners: CleanupStack = [];\n let unregisterGroup: (() => void) | null = null;\n let dispatchingNative = false;\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Checkbox has not been initialized.');\n return rootEl;\n };\n const input = (): HTMLInputElement => {\n if (!inputEl) throw new Error('Checkbox requires a native checkbox input.');\n return inputEl;\n };\n const currentSnapshot = (): MachineSnapshot<CheckboxContext, CheckboxControlProps> => bridge.getCommittedSnapshot();\n\n const syncDom = (): void => {\n const checkbox = root();\n const native = input();\n const snapshot = currentSnapshot();\n const props = snapshot.props;\n const inherited = snapshot.context.inherited;\n const state = snapshot.context.selection.state;\n const checked = state === 'checked';\n const indeterminate = state === 'indeterminate';\n const disabled = props.disabled || inherited.disabled;\n const required = props.required || inherited.required;\n const invalid = props.invalid || inherited.invalid;\n const name = props.name || inherited.name;\n\n native.checked = checked;\n native.indeterminate = indeterminate;\n if (!name) native.removeAttribute('name');\n syncNativeControl({input: native, state: {name, value: props.value, disabled, required, invalid}});\n if (indeterminate) native.setAttribute('aria-checked', 'mixed');\n else native.removeAttribute('aria-checked');\n\n setAttribute({el: checkbox, attr: 'data-state', value: state});\n setPresence({el: checkbox, attr: 'data-checked', present: checked});\n setPresence({el: checkbox, attr: 'data-indeterminate', present: indeterminate});\n syncControlPresence({el: checkbox, state: {disabled, required, invalid}});\n setPresence({el: native, attr: 'data-checked', present: checked});\n setPresence({el: native, attr: 'data-indeterminate', present: indeterminate});\n\n const indicator = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator]');\n if (indicator) {\n setAttribute({el: indicator, attr: 'data-state', value: state});\n setPresence({el: indicator, attr: 'data-checked', present: checked});\n setPresence({el: indicator, attr: 'data-indeterminate', present: indeterminate});\n setPresence({el: indicator, attr: 'data-disabled', present: disabled});\n setPresence({el: indicator, attr: 'data-invalid', present: invalid});\n }\n const checkedIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator-icon=\"checked\"]');\n if (checkedIcon) {\n setPresence({el: checkedIcon, attr: 'data-checked', present: checked});\n removeAttribute({el: checkedIcon, attr: 'data-indeterminate'});\n }\n const indeterminateIcon = checkbox.querySelector<HTMLElement>('[data-ui-checkbox-indicator-icon=\"indeterminate\"]');\n if (indeterminateIcon) {\n setPresence({el: indeterminateIcon, attr: 'data-indeterminate', present: indeterminate});\n removeAttribute({el: indeterminateIcon, attr: 'data-checked'});\n }\n };\n\n const dispatchNative = (type: 'input' | 'change'): void => {\n dispatchingNative = true;\n try { input().dispatchEvent(new Event(type, {bubbles: true})); } finally { dispatchingNative = false; }\n };\n\n const bridge = createAlpineMachine({\n schema: checkboxControlSchema,\n hooks: checkboxHooks,\n createMachine: ({props}) => createCheckboxMachine({\n props,\n effects: {\n sync: syncDom,\n emitInput: () => dispatchNative('input'),\n emitChange: () => dispatchNative('change'),\n },\n }),\n });\n\n const owner: CheckboxOwner = {\n setInheritance(inherited): void {\n bridge.send({type: 'INHERITANCE_CHANGED', ...inherited});\n },\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n inputEl = root().querySelector<HTMLInputElement>('[data-ui-checkbox-input]');\n if (!inputEl) throw new Error('Checkbox requires a native checkbox input.');\n bridge.connect(rootEl, this.snapshot);\n addListener({target: inputEl, event: 'input', handler: () => {\n if (dispatchingNative) return;\n bridge.send({type: 'NATIVE_CHANGED', state: input().checked ? 'checked' : 'unchecked'});\n }, cleanup: listeners});\n addListener({target: inputEl, event: 'change', handler: () => {\n if (dispatchingNative) return;\n bridge.send({type: 'NATIVE_CHANGED', state: input().checked ? 'checked' : 'unchecked'});\n }, cleanup: listeners});\n const group = closestGroupOwner(root());\n if (group) unregisterGroup = group.register(owner);\n syncDom();\n },\n destroy(): void {\n unregisterGroup?.();\n unregisterGroup = null;\n listeners.splice(0).reverse().forEach((cleanup) => cleanup());\n bridge.disconnect();\n rootEl = null;\n inputEl = null;\n },\n get state(): CheckboxState {\n return bridge.getCommittedSnapshot().context.selection.state;\n },\n setState(state: CheckboxState): void {\n if (!['unchecked', 'checked', 'indeterminate'].includes(state)) {\n throw new Error(`Unknown checkbox state: ${String(state)}`);\n }\n if (state === bridge.getCommittedSnapshot().context.selection.state) return;\n bridge.send({type: 'API_SET', state});\n },\n };\n};\n\nconst UiCheckboxGroup = (): TrellisAlpineComponent<CheckboxGroupData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n const members = new Set<CheckboxOwner>();\n\n const root = (): HTMLElement => {\n if (!rootEl) throw new Error('Checkbox group has not been initialized.');\n return rootEl;\n };\n const currentSnapshot = (): MachineSnapshot<CheckboxGroupContext, CheckboxGroupProps> => bridge.getCommittedSnapshot();\n const syncDom = (): void => {\n const snapshot = currentSnapshot();\n setAttribute({el: root(), attr: 'data-orientation', value: snapshot.props.orientation});\n setAttribute({el: root(), attr: 'data-variant', value: snapshot.props.variant});\n syncControlPresence({el: root(), state: snapshot.context.inherited});\n members.forEach((member) => member.setInheritance(snapshot.context.inherited));\n };\n const bridge = createAlpineMachine({\n schema: checkboxGroupSchema,\n hooks: checkboxGroupHooks,\n createMachine: ({props}) => createCheckboxGroupMachine({\n props,\n effects: {sync: syncDom},\n }),\n });\n const owner: CheckboxGroupOwner = {\n register(member): () => void {\n members.add(member);\n member.setInheritance(currentSnapshot().context.inherited);\n return () => members.delete(member);\n },\n inherited: () => currentSnapshot().context.inherited,\n };\n\n return {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n bridge.connect(rootEl, this.snapshot);\n groupOwners.set(root(), owner);\n syncDom();\n },\n destroy(): void {\n groupOwners.delete(root());\n members.clear();\n bridge.disconnect();\n rootEl = null;\n },\n };\n};\n\nconst registerCheckbox = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.data('UiCheckbox', () => UiCheckbox());\n AlpineInstance.data('UiCheckboxGroup', () => UiCheckboxGroup());\n};\n\nexport {registerCheckbox, UiCheckbox, UiCheckboxGroup};\nexport type {CheckboxData, CheckboxGroupData, CheckboxState, UiCheckboxApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerCheckbox as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerCheckbox = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerCheckbox};\nexport default registerCheckbox;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{f as e,l as t,n}from"./codecs-Cb1ns_47.js";import{t as r}from"./resizable-BixtYF9M.js";var i=[`auto`,`fixed`],a=[`compact`,`default`,`comfortable`],o=[`ghost`,`surface`],s=[`none`,`row`,`grid`],c=[`auto`,`full`],l=[`start`,`center`,`end`],u=[`top`,`middle`,`bottom`,`baseline`],d=[`none`,`ascending`,`descending`,`other`],f=[`col`,`colgroup`],p=[`row`,`rowgroup`],m=[`div`,`form`],h={layout:t(i,`auto`),density:t(a,`default`),variant:t(o,`ghost`),border:t(s,`none`),flush:n,zebra:n,hover:n.default(!0),stickyHeader:n,nowrap:n.default(!0),width:t(c,`full`),class:e,tableClass:e},g={side:t([`top`,`bottom`],`bottom`),class:e},_={class:e},v={selected:n,current:n,disabled:n,interactive:n,class:e},y={align:t(l,`start`),valign:t(u,`middle`),key:e,target:e,width:e,resizable:n,minWidth:e.default(`4rem`),maxWidth:e,sortable:n,sort:t(d,`none`),abbr:e,scope:t(f,`col`),class:e,contentClass:e,resizeHandleClass:e},b={as:t(m,`div`),id:e,class:e},x={align:t(l,`start`),valign:t(u,`middle`),scope:t(p,`row`),class:e},S={align:t(l,`start`),valign:t(u,`middle`),class:e},C={colspan:e.default(`1`),class:e,cellClass:e},w=new WeakSet,T=e=>{w.has(e)||(w.add(e),r(e))};export{C as _,a,h as b,p as c,o as d,c as f,y as g,b as h,f as i,d as l,S as m,l as n,m as o,g as p,s as r,i as s,T as t,u,x as v,_ as x,v as y};
2
- //# sourceMappingURL=entry.generated-xcXw-cEl.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,i as t}from"./codecs-Cb1ns_47.js";var n=e=>typeof e==`object`&&!!e&&!(e instanceof FormData)&&!(e instanceof URLSearchParams)&&!(e instanceof HTMLFormElement)&&!(e instanceof Blob)&&!(e instanceof ArrayBuffer),r=e=>structuredClone(e),i=(e,t)=>{if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>i(e,t[n]));if(!n(e)||!n(t))return!1;let r=Object.keys(e),a=Object.keys(t);return r.length===a.length&&r.every(n=>Object.hasOwn(t,n)&&i(e[n],t[n]))},a=e=>e!==null&&(typeof e==`object`||typeof e==`function`)&&`then`in e&&typeof e.then==`function`,o=e=>{if(e.project===void 0==(e.projectEach===void 0))throw Error(`Transition hook ${e.name} requires exactly one projection.`);return Object.freeze(e)},s=e=>typeof e==`string`?[e]:e,c=(e,t)=>{let n=e.split(`.`),r=t.split(`.`),i=0;for(;n[i]!==void 0&&n[i]===r[i];)i+=1;return i},l=(e,t)=>[...s(e)].sort((e,n)=>c(n,t)-c(e,t))[0]??t,u=({machine:e,hooks:t,root:n,resolveElement:i})=>{let o=new Map(t.map(e=>[e.name,e])),s=new Map,c=new Map,u=new Set,d=!1;if(o.size!==t.length)throw Error(`Transition hook names must be unique.`);t.forEach(e=>{let t=s.get(e.state)??[],n=t[0];if(n&&(n.onDone!==e.onDone||n.onError!==e.onError))throw Error(`Transition hooks sharing ${e.state} must use the same continuations.`);t.push(e),s.set(e.state,t)});let f=t=>!d&&e.getSnapshot().generations[t.path]===t.generation,p=(t,n,r={})=>{e.send({type:n,...r,__state:t.path,__generation:t.generation})},m=(e,t)=>e.projectEach?.(t)??[e.project?.(t)],h=(t,o,s,c,u,d=0)=>{for(let p=d;p<c.length;p+=1){if(!f(t))return;let d=c[p],m=n??d.el,g=i?.({name:o.name,data:s,root:m,registrationEl:d.el});if(g===null)return;let _=g??d.el,v=e.send.bind(e);Object.entries(o.sends??{}).forEach(([t,n])=>{v[t]=(...t)=>e.send(n(...t))});let y=Object.freeze({el:_,root:m,from:l(t.from,t.path),to:t.path,event:Object.freeze({...t.event}),props:r(t.snapshot.props),data:r(s),send:v,signal:u}),b=d.callback(y);if(a(b))return Promise.resolve(b).then(()=>h(t,o,s,c,u,p+1))}},g=e=>{let t=s.get(e.path);if(!t)return;let n=[],r=[],i=new AbortController,o={entry:e,controller:i};u.add(o),t.forEach(t=>{let a=[...c.get(t.name)??[]];if(a.length===0){t.required&&r.push(Error(`Transition hook ${t.name} requires a registered callback.`));return}m(t,e.snapshot).forEach(o=>{try{n.push(h(e,t,o,a,i.signal))}catch(e){r.push(e)}})});let l=t[0],d=(t=[])=>{if(u.delete(o),!f(e))return;let n=[...r,...t][0];n===void 0?p(e,l.onDone):p(e,l.onError,{error:n})},g=n.filter(a);if(g.length===0){d();return}Promise.allSettled(g).then(e=>d(e.flatMap(e=>e.status===`rejected`?[e.reason]:[])))},_=e.subscribeEntries(e=>{g(e)}),v=e.subscribe(()=>{u.forEach(e=>{f(e.entry)||(e.controller.abort(),u.delete(e))})});return{register({name:e,el:t,callback:n}){if(d)throw Error(`Transition coordinator has been destroyed.`);if(!o.has(e))throw Error(`Unknown transition hook: ${e}`);let r={name:e,el:t,callback:n},i=c.get(e)??[];return i.push(r),c.set(e,i),()=>{let t=c.get(e);if(!t)return;let n=t.indexOf(r);n>=0&&t.splice(n,1),t.length===0&&c.delete(e)}},destroy(){d||(d=!0,_(),v(),u.forEach(e=>e.controller.abort()),u.clear(),c.clear())}}},d=new WeakMap,f=(e,t)=>{let n=e.findClosest(t,e=>d.has(e));return n?d.get(n):void 0},p=({schema:n,hooks:r,createMachine:a,resolveTransitionElement:o})=>{let s={current:null},c=s,l=[],f=null,p=null,m=null,h=null,g=null,_=!1,v=()=>{if(!p)throw Error(`Alpine machine has not been initialized.`);return p},y=e=>{!m||!f||!e.active||(e.unregister=m.register({name:e.name,el:e.el??f,callback:e.callback}))},b={snapshot:s,invalidateDom(){_||!p||p.send(`DOM_INVALIDATED`)},connect(v,x=s){if(_)throw Error(`Alpine machine has been destroyed.`);if(p)return;f=v,c=x;let S=e({el:f,schema:n}),C=a({el:f,props:S}),w;try{w=u({machine:C,hooks:r,root:f,...o?{resolveElement:o}:{}})}catch(e){throw C.stop(),f=null,e}p=C,m=w,c.current=p.getSnapshot(),g=p.subscribe(e=>{c.current=e}),d.set(f,b),l.forEach(y);let T=new Map(Object.entries(n).flatMap(([e,n])=>n.meta.attribute?[[t(e,n),e]]:[]));h=new MutationObserver(t=>{if(!f||!p)return;let r=new Set(t.flatMap(({attributeName:e})=>{let t=e?T.get(e):void 0;return t?[t]:[]})),a=e({el:f,schema:n}),o=Object.keys(a).flatMap(e=>{let t=e;return!r.has(t)&&i(S[t],a[t])?[]:[{key:t,previous:S[t],value:a[t],source:`attribute`}]});o.length!==0&&(S=a,p.send({type:`PROPS_CHANGED`,props:a,changes:o}))}),h.observe(f,{attributes:!0,attributeFilter:Object.entries(n).map(([e,n])=>t(e,n))})},disconnect(){_||(_=!0,h?.disconnect(),h=null,g?.(),g=null,m?.destroy(),m=null,p?.stop(),p=null,f&&d.delete(f),f=null,l.splice(0).forEach(e=>e.unregister?.()),c.current=null,c=s)},getSnapshot(){let e=c.current;if(!e)throw Error(`Alpine machine has not been initialized.`);return e},getCommittedSnapshot(){return v().getSnapshot()},send(e){v().send(e)},matches(e){return v().matches(e)},hasTag(e){return v().hasTag(e)},onTransition(e,t,n){if(_)throw Error(`Alpine machine has been destroyed.`);let r={name:e,callback:t,active:!0};return n&&(r.el=n),l.push(r),y(r),()=>{if(!r.active)return;r.active=!1,r.unregister?.(),delete r.unregister;let e=l.indexOf(r);e>=0&&l.splice(e,1)}}};return b},m=`$`,h={type:`@@init`},g=e=>typeof e==`string`?{type:e}:e,_=e=>e===void 0?[]:Array.isArray(e)?e:[e],v=e=>typeof e==`string`?{target:e}:e,y=(e,t)=>t===m||e===t||e.startsWith(`${t}.`),b=(e,t)=>{let n=new Map,r=new Map,i=new Set,a=new Set,o=new Map,s=new Map,c=new Map,l=[],u=!1,d=!1,f=0,p=(e,t)=>Object.entries(e).map(([e,i])=>{let a=t===m?e:`${t}.${e}`,o=i.states?p(i.states,a):[],s=i.type??(o.length>0?`compound`:`final`),c={key:e,path:a,order:f++,type:s,children:o,tags:i.tags??[],reduce:_(i.reduce),entry:_(i.entry),exit:_(i.exit),on:i.on??{}};return i.id&&(c.id=i.id),t!==m&&(c.parent=t),i.initial&&(c.initial=i.initial),n.set(a,c),c.id&&r.set(c.id,a),a}),b=p(e.states,m),x={key:m,path:m,order:-1,type:e.type??`compound`,children:b,tags:e.tags??[],reduce:_(e.reduce),entry:_(e.entry),exit:_(e.exit),on:e.on??{}};e.id&&(x.id=e.id),e.initial&&(x.initial=e.initial),n.set(m,x),x.id&&r.set(x.id,m);let S=e=>{let t=n.get(e);if(!t)throw Error(`Unknown machine state: ${e}`);return t},C=e=>{let t=[],n=e;for(;n;){let e=S(n);t.push(e),n=e.parent??(n===m?void 0:m)}return t},w=e=>{let t=new Set;return e.forEach(e=>C(e).forEach(e=>t.add(e.path))),Array.from(t).map(S).sort((e,t)=>e.order-t.order)},T=e=>{let t=S(e);if(t.children.length===0||t.type===`final`)return e===m?[]:[e];if(t.type===`parallel`)return t.children.flatMap(T);if(!t.initial)throw Error(`Machine state requires an initial child: ${e}`);let r=e===m?t.initial:`${e}.${t.initial}`;return T(n.has(r)?r:t.initial)},E=(e,t)=>{if(e.startsWith(`#`)){let t=r.get(e.slice(1));if(!t)throw Error(`Unknown machine state id: ${e}`);return t}if(e===m||n.has(e))return e;if(t.parent){let r=`${t.parent}.${e}`;if(n.has(r))return r}if(n.has(e))return e;throw Error(`Unknown machine state: ${e}`)},D=e=>e.length===1?e[0]:Object.freeze([...e]),O=e=>Object.freeze(Array.from(new Set(w(e).flatMap(e=>e.tags)))),k=()=>Object.freeze(Object.fromEntries(s)),A=T(m),j=Object.freeze({value:D(A),tags:O(A),context:Object.freeze({...t.context}),props:Object.freeze({...t.props??{}}),generations:Object.freeze({})}),M=(e,t=j)=>({snapshot:t,context:t.context,props:t.props,event:e,state:t.value}),N=e=>`${e}:${s.get(e)??0}`,P=(e,t)=>{if(typeof t!=`function`)return;let n=N(e),r=c.get(n)??[];r.push(t),c.set(n,r)},F=e=>{let t=N(e),n=c.get(t);n&&(n.splice(0).reverse().forEach(e=>e()),c.delete(t))},I=e=>typeof e==`function`?e:t.effects?.[e],L=(e,t,n,r=!0)=>{e.forEach(e=>{let i=I(e);if(!i)throw Error(`Unknown machine effect: ${String(e)}`);let a=i(M(t));r&&P(n,a)})},R=e=>typeof e==`function`?e:t.reducers?.[e],z=(e,t,n)=>{let r={},i={},a=new Set,o=new Set;return e.forEach(e=>{let s=R(e);if(!s)throw Error(`Unknown machine reducer: ${String(e)}`);let c=s(M(t,n));c&&(Reflect.ownKeys(c.context??{}).forEach(e=>{if(a.has(e))throw Error(`Conflicting machine context update: ${String(e)}`);a.add(e),Reflect.set(r,e,Reflect.get(c.context,e))}),Reflect.ownKeys(c.props??{}).forEach(e=>{if(o.has(e))throw Error(`Conflicting machine prop update: ${String(e)}`);o.add(e),Reflect.set(i,e,Reflect.get(c.props,e))}))}),{context:Object.freeze({...n.context,...r}),props:Object.freeze({...n.props,...i})}},B=(e,n,r)=>{if(!e)return!0;let i=typeof e==`function`?e:t.guards?.[e];if(!i)throw Error(`Unknown machine guard: ${String(e)}`);return i(M(n,r))},V=(e,t)=>{let n=new Map;A.forEach(r=>{for(let i of C(r)){let r=_(i.on[e.type]).map(v).find(n=>B(n.guard,e,t));r&&n.set(i.path,{source:i,definition:r})}});let r=Array.from(n.values());return r.filter(e=>!r.some(t=>t!==e&&y(e.source.path,t.source.path))).sort((e,t)=>e.source.order-t.source.order)},H=(e,t)=>{let n=new Set(C(t).map(e=>e.path));return C(e).find(e=>n.has(e.path))?.path??m},U=(e,t)=>{let n=H(e,t);if(e===t||n===e)return e;let r=C(e),i=r.findIndex(e=>e.path===n);return r[Math.max(0,i-1)]?.path??e},W=e=>{let t=[...A];return e.forEach(({source:e,definition:n})=>{if(!n.target)return;let r=E(n.target,e),i=U(e.path,r);t=t.filter(e=>!y(e,i)),t.push(...T(r))}),Array.from(new Set(t)).sort((e,t)=>S(e).order-S(t).order)},G=e=>{if(typeof e.__state==`string`&&typeof e.__generation==`number`&&s.get(e.__state)!==e.__generation)return;let t=j,n=V(e,t);if(n.length===0)return;let r=W(n),c=w(A),l=w(r),u=new Set(c.map(e=>e.path)),d=new Set(l.map(e=>e.path)),f=n.flatMap(({source:e,definition:t})=>t.target&&E(t.target,e)===e.path?c.filter(t=>y(t.path,e.path)).map(e=>e.path):[]),p=new Set(f),m=c.filter(e=>!d.has(e.path)||p.has(e.path)).sort((e,t)=>t.path.split(`.`).length-e.path.split(`.`).length||t.order-e.order),h=l.filter(e=>!u.has(e.path)||p.has(e.path)).sort((e,t)=>e.path.split(`.`).length-t.path.split(`.`).length||e.order-t.order);m.forEach(t=>{F(t.path),L(t.exit,e,t.path,!1),s.delete(t.path)});let g=z([...n.flatMap(({definition:e})=>_(e.reduce)),...h.flatMap(e=>e.reduce)],e,t);h.forEach(e=>{let t=(o.get(e.path)??0)+1;o.set(e.path,t),s.set(e.path,t)}),A=r,j=Object.freeze({value:D(A),tags:O(A),context:g.context,props:g.props,generations:k()}),n.forEach(({source:t,definition:n})=>L(_(n.effects),e,t.path)),h.forEach(t=>L(t.entry,e,t.path)),i.forEach(e=>e(j)),h.forEach(n=>{let r=s.get(n.path);if(r===void 0)return;let i=Object.freeze({path:n.path,generation:r,from:t.value,to:j.value,event:e,snapshot:j});a.forEach(e=>e(i))})},K={get state(){return j.value},get context(){return j.context},get props(){return j.props},getSnapshot(){return j},send(e){if(!d&&(l.push(g(e)),!u)){u=!0;try{for(;l.length>0&&!d;)G(l.shift())}finally{u=!1}}},subscribe(e){return d?()=>{}:(i.add(e),()=>i.delete(e))},subscribeEntries(e){return d?()=>{}:(a.add(e),()=>a.delete(e))},matches(e){return A.some(t=>t===e||t.split(`.`).at(-1)===e||y(t,e))},hasTag(e){return j.tags.includes(e)},stop(){d||=(w(A).sort((e,t)=>t.path.split(`.`).length-e.path.split(`.`).length||t.order-e.order).forEach(e=>F(e.path)),i.clear(),a.clear(),l.splice(0),s.clear(),!0)}};w(A).forEach(e=>{let t=(o.get(e.path)??0)+1;o.set(e.path,t),s.set(e.path,t)});let q=z(w(A).flatMap(e=>e.reduce),h,j);return j=Object.freeze({value:D(A),tags:O(A),context:q.context,props:q.props,generations:k()}),w(A).forEach(e=>L(e.entry,h,e.path)),K};export{o as a,u as i,p as n,n as o,f as r,i as s,b as t};
2
- //# sourceMappingURL=machine-CX3wFSoV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"machine-CX3wFSoV.js","names":[],"sources":["../../../../../../../../client/src/utils/object.ts","../../../../../../../../client/src/runtime/transition-coordinator.ts","../../../../../../../../client/src/runtime/alpine-machine.ts","../../../../../../../../client/src/runtime/state-machine/machine.ts"],"sourcesContent":["const isRecord = (value: unknown): value is Record<string, unknown> => (\n typeof value === 'object'\n && value !== null\n && !(value instanceof FormData)\n && !(value instanceof URLSearchParams)\n && !(value instanceof HTMLFormElement)\n && !(value instanceof Blob)\n && !(value instanceof ArrayBuffer)\n);\n\nconst cloneSerializable = <T>(value: T): T => structuredClone(value);\n\nconst isSerializableEqual = (left: unknown, right: unknown): boolean => {\n if (Object.is(left, right)) return true;\n if (Array.isArray(left) || Array.isArray(right)) {\n return Array.isArray(left)\n && Array.isArray(right)\n && left.length === right.length\n && left.every((value, index) => isSerializableEqual(value, right[index]));\n }\n if (!isRecord(left) || !isRecord(right)) return false;\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n return leftKeys.length === rightKeys.length\n && leftKeys.every((key) => Object.hasOwn(right, key) && isSerializableEqual(left[key], right[key]));\n};\n\nconst isPromiseLike = (value: unknown): value is PromiseLike<unknown> => (\n value !== null\n && (typeof value === 'object' || typeof value === 'function')\n && 'then' in value\n && typeof value.then === 'function'\n);\n\nexport {cloneSerializable, isPromiseLike, isRecord, isSerializableEqual};\n","import type {\n Machine,\n MachineEntry,\n MachineEvent,\n MachineEventObject,\n MachineSnapshot,\n MachineStateValue,\n} from './state-machine';\nimport {cloneSerializable, isPromiseLike} from '../utils';\n\ntype TransitionEventCreator = (...args: never[]) => MachineEvent;\ntype TransitionSend = ((event: MachineEvent) => void) & {[name: string]: ((...args: unknown[]) => void) | undefined};\n\ntype TransitionHookDefinition<\n TContext,\n TProps,\n TData,\n TName extends string = string,\n TSends extends Record<string, TransitionEventCreator> = Record<string, TransitionEventCreator>,\n> = Readonly<{\n name: TName;\n state: string;\n onDone: string;\n onError: string;\n required?: boolean;\n sends?: TSends;\n project?: (snapshot: MachineSnapshot<TContext, TProps>) => TData;\n projectEach?: (snapshot: MachineSnapshot<TContext, TProps>) => readonly TData[];\n}>;\n\ntype AnyTransitionHook<TContext, TProps> = TransitionHookDefinition<TContext, TProps, unknown>;\n\ntype TransitionContext<TProps, TData, TElement = unknown> = Readonly<{\n el: TElement;\n root: TElement;\n from: string;\n to: string;\n event: MachineEventObject;\n props: TProps;\n data: TData;\n send: TransitionSend;\n signal: AbortSignal;\n}>;\n\ntype TransitionCallback<TProps, TData, TElement = unknown> = (\n transition: TransitionContext<TProps, TData, TElement>,\n) => unknown | Promise<unknown>;\n\ntype TransitionRegistration<TProps, TElement> = {\n name: string;\n el: TElement;\n callback: TransitionCallback<TProps, unknown, TElement>;\n};\n\ntype TransitionCoordinatorOptions<TContext, TProps, TElement> = {\n machine: Machine<TContext, TProps>;\n hooks: readonly AnyTransitionHook<TContext, TProps>[];\n root?: TElement;\n resolveElement?: TransitionElementResolver<TElement>;\n};\n\ntype TransitionElementResolver<TElement> = (scope: Readonly<{\n name: string;\n data: unknown;\n root: TElement;\n registrationEl: TElement;\n}>) => TElement | null | undefined;\n\ntype TransitionCoordinator<TProps, TElement = unknown> = {\n register<TData>(registration: {\n name: string;\n el: TElement;\n callback: TransitionCallback<TProps, TData, TElement>;\n }): () => void;\n destroy(): void;\n};\n\nconst defineHook = <\n TContext,\n TProps,\n TData,\n const TName extends string,\n const TSends extends Record<string, TransitionEventCreator> = Record<string, TransitionEventCreator>,\n>(definition: TransitionHookDefinition<TContext, TProps, TData, TName, TSends>): typeof definition => {\n if ((definition.project === undefined) === (definition.projectEach === undefined)) {\n throw new Error(`Transition hook ${definition.name} requires exactly one projection.`);\n }\n return Object.freeze(definition);\n};\n\nconst statePaths = (value: MachineStateValue): readonly string[] => (\n typeof value === 'string' ? [value] : value\n);\n\nconst commonPrefixLength = (left: string, right: string): number => {\n const leftParts = left.split('.');\n const rightParts = right.split('.');\n let index = 0;\n while (leftParts[index] !== undefined && leftParts[index] === rightParts[index]) index += 1;\n return index;\n};\n\nconst closestStatePath = (value: MachineStateValue, enteredPath: string): string => {\n const paths = statePaths(value);\n return [...paths].sort((left, right) => (\n commonPrefixLength(right, enteredPath) - commonPrefixLength(left, enteredPath)\n ))[0] ?? enteredPath;\n};\n\nconst createTransitionCoordinator = <TContext, TProps, TElement = unknown>({\n machine,\n hooks,\n root: ownerRoot,\n resolveElement,\n}: TransitionCoordinatorOptions<TContext, TProps, TElement>): TransitionCoordinator<TProps, TElement> => {\n const hooksByName = new Map(hooks.map((hook) => [hook.name, hook]));\n const hooksByState = new Map<string, AnyTransitionHook<TContext, TProps>[]>();\n const registrations = new Map<string, TransitionRegistration<TProps, TElement>[]>();\n const activeRuns = new Set<{entry: MachineEntry<TContext, TProps>; controller: AbortController}>();\n let destroyed = false;\n\n if (hooksByName.size !== hooks.length) throw new Error('Transition hook names must be unique.');\n hooks.forEach((hook) => {\n const grouped = hooksByState.get(hook.state) ?? [];\n const first = grouped[0];\n if (first && (first.onDone !== hook.onDone || first.onError !== hook.onError)) {\n throw new Error(`Transition hooks sharing ${hook.state} must use the same continuations.`);\n }\n grouped.push(hook);\n hooksByState.set(hook.state, grouped);\n });\n\n const isActive = (entry: MachineEntry<TContext, TProps>): boolean => (\n !destroyed && machine.getSnapshot().generations[entry.path] === entry.generation\n );\n\n const continuation = (\n entry: MachineEntry<TContext, TProps>,\n type: string,\n detail: Record<string, unknown> = {},\n ): void => {\n machine.send({\n type,\n ...detail,\n __state: entry.path,\n __generation: entry.generation,\n });\n };\n\n const projections = (\n hook: AnyTransitionHook<TContext, TProps>,\n snapshot: MachineSnapshot<TContext, TProps>,\n ): readonly unknown[] => hook.projectEach?.(snapshot) ?? [hook.project?.(snapshot)];\n\n const runQueue = (\n entry: MachineEntry<TContext, TProps>,\n hook: AnyTransitionHook<TContext, TProps>,\n data: unknown,\n queue: TransitionRegistration<TProps, TElement>[],\n signal: AbortSignal,\n index = 0,\n ): void | Promise<void> => {\n for (let cursor = index; cursor < queue.length; cursor += 1) {\n if (!isActive(entry)) return;\n const registration = queue[cursor] as TransitionRegistration<TProps, TElement>;\n const root = ownerRoot ?? registration.el;\n const resolved = resolveElement?.({\n name: hook.name,\n data,\n root,\n registrationEl: registration.el,\n });\n if (resolved === null) return;\n const el = resolved ?? registration.el;\n const send = machine.send.bind(machine) as TransitionSend;\n Object.entries(hook.sends ?? {}).forEach(([name, createEvent]) => {\n send[name] = (...args: unknown[]) => machine.send(createEvent(...args as never[]));\n });\n const transition = Object.freeze({\n el,\n root,\n from: closestStatePath(entry.from, entry.path),\n to: entry.path,\n event: Object.freeze({...entry.event}),\n props: cloneSerializable(entry.snapshot.props),\n data: cloneSerializable(data),\n send,\n signal,\n }) as TransitionContext<TProps, unknown, TElement>;\n const result = registration.callback(transition);\n if (isPromiseLike(result)) {\n return Promise.resolve(result).then(() => runQueue(entry, hook, data, queue, signal, cursor + 1));\n }\n }\n };\n\n const runEntry = (entry: MachineEntry<TContext, TProps>): void => {\n const groupedHooks = hooksByState.get(entry.path);\n if (!groupedHooks) return;\n const results: Array<void | Promise<void>> = [];\n const errors: unknown[] = [];\n const controller = new AbortController();\n const activeRun = {entry, controller};\n activeRuns.add(activeRun);\n\n groupedHooks.forEach((hook) => {\n const queue = [...registrations.get(hook.name) ?? []];\n if (queue.length === 0) {\n if (hook.required) errors.push(new Error(`Transition hook ${hook.name} requires a registered callback.`));\n return;\n }\n projections(hook, entry.snapshot).forEach((data) => {\n try {\n results.push(runQueue(entry, hook, data, queue, controller.signal));\n } catch (error) {\n errors.push(error);\n }\n });\n });\n\n const first = groupedHooks[0] as AnyTransitionHook<TContext, TProps>;\n const finish = (asyncErrors: unknown[] = []): void => {\n activeRuns.delete(activeRun);\n if (!isActive(entry)) return;\n const failure = [...errors, ...asyncErrors][0];\n if (failure !== undefined) {\n continuation(entry, first.onError, {error: failure});\n } else {\n continuation(entry, first.onDone);\n }\n };\n const pending = results.filter(isPromiseLike);\n if (pending.length === 0) {\n finish();\n return;\n }\n void Promise.allSettled(pending).then((settled) => finish(settled.flatMap((result) => (\n result.status === 'rejected' ? [result.reason] : []\n ))));\n };\n\n const unsubscribe = machine.subscribeEntries((entry) => {\n runEntry(entry);\n });\n const unsubscribeSnapshot = machine.subscribe(() => {\n activeRuns.forEach((run) => {\n if (isActive(run.entry)) return;\n run.controller.abort();\n activeRuns.delete(run);\n });\n });\n\n return {\n register<TData>({name, el, callback}: {\n name: string;\n el: TElement;\n callback: TransitionCallback<TProps, TData, TElement>;\n }): () => void {\n if (destroyed) throw new Error('Transition coordinator has been destroyed.');\n if (!hooksByName.has(name)) throw new Error(`Unknown transition hook: ${name}`);\n\n const registration: TransitionRegistration<TProps, TElement> = {\n name,\n el,\n callback: callback as TransitionCallback<TProps, unknown, TElement>,\n };\n const queue = registrations.get(name) ?? [];\n queue.push(registration);\n registrations.set(name, queue);\n\n return () => {\n const current = registrations.get(name);\n if (!current) return;\n const index = current.indexOf(registration);\n if (index >= 0) current.splice(index, 1);\n if (current.length === 0) registrations.delete(name);\n };\n },\n destroy(): void {\n if (destroyed) return;\n destroyed = true;\n unsubscribe();\n unsubscribeSnapshot();\n activeRuns.forEach((run) => run.controller.abort());\n activeRuns.clear();\n registrations.clear();\n },\n };\n};\n\nexport {createTransitionCoordinator, defineHook};\nexport type {\n AnyTransitionHook,\n TransitionCallback,\n TransitionContext,\n TransitionCoordinator,\n TransitionCoordinatorOptions,\n TransitionEventCreator,\n TransitionSend,\n TransitionElementResolver,\n TransitionHookDefinition,\n};\n","import type Alpine from 'alpinejs';\n\nimport {\n decodeProps,\n dataAttributeForSchemaProp,\n type CodecFn,\n type PropChange,\n type SchemaToProps,\n} from './codecs';\nimport {\n createTransitionCoordinator,\n type AnyTransitionHook,\n type TransitionCallback,\n type TransitionCoordinator,\n} from './transition-coordinator';\nimport type {Machine, MachineEvent, MachineSnapshot} from './state-machine';\nimport {isSerializableEqual} from '../utils';\n\ntype MachineElement = HTMLElement & Alpine.ElementWithXAttributes;\ntype MachineSchema = Record<string, CodecFn<unknown>>;\ntype MachineProps<TSchema extends MachineSchema> = SchemaToProps<TSchema>;\ntype TransitionHookLike = {\n name: string;\n state: string;\n project?: (...args: never[]) => unknown;\n projectEach?: (...args: never[]) => readonly unknown[];\n onDone: string;\n onError: string;\n};\ntype HookName<THooks extends readonly {name: string}[]> = THooks[number]['name'];\ntype HookData<THook> = THook extends {project: (...args: never[]) => infer TData}\n ? TData\n : THook extends {projectEach: (...args: never[]) => readonly (infer TData)[]}\n ? TData\n : never;\ntype HookForName<THooks, TName> = Extract<THooks extends readonly unknown[] ? THooks[number] : never, {name: TName}>;\n\ntype AlpinePropsChangedEvent<TSchema extends MachineSchema> = {\n type: 'PROPS_CHANGED';\n props: MachineProps<TSchema>;\n changes: Array<PropChange<TSchema>>;\n};\n\ntype MachineFactoryScope<TSchema extends MachineSchema> = {\n el: MachineElement;\n props: MachineProps<TSchema>;\n};\n\ntype CreateAlpineMachineOptions<\n TContext,\n TSchema extends MachineSchema,\n THooks extends readonly TransitionHookLike[],\n> = {\n schema: TSchema;\n hooks: THooks;\n createMachine(scope: MachineFactoryScope<TSchema>): Machine<TContext, MachineProps<TSchema>>;\n resolveTransitionElement?(scope: Readonly<{\n name: string;\n data: unknown;\n root: MachineElement;\n registrationEl: MachineElement;\n }>): MachineElement | null | undefined;\n};\n\ntype AlpineMachineOwner<TProps = unknown> = {\n invalidateDom(): void;\n onTransition<TData>(\n name: string,\n callback: TransitionCallback<TProps, TData, MachineElement>,\n el?: MachineElement,\n ): () => void;\n};\n\ntype AlpineMachine<\n TContext,\n TProps,\n THooks extends readonly TransitionHookLike[],\n> = AlpineMachineOwner<TProps> & {\n snapshot: {current: MachineSnapshot<TContext, TProps> | null};\n connect(\n el: MachineElement,\n snapshot?: {current: MachineSnapshot<TContext, TProps> | null},\n ): void;\n disconnect(): void;\n getSnapshot(): MachineSnapshot<TContext, TProps>;\n getCommittedSnapshot(): MachineSnapshot<TContext, TProps>;\n send(event: MachineEvent): void;\n matches(state: string): boolean;\n hasTag(tag: string): boolean;\n onTransition<\n TName extends HookName<THooks>,\n TData = HookData<HookForName<THooks, TName>>,\n >(\n name: TName,\n callback: TransitionCallback<TProps, TData, MachineElement>,\n el?: MachineElement,\n ): () => void;\n};\n\ntype PendingTransition<TProps> = {\n name: string;\n callback: TransitionCallback<TProps, unknown, MachineElement>;\n el?: MachineElement;\n unregister?: () => void;\n active: boolean;\n};\n\nconst owners = new WeakMap<Element, AlpineMachineOwner>();\n\nconst findAlpineMachineOwner = (\n AlpineInstance: Alpine.Alpine,\n el: Element,\n): AlpineMachineOwner | undefined => {\n const owner = AlpineInstance.findClosest(el, (candidate) => owners.has(candidate));\n return owner ? owners.get(owner) : undefined;\n};\n\nconst createAlpineMachine = <\n TContext,\n TSchema extends MachineSchema,\n const THooks extends readonly TransitionHookLike[],\n>({\n schema,\n hooks,\n createMachine: machineFactory,\n resolveTransitionElement,\n}: CreateAlpineMachineOptions<TContext, TSchema, THooks>): AlpineMachine<TContext, MachineProps<TSchema>, THooks> => {\n type TProps = MachineProps<TSchema>;\n\n const snapshot: {current: MachineSnapshot<TContext, TProps> | null} = {current: null};\n let snapshotMirror = snapshot;\n const pending: PendingTransition<TProps>[] = [];\n let root: MachineElement | null = null;\n let machine: Machine<TContext, TProps> | null = null;\n let coordinator: TransitionCoordinator<TProps, MachineElement> | null = null;\n let observer: MutationObserver | null = null;\n let unsubscribeSnapshot: (() => void) | null = null;\n let destroyed = false;\n\n const requireMachine = (): Machine<TContext, TProps> => {\n if (!machine) throw new Error('Alpine machine has not been initialized.');\n return machine;\n };\n\n const registerPending = (registration: PendingTransition<TProps>): void => {\n if (!coordinator || !root || !registration.active) return;\n registration.unregister = coordinator.register({\n name: registration.name,\n el: registration.el ?? root,\n callback: registration.callback,\n });\n };\n\n const component: AlpineMachine<TContext, TProps, THooks> = {\n snapshot,\n invalidateDom(): void {\n if (destroyed || !machine) return;\n machine.send('DOM_INVALIDATED');\n },\n connect(el, reactiveSnapshot = snapshot): void {\n if (destroyed) throw new Error('Alpine machine has been destroyed.');\n if (machine) return;\n\n root = el;\n snapshotMirror = reactiveSnapshot;\n let props = decodeProps({el: root, schema});\n const createdMachine = machineFactory({el: root, props});\n let createdCoordinator: TransitionCoordinator<TProps, MachineElement>;\n try {\n createdCoordinator = createTransitionCoordinator<TContext, TProps, MachineElement>({\n machine: createdMachine,\n hooks: hooks as unknown as readonly AnyTransitionHook<TContext, TProps>[],\n root,\n ...(resolveTransitionElement ? {resolveElement: resolveTransitionElement} : {}),\n });\n } catch (error) {\n createdMachine.stop();\n root = null;\n throw error;\n }\n machine = createdMachine;\n coordinator = createdCoordinator;\n snapshotMirror.current = machine.getSnapshot();\n unsubscribeSnapshot = machine.subscribe((nextSnapshot) => {\n snapshotMirror.current = nextSnapshot;\n });\n owners.set(root, component);\n pending.forEach(registerPending);\n\n const authoritativePropByAttribute = new Map(Object.entries(schema).flatMap(([key, codec]) => codec.meta.attribute ? [[\n dataAttributeForSchemaProp(key, codec),\n key as keyof TProps & string,\n ] as const] : []));\n observer = new MutationObserver((mutations) => {\n if (!root || !machine) return;\n const touched = new Set(mutations.flatMap(({attributeName}) => {\n const key = attributeName ? authoritativePropByAttribute.get(attributeName) : undefined;\n return key ? [key] : [];\n }));\n const nextProps = decodeProps({el: root, schema});\n const changes = Object.keys(nextProps).flatMap((key) => {\n const typedKey = key as keyof TProps & string;\n if (!touched.has(typedKey) && isSerializableEqual(props[typedKey], nextProps[typedKey])) return [];\n return [{\n key: typedKey,\n previous: props[typedKey],\n value: nextProps[typedKey],\n source: 'attribute' as const,\n } as PropChange<TSchema>];\n });\n if (changes.length === 0) return;\n props = nextProps;\n machine.send({type: 'PROPS_CHANGED', props: nextProps, changes});\n });\n observer.observe(root, {\n attributes: true,\n attributeFilter: Object.entries(schema).map(([key, codec]) => dataAttributeForSchemaProp(key, codec)),\n });\n },\n disconnect(): void {\n if (destroyed) return;\n destroyed = true;\n observer?.disconnect();\n observer = null;\n unsubscribeSnapshot?.();\n unsubscribeSnapshot = null;\n coordinator?.destroy();\n coordinator = null;\n machine?.stop();\n machine = null;\n if (root) owners.delete(root);\n root = null;\n pending.splice(0).forEach((registration) => registration.unregister?.());\n snapshotMirror.current = null;\n snapshotMirror = snapshot;\n },\n getSnapshot(): MachineSnapshot<TContext, TProps> {\n const current = snapshotMirror.current;\n if (!current) throw new Error('Alpine machine has not been initialized.');\n return current;\n },\n getCommittedSnapshot(): MachineSnapshot<TContext, TProps> {\n return requireMachine().getSnapshot();\n },\n send(event): void {\n requireMachine().send(event);\n },\n matches(state): boolean {\n return requireMachine().matches(state);\n },\n hasTag(tag): boolean {\n return requireMachine().hasTag(tag);\n },\n onTransition<TData>(\n name: HookName<THooks>,\n callback: TransitionCallback<TProps, TData, MachineElement>,\n el?: MachineElement,\n ): () => void {\n if (destroyed) throw new Error('Alpine machine has been destroyed.');\n const registration: PendingTransition<TProps> = {\n name,\n callback: callback as TransitionCallback<TProps, unknown, MachineElement>,\n active: true,\n };\n if (el) registration.el = el;\n pending.push(registration);\n registerPending(registration);\n\n return () => {\n if (!registration.active) return;\n registration.active = false;\n registration.unregister?.();\n delete registration.unregister;\n const index = pending.indexOf(registration);\n if (index >= 0) pending.splice(index, 1);\n };\n },\n };\n\n return component;\n};\n\nexport {createAlpineMachine, findAlpineMachineOwner};\nexport type {\n AlpineMachine,\n AlpineMachineOwner,\n AlpinePropsChangedEvent,\n CreateAlpineMachineOptions,\n MachineFactoryScope,\n};\n","type MachineEventObject = {\n type: string;\n [key: string]: unknown;\n};\n\ntype MachineEvent = string | MachineEventObject;\ntype MachineStateValue = string | readonly string[];\n\ntype MachineSnapshot<TContext, TProps> = Readonly<{\n value: MachineStateValue;\n tags: readonly string[];\n context: Readonly<TContext>;\n props: Readonly<TProps>;\n generations: Readonly<Record<string, number>>;\n}>;\n\ntype MachineEntry<TContext, TProps> = Readonly<{\n path: string;\n generation: number;\n from: MachineStateValue;\n to: MachineStateValue;\n event: MachineEventObject;\n snapshot: MachineSnapshot<TContext, TProps>;\n}>;\n\ntype MachineScope<TContext, TProps> = {\n snapshot: MachineSnapshot<TContext, TProps>;\n context: Readonly<TContext>;\n props: Readonly<TProps>;\n event: MachineEventObject;\n state: MachineStateValue;\n};\n\ntype MachineGuard<TContext = unknown, TProps = Record<string, never>> = (\n scope: MachineScope<TContext, TProps>,\n) => boolean;\n\ntype MachineUpdate<TContext, TProps> = {\n context?: Partial<TContext>;\n props?: Partial<TProps>;\n};\n\ntype MachineReducer<TContext = unknown, TProps = Record<string, never>> = (\n scope: MachineScope<TContext, TProps>,\n) => MachineUpdate<TContext, TProps> | void;\n\ntype MachineEffect<TContext = unknown, TProps = Record<string, never>> = (\n scope: MachineScope<TContext, TProps>,\n) => void | (() => void);\n\ntype MachineReducerRef<TContext, TProps> = string | MachineReducer<TContext, TProps>;\ntype MachineEffectRef<TContext, TProps> = string | MachineEffect<TContext, TProps>;\ntype MachineReducerList<TContext, TProps> = MachineReducerRef<TContext, TProps> | MachineReducerRef<TContext, TProps>[];\ntype MachineEffectList<TContext, TProps> = MachineEffectRef<TContext, TProps> | MachineEffectRef<TContext, TProps>[];\n\ntype MachineTransitionDefinition<TContext, TProps> = {\n target?: string;\n guard?: string | MachineGuard<TContext, TProps>;\n reduce?: MachineReducerList<TContext, TProps>;\n effects?: MachineEffectList<TContext, TProps>;\n};\n\ntype MachineTransition<TContext, TProps = Record<string, never>> = string | MachineTransitionDefinition<TContext, TProps>;\n\ntype MachineStateConfig<TContext, TProps = Record<string, never>> = {\n id?: string;\n type?: 'compound' | 'parallel' | 'final';\n initial?: string;\n tags?: string[];\n reduce?: MachineReducerList<TContext, TProps>;\n entry?: MachineEffectList<TContext, TProps>;\n exit?: MachineEffectList<TContext, TProps>;\n on?: Record<string, MachineTransition<TContext, TProps> | Array<MachineTransition<TContext, TProps>>>;\n states?: Record<string, MachineStateConfig<TContext, TProps>>;\n};\n\ntype MachineConfig<TContext, TProps = Record<string, never>> = MachineStateConfig<TContext, TProps> & {\n initial?: string;\n states: Record<string, MachineStateConfig<TContext, TProps>>;\n};\n\ntype MachineOptions<TContext, TProps = Record<string, never>> = {\n context: TContext;\n props?: TProps;\n reducers?: Record<string, MachineReducer<TContext, TProps>>;\n guards?: Record<string, MachineGuard<TContext, TProps>>;\n effects?: Record<string, MachineEffect<TContext, TProps>>;\n};\n\ntype Machine<TContext, TProps = Record<string, never>> = {\n readonly state: MachineStateValue;\n readonly context: Readonly<TContext>;\n readonly props: Readonly<TProps>;\n getSnapshot(): MachineSnapshot<TContext, TProps>;\n send(event: MachineEvent): void;\n subscribe(listener: (snapshot: MachineSnapshot<TContext, TProps>) => void): () => void;\n subscribeEntries(listener: (entry: MachineEntry<TContext, TProps>) => void): () => void;\n matches(state: string): boolean;\n hasTag(tag: string): boolean;\n stop(): void;\n};\n\ntype RuntimeNode<TContext, TProps> = {\n key: string;\n path: string;\n order: number;\n id?: string;\n parent?: string;\n type: 'compound' | 'parallel' | 'final';\n initial?: string;\n children: string[];\n tags: string[];\n reduce: MachineReducerRef<TContext, TProps>[];\n entry: MachineEffectRef<TContext, TProps>[];\n exit: MachineEffectRef<TContext, TProps>[];\n on: Record<string, MachineTransition<TContext, TProps> | Array<MachineTransition<TContext, TProps>>>;\n};\n\ntype SelectedTransition<TContext, TProps> = {\n source: RuntimeNode<TContext, TProps>;\n definition: MachineTransitionDefinition<TContext, TProps>;\n};\n\nconst ROOT_PATH = '$';\nconst INIT_EVENT: MachineEventObject = {type: '@@init'};\n\nconst toEventObject = (event: MachineEvent): MachineEventObject => (\n typeof event === 'string' ? {type: event} : event\n);\n\nconst toArray = <T>(value: T | T[] | undefined): T[] => {\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n};\n\nconst asDefinition = <TContext, TProps>(\n transition: MachineTransition<TContext, TProps>,\n): MachineTransitionDefinition<TContext, TProps> => (\n typeof transition === 'string' ? {target: transition} : transition\n);\n\nconst isDescendant = (path: string, ancestor: string): boolean => (\n ancestor === ROOT_PATH || path === ancestor || path.startsWith(`${ancestor}.`)\n);\n\nconst createMachine = <TContext, TProps = Record<string, never>>(\n config: MachineConfig<TContext, TProps>,\n options: MachineOptions<TContext, TProps>,\n): Machine<TContext, TProps> => {\n const nodes = new Map<string, RuntimeNode<TContext, TProps>>();\n const ids = new Map<string, string>();\n const listeners = new Set<(snapshot: MachineSnapshot<TContext, TProps>) => void>();\n const entryListeners = new Set<(entry: MachineEntry<TContext, TProps>) => void>();\n const generationCounters = new Map<string, number>();\n const activeGenerations = new Map<string, number>();\n const cleanups = new Map<string, Array<() => void>>();\n const queue: MachineEventObject[] = [];\n let processing = false;\n let stopped = false;\n let order = 0;\n\n const visit = (\n states: Record<string, MachineStateConfig<TContext, TProps>>,\n parent: string,\n ): string[] => Object.entries(states).map(([key, stateConfig]) => {\n const path = parent === ROOT_PATH ? key : `${parent}.${key}`;\n const children = stateConfig.states ? visit(stateConfig.states, path) : [];\n const type = stateConfig.type ?? (children.length > 0 ? 'compound' : 'final');\n const node: RuntimeNode<TContext, TProps> = {\n key,\n path,\n order: order++,\n type,\n children,\n tags: stateConfig.tags ?? [],\n reduce: toArray(stateConfig.reduce),\n entry: toArray(stateConfig.entry),\n exit: toArray(stateConfig.exit),\n on: stateConfig.on ?? {},\n };\n if (stateConfig.id) node.id = stateConfig.id;\n if (parent !== ROOT_PATH) node.parent = parent;\n if (stateConfig.initial) node.initial = stateConfig.initial;\n nodes.set(path, node);\n if (node.id) ids.set(node.id, path);\n return path;\n });\n\n const rootChildren = visit(config.states, ROOT_PATH);\n const root: RuntimeNode<TContext, TProps> = {\n key: ROOT_PATH,\n path: ROOT_PATH,\n order: -1,\n type: config.type ?? 'compound',\n children: rootChildren,\n tags: config.tags ?? [],\n reduce: toArray(config.reduce),\n entry: toArray(config.entry),\n exit: toArray(config.exit),\n on: config.on ?? {},\n };\n if (config.id) root.id = config.id;\n if (config.initial) root.initial = config.initial;\n nodes.set(ROOT_PATH, root);\n if (root.id) ids.set(root.id, ROOT_PATH);\n\n const nodeFor = (path: string): RuntimeNode<TContext, TProps> => {\n const node = nodes.get(path);\n if (!node) throw new Error(`Unknown machine state: ${path}`);\n return node;\n };\n\n const ancestry = (path: string): RuntimeNode<TContext, TProps>[] => {\n const result: RuntimeNode<TContext, TProps>[] = [];\n let cursor: string | undefined = path;\n while (cursor) {\n const node = nodeFor(cursor);\n result.push(node);\n cursor = node.parent ?? (cursor === ROOT_PATH ? undefined : ROOT_PATH);\n }\n return result;\n };\n\n const activeNodesFor = (leaves: readonly string[]): RuntimeNode<TContext, TProps>[] => {\n const paths = new Set<string>();\n leaves.forEach((leaf) => ancestry(leaf).forEach((node) => paths.add(node.path)));\n return Array.from(paths).map(nodeFor).sort((left, right) => left.order - right.order);\n };\n\n const resolveInitialLeaves = (path: string): string[] => {\n const node = nodeFor(path);\n if (node.children.length === 0 || node.type === 'final') return path === ROOT_PATH ? [] : [path];\n if (node.type === 'parallel') return node.children.flatMap(resolveInitialLeaves);\n\n if (!node.initial) throw new Error(`Machine state requires an initial child: ${path}`);\n const explicitPath = path === ROOT_PATH ? node.initial : `${path}.${node.initial}`;\n const initialPath = nodes.has(explicitPath) ? explicitPath : node.initial;\n return resolveInitialLeaves(initialPath);\n };\n\n const resolveTargetPath = (target: string, source: RuntimeNode<TContext, TProps>): string => {\n if (target.startsWith('#')) {\n const byId = ids.get(target.slice(1));\n if (!byId) throw new Error(`Unknown machine state id: ${target}`);\n return byId;\n }\n if (target === ROOT_PATH || nodes.has(target)) return target;\n if (source.parent) {\n const sibling = `${source.parent}.${target}`;\n if (nodes.has(sibling)) return sibling;\n }\n if (nodes.has(target)) return target;\n throw new Error(`Unknown machine state: ${target}`);\n };\n\n const stateValueFor = (leaves: readonly string[]): MachineStateValue => (\n leaves.length === 1 ? leaves[0] as string : Object.freeze([...leaves])\n );\n\n const tagsFor = (leaves: readonly string[]): readonly string[] => Object.freeze(Array.from(new Set(\n activeNodesFor(leaves).flatMap((node) => node.tags),\n )));\n\n const generationsFor = (): Readonly<Record<string, number>> => Object.freeze(Object.fromEntries(activeGenerations));\n\n let activeLeaves = resolveInitialLeaves(ROOT_PATH);\n let snapshot: MachineSnapshot<TContext, TProps> = Object.freeze({\n value: stateValueFor(activeLeaves),\n tags: tagsFor(activeLeaves),\n context: Object.freeze({...options.context}) as Readonly<TContext>,\n props: Object.freeze({...options.props ?? {}}) as Readonly<TProps>,\n generations: Object.freeze({}),\n });\n\n const makeScope = (\n event: MachineEventObject,\n currentSnapshot: MachineSnapshot<TContext, TProps> = snapshot,\n ): MachineScope<TContext, TProps> => ({\n snapshot: currentSnapshot,\n context: currentSnapshot.context,\n props: currentSnapshot.props,\n event,\n state: currentSnapshot.value,\n });\n\n const cleanupKey = (path: string): string => `${path}:${activeGenerations.get(path) ?? 0}`;\n\n const rememberCleanup = (path: string, cleanup: void | (() => void)): void => {\n if (typeof cleanup !== 'function') return;\n const key = cleanupKey(path);\n const stack = cleanups.get(key) ?? [];\n stack.push(cleanup);\n cleanups.set(key, stack);\n };\n\n const runCleanups = (path: string): void => {\n const key = cleanupKey(path);\n const stack = cleanups.get(key);\n if (!stack) return;\n stack.splice(0).reverse().forEach((cleanup) => cleanup());\n cleanups.delete(key);\n };\n\n const effectFor = (ref: MachineEffectRef<TContext, TProps>): MachineEffect<TContext, TProps> | undefined => (\n typeof ref === 'function' ? ref : options.effects?.[ref]\n );\n\n const runEffects = (\n refs: MachineEffectRef<TContext, TProps>[],\n event: MachineEventObject,\n path: string,\n remember = true,\n ): void => {\n refs.forEach((ref) => {\n const effect = effectFor(ref);\n if (!effect) throw new Error(`Unknown machine effect: ${String(ref)}`);\n const cleanup = effect(makeScope(event));\n if (remember) rememberCleanup(path, cleanup);\n });\n };\n\n const reducerFor = (ref: MachineReducerRef<TContext, TProps>): MachineReducer<TContext, TProps> | undefined => (\n typeof ref === 'function' ? ref : options.reducers?.[ref]\n );\n\n const applyReducers = (\n refs: MachineReducerRef<TContext, TProps>[],\n event: MachineEventObject,\n base: MachineSnapshot<TContext, TProps>,\n ): Pick<MachineSnapshot<TContext, TProps>, 'context' | 'props'> => {\n const contextUpdates: Partial<TContext> = {};\n const propUpdates: Partial<TProps> = {};\n const contextKeys = new Set<PropertyKey>();\n const propKeys = new Set<PropertyKey>();\n\n refs.forEach((ref) => {\n const reducer = reducerFor(ref);\n if (!reducer) throw new Error(`Unknown machine reducer: ${String(ref)}`);\n const update = reducer(makeScope(event, base));\n if (!update) return;\n\n Reflect.ownKeys(update.context ?? {}).forEach((key) => {\n if (contextKeys.has(key)) throw new Error(`Conflicting machine context update: ${String(key)}`);\n contextKeys.add(key);\n Reflect.set(contextUpdates as object, key, Reflect.get(update.context as object, key));\n });\n Reflect.ownKeys(update.props ?? {}).forEach((key) => {\n if (propKeys.has(key)) throw new Error(`Conflicting machine prop update: ${String(key)}`);\n propKeys.add(key);\n Reflect.set(propUpdates as object, key, Reflect.get(update.props as object, key));\n });\n });\n\n return {\n context: Object.freeze({...base.context, ...contextUpdates}) as Readonly<TContext>,\n props: Object.freeze({...base.props, ...propUpdates}) as Readonly<TProps>,\n };\n };\n\n const guardAllows = (\n guard: MachineTransitionDefinition<TContext, TProps>['guard'],\n event: MachineEventObject,\n base: MachineSnapshot<TContext, TProps>,\n ): boolean => {\n if (!guard) return true;\n const resolved = typeof guard === 'function' ? guard : options.guards?.[guard];\n if (!resolved) throw new Error(`Unknown machine guard: ${String(guard)}`);\n return resolved(makeScope(event, base));\n };\n\n const selectTransitions = (\n event: MachineEventObject,\n base: MachineSnapshot<TContext, TProps>,\n ): SelectedTransition<TContext, TProps>[] => {\n const selectedBySource = new Map<string, SelectedTransition<TContext, TProps>>();\n\n activeLeaves.forEach((leaf) => {\n for (const source of ancestry(leaf)) {\n const candidate = toArray(source.on[event.type])\n .map(asDefinition<TContext, TProps>)\n .find((definition) => guardAllows(definition.guard, event, base));\n if (candidate) selectedBySource.set(source.path, {source, definition: candidate});\n }\n });\n\n const selected = Array.from(selectedBySource.values());\n return selected.filter((candidate) => !selected.some((other) => (\n other !== candidate && isDescendant(candidate.source.path, other.source.path)\n ))).sort((left, right) => left.source.order - right.source.order);\n };\n\n const commonAncestor = (left: string, right: string): string => {\n const rightPaths = new Set(ancestry(right).map((node) => node.path));\n return ancestry(left).find((node) => rightPaths.has(node.path))?.path ?? ROOT_PATH;\n };\n\n const transitionBoundary = (source: string, target: string): string => {\n const lca = commonAncestor(source, target);\n if (source === target || lca === source) return source;\n const sourceAncestry = ancestry(source);\n const lcaIndex = sourceAncestry.findIndex((node) => node.path === lca);\n return sourceAncestry[Math.max(0, lcaIndex - 1)]?.path ?? source;\n };\n\n const nextLeavesFor = (selected: SelectedTransition<TContext, TProps>[]): string[] => {\n let next = [...activeLeaves];\n selected.forEach(({source, definition}) => {\n if (!definition.target) return;\n const targetPath = resolveTargetPath(definition.target, source);\n const boundary = transitionBoundary(source.path, targetPath);\n next = next.filter((leaf) => !isDescendant(leaf, boundary));\n next.push(...resolveInitialLeaves(targetPath));\n });\n return Array.from(new Set(next)).sort((left, right) => nodeFor(left).order - nodeFor(right).order);\n };\n\n const processEvent = (event: MachineEventObject): void => {\n if (\n typeof event.__state === 'string'\n && typeof event.__generation === 'number'\n && activeGenerations.get(event.__state) !== event.__generation\n ) return;\n\n const previous = snapshot;\n const selected = selectTransitions(event, previous);\n if (selected.length === 0) return;\n\n const nextLeaves = nextLeavesFor(selected);\n const previousNodes = activeNodesFor(activeLeaves);\n const nextNodes = activeNodesFor(nextLeaves);\n const previousPaths = new Set(previousNodes.map((node) => node.path));\n const nextPaths = new Set(nextNodes.map((node) => node.path));\n const reentryPaths = selected.flatMap(({source, definition}) => {\n if (!definition.target) return [];\n const target = resolveTargetPath(definition.target, source);\n return target === source.path ? previousNodes.filter((node) => isDescendant(node.path, source.path)).map((node) => node.path) : [];\n });\n const forcedReentry = new Set(reentryPaths);\n const exitNodes = previousNodes\n .filter((node) => !nextPaths.has(node.path) || forcedReentry.has(node.path))\n .sort((left, right) => right.path.split('.').length - left.path.split('.').length || right.order - left.order);\n const entryNodes = nextNodes\n .filter((node) => !previousPaths.has(node.path) || forcedReentry.has(node.path))\n .sort((left, right) => left.path.split('.').length - right.path.split('.').length || left.order - right.order);\n\n exitNodes.forEach((node) => {\n runCleanups(node.path);\n runEffects(node.exit, event, node.path, false);\n activeGenerations.delete(node.path);\n });\n\n const reducerRefs = [\n ...selected.flatMap(({definition}) => toArray(definition.reduce)),\n ...entryNodes.flatMap((node) => node.reduce),\n ];\n const reduced = applyReducers(reducerRefs, event, previous);\n\n entryNodes.forEach((node) => {\n const generation = (generationCounters.get(node.path) ?? 0) + 1;\n generationCounters.set(node.path, generation);\n activeGenerations.set(node.path, generation);\n });\n\n activeLeaves = nextLeaves;\n snapshot = Object.freeze({\n value: stateValueFor(activeLeaves),\n tags: tagsFor(activeLeaves),\n context: reduced.context,\n props: reduced.props,\n generations: generationsFor(),\n });\n\n selected.forEach(({source, definition}) => runEffects(\n toArray(definition.effects),\n event,\n source.path,\n ));\n entryNodes.forEach((node) => runEffects(node.entry, event, node.path));\n listeners.forEach((listener) => listener(snapshot));\n entryNodes.forEach((node) => {\n const generation = activeGenerations.get(node.path);\n if (generation === undefined) return;\n const entry: MachineEntry<TContext, TProps> = Object.freeze({\n path: node.path,\n generation,\n from: previous.value,\n to: snapshot.value,\n event,\n snapshot,\n });\n entryListeners.forEach((listener) => listener(entry));\n });\n };\n\n const machine: Machine<TContext, TProps> = {\n get state() {\n return snapshot.value;\n },\n get context() {\n return snapshot.context;\n },\n get props() {\n return snapshot.props;\n },\n getSnapshot() {\n return snapshot;\n },\n send(event) {\n if (stopped) return;\n queue.push(toEventObject(event));\n if (processing) return;\n\n processing = true;\n try {\n while (queue.length > 0 && !stopped) processEvent(queue.shift() as MachineEventObject);\n } finally {\n processing = false;\n }\n },\n subscribe(listener) {\n if (stopped) return () => {};\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n subscribeEntries(listener) {\n if (stopped) return () => {};\n entryListeners.add(listener);\n return () => entryListeners.delete(listener);\n },\n matches(state) {\n return activeLeaves.some((leaf) => leaf === state || leaf.split('.').at(-1) === state || isDescendant(leaf, state));\n },\n hasTag(tag) {\n return snapshot.tags.includes(tag);\n },\n stop() {\n if (stopped) return;\n activeNodesFor(activeLeaves)\n .sort((left, right) => right.path.split('.').length - left.path.split('.').length || right.order - left.order)\n .forEach((node) => runCleanups(node.path));\n listeners.clear();\n entryListeners.clear();\n queue.splice(0);\n activeGenerations.clear();\n stopped = true;\n },\n };\n\n activeNodesFor(activeLeaves).forEach((node) => {\n const generation = (generationCounters.get(node.path) ?? 0) + 1;\n generationCounters.set(node.path, generation);\n activeGenerations.set(node.path, generation);\n });\n const initialReducers = activeNodesFor(activeLeaves).flatMap((node) => node.reduce);\n const initialReduced = applyReducers(initialReducers, INIT_EVENT, snapshot);\n snapshot = Object.freeze({\n value: stateValueFor(activeLeaves),\n tags: tagsFor(activeLeaves),\n context: initialReduced.context,\n props: initialReduced.props,\n generations: generationsFor(),\n });\n activeNodesFor(activeLeaves).forEach((node) => runEffects(node.entry, INIT_EVENT, node.path));\n\n return machine;\n};\n\nexport {createMachine};\nexport type {\n Machine,\n MachineConfig,\n MachineEffect,\n MachineEffectList,\n MachineEffectRef,\n MachineEntry,\n MachineEvent,\n MachineEventObject,\n MachineGuard,\n MachineOptions,\n MachineReducer,\n MachineReducerList,\n MachineReducerRef,\n MachineScope,\n MachineSnapshot,\n MachineStateConfig,\n MachineStateValue,\n MachineTransition,\n MachineTransitionDefinition,\n MachineUpdate,\n};\n"],"mappings":"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"}