@vireo-ai/trellis-ui 0.1.61 → 0.1.62

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 (531) hide show
  1. package/THIRD_PARTY_NOTICES.md +9 -0
  2. package/package.json +14 -35
  3. package/packages/client/src/components/accordion/styles.css +21 -9
  4. package/packages/client/src/components/badge/styles.css +12 -0
  5. package/packages/client/src/components/button/styles.css +31 -5
  6. package/packages/client/src/components/card/styles.css +16 -0
  7. package/packages/client/src/components/checkbox/styles.css +29 -5
  8. package/packages/client/src/components/date-picker/styles.css +22 -17
  9. package/packages/client/src/components/field/styles.css +16 -16
  10. package/packages/client/src/components/input/styles.css +1 -0
  11. package/packages/client/src/components/keybinding/styles.css +9 -2
  12. package/packages/client/src/components/menu/styles.css +13 -0
  13. package/packages/client/src/components/panels/styles.css +12 -2
  14. package/packages/client/src/components/scroll-area/styles.css +169 -2
  15. package/packages/client/src/components/select/styles.css +28 -8
  16. package/packages/client/src/components/sidebar/styles.css +218 -0
  17. package/packages/client/src/components/slider/styles.css +57 -0
  18. package/packages/client/src/components/tabs/styles.css +26 -24
  19. package/packages/client/src/components/toast/styles.css +31 -0
  20. package/packages/client/src/directives/sortable.css +5 -0
  21. package/packages/client/src/runtime/drag-and-drop/resize-handle.css +2 -2
  22. package/packages/client/src/styles/components.css +8 -4
  23. package/packages/client/src/styles/fonts/fira-code/5.3.0/LICENSE +93 -0
  24. package/packages/client/src/styles/fonts/fira-code/5.3.0/download.json +47 -0
  25. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
  26. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
  27. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
  28. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
  29. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
  30. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
  31. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
  32. package/packages/client/src/styles/fonts/fira-code/5.3.0/font.css +62 -0
  33. package/packages/client/src/styles/fonts/fira-code/5.3.0/resource.json +82 -0
  34. package/packages/client/src/styles/fonts/inter/5.3.0/LICENSE +93 -0
  35. package/packages/client/src/styles/fonts/inter/5.3.0/download.json +47 -0
  36. package/packages/client/src/styles/fonts/inter/5.3.0/font.css +62 -0
  37. package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
  38. package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
  39. package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
  40. package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
  41. package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
  42. package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
  43. package/packages/client/src/styles/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
  44. package/packages/client/src/styles/fonts/inter/5.3.0/resource.json +82 -0
  45. package/packages/client/src/styles/generated/theme-fonts.css +3 -3
  46. package/packages/client/src/styles/generated/theme-palette.css +1001 -634
  47. package/packages/client/src/styles/generated/theme-runtime.css +905 -580
  48. package/packages/client/src/styles/generated-sources.css +1 -1
  49. package/packages/client/src/styles/layout.css +88 -0
  50. package/packages/client/src/styles/recipes/action.css +4 -16
  51. package/packages/client/src/styles/recipes/disabled.css +8 -0
  52. package/packages/client/src/styles/recipes/option.css +0 -44
  53. package/packages/client/src/styles/recipes/selection.css +28 -39
  54. package/packages/client/src/styles/theme-support.css +19 -42
  55. package/packages/client/src/styles/typography.css +26 -0
  56. package/packages/client/types/assets/bridge.d.ts +1 -2
  57. package/packages/client/types/capabilities/collection.d.ts +7 -0
  58. package/packages/client/types/capabilities/collection.entry.generated.d.ts +3 -0
  59. package/packages/client/types/capabilities/shortcut.d.ts +4 -3
  60. package/packages/client/types/components/accordion/machine.d.ts +4 -4
  61. package/packages/client/types/components/app/contract.d.ts +5 -5
  62. package/packages/client/types/components/badge/contract.d.ts +1 -0
  63. package/packages/client/types/components/box/contract.d.ts +17 -12
  64. package/packages/client/types/components/box/index.d.ts +1 -1
  65. package/packages/client/types/components/button/contract.d.ts +3 -2
  66. package/packages/client/types/components/card/contract.d.ts +27 -16
  67. package/packages/client/types/components/checkbox/contract.d.ts +13 -13
  68. package/packages/client/types/components/common.d.ts +13 -11
  69. package/packages/client/types/components/container/contract.d.ts +4 -3
  70. package/packages/client/types/components/data-grid/contract.d.ts +3 -2
  71. package/packages/client/types/components/date-picker/contract.d.ts +2 -2
  72. package/packages/client/types/components/date-picker/machine.d.ts +11 -11
  73. package/packages/client/types/components/dropdown/contract.d.ts +1 -1
  74. package/packages/client/types/components/dropdown/machine.d.ts +5 -3
  75. package/packages/client/types/components/field/contract.d.ts +4 -4
  76. package/packages/client/types/components/file-upload/contract.d.ts +3 -3
  77. package/packages/client/types/components/file-upload/machine.d.ts +4 -4
  78. package/packages/client/types/components/flex/contract.d.ts +10 -8
  79. package/packages/client/types/components/frame/contract.d.ts +14 -11
  80. package/packages/client/types/components/grid/contract.d.ts +8 -7
  81. package/packages/client/types/components/image/contract.d.ts +1 -0
  82. package/packages/client/types/components/input/contract.d.ts +1 -0
  83. package/packages/client/types/components/input/machine.d.ts +2 -2
  84. package/packages/client/types/components/layout.d.ts +91 -35
  85. package/packages/client/types/components/menu/contract.d.ts +27 -10
  86. package/packages/client/types/components/modal/contract.d.ts +22 -5
  87. package/packages/client/types/components/panels/contract.d.ts +2 -2
  88. package/packages/client/types/components/panels/index.d.ts +2 -1
  89. package/packages/client/types/components/panels/machine.d.ts +9 -8
  90. package/packages/client/types/components/radio/contract.d.ts +8 -8
  91. package/packages/client/types/components/scroll-area/contract.d.ts +1 -20
  92. package/packages/client/types/components/section/contract.d.ts +4 -3
  93. package/packages/client/types/components/select/contract.d.ts +3 -3
  94. package/packages/client/types/components/select/machine.d.ts +13 -13
  95. package/packages/client/types/components/select/presentation.d.ts +1 -0
  96. package/packages/client/types/components/sidebar/contract.d.ts +26 -8
  97. package/packages/client/types/components/sidebar/groups.d.ts +4 -0
  98. package/packages/client/types/components/sidebar/index.d.ts +5 -4
  99. package/packages/client/types/components/slider/contract.d.ts +1 -0
  100. package/packages/client/types/components/slider/machine.d.ts +10 -5
  101. package/packages/client/types/components/stack/contract.d.ts +10 -8
  102. package/packages/client/types/components/switch/contract.d.ts +8 -8
  103. package/packages/client/types/components/table/contract.d.ts +6 -5
  104. package/packages/client/types/components/tabs/index.d.ts +2 -1
  105. package/packages/client/types/components/tabs/machine.d.ts +2 -2
  106. package/packages/client/types/components/textarea/contract.d.ts +1 -1
  107. package/packages/client/types/components/toast/machine.d.ts +2 -2
  108. package/packages/client/types/components/tooltip/contract.d.ts +13 -13
  109. package/packages/client/types/components/tooltip/machine.d.ts +3 -7
  110. package/packages/client/types/core.d.ts +2 -0
  111. package/packages/client/types/directives/anchor.d.ts +1 -0
  112. package/packages/client/types/directives/animate.d.ts +3 -0
  113. package/packages/client/types/directives/collection.d.ts +9 -0
  114. package/packages/client/types/directives/index.d.ts +2 -2
  115. package/packages/client/types/docs/transition-docs.d.ts +0 -2
  116. package/packages/client/types/motion/animate.d.ts +7 -2
  117. package/packages/client/types/motion/config.d.ts +118 -0
  118. package/packages/client/types/motion/feedback.d.ts +3 -0
  119. package/packages/client/types/motion/index.d.ts +8 -107
  120. package/packages/client/types/motion/layout.d.ts +25 -0
  121. package/packages/client/types/motion/lifecycle.d.ts +10 -0
  122. package/packages/client/types/motion/owned.d.ts +15 -4
  123. package/packages/client/types/motion/properties.d.ts +17 -0
  124. package/packages/client/types/motion/recipe.d.ts +8 -75
  125. package/packages/client/types/motion/reduced-motion.d.ts +7 -8
  126. package/packages/client/types/motion/registry.d.ts +37 -0
  127. package/packages/client/types/motion/resize-preview.d.ts +26 -0
  128. package/packages/client/types/motion/resize.d.ts +3 -1
  129. package/packages/client/types/motion/size.d.ts +7 -4
  130. package/packages/client/types/runtime/anchored-popover.d.ts +11 -2
  131. package/packages/client/types/runtime/collection-navigation.d.ts +12 -4
  132. package/packages/client/types/runtime/control-size.d.ts +4 -0
  133. package/packages/client/types/runtime/drag-and-drop/index.d.ts +10 -3
  134. package/packages/client/types/runtime/drag-and-drop/sortable/ghost.d.ts +2 -1
  135. package/packages/client/types/runtime/engine/fragment.d.ts +2 -1
  136. package/packages/client/types/runtime/engine/stream.d.ts +5 -9
  137. package/packages/client/types/runtime/focus.d.ts +3 -1
  138. package/packages/client/types/runtime/index.d.ts +1 -1
  139. package/packages/client/types/runtime/layout-participant.d.ts +10 -9
  140. package/packages/client/types/runtime/layout-task.d.ts +9 -0
  141. package/packages/client/types/runtime/morph-engine.d.ts +1 -0
  142. package/packages/client/types/runtime/option-data.d.ts +2 -1
  143. package/packages/client/types/runtime/preferences.d.ts +14 -0
  144. package/packages/client/types/runtime/scroll-area-schema.d.ts +23 -0
  145. package/packages/client/types/runtime/ui.d.ts +3 -5
  146. package/packages/client/types/runtime/virtualizer-schema.d.ts +3 -1
  147. package/packages/client/types/runtime/virtualizer-size.d.ts +7 -0
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js +2 -0
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js.map +1 -0
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge.js +1 -1
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +984 -1132
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js → anchor-DXCLxWw-.js} +2 -2
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js.map → anchor-DXCLxWw-.js.map} +1 -1
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor.js +2 -2
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js +2 -0
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js.map +1 -0
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection.js +2 -0
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-DlgeSL0c.js +2 -0
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{resizable-Ctqx_OoS.js.map → resizable-DlgeSL0c.js.map} +1 -1
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +2 -2
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-Qa2EByIB.js +2 -0
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{shortcut-D2NgvMgw.js.map → shortcut-Qa2EByIB.js.map} +1 -1
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +2 -2
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-CbIOS4Lm.js → sortable-Do3a0LA9.js} +2 -2
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-CbIOS4Lm.js.map → sortable-Do3a0LA9.js.map} +1 -1
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -2
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js +2 -0
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js.map +1 -0
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js +2 -0
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js.map +1 -0
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js +2 -0
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js.map +1 -0
  173. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bm1phXnj.js +5 -0
  174. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bm1phXnj.js.map +1 -0
  175. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js +2 -0
  176. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js.map +1 -0
  177. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js +2 -0
  178. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js.map +1 -0
  179. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js +2 -0
  180. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js.map +1 -0
  181. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js +2 -0
  182. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js.map +1 -0
  183. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js +2 -0
  184. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js.map +1 -0
  185. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js +2 -0
  186. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js.map +1 -0
  187. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-zFOeeob-.js +6 -0
  188. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{element-adapter-native-data-key-DrqJDAVH.js.map → element-adapter-native-data-key-zFOeeob-.js.map} +1 -1
  189. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js +2 -0
  190. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js.map +1 -0
  191. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js +2 -0
  192. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js.map +1 -0
  193. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js → focus-BvBkrIcj.js} +2 -2
  194. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js.map → focus-BvBkrIcj.js.map} +1 -1
  195. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DYfME-Rk.js +2 -0
  196. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-scope-BrYxsrhc.js.map → focus-scope-DYfME-Rk.js.map} +1 -1
  197. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js +2 -0
  198. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js.map +1 -0
  199. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js +2 -0
  200. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js.map +1 -0
  201. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js +2 -0
  202. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js.map +1 -0
  203. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js +2 -0
  204. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js.map +1 -0
  205. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js +2 -0
  206. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js.map +1 -0
  207. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js +2 -0
  208. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js.map +1 -0
  209. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js +2 -0
  210. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js.map +1 -0
  211. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js +2 -0
  212. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js.map +1 -0
  213. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js +2 -0
  214. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js.map +1 -0
  215. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js +2 -0
  216. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js.map +1 -0
  217. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preload-helper-BZ1Pz5am.js +1 -0
  218. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js +2 -0
  219. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js.map +1 -0
  220. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js +2 -0
  221. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js.map +1 -0
  222. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js +2 -0
  223. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js.map +1 -0
  224. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js +2 -0
  225. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js.map +1 -0
  226. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js +2 -0
  227. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js.map +1 -0
  228. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CQDZhwd_.js → styles-BvLCjUXV.js} +2 -2
  229. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-BvLCjUXV.js.map +1 -0
  230. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CZ7fEQL2.js +4 -0
  231. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CZ7fEQL2.js.map +1 -0
  232. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js +2 -0
  233. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js.map +1 -0
  234. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js +2 -0
  235. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js.map +1 -0
  236. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +2 -2
  237. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js +2 -0
  238. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js.map +1 -0
  239. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button.js +2 -2
  240. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js +2 -0
  241. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js.map +1 -0
  242. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +2 -2
  243. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Dm3rQfQ_.js +2 -0
  244. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Dm3rQfQ_.js.map +1 -0
  245. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +2 -2
  246. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js +2 -0
  247. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js.map +1 -0
  248. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +2 -2
  249. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js +2 -0
  250. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js.map +1 -0
  251. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +2 -2
  252. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js +2 -0
  253. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js.map +1 -0
  254. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +2 -2
  255. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js +2 -0
  256. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js.map +1 -0
  257. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +2 -2
  258. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js +2 -0
  259. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js.map +1 -0
  260. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +2 -2
  261. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js +2 -0
  262. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js.map +1 -0
  263. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +2 -2
  264. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js +2 -0
  265. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js.map +1 -0
  266. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +2 -2
  267. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js +2 -0
  268. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js.map +1 -0
  269. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +2 -2
  270. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js +2 -0
  271. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js.map +1 -0
  272. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +2 -2
  273. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js +2 -0
  274. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js.map +1 -0
  275. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +2 -2
  276. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js +2 -0
  277. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js.map +1 -0
  278. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +2 -2
  279. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js +2 -0
  280. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js.map +1 -0
  281. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +2 -2
  282. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js +2 -0
  283. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js.map +1 -0
  284. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +2 -2
  285. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js +2 -0
  286. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js.map +1 -0
  287. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +2 -2
  288. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js +2 -0
  289. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js.map +1 -0
  290. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +2 -2
  291. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js +2 -0
  292. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js.map +1 -0
  293. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +2 -2
  294. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js +2 -0
  295. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js.map +1 -0
  296. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +2 -2
  297. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js +2 -0
  298. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js.map +1 -0
  299. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +2 -2
  300. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js +2 -0
  301. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js.map +1 -0
  302. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +2 -2
  303. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js +2 -0
  304. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js.map +1 -0
  305. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +2 -2
  306. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js +2 -0
  307. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js.map +1 -0
  308. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +2 -2
  309. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js +2 -0
  310. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js.map +1 -0
  311. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +2 -2
  312. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CX4J7tsN.js +2 -0
  313. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CX4J7tsN.js.map +1 -0
  314. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +2 -2
  315. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +297 -441
  316. package/packages/theme-engine/README.md +70 -18
  317. package/packages/theme-engine/THEME_AUTHORING.md +34 -0
  318. package/packages/theme-engine/dist/trellis.js +544 -279
  319. package/packages/theme-engine/fonts/fira-code/5.3.0/LICENSE +93 -0
  320. package/packages/theme-engine/fonts/fira-code/5.3.0/download.json +47 -0
  321. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
  322. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
  323. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
  324. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
  325. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
  326. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
  327. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
  328. package/packages/theme-engine/fonts/fira-code/5.3.0/font.css +62 -0
  329. package/packages/theme-engine/fonts/fira-code/5.3.0/resource.json +82 -0
  330. package/packages/theme-engine/fonts/inter/5.3.0/LICENSE +93 -0
  331. package/packages/theme-engine/fonts/inter/5.3.0/download.json +47 -0
  332. package/packages/theme-engine/fonts/inter/5.3.0/font.css +62 -0
  333. package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
  334. package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
  335. package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
  336. package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
  337. package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
  338. package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
  339. package/packages/theme-engine/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
  340. package/packages/theme-engine/fonts/inter/5.3.0/resource.json +82 -0
  341. package/packages/theme-engine/generated/knobs/v1/color-alpha.json +1 -1
  342. package/packages/theme-engine/generated/knobs/v1/color-foundations.json +1 -1
  343. package/packages/theme-engine/generated/knobs/v1/color-ink.json +1 -1
  344. package/packages/theme-engine/generated/knobs/v1/color-lighting.json +1 -1
  345. package/packages/theme-engine/generated/knobs/v1/color-normalization.json +1 -1
  346. package/packages/theme-engine/generated/knobs/v1/color-ramps.json +1 -1
  347. package/packages/theme-engine/generated/knobs/v1/composition.json +1 -1
  348. package/packages/theme-engine/generated/knobs/v1/depth.json +1 -1
  349. package/packages/theme-engine/generated/knobs/v1/edges.json +1 -1
  350. package/packages/theme-engine/generated/knobs/v1/index.json +398 -85
  351. package/packages/theme-engine/generated/knobs/v1/manifest.json +16 -52
  352. package/packages/theme-engine/generated/knobs/v1/radii.json +50 -1
  353. package/packages/theme-engine/generated/knobs/v1/semantic-actions.json +1 -1
  354. package/packages/theme-engine/generated/knobs/v1/semantic-disabled.json +1 -1
  355. package/packages/theme-engine/generated/knobs/v1/semantic-disclosure.json +1 -1
  356. package/packages/theme-engine/generated/knobs/v1/semantic-intents.json +856 -37
  357. package/packages/theme-engine/generated/knobs/v1/semantic-scrim.json +1 -1
  358. package/packages/theme-engine/generated/knobs/v1/semantic-selection.json +1 -1
  359. package/packages/theme-engine/generated/knobs/v1/semantic-structure.json +1 -1
  360. package/packages/theme-engine/generated/knobs/v1/sizing-anatomy.json +4 -4
  361. package/packages/theme-engine/generated/knobs/v1/sizing-controls.json +1 -1
  362. package/packages/theme-engine/generated/knobs/v1/sizing-measures.json +1 -1
  363. package/packages/theme-engine/generated/knobs/v1/spacing.json +2 -2
  364. package/packages/theme-engine/generated/knobs/v1/substrates.json +1 -1
  365. package/packages/theme-engine/generated/knobs/v1/surfaces.json +1 -1
  366. package/packages/theme-engine/generated/knobs/v1/typography-anatomy.json +1 -1
  367. package/packages/theme-engine/generated/knobs/v1/typography-fonts.json +158 -40
  368. package/packages/theme-engine/generated/knobs/v1/typography-scale.json +1 -1
  369. package/packages/theme-engine/generated/schemas/theme-config-v1.json +57 -36
  370. package/packages/theme-engine/generated/schemas/theme-manifest-v1.json +10 -37
  371. package/packages/theme-engine/skills/create-trellis-theme/SKILL.md +4 -5
  372. package/packages/client/src/components/app/styles.css +0 -1
  373. package/packages/client/src/components/brand/styles.css +0 -8
  374. package/packages/client/src/styles/motion.css +0 -26
  375. package/packages/client/src/styles/static.css +0 -3
  376. package/packages/client/types/assets/full-runtime.generated.d.ts +0 -2
  377. package/packages/client/types/capabilities/motion.d.ts +0 -6
  378. package/packages/client/types/capabilities/motion.entry.generated.d.ts +0 -3
  379. package/packages/client/types/cdn.d.ts +0 -2
  380. package/packages/client/types/components/entry.generated.d.ts +0 -37
  381. package/packages/client/types/directives/bounds.d.ts +0 -4
  382. package/packages/client/types/directives/layout.d.ts +0 -3
  383. package/packages/client/types/index.d.ts +0 -8
  384. package/packages/client/types/motion/bounds.d.ts +0 -20
  385. package/packages/client/types/motion/controller.d.ts +0 -33
  386. package/packages/client/types/motion/flip.d.ts +0 -14
  387. package/packages/client/types/motion/plan.d.ts +0 -52
  388. package/packages/client/types/motion/stream.d.ts +0 -18
  389. package/packages/client/types/motion/targets.d.ts +0 -23
  390. package/packages/client/types/motion/view.d.ts +0 -27
  391. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis-103fb43eb5e1.css +0 -14030
  392. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +0 -14030
  393. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-584dec82495c.css +0 -2
  394. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +0 -2
  395. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-COxhbtRZ.js +0 -1
  396. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js +0 -2
  397. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js.map +0 -1
  398. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +0 -2
  399. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-Ctqx_OoS.js +0 -2
  400. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-D2NgvMgw.js +0 -2
  401. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js +0 -2
  402. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js.map +0 -1
  403. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js +0 -2
  404. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js.map +0 -1
  405. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js +0 -2
  406. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js.map +0 -1
  407. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js +0 -2
  408. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js.map +0 -1
  409. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js +0 -2
  410. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js.map +0 -1
  411. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js +0 -2
  412. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js.map +0 -1
  413. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js +0 -5
  414. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js.map +0 -1
  415. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js +0 -2
  416. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js.map +0 -1
  417. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js +0 -2
  418. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js.map +0 -1
  419. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js +0 -2
  420. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js.map +0 -1
  421. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js +0 -2
  422. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js.map +0 -1
  423. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js +0 -2
  424. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js.map +0 -1
  425. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js +0 -2
  426. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js.map +0 -1
  427. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js +0 -6
  428. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js +0 -2
  429. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js.map +0 -1
  430. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js +0 -2
  431. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js.map +0 -1
  432. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js +0 -2
  433. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js.map +0 -1
  434. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js +0 -2
  435. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js.map +0 -1
  436. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js +0 -2
  437. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js.map +0 -1
  438. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js +0 -2
  439. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +0 -1
  440. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js +0 -2
  441. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js.map +0 -1
  442. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js +0 -2
  443. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js.map +0 -1
  444. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js +0 -2
  445. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js.map +0 -1
  446. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js +0 -2
  447. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js.map +0 -1
  448. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js +0 -2
  449. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js.map +0 -1
  450. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js +0 -2
  451. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js.map +0 -1
  452. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js +0 -2
  453. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js.map +0 -1
  454. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js +0 -2
  455. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js.map +0 -1
  456. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js +0 -2
  457. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +0 -1
  458. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js +0 -2
  459. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js.map +0 -1
  460. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js +0 -2
  461. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js.map +0 -1
  462. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js +0 -2
  463. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js.map +0 -1
  464. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js +0 -2
  465. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js.map +0 -1
  466. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js +0 -2
  467. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js.map +0 -1
  468. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js +0 -2
  469. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js.map +0 -1
  470. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js +0 -2
  471. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js.map +0 -1
  472. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js +0 -2
  473. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js.map +0 -1
  474. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js +0 -2
  475. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js.map +0 -1
  476. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js +0 -2
  477. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js.map +0 -1
  478. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js +0 -2
  479. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js.map +0 -1
  480. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js +0 -2
  481. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js.map +0 -1
  482. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-BrYxsrhc.js +0 -2
  483. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js +0 -2
  484. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js.map +0 -1
  485. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js +0 -2
  486. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js.map +0 -1
  487. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js +0 -3
  488. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js.map +0 -1
  489. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js +0 -2
  490. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js.map +0 -1
  491. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CQDZhwd_.js.map +0 -1
  492. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js +0 -4
  493. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js.map +0 -1
  494. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DpoqsP_I.js +0 -1
  495. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-Dnf0aKac.js +0 -1
  496. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-BpFFtrfY.js +0 -1
  497. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-CCPYnOuT.js +0 -1
  498. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-BCkP5gtC.js +0 -1
  499. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-DaT6-YFL.js +0 -1
  500. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-Cc84envj.js +0 -1
  501. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-CtQbyblj.js +0 -1
  502. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DARtpJDT.js +0 -1
  503. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-CPO4XZkB.js +0 -1
  504. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-C-3lKsKm.js +0 -1
  505. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js +0 -2
  506. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js.map +0 -1
  507. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +0 -2
  508. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-BKEbDkKa.js +0 -1
  509. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-RIi2q1IT.js +0 -1
  510. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-MUHGUsup.js +0 -1
  511. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-DNAroAhk.js +0 -1
  512. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-DrGFMWGq.js +0 -1
  513. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-CyUCAbgG.js +0 -1
  514. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-BjLF548F.js +0 -1
  515. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-GpvEBW3K.js +0 -1
  516. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-OztnTlqr.js +0 -1
  517. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CZ7aiASg.js +0 -1
  518. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-G3G5d2Eo.js +0 -1
  519. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-bq7j1uwx.js +0 -1
  520. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DkP0-rBO.js +0 -1
  521. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-OITEWczP.js +0 -1
  522. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-CkRX2qVO.js +0 -1
  523. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-Z4zMCScs.js +0 -1
  524. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js +0 -2
  525. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js.map +0 -1
  526. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +0 -2
  527. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-ecb43dfd3b7b.js +0 -11
  528. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +0 -11
  529. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-ecb43dfd3b7b.js +0 -11
  530. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +0 -11
  531. package/packages/theme-engine/generated/knobs/v1/motion.json +0 -128
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-Ck_ZV7RN.js","names":[],"sources":["../../../../../../../../client/src/components/tooltip/contract.ts","../../../../../../../../client/src/components/tooltip/machine.ts","../../../../../../../../client/src/components/tooltip/styles.ts","../../../../../../../../client/src/components/tooltip/index.ts","../../../../../../../../client/src/components/tooltip/entry.generated.ts"],"sourcesContent":["import {attribute, bool, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n ALIGNMENTS,\n ELEVATION_REFERENCES,\n POSITIONS,\n SURFACE_REFERENCES,\n type Alignment,\n type ElevationReference,\n type Position,\n type SurfaceReference,\n} from '../common';\n\nconst TOOLTIP_COLORS = ['neutral', 'accent', 'success', 'warning', 'danger'] as const;\nconst TOOLTIP_VARIANTS = ['surface', 'soft', 'solid'] as const;\n\nconst tooltipSchema = {\n side: oneOf(POSITIONS, 'bottom' as Position),\n align: oneOf(ALIGNMENTS, 'center' as Alignment),\n offset: number.clamp(-100, 100).default(0),\n gap: number.clamp(0, 50).default(8),\n openDelay: number.clamp(0, 5000).default(200),\n closeDelay: number.clamp(0, 5000).default(150),\n color: oneOf(TOOLTIP_COLORS, 'neutral'),\n variant: oneOf(TOOLTIP_VARIANTS, 'surface'),\n surface: oneOf(SURFACE_REFERENCES, '2' as SurfaceReference),\n elevation: oneOf(ELEVATION_REFERENCES, '4' as ElevationReference),\n disabled: bool,\n class: string,\n};\n\nconst tooltipDirectiveSchema = {\n side: attribute(tooltipSchema.side, 'ui-tooltip-side'),\n align: attribute(tooltipSchema.align, 'ui-tooltip-align'),\n offset: attribute(tooltipSchema.offset, 'ui-tooltip-offset'),\n gap: attribute(tooltipSchema.gap, 'ui-tooltip-gap'),\n openDelay: attribute(tooltipSchema.openDelay, 'ui-tooltip-open-delay'),\n closeDelay: attribute(tooltipSchema.closeDelay, 'ui-tooltip-close-delay'),\n color: attribute(tooltipSchema.color, 'ui-tooltip-color'),\n variant: attribute(tooltipSchema.variant, 'ui-tooltip-variant'),\n surface: attribute(tooltipSchema.surface, 'ui-tooltip-surface'),\n elevation: attribute(tooltipSchema.elevation, 'ui-tooltip-elevation'),\n disabled: attribute(tooltipSchema.disabled, 'ui-tooltip-disabled'),\n};\n\ntype TooltipProps = SchemaToProps<typeof tooltipSchema>;\ntype TooltipDirectiveProps = SchemaToProps<typeof tooltipDirectiveSchema>;\ntype TooltipColor = typeof TOOLTIP_COLORS[number];\ntype TooltipVariant = typeof TOOLTIP_VARIANTS[number];\n\nexport {\n TOOLTIP_COLORS,\n TOOLTIP_VARIANTS,\n tooltipDirectiveSchema,\n tooltipSchema,\n};\nexport type {TooltipColor, TooltipDirectiveProps, TooltipProps, TooltipVariant};\n","import {createMachine, type Machine, type MachineEventObject, type MachineSnapshot} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {TooltipProps} from './contract';\n\ntype TooltipReason = 'pointer' | 'focus' | 'escape' | 'activation' | 'scroll' | 'blur' | 'disabled' | 'replacement';\ntype TooltipContext = {transition: {reason: TooltipReason; instant: boolean}};\ntype TooltipTransitionData = {reason: TooltipReason; instant: boolean};\ntype TooltipMachineEffects = {\n prepareOpen(): void;\n finishOpen(): void;\n prepareClose(): void;\n finishClose(): void;\n syncProps(): void;\n};\n\nconst transitionData = ({context}: MachineSnapshot<TooltipContext, TooltipProps>): TooltipTransitionData => context.transition;\nconst openingHook = defineHook({\n name: 'opening', state: 'opening', project: transitionData, onDone: 'OPENING_DONE', onError: 'OPENING_ERROR',\n} satisfies TransitionHookDefinition<TooltipContext, TooltipProps, TooltipTransitionData, 'opening'>);\nconst closingHook = defineHook({\n name: 'closing', state: 'closing', project: transitionData, onDone: 'CLOSING_DONE', onError: 'CLOSING_ERROR',\n} satisfies TransitionHookDefinition<TooltipContext, TooltipProps, TooltipTransitionData, 'closing'>);\nconst tooltipHooks = [openingHook, closingHook] as const;\n\nconst reasonFrom = (event: MachineEventObject): TooltipReason => {\n const reason = event.reason;\n return reason === 'focus' || reason === 'escape' || reason === 'activation' || reason === 'scroll'\n || reason === 'blur' || reason === 'disabled' || reason === 'replacement' ? reason : 'pointer';\n};\n\nconst createTooltipMachine = (\n props: TooltipProps,\n effects: TooltipMachineEffects,\n): Machine<TooltipContext, TooltipProps> => createMachine<TooltipContext, TooltipProps>({\n initial: 'closed',\n states: {\n closed: {tags: ['closed'], on: {\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'transition', effects: 'prepareOpen'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n }},\n opening: {tags: ['visible', 'expanded', 'transitioning'], on: {\n OPENING_DONE: {target: 'open', effects: 'finishOpen'},\n OPENING_ERROR: {target: 'open', effects: 'finishOpen'},\n CLOSE: {target: 'closing', reduce: 'transition', effects: 'prepareClose'},\n PROPS_CHANGED: [\n {target: 'closing', guard: 'becomesDisabled', reduce: 'replacePropsDisabled', effects: ['syncProps', 'prepareClose']},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n }},\n open: {tags: ['visible', 'expanded', 'open'], on: {\n CLOSE: {target: 'closing', reduce: 'transition', effects: 'prepareClose'},\n PROPS_CHANGED: [\n {target: 'closing', guard: 'becomesDisabled', reduce: 'replacePropsDisabled', effects: ['syncProps', 'prepareClose']},\n {reduce: 'replaceProps', effects: 'syncProps'},\n ],\n }},\n closing: {tags: ['visible', 'transitioning'], on: {\n CLOSING_DONE: {target: 'closed', effects: 'finishClose'},\n CLOSING_ERROR: {target: 'closed', effects: 'finishClose'},\n OPEN: {target: 'opening', guard: 'canOpen', reduce: 'transition', effects: 'prepareOpen'},\n PROPS_CHANGED: {reduce: 'replaceProps', effects: 'syncProps'},\n }},\n },\n}, {\n context: {transition: {reason: 'pointer', instant: false}},\n props,\n reducers: {\n transition: ({context, props: currentProps, event}) => ({\n context: {transition: {reason: reasonFrom(event), instant: event.instant === true}},\n props: currentProps,\n }),\n replaceProps: ({context, props: currentProps, event}) => ({\n context,\n props: (event.props as TooltipProps | undefined) ?? currentProps,\n }),\n replacePropsDisabled: ({context, props: currentProps, event}) => ({\n context: {transition: {reason: 'disabled', instant: true}},\n props: (event.props as TooltipProps | undefined) ?? currentProps,\n }),\n },\n guards: {\n canOpen: ({props: currentProps}) => !currentProps.disabled,\n becomesDisabled: ({event}) => (event.props as TooltipProps | undefined)?.disabled === true,\n },\n effects,\n});\n\nexport {createTooltipMachine, tooltipHooks};\nexport type {TooltipContext, TooltipMachineEffects, TooltipReason, TooltipTransitionData};\n","import {defineStyles} from '../../runtime';\nimport {POPOVER_GEOMETRY_CLASSES} from '../common';\n\nconst tooltipStyles = defineStyles({definition: {\n component: 'ui.tooltip',\n parts: {\n root: {base: 'contents'},\n content: {\n base: [\n POPOVER_GEOMETRY_CLASSES,\n 'pointer-events-auto flex min-w-0 min-h-control-md max-w-72 items-center gap-2 rounded-overlay-sm px-2 py-1 wrap-anywhere [&>*]:min-w-0',\n 'font-body text-1 [font-weight:var(--font-weight-normal)]',\n 'data-[state=closed]:pointer-events-none data-[state=closed]:opacity-0',\n ],\n variants: {\n color: {neutral: '', accent: '', success: '', warning: '', danger: ''},\n variant: {surface: '', soft: '', solid: ''},\n },\n defaults: {color: 'neutral', variant: 'surface'},\n },\n shortcut: {base: 'ml-1 inline-flex items-center gap-1 text-[var(--ui-semantic-surface-ink-muted)]'},\n },\n}});\n\nexport {tooltipStyles};\n\nexport const styles = [tooltipStyles] as const;\n","import type Alpine from 'alpinejs';\nimport {anchoredEntrance, anchoredExit} from '@client/motion/recipe';\nimport {animateProperties} from '@client/motion/properties';\n\nimport {\n createAlpineMachine,\n defineAlpineData,\n type SchemaToProps,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {createAnchoredPopoverSurface, createPopoverVisibility, type AnchoredPopoverSurface} from '@client/runtime/anchored-popover';\nimport {CleanupManager} from '@client/runtime/cleanup-manager';\nimport type {CodecFn} from '@client/runtime/codecs';\nimport {registerDomInvalidationOwner} from '@client/runtime/dom-invalidation';\nimport {isFocusIndicatorSuppressed} from '@client/runtime/focus';\nimport {mergeBindings, type BindingObject} from '@client/runtime/merge-bindings';\nimport {declareMorphAttributes} from '@client/runtime/morph';\nimport {observeSemanticChanges} from '@client/runtime/semantic-observer';\nimport {resolveStyle} from '@client/runtime/styles';\nimport {addListener, dispatch} from '@client/utils';\nimport {createKeybindingController} from '../keybinding/controller';\nimport {keybindingStyles} from '../keybinding/styles';\nimport {\n tooltipDirectiveSchema,\n type TooltipDirectiveProps,\n type TooltipProps,\n tooltipSchema,\n} from './contract';\nimport {\n createTooltipMachine,\n tooltipHooks,\n type TooltipContext,\n type TooltipReason,\n} from './machine';\nimport {tooltipStyles} from './styles';\n\ntype TooltipTransitionName = (typeof tooltipHooks)[number]['name'];\ntype TooltipTransition<TName extends TooltipTransitionName = TooltipTransitionName> = TransitionForHook<\n Extract<(typeof tooltipHooks)[number], {name: TName}>,\n HTMLElement\n>;\ntype PopoverElement = HTMLElement & {showPopover(): void; hidePopover(): void};\ntype TooltipSchema = Record<string, CodecFn<unknown>>;\ntype TooltipBridge = ReturnType<typeof createAlpineMachine<TooltipContext, typeof tooltipSchema, typeof tooltipHooks>>;\n\ntype TooltipController = {\n bridge: TooltipBridge;\n connect(snapshot?: {current: TooltipBridge['snapshot']['current']}): void;\n destroy(): void;\n sync(): void;\n close(reason: TooltipReason, instant?: boolean): void;\n};\n\ntype TooltipWarmStore = {active: TooltipController | null; warmUntil: number};\nconst warmStores = new WeakMap<Document, TooltipWarmStore>();\nconst warmStore = (document: Document): TooltipWarmStore => {\n let store = warmStores.get(document);\n if (!store) {\n store = {active: null, warmUntil: 0};\n warmStores.set(document, store);\n }\n return store;\n};\n\nconst appendDescription = (trigger: HTMLElement, id: string): void => {\n const tokens = new Set((trigger.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean));\n tokens.add(id);\n trigger.setAttribute('aria-describedby', [...tokens].join(' '));\n};\n\nconst removeDescription = (trigger: HTMLElement, id: string): void => {\n const tokens = (trigger.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter((token) => token && token !== id);\n if (tokens.length) trigger.setAttribute('aria-describedby', tokens.join(' '));\n else trigger.removeAttribute('aria-describedby');\n};\n\nconst createTooltipController = <TSchema extends TooltipSchema>({\n owner,\n trigger,\n content,\n schema,\n syncShortcut,\n}: {\n owner: () => HTMLElement & Alpine.ElementWithXAttributes;\n trigger: () => HTMLElement;\n content: () => PopoverElement;\n schema: TSchema;\n syncShortcut?: (value: string) => void;\n}): TooltipController => {\n const cleanup = new CleanupManager();\n let visibleCleanup: CleanupManager | null = null;\n let popover: AnchoredPopoverSurface | null = null;\n let openTimer: ReturnType<typeof setTimeout> | null = null;\n let closeTimer: ReturnType<typeof setTimeout> | null = null;\n let describedById = '';\n let pointerOnTrigger = false;\n let pointerOnContent = false;\n const visibility = createPopoverVisibility(() => content());\n\n const clearTimer = (timer: 'open' | 'close'): void => {\n const current = timer === 'open' ? openTimer : closeTimer;\n if (current !== null) clearTimeout(current);\n if (timer === 'open') openTimer = null;\n else closeTimer = null;\n };\n const props = (): Readonly<TooltipProps> => bridge.getSnapshot().props as TooltipProps;\n const visible = (): boolean => bridge.hasTag('visible');\n const releaseActive = (): void => {\n const store = warmStore(owner().ownerDocument);\n if (store.active !== controller) return;\n store.active = null;\n store.warmUntil = Date.now() + 300;\n };\n const syncSurface = (): void => {\n const value = props();\n const surface = content();\n surface.dataset.state = bridge.hasTag('expanded') ? 'open' : 'closed';\n surface.setAttribute('data-ui-semantic-surface', '');\n surface.dataset.color = value.color;\n surface.dataset.variant = value.variant;\n surface.dataset.uiSurface = value.surface;\n surface.dataset.uiElevation = value.elevation;\n surface.className = resolveStyle({\n part: tooltipStyles.parts.content,\n props: value,\n className: surface.dataset.class,\n });\n syncShortcut?.(trigger().dataset.uiTooltipShortcut ?? '');\n };\n const finishClose = (): void => {\n visibleCleanup?.run();\n visibleCleanup = null;\n popover?.close();\n visibility.reveal();\n content().hidden = true;\n syncSurface();\n dispatch({el: owner(), name: 'ui:close'});\n };\n const effects = {\n prepareOpen(): void {\n if (!visibleCleanup) {\n visibleCleanup = new CleanupManager();\n cleanup.addChild(visibleCleanup);\n addListener({target: owner().ownerDocument, event: 'keydown', cleanup: visibleCleanup, handler: (event) => {\n if (event instanceof KeyboardEvent && event.key === 'Escape') close('escape', true);\n }});\n addListener({target: owner().ownerDocument, event: 'scroll', options: {capture: true}, cleanup: visibleCleanup,\n handler: () => close('scroll', true)});\n }\n if (!popover?.opened()) visibility.defer();\n content().hidden = false;\n syncSurface();\n popover?.open();\n },\n finishOpen(): void {\n visibility.reveal();\n syncSurface();\n dispatch({el: owner(), name: 'ui:open'});\n },\n prepareClose(): void {\n releaseActive();\n syncSurface();\n },\n finishClose,\n syncProps(): void {\n syncSurface();\n popover?.sync();\n if (props().disabled && visible()) controller.close('disabled', true);\n },\n };\n const machineBridge = createAlpineMachine({\n schema,\n hooks: tooltipHooks,\n createMachine: ({props: machineProps}) => createTooltipMachine(machineProps as TooltipProps, effects) as never,\n });\n const bridge = machineBridge as unknown as TooltipBridge;\n\n const open = (reason: TooltipReason, instant = false): void => {\n clearTimer('open');\n clearTimer('close');\n if (props().disabled || bridge.hasTag('expanded')) return;\n const store = warmStore(owner().ownerDocument);\n const warm = store.active !== null || Date.now() < store.warmUntil;\n if (store.active && store.active !== controller) store.active.close('replacement', true);\n store.active = controller;\n bridge.send({type: 'OPEN', reason, instant: instant || warm});\n };\n const close = (reason: TooltipReason, instant = false): void => {\n clearTimer('open');\n clearTimer('close');\n if (!visible()) return;\n bridge.send({type: 'CLOSE', reason, instant});\n };\n const scheduleOpen = (): void => {\n clearTimer('close');\n if (bridge.hasTag('expanded') || props().disabled) return;\n const store = warmStore(owner().ownerDocument);\n const delay = store.active !== null || Date.now() < store.warmUntil ? 0 : props().openDelay;\n clearTimer('open');\n openTimer = setTimeout(() => open('pointer', delay === 0), delay);\n };\n const scheduleClose = (): void => {\n clearTimer('open');\n if (!visible()) return;\n clearTimer('close');\n closeTimer = setTimeout(() => close('pointer'), props().closeDelay);\n };\n\n const controller: TooltipController = {\n bridge,\n connect(snapshot): void {\n bridge.connect(owner(), snapshot);\n describedById = content().id || `ui-tooltip-${crypto.randomUUID()}`;\n content().id = describedById;\n content().setAttribute('role', 'tooltip');\n content().setAttribute('popover', 'manual');\n content().setAttribute('data-ui-tooltip-content', '');\n content().hidden = true;\n trigger().setAttribute('data-ui-tooltip-trigger', '');\n appendDescription(trigger(), describedById);\n declareMorphAttributes(\n trigger(),\n 'aria-describedby',\n 'data-ui-tooltip-trigger',\n );\n popover = createAnchoredPopoverSurface({\n reference: trigger,\n floating: content,\n position: () => props().side,\n align: () => props().align,\n gap: () => props().gap,\n offset: () => props().offset,\n });\n cleanup.add(bridge.onTransition('opening', (transition) => {\n const animate = (): unknown => {\n if (transition.signal.aborted) return;\n visibility.reveal();\n if (owner().hasAttribute('x-ui-transition:opening')) return;\n const surface = content();\n return animateProperties(transition, anchoredEntrance(surface), {target: surface, role: 'feedback', transition: transition.data.instant ? {duration: 0, type: 'tween'} : {}});\n };\n const positioned = popover?.positioned();\n return positioned ? positioned.then(animate) : animate();\n }));\n cleanup.add(bridge.onTransition('closing', (transition) => {\n if (owner().hasAttribute('x-ui-transition:closing')) return;\n return animateProperties(transition, anchoredExit, {target: content(), role: 'feedbackExit', transition: transition.data.instant ? {duration: 0, type: 'tween'} : {}});\n }));\n syncSurface();\n addListener({target: trigger(), event: 'pointerenter', cleanup, handler: () => {\n pointerOnTrigger = true;\n scheduleOpen();\n }});\n addListener({target: trigger(), event: 'pointermove', handler: scheduleOpen, cleanup});\n addListener({target: trigger(), event: 'pointerleave', cleanup, handler: () => {\n pointerOnTrigger = false;\n if (!pointerOnContent) scheduleClose();\n }});\n addListener({target: content(), event: 'pointerenter', cleanup, handler: () => {\n pointerOnContent = true;\n clearTimer('close');\n }});\n addListener({target: content(), event: 'pointerleave', cleanup, handler: () => {\n pointerOnContent = false;\n if (!pointerOnTrigger) scheduleClose();\n }});\n addListener({target: trigger(), event: 'focusin', cleanup, handler: () => {\n queueMicrotask(() => {\n const target = trigger();\n if (\n target.ownerDocument.activeElement === target\n && !isFocusIndicatorSuppressed(target)\n && target.matches(':focus-visible')\n ) open('focus', true);\n });\n }});\n addListener({target: trigger(), event: 'focusout', cleanup, handler: () => {\n if (!pointerOnTrigger && !pointerOnContent) close('blur', true);\n }});\n addListener({target: trigger(), event: 'pointerdown', handler: () => close('activation', true), cleanup});\n addListener({target: trigger(), event: 'click', handler: () => close('activation', true), cleanup});\n cleanup.add(observeSemanticChanges({\n targets: trigger(),\n read: () => trigger().dataset.uiTooltipShortcut ?? '',\n onChange: syncSurface,\n observer: {attributes: true, attributeFilter: ['data-ui-tooltip-shortcut']},\n }));\n },\n close,\n sync(): void {\n syncSurface();\n popover?.sync();\n },\n destroy(): void {\n clearTimer('open');\n clearTimer('close');\n cleanup.run();\n releaseActive();\n popover?.destroy();\n visibility.reveal();\n popover = null;\n removeDescription(trigger(), describedById);\n trigger().removeAttribute('data-ui-tooltip-trigger');\n bridge.disconnect();\n },\n };\n return controller;\n};\n\ntype TooltipData = TooltipBridge & {\n readonly root: BindingObject;\n readonly content: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst UiTooltip = (): TrellisAlpineComponent<TooltipData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let controller: TooltipController | null = null;\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Tooltip has not been initialized.');\n return rootEl;\n };\n const content = (): PopoverElement => {\n const el = root().querySelector<HTMLElement>(':scope > [data-ui-tooltip-content]');\n if (!(el instanceof HTMLElement)) throw new Error('Tooltip requires ui.tooltip.content.');\n return el as PopoverElement;\n };\n const trigger = (): HTMLElement => {\n const el = Array.from(root().children).find((child) => child instanceof HTMLElement && child !== content());\n if (!(el instanceof HTMLElement)) throw new Error('Tooltip requires an interactive trigger before its content.');\n return el;\n };\n const bridge = createAlpineMachine({\n schema: tooltipSchema,\n hooks: tooltipHooks,\n createMachine: ({props}) => createTooltipMachine(props, {\n prepareOpen() {}, finishOpen() {}, prepareClose() {}, finishClose() {}, syncProps() {},\n }),\n }) as TooltipBridge;\n const component: TrellisAlpineComponent<TooltipData> = {\n ...bridge,\n init(): void {\n rootEl = this.$el;\n controller = createTooltipController({owner: root, trigger, content, schema: tooltipSchema});\n controller.connect(this.snapshot);\n },\n destroy(): void {\n controller?.destroy();\n controller = null;\n rootEl = null;\n },\n get root(): BindingObject {\n return mergeBindings({inputs: [\n resolveStyle({part: tooltipStyles.parts.root, props: this.snapshot.current?.props ?? {}}),\n {'data-ui-tooltip-root': ''},\n ]});\n },\n get content(): BindingObject {\n return {'data-ui-tooltip-content': ''};\n },\n };\n return component;\n};\n\nconst registerTooltipDirective = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.directive('ui-tooltip', AlpineInstance.skipDuringClone((el, {expression}, utilities) => {\n if (!(el instanceof HTMLElement)) return;\n const content = el.ownerDocument.createElement('div') as PopoverElement;\n const label = el.ownerDocument.createElement('span');\n label.setAttribute('data-ui-tooltip-label', '');\n content.append(label);\n const shortcut = el.ownerDocument.createElement('span');\n shortcut.setAttribute('data-ui-keybinding', '');\n shortcut.dataset.variant = 'outline';\n shortcut.setAttribute('aria-hidden', 'true');\n shortcut.className = resolveStyle({\n part: keybindingStyles.parts.root,\n className: resolveStyle({part: tooltipStyles.parts.shortcut}),\n });\n content.append(shortcut);\n const keybinding = createKeybindingController(shortcut);\n el.insertAdjacentElement('afterend', content);\n const owner = () => el as HTMLElement & Alpine.ElementWithXAttributes;\n const controller = createTooltipController({\n owner,\n trigger: () => el,\n content: () => content,\n schema: tooltipDirectiveSchema,\n syncShortcut: (value) => keybinding.setValue(value),\n });\n controller.connect();\n const unregisterInvalidationOwner = registerDomInvalidationOwner(content, {\n invalidateDom(): void {\n if (!el.isConnected) return;\n if (content.previousElementSibling !== el) el.insertAdjacentElement('afterend', content);\n appendDescription(el, content.id);\n controller.sync();\n },\n });\n declareMorphAttributes(el, 'data-ui-tooltip-disabled', 'data-ui-tooltip-shortcut');\n const evaluator = utilities.evaluateLater(expression);\n utilities.effect(() => evaluator((value) => {\n const text = typeof value === 'string' ? value.trim() : '';\n label.textContent = text;\n el.toggleAttribute('data-ui-tooltip-disabled', !text);\n controller.sync();\n }));\n utilities.cleanup(() => {\n unregisterInvalidationOwner();\n controller.destroy();\n keybinding.destroy();\n content.remove();\n });\n })).before('ui-transition');\n};\n\nconst registerTooltip = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiTooltip', UiTooltip)(AlpineInstance);\n registerTooltipDirective(AlpineInstance);\n};\n\nexport {registerTooltip, registerTooltipDirective, UiTooltip};\nexport type {TooltipData, TooltipDirectiveProps, TooltipTransition};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerAnchorCapability} from '../../capabilities/anchor';\nimport {registerShortcutCapability} from '../../capabilities/shortcut';\nimport {registerTooltip as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerTooltip = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerAnchorCapability(AlpineInstance);\n registerShortcutCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerTooltip};\nexport default registerTooltip;\nexport * from './index';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from "./tooltip-OITEWczP.js";
2
- export {default} from "./tooltip-OITEWczP.js";
1
+ export * from "./tooltip-Ck_ZV7RN.js";
2
+ export {default} from "./tooltip-Ck_ZV7RN.js";
@@ -0,0 +1,2 @@
1
+ import{n as e}from"../chunks/alpine-data-Dvc_bXq6.js";import{n as t,t as n}from"../chunks/cursor-data-source-DdiMUeJM.js";var r=e=>{let r=null,i=t(e,{cursor:n(()=>{if(!r)throw Error(`Cursor Virtualizer is not mounted.`);return r})}),a=i.init;return i.init=function(){r=this.$el,a.call(this)},i},i=n=>{e(`UiVirtualizer`,()=>t(n))(n),e(`UiCursorVirtualizer`,()=>r(n))(n)},a=new WeakSet,o=e=>{a.has(e)||(a.add(e),i(e))};export{r as UiCursorVirtualizer,t as UiVirtualizer,o as default,o as registerVirtualizer};
2
+ //# sourceMappingURL=virtualizer-BfCjewp3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtualizer-BfCjewp3.js","names":[],"sources":["../../../../../../../../client/src/components/virtualizer/index.ts","../../../../../../../../client/src/components/virtualizer/entry.generated.ts"],"sourcesContent":["import type Alpine from 'alpinejs';\n\nimport {defineAlpineData, type TrellisAlpineComponent} from '@client/runtime';\nimport {UiVirtualizer} from '../../runtime/virtualizer';\nimport type {\n UiVirtualizerApi,\n VirtualizerData,\n} from '../../runtime/virtualizer';\nimport {serverCursorOptions, type ServerCursorResponse} from '../../runtime/cursor-data-source';\n\nconst UiCursorVirtualizer = (\n AlpineInstance: Alpine.Alpine,\n): TrellisAlpineComponent<VirtualizerData<null>> & UiVirtualizerApi<null> => {\n let root: HTMLElement | null = null;\n const component = UiVirtualizer<null, ServerCursorResponse>(AlpineInstance, {\n cursor: serverCursorOptions(() => {\n if (!root) throw new Error('Cursor Virtualizer is not mounted.');\n return root;\n }),\n });\n const init = component.init;\n component.init = function initCursorVirtualizer(): void {\n root = (this as typeof this & {$el: HTMLElement}).$el;\n init.call(this);\n };\n return component;\n};\n\nconst registerVirtualizer = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiVirtualizer', () => UiVirtualizer(AlpineInstance))(AlpineInstance);\n defineAlpineData('UiCursorVirtualizer', () => UiCursorVirtualizer(AlpineInstance))(AlpineInstance);\n};\n\nexport {registerVirtualizer, UiCursorVirtualizer, UiVirtualizer};\nexport type {\n CursorContinuation,\n CursorDataSource,\n CursorFirstArgs,\n CursorMoveArgs,\n CursorPage,\n CursorResponseAdapter,\n CursorRenderPayload,\n CursorSeekArgs,\n SoughtCursorPage,\n CursorVirtualizerOptions,\n ResetOptions,\n SetUrlOptions,\n UiVirtualizerApi,\n VirtualizerOptions,\n VirtualizerData,\n VirtualScrollAlign,\n} from '../../runtime/virtualizer';\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 {registerVirtualizer as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerVirtualizer = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerVirtualizer};\nexport default registerVirtualizer;\nexport * from './index';\n"],"mappings":"0HAUA,IAAM,EACF,GACyE,CACzE,IAAI,EAA2B,KACzB,EAAY,EAA0C,EAAgB,CACxE,OAAQ,MAA0B,CAC9B,GAAI,CAAC,EAAM,MAAU,MAAM,oCAAoC,EAC/D,OAAO,CACX,CAAC,CACL,CAAC,EACK,EAAO,EAAU,KAKvB,MAJA,GAAU,KAAO,UAAuC,CACpD,EAAQ,KAA0C,IAClD,EAAK,KAAK,IAAI,CAClB,EACO,CACX,EAEM,EAAuB,GAAwC,CACjE,EAAiB,oBAAuB,EAAc,CAAc,CAAC,CAAC,CAAC,CAAc,EACrF,EAAiB,0BAA6B,EAAoB,CAAc,CAAC,CAAC,CAAC,CAAc,CACrG,ECzBM,EAAa,IAAI,QAEjB,EAAuB,GAAqC,CAC1D,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAE7B,EAAkB,CAAc,EACpC"}
@@ -1,2 +1,2 @@
1
- export * from "./virtualizer-CkRX2qVO.js";
2
- export {default} from "./virtualizer-CkRX2qVO.js";
1
+ export * from "./virtualizer-BfCjewp3.js";
2
+ export {default} from "./virtualizer-BfCjewp3.js";
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./chunks/object-SRW-YaCA.js";import{t}from"./chunks/warn-BbGtqbh1.js";import{K as n,t as r}from"./chunks/properties-D8pFWF8g.js";import{c as i,l as a,o,s}from"./chunks/fragment-DVphuQVV.js";import{n as c}from"./chunks/dom-invalidation-Dw6clnS4.js";import{a as l,c as u,d,f,l as p,n as m,o as h,s as g}from"./chunks/codecs-CQ7olTJL.js";import{a as _,i as v,n as y,r as b,t as x}from"./chunks/machine-Do4tL7nc.js";import{a as S,c as C,i as w,l as T,o as E,r as ee,s as te,t as ne}from"./chunks/ui-CZ7fEQL2.js";import{t as re}from"./chunks/preferences-BZyZ-kK6.js";import{n as D}from"./chunks/alpine-data-Dvc_bXq6.js";import{n as ie,t as ae}from"./chunks/styles-CX2j92ex.js";import{t as oe}from"./chunks/merge-bindings-BtqW3UgP.js";var se=e=>{let t=typeof e==`number`?{value:e}:e;if(!t||typeof t!=`object`||typeof t.value!=`number`||!Number.isFinite(t.value))throw TypeError(`x-ui-animate:number requires a finite number or {value, format?, locales?}.`);return{value:t.value,formatter:new Intl.NumberFormat(t.locales,t.format??{maximumFractionDigits:0})}},ce=e=>{e.directive(`ui-animate`,e.skipDuringClone((e,{value:o,expression:l},u)=>{if(o&&o!==`number`&&o!==`paused`){t(`Unknown x-ui-animate binding: ${o}`,e);return}let d=u.evaluateLater(l),f=new AbortController,p=!1,m=``,h,g,_,v,y,b,x=c=>{if(!f.signal.aborted)try{if(o===`paused`){s(e,!!c);return}if(o===`number`){let t=se(c);_=t.formatter,h||(h=n(t.value),b=h.on(`change`,t=>{e.textContent=_.format(t)})),e.textContent=_.format(h.get()),p&&t.value!==g&&(v?.stop(),y?.dispose(),y=i(e,a(e),f.signal,`presence`),v=y.animate(h,t.value)),g=t.value,p=!0;return}if(!c||typeof c!=`object`||Array.isArray(c))throw TypeError(`x-ui-animate requires a Motion keyframes object.`);let t=Object.fromEntries(Object.entries(c).map(([e,t])=>[e,Array.isArray(t)?[...t]:t])),l=JSON.stringify(t);if(p&&l===m)return;v=r(e,t,{signal:f.signal,transition:p?a(e)??{}:{duration:0}}),m=l,p=!0}catch(n){t(n instanceof Error?n.message:String(n),e)}},S=()=>{d(x)};u.effect(S);let C=c(e,{invalidateDom:S});u.cleanup(()=>{C(),f.abort(),v?.stop(),y?.dispose(),b?.(),h?.destroy(),o===`paused`&&s(e,!1)})}))},O=`[x-ui-request], [x-ui-request\\.navigate]`,k=new Set([`data`,`extra`,`headers`,`history`,`method`]),A=[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`],j=new WeakSet,M=(n,{expression:r},i)=>{if(!r?.trim())return{};let a=i.Alpine.evaluate(n,r);return e(a)?(Object.keys(a).forEach(e=>{k.has(e)||t(`x-ui-request: unknown option key`,e)}),a):(t(`x-ui-request: expression must evaluate to an object`),null)},le=e=>e.submitter instanceof HTMLElement?e.submitter:null,ue=(e,t,n)=>t.defaultPrevented||(n?.getAttribute(`formmethod`)||e.getAttribute(`method`))?.toLowerCase()===`dialog`||e.getAttribute(`target`)||n?.getAttribute(`formtarget`)?!1:!e.noValidate&&!e.checkValidity()?(e.reportValidity(),!1):!0,de=e=>e.hash!==``&&e.origin===window.location.origin&&e.pathname===window.location.pathname&&e.search===window.location.search,fe=(e,t,n)=>{if(t.defaultPrevented||t.button!==0||n&&A.some(e=>t[e])||e.hasAttribute(`download`)||e.getAttribute(`target`))return null;let r=new URL(e.href,document.baseURI);return r.origin===window.location.origin?de(r)?n?{destination:r,type:`native-fragment`}:null:{destination:r,type:`enhance`}:null},pe=(e,n,r,i,a)=>{let o=o=>{if(j.delete(n))return;let s=le(o);if(!ue(n,o,s))return;let c=M(n,r,i);if(c){if(o.preventDefault(),a.navigate){w(e,n.action,n,{...c,source:n,submitter:s});return}C(e,void 0,{...c,source:n,submitter:s}).then(e=>{e.type===`unavailable`&&(j.add(n),n.requestSubmit(s??void 0))}).catch(e=>t(`x-ui-request: request failed`,e))}};n.addEventListener(`submit`,o),i.cleanup?.(()=>n.removeEventListener(`submit`,o))},me=(e,n,r,i,a)=>{let o=o=>{let s=fe(n,o,a.navigate);if(!s)return;if(s.type===`native-fragment`){S(s.destination);return}let c=M(n,r,i);if(c){if(o.preventDefault(),a.navigate){w(e,s.destination,n,c);return}C(e,n.href,{...c,method:c.method??`GET`,source:n}).then(e=>{e.type===`unavailable`&&window.location.assign(n.href)}).catch(e=>t(`x-ui-request: request failed`,e))}};n.addEventListener(`click`,o),i.cleanup?.(()=>n.removeEventListener(`click`,o))},he=e=>{e.addRootSelector(()=>O),te(e),E(e),e.directive(`ui-request`,(n,{expression:r,modifiers:i},a)=>{let o={expression:r};if(n instanceof HTMLFormElement){pe(e,n,o,a,{navigate:i.includes(`navigate`)});return}if(n instanceof HTMLAnchorElement){me(e,n,o,a,{navigate:i.includes(`navigate`)});return}t(`x-ui-request: directive only supports forms and anchors`,n)})},ge=(e,t)=>{let n=!0,r=!1,i,a,o=new Promise(e=>{a=e});return e(e=>{if(n){r=!0,i=e;return}a(e)},{scope:{$transition:t}}),n=!1,r?i:o},N=e=>{e.directive(`ui-transition`,e.skipDuringClone((n,{value:r,expression:i},a)=>{if(!r){t(`x-ui-transition requires a transition name`,n);return}let o=b(e,n);if(!o){t(`x-ui-transition:${r} requires an owning Trellis machine`,n);return}let s=i?.trim()?a.evaluateLater(i):null,c=o.onTransition(r,e=>s?ge(s,e):void 0,n);a.cleanup(c)}))},P=()=>{},F,I=class{startComment;endComment;constructor(e,t){this.startComment=e,this.endComment=t}get children(){let e=[],t=this.startComment.nextSibling;for(;t&&t!==this.endComment;)t instanceof Element&&e.push(t),t=t.nextSibling;return e}get firstChild(){let e=this.startComment.nextSibling;return e===this.endComment?null:e}appendChild(e){return this.endComment.before(e),e}insertBefore(e,t){return(t??this.endComment).before(e),e}nextNode(e){let t=e.nextSibling;return t===this.endComment?null:t}},L=(e,t)=>e instanceof I?e.nextNode(t):t.nextSibling,_e=e=>{let t=document.createElement(`template`);t.innerHTML=e;let n=t.content.firstElementChild;if(!n)throw Error(`Morph HTML must contain a root element.`);return n},ve=(e,t)=>{t.namespaceURI?e.setAttributeNodeNS(t.cloneNode()):t.name.includes(`@`)?e.setAttributeNode(t.cloneNode()):e.setAttribute(t.name,t.value)},R=(e,t)=>{let n=!1;return e(t,()=>{n=!0}),n},z=e=>e?.nodeType===Node.COMMENT_NODE&&e.textContent===`[if BLOCK]><![endif]`,B=e=>e?.nodeType===Node.COMMENT_NODE&&e.textContent===`[if ENDBLOCK]><![endif]`,V=(e,t)=>{let n=0,r=t;for(;r=L(e,r);)if(z(r))n+=1;else if(B(r)&&n>0)--n;else if(B(r))return r;throw Error(`Unclosed conditional morph block.`)},H=e=>{let t=e;if(e._x_lastRenderedEl)t=e._x_lastRenderedEl;else if(e._x_currentIfEl)t=H(e._x_currentIfEl).end;else if(e._x_lookup?.size){let n=new Set(e._x_lookup.values()),r=e.nextSibling;for(;r&&n.has(r);)t=H(r).end,r=t.nextSibling}return{start:e,end:t}},U=(e,t)=>L(e,t.end),W=(e,t)=>{if(e.nodeType!==t.nodeType||e.nodeName!==t.nodeName)return!1;if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE)return e.nodeValue===t.nodeValue;if(e instanceof HTMLTemplateElement&&t instanceof HTMLTemplateElement){let n=e,r=t;if(n._x_teleport){let e=r._x_teleport??t.content.firstElementChild;return!!(e&&W(n._x_teleport,e))}return e.isEqualNode(t)}if(e instanceof Element&&t instanceof Element){if(e.attributes.length!==t.attributes.length)return!1;for(let{name:n,value:r}of e.attributes)if(t.getAttribute(n)!==r)return!1}let n=e.firstChild,r=t.firstChild;for(;n&&r;){if(!W(n,r))return!1;n=H(n).end.nextSibling,r=r.nextSibling}return n===null&&r===null},ye=(e,t,n)=>{if(t.start===n||U(e,t)===n)return;let r=t.start;for(;r;){let i=r.nextSibling;if(e.insertBefore(r,n),r===t.end)break;r=i}},be=(e,t)=>{let n=t?._x_bindings?.id;n&&e instanceof Element&&(e.setAttribute(`id`,n),e.id=n)},xe=(e,t,n)=>{let r=new WeakMap,i=e.map(n).filter(Boolean),a=t.map(n).filter(Boolean);if(!(i.length>=2&&i.length===a.length&&new Set(i).size===i.length&&i.some((e,t)=>e!==a[t])&&i.every(e=>a.includes(e))))return r;let o=e=>{let t=new Map,n=e=>{e.id&&t.set(e.id,(t.get(e.id)??0)+1)};for(let t of e)n(t),t.querySelectorAll(`[id]`).forEach(n);return t},s=o(e),c=o(t),l=new Map;for(let[e,t]of s)t===1&&c.get(e)===1&&l.set(e,Symbol(e));let u=e=>{if(!n(e))for(let t of e.querySelectorAll(`[id]`)){let n=l.get(t.id);if(n){r.set(e,n);return}}};return e.forEach(u),t.forEach(u),r},G=(e={})=>{let t={key:e.key??(e=>e.getAttribute(`key`)),lookahead:e.lookahead??!1,updating:e.updating??P,updated:e.updated??P,removing:e.removing??P,removed:e.removed??P,remove:e.remove??(e=>{e.parentNode?.removeChild(e)}),adding:e.adding??P,added:e.added??P,skipUntilCondition:null},n=e=>e instanceof Element?t.key(e):null,r=(e,t)=>e.nodeType!==t.nodeType||e.nodeName!==t.nodeName||n(e)!==n(t)||e instanceof Element&&t instanceof Element&&e.getAttribute(`x-data`)!==t.getAttribute(`x-data`),i=(e,n,r)=>{if(R(t.adding,n))return{inserted:!1,node:null};let i=n.cloneNode(!0);return e.insertBefore(i,r),t.added(i),{inserted:!0,node:i}},a=e=>!R(t.removing,e)&&(t.remove(e),t.removed(e),!0),o=e=>!R(t.removing,e.start)&&(t.remove(e.start),t.removed(e.start),!0),s=(e,n)=>{if(R(t.removing,e))return!1;let r=n.cloneNode(!0);return!R(t.adding,r)&&(e.parentNode?.insertBefore(r,e),t.remove(e),t.removed(e),t.added(r),!0)},c=(e,t)=>{if(e._x_transitioning||e._x_isShown&&!t._x_isShown||!e._x_isShown&&t._x_isShown)return!1;let n=!1,r=Array.from(e.attributes);for(let i=r.length-1;i>=0;--i){let a=r[i].name;t.hasAttribute(a)||(a===`open`&&e instanceof HTMLDialogElement&&e.open?e.close():e.removeAttribute(a),n=!0)}let i=Array.from(t.attributes);for(let t=i.length-1;t>=0;--t){let r=i[t],{name:a,value:o}=r;e.getAttribute(a)!==o&&(ve(e,r),n=!0)}return n},l,u=(e,n,i)=>{if(e instanceof Element&&e.hasAttribute(`data-ui-ignore-morph`))return!1;if(r(e,n))return s(e,n);if(i===`before-descendant-hook`&&e.nodeType!==Node.COMMENT_NODE&&W(e,n))return!1;let a=!1,o=!1,u=!1;if(t.updating(e,n,()=>{a=!0},()=>{u=!0},()=>{o=!0},e=>{t.skipUntilCondition=e}),u||W(e,n))return!1;let f=!1;return e.nodeType===Node.ELEMENT_NODE&&F&&(F.cloneNode(e,n),e._x_teleport&&n._x_teleport&&(f=d(e._x_teleport,n._x_teleport)||f)),n.nodeType===Node.TEXT_NODE||n.nodeType===Node.COMMENT_NODE?e.nodeValue!==n.nodeValue&&(e.nodeValue=n.nodeValue,t.updated(e,n),!0):(a||(f=c(e,n)||f),o||(f=l(e,n)||f),f&&t.updated(e,n),f)},d=(e,t)=>u(e,t,`before-descendant-hook`);return l=(e,r)=>{let s=Array.from(e.children),c=xe(s,Array.from(r.children),n),u=e=>e?n(e)||c.get(e):null,f=new Map;for(let e of s){let t=u(e);t&&f.set(t,e)}let p=!1,m=e.firstChild,h=r.firstChild;incoming:for(;h;){if(be(h,m),t.skipUntilCondition){let n=!m||t.skipUntilCondition(m),i=t.skipUntilCondition(h);if(n&&i)t.skipUntilCondition=null;else{!n&&m&&(m=U(e,H(m))),i||(h=L(r,h));continue}}if(!m){p=i(e,h,null).inserted||p,h=L(r,h);continue}if(z(m)&&z(h)){let t=V(e,m),n=V(r,h);p=l(new I(m,t),new I(h,n))||p,m=L(e,t),h=L(r,n);continue}{if(t.lookahead&&m instanceof Element&&!m.isEqualNode(h)){let t=L(r,h);for(;t;){if(t instanceof Element&&m.isEqualNode(t)){let t=i(e,h,m);if(!t.inserted){h=L(r,h);continue incoming}m=t.node,p=!0;break}t=L(r,t)}}let n=u(h),a=u(m);if(n!==a){let t=n?f.get(n):void 0;if(t)ye(e,H(t),m),m=t,p=!0;else if(n||a){let t=i(e,h,m);if(!t.inserted){h=L(r,h);continue}m=t.node,p=!0}}let o=U(e,H(m));p=d(m,h)||p,m=o}h=L(r,h)}for(;m;){let t=H(m),n=U(e,t);p=(t.end===t.start?a(m):o(t))||p,m=n}return p},{patchChildren:l,patchRoot:(e,t)=>u(e,t,`after-root-hook`)}},Se=(e,t,n={})=>{let r=typeof t==`string`?_e(t):t,i=e;return F?.closestDataStack&&!i._x_dataStack&&(r._x_dataStack=F.closestDataStack(i),r._x_dataStack&&F.cloneNode(i,r)),G(n).patchRoot(i,r),e},Ce=(e,t,n,r={})=>{let i=e.parentNode,a=typeof n==`string`?(()=>{let e=document.createElement(`div`);return e.insertAdjacentHTML(`beforeend`,n),e})():n,o=document.createComment(`[morph-start]`),s=document.createComment(`[morph-end]`);a.insertBefore(o,a.firstChild),a.appendChild(s),F?.closestDataStack&&(a._x_dataStack=F.closestDataStack(i),a._x_dataStack&&F.cloneNode(i,a)),G(r).patchChildren(new I(e,t),new I(o,s))},we=e=>{let t=e;F=t,t.morph=Se,t.morphBetween=Ce},K=`Are you sure?`,Te=null,q=new WeakSet,Ee=e=>e instanceof HTMLButtonElement||e instanceof HTMLInputElement,De=({form:e,submitter:t})=>{let n=t?.dataset.uiConfirm;if(n!==void 0)return n||K;let r=e.dataset.uiConfirm;return r===void 0?null:r||K},Oe=({form:e,submitter:t})=>{window.setTimeout(()=>{if(!(!e.isConnected||t&&t.form!==e)){q.add(e);try{e.requestSubmit(t??void 0)}finally{q.delete(e)}}},0)},J=e=>{let t=e.target;if(!(t instanceof HTMLFormElement))return;if(q.has(t)){q.delete(t);return}let n=Ee(e.submitter)?e.submitter:null,r=De({form:t,submitter:n});if(r===null)return;e.preventDefault();let i=!1,a=()=>{i||(i=!0,Oe({form:t,submitter:n}))},o=()=>{i=!0},s=new CustomEvent(`ui:confirm`,{bubbles:!0,cancelable:!0,detail:{form:t,message:r,submitter:n,triggeringEvent:e,proceed:a,cancel:o}});t.dispatchEvent(s),!s.defaultPrevented&&(window.confirm(r)?a():o())},ke=({root:e=document}={})=>{Te||=(e.addEventListener(`submit`,J,{capture:!0}),()=>e.removeEventListener(`submit`,J,{capture:!0}))},Ae=[`light`,`dark`,`system`],je=e=>typeof e==`string`&&Ae.includes(e),Y=e=>je(e)?e:`system`,Me=()=>document.documentElement.dataset.themeStorageKey||`trellis-ui-theme`,Ne=()=>Y(document.documentElement.dataset.theme),Pe=()=>window.matchMedia(`(prefers-color-scheme: dark)`).matches,Fe=e=>e===`dark`||e===`system`&&Pe(),X=e=>{let t=Fe(e),n=t?`dark`:`light`,r=document.documentElement;return r.classList.toggle(`dark`,t),r.classList.toggle(`light`,e===`light`),r.dataset.theme=e,r.dataset.resolvedTheme=n,r.dispatchEvent(new CustomEvent(`ui:theme-change`,{detail:{mode:e,resolved:n,dark:t,on:t},bubbles:!0})),{mode:e,resolved:n,dark:t,on:t}},Ie=()=>{let e=X(Ne());return{mode:e.mode,resolved:e.resolved,get dark(){return this.resolved===`dark`},get on(){return this.dark},set(e){let t=Y(e);re(`themes`,Me(),t);let n=X(t);this.mode=n.mode,this.resolved=n.resolved},toggle(){this.set(this.resolved===`dark`?`light`:`dark`)}}},Le=e=>{if(typeof e.store!=`function`)return;let t=e.store(`theme`)??Ie();e.store(`theme`,t),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{if(t.mode!==`system`)return;let e=X(`system`);t.resolved=e.resolved})},Re=e=>e.replace(/([A-Z])/g,`_$1`).toLowerCase(),ze=({manifest:e})=>{if(`propSchema`in e)throw Error(`Manual manifests cannot supply propSchema.`);return Object.freeze(e)},Z=({schema:e,details:t})=>{let n={};return Object.entries(e).forEach(([e,r])=>{let i=t[e]??{},a=r.meta,o=i.name??Re(e);if(o in n)throw Error(`Schema property ${e} resolves to duplicate manifest property ${o}.`);let s={type:a.type,default:a.default};a.values&&(s.values=a.values),i.description&&(s.description=i.description),i.initialOnly&&(s.initialOnly=!0),n[o]=s}),n},Be=({schema:e,details:t,templateProps:n={},templatePropsPosition:r=`after`,manifest:i})=>{let a=Z({schema:e,details:t});Object.keys(n).forEach(e=>{if(e in a)throw Error(`Template prop ${e} collides with schema property ${e}.`)});let o=r===`before`?{...n,...a}:{...a,...n},{name:s,title:c,description:l,meta:u,...d}=i,f={name:s,title:c,description:l,...u?{meta:u}:{},propSchema:e,props:o,...d};return Object.freeze(f)},Q=new WeakSet,$=e=>{Q.has(e)||(Q.add(e),d(e.reactive),e.plugin(we),o(async()=>{await e.nextTick()}),ne(e),ce(e),N(e),Le(e),ke(),he(e),T(e))};export{m as bool,$ as coreRuntime,$ as default,y as createAlpineMachine,x as createMachine,v as createTransitionCoordinator,l as decodeProps,D as defineAlpineData,_ as defineHook,ze as defineManifest,h as defineProps,Be as defineSchemaManifest,ae as defineStyles,g as json,oe as mergeBindings,u as number,p as oneOf,Z as propsFromSchema,N as registerTransitionDirective,ie as resolveStyle,f as string,ee as ui};
2
+ //# sourceMappingURL=core-CX4J7tsN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-CX4J7tsN.js","names":[],"sources":["../../../../../../../client/src/directives/animate.ts","../../../../../../../client/src/directives/request.ts","../../../../../../../client/src/directives/transition.ts","../../../../../../../client/src/runtime/morph-engine.ts","../../../../../../../client/src/runtime/confirm.ts","../../../../../../../client/src/runtime/theme.ts","../../../../../../../client/src/runtime/manifest.ts","../../../../../../../client/src/core.ts"],"sourcesContent":["import type Alpine from 'alpinejs';\nimport {motionValue, type DOMKeyframesDefinition, type MotionValue} from 'motion';\nimport {animateProperties} from '@client/motion/properties';\nimport {getAnimationOptions, createAnimationScope} from '@client/motion/registry';\nimport {setAnimationPaused} from '@client/motion/lifecycle';\nimport {registerDomInvalidationOwner} from '@client/runtime/dom-invalidation';\nimport {warn} from '@client/utils';\n\ntype NumberDefinition = {\n value: number;\n format?: Intl.NumberFormatOptions;\n locales?: Intl.LocalesArgument;\n};\n\nconst numberDefinition = (input: unknown): {value: number; formatter: Intl.NumberFormat} => {\n const definition = typeof input === 'number' ? {value: input} : input as NumberDefinition;\n if (!definition || typeof definition !== 'object' || typeof definition.value !== 'number' || !Number.isFinite(definition.value)) {\n throw new TypeError('x-ui-animate:number requires a finite number or {value, format?, locales?}.');\n }\n return {\n value: definition.value,\n formatter: new Intl.NumberFormat(definition.locales, definition.format ?? {maximumFractionDigits: 0}),\n };\n};\n\nconst registerAnimateDirective = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.directive('ui-animate', AlpineInstance.skipDuringClone((element, {value: binding, expression}, utilities) => {\n if (binding && binding !== 'number' && binding !== 'paused') {\n warn(`Unknown x-ui-animate binding: ${binding}`, element);\n return;\n }\n const evaluator = utilities.evaluateLater(expression);\n const controller = new AbortController();\n let initialized = false;\n let previous = '';\n let numeric: MotionValue<number> | undefined;\n let numericTarget: number | undefined;\n let formatter: Intl.NumberFormat;\n let controls: {stop(): void} | undefined;\n let numericScope: ReturnType<typeof createAnimationScope> | undefined;\n let unsubscribe: (() => void) | undefined;\n const apply = (input: unknown): void => {\n if (controller.signal.aborted) return;\n try {\n if (binding === 'paused') {\n setAnimationPaused(element, Boolean(input));\n return;\n }\n if (binding === 'number') {\n const next = numberDefinition(input);\n formatter = next.formatter;\n if (!numeric) {\n numeric = motionValue(next.value);\n unsubscribe = numeric.on('change', (value) => { element.textContent = formatter.format(value); });\n }\n element.textContent = formatter.format(numeric.get());\n if (initialized && next.value !== numericTarget) {\n controls?.stop();\n numericScope?.dispose();\n numericScope = createAnimationScope(element, getAnimationOptions(element), controller.signal, 'presence');\n controls = numericScope.animate(numeric, next.value);\n }\n numericTarget = next.value;\n initialized = true;\n return;\n }\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n throw new TypeError('x-ui-animate requires a Motion keyframes object.');\n }\n // Read nested arrays while the Alpine effect is active, including\n // in-place updates to a reactive targets object.\n const keyframes = Object.fromEntries(Object.entries(input).map(([property, value]) => [\n property, Array.isArray(value) ? [...value] : value,\n ])) as DOMKeyframesDefinition;\n const signature = JSON.stringify(keyframes);\n if (initialized && signature === previous) return;\n controls = animateProperties(element, keyframes, {\n signal: controller.signal,\n transition: initialized ? getAnimationOptions(element) ?? {} : {duration: 0},\n });\n previous = signature;\n initialized = true;\n } catch (error) {\n warn(error instanceof Error ? error.message : String(error), element);\n }\n };\n const refresh = (): void => { evaluator(apply); };\n utilities.effect(refresh);\n const unregister = registerDomInvalidationOwner(element, {invalidateDom: refresh});\n utilities.cleanup(() => {\n unregister();\n controller.abort();\n controls?.stop();\n numericScope?.dispose();\n unsubscribe?.();\n numeric?.destroy();\n if (binding === 'paused') setAnimationPaused(element, false);\n });\n }));\n};\n\nexport {registerAnimateDirective};\n","import type Alpine from 'alpinejs';\nimport {registerRequestRuntime, requestWithAlpine, type RequestOptions} from '@client/runtime/engine/request';\nimport {\n navigateWithAlpine,\n prepareNativeFragmentNavigation,\n registerNavigationRuntime,\n type NavigationOptions,\n} from '@client/runtime/engine/navigation';\nimport {isPlainRecord, warn} from '../utils';\n\ntype RequestDirectiveContext = Pick<Alpine.DirectiveData, 'expression'>;\ntype RequestDirectiveOptions = NavigationOptions & Record<string, unknown>;\ntype AnchorClick = {\n destination: URL;\n type: 'enhance' | 'native-fragment';\n};\n\nconst REQUEST_ROOT_SELECTOR = '[x-ui-request], [x-ui-request\\\\.navigate]';\nconst OPTION_KEYS = new Set(['data', 'extra', 'headers', 'history', 'method']);\nconst CLICK_MODIFIER_KEYS: Array<keyof MouseEvent> = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\nconst nativeFormSubmissions = new WeakSet<HTMLFormElement>();\n\nconst readOptions = (\n el: Element,\n {expression}: RequestDirectiveContext,\n utilities: Alpine.DirectiveUtilities,\n): RequestDirectiveOptions | null => {\n if (!expression?.trim()) return {};\n\n const evaluated = utilities.Alpine.evaluate(el, expression);\n if (!isPlainRecord(evaluated)) {\n warn('x-ui-request: expression must evaluate to an object');\n return null;\n }\n\n Object.keys(evaluated).forEach((key) => {\n if (!OPTION_KEYS.has(key)) warn('x-ui-request: unknown option key', key);\n });\n\n return evaluated as RequestDirectiveOptions;\n};\n\nconst submitterFrom = (event: SubmitEvent): HTMLElement | null => (\n event.submitter instanceof HTMLElement ? event.submitter : null\n);\n\nconst shouldEnhanceFormSubmit = (form: HTMLFormElement, event: SubmitEvent, submitter: HTMLElement | null): boolean => {\n if (event.defaultPrevented) return false;\n if ((submitter?.getAttribute('formmethod') || form.getAttribute('method'))?.toLowerCase() === 'dialog') return false;\n if (form.getAttribute('target')) return false;\n if (submitter?.getAttribute('formtarget')) return false;\n\n if (!form.noValidate && !form.checkValidity()) {\n form.reportValidity();\n return false;\n }\n\n return true;\n};\n\nconst samePageHashOnly = (url: URL): boolean => (\n url.hash !== ''\n && url.origin === window.location.origin\n && url.pathname === window.location.pathname\n && url.search === window.location.search\n);\n\nconst anchorClickFrom = (anchor: HTMLAnchorElement, event: MouseEvent, navigate: boolean): AnchorClick | null => {\n if (event.defaultPrevented) return null;\n if (event.button !== 0) return null;\n if (navigate && CLICK_MODIFIER_KEYS.some((key) => event[key])) return null;\n if (anchor.hasAttribute('download')) return null;\n if (anchor.getAttribute('target')) return null;\n\n const destination = new URL(anchor.href, document.baseURI);\n if (destination.origin !== window.location.origin) return null;\n if (samePageHashOnly(destination)) {\n return navigate ? {destination, type: 'native-fragment'} : null;\n }\n return {destination, type: 'enhance'};\n};\n\nconst registerFormDirective = (\n AlpineInstance: Alpine.Alpine,\n form: HTMLFormElement,\n directive: RequestDirectiveContext,\n utilities: Alpine.DirectiveUtilities,\n behavior: {navigate: boolean},\n): void => {\n const onSubmit = (event: SubmitEvent): void => {\n if (nativeFormSubmissions.delete(form)) return;\n const submitter = submitterFrom(event);\n if (!shouldEnhanceFormSubmit(form, event, submitter)) return;\n\n const options = readOptions(form, directive, utilities);\n if (!options) return;\n\n event.preventDefault();\n if (behavior.navigate) {\n navigateWithAlpine(AlpineInstance, form.action, form, {\n ...options,\n source: form,\n submitter,\n });\n return;\n }\n void requestWithAlpine(AlpineInstance, undefined, {\n ...options,\n source: form,\n submitter,\n }).then((result) => {\n if (result.type !== 'unavailable') return;\n nativeFormSubmissions.add(form);\n form.requestSubmit(submitter ?? undefined);\n }).catch((error: unknown) => warn('x-ui-request: request failed', error));\n };\n\n form.addEventListener('submit', onSubmit);\n utilities.cleanup?.(() => form.removeEventListener('submit', onSubmit));\n};\n\nconst registerAnchorDirective = (\n AlpineInstance: Alpine.Alpine,\n anchor: HTMLAnchorElement,\n directive: RequestDirectiveContext,\n utilities: Alpine.DirectiveUtilities,\n behavior: {navigate: boolean},\n): void => {\n const onClick = (event: MouseEvent): void => {\n const click = anchorClickFrom(anchor, event, behavior.navigate);\n if (!click) return;\n if (click.type === 'native-fragment') {\n prepareNativeFragmentNavigation(click.destination);\n return;\n }\n\n const options = readOptions(anchor, directive, utilities);\n if (!options) return;\n\n event.preventDefault();\n if (behavior.navigate) {\n navigateWithAlpine(AlpineInstance, click.destination, anchor, options);\n return;\n }\n void requestWithAlpine(AlpineInstance, anchor.href, {\n ...options,\n method: options.method ?? 'GET',\n source: anchor,\n }).then((result) => {\n if (result.type === 'unavailable') window.location.assign(anchor.href);\n }).catch((error: unknown) => warn('x-ui-request: request failed', error));\n };\n\n anchor.addEventListener('click', onClick);\n utilities.cleanup?.(() => anchor.removeEventListener('click', onClick));\n};\n\nconst registerRequestDirective = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.addRootSelector(() => REQUEST_ROOT_SELECTOR);\n registerRequestRuntime(AlpineInstance);\n registerNavigationRuntime(AlpineInstance);\n\n AlpineInstance.directive('ui-request', (el, {expression, modifiers}, utilities) => {\n const directive = {expression};\n\n if (el instanceof HTMLFormElement) {\n registerFormDirective(AlpineInstance, el, directive, utilities, {\n navigate: modifiers.includes('navigate'),\n });\n return;\n }\n\n if (el instanceof HTMLAnchorElement) {\n registerAnchorDirective(AlpineInstance, el, directive, utilities, {\n navigate: modifiers.includes('navigate'),\n });\n return;\n }\n\n warn('x-ui-request: directive only supports forms and anchors', el);\n });\n};\n\nexport {registerRequestDirective};\n","import type Alpine from 'alpinejs';\nimport {\n findAlpineMachineOwner,\n type AlpineMachineOwner,\n} from '@client/runtime/alpine-machine';\nimport type {TransitionContext} from '@client/runtime/transition-coordinator';\nimport {warn} from '@client/utils';\n\ntype TransitionEvaluator = ReturnType<Alpine.DirectiveUtilities['evaluateLater']>;\n\nconst evaluateTransition = <TProps, TData, TElement>(\n evaluator: TransitionEvaluator,\n transition: TransitionContext<TProps, TData, TElement>,\n): unknown => {\n let synchronous = true;\n let completedSynchronously = false;\n let result: unknown;\n let resolve!: (value: unknown) => void;\n const pending = new Promise<unknown>((resolvePromise) => {\n resolve = resolvePromise;\n });\n\n evaluator((value) => {\n if (synchronous) {\n completedSynchronously = true;\n result = value;\n return;\n }\n resolve(value);\n }, {scope: {$transition: transition}});\n synchronous = false;\n\n return completedSynchronously ? result : pending;\n};\n\nconst registerTransitionDirective = (AlpineInstance: Alpine.Alpine): void => {\n AlpineInstance.directive(\n 'ui-transition',\n AlpineInstance.skipDuringClone((el, {value: name, expression}, utilities) => {\n if (!name) {\n warn('x-ui-transition requires a transition name', el);\n return;\n }\n\n const owner = findAlpineMachineOwner(AlpineInstance, el);\n if (!owner) {\n warn(`x-ui-transition:${name} requires an owning Trellis machine`, el);\n return;\n }\n\n const evaluator = expression?.trim() ? utilities.evaluateLater(expression) : null;\n const unregister = owner.onTransition(name, (transition) => (\n evaluator ? evaluateTransition(evaluator, transition) : undefined\n ), el as Parameters<AlpineMachineOwner['onTransition']>[2]);\n utilities.cleanup(unregister);\n }),\n );\n};\n\nexport {registerTransitionDirective};\n","import type Alpine from 'alpinejs';\n\n// This engine adapts behavior and matching ideas from Alpine Morph, Morphlex, Idiomorph, and Datastar.\n// See THIRD_PARTY_NOTICES.md for provenance and license notices.\n\ntype Skip = () => void;\ntype ChildrenOnly = () => void;\ntype SkipChildren = () => void;\ntype SkipUntil = (predicate: (node: Node) => boolean) => void;\ntype UpdatingHook = (\n from: Node,\n to: Node,\n childrenOnly: ChildrenOnly,\n skip: Skip,\n skipChildren: SkipChildren,\n skipUntil: SkipUntil,\n) => void;\ntype SkippableNodeHook = (node: Node, skip: Skip) => void;\ntype PruningPolicy = 'after-root-hook' | 'before-descendant-hook';\n\ntype MorphOptions = {\n key?: (element: Element) => unknown;\n lookahead?: boolean;\n updating?: UpdatingHook;\n updated?: (from: Node, to: Node) => void;\n removing?: SkippableNodeHook;\n removed?: (node: Node) => void;\n remove?: (node: Node) => void;\n adding?: SkippableNodeHook;\n added?: (node: Node) => void;\n};\n\ntype MorphAlpine = Omit<Alpine.Alpine, 'cloneNode' | 'closestDataStack'> & {\n cloneNode(from: Element, to: Element): void;\n closestDataStack(node: Node): unknown;\n morph(from: Element, toHtml: Element | string, options?: MorphOptions): Element;\n morphBetween(\n startMarker: Comment,\n endMarker: Comment,\n toHtml: Element | string,\n options?: MorphOptions,\n ): void;\n};\n\ntype AlpineNode = Node & {\n _x_bindings?: {id?: string};\n _x_dataStack?: unknown;\n _x_currentIfEl?: AlpineNode;\n _x_lastRenderedEl?: AlpineNode;\n _x_lookup?: Map<unknown, AlpineNode>;\n _x_teleport?: AlpineNode;\n _x_transitioning?: unknown;\n _x_isShown?: boolean;\n};\n\ntype Parent = Node & {\n children: Iterable<Element>;\n firstChild: ChildNode | null;\n insertBefore(node: Node, before: Node | null): Node;\n};\n\nconst noop = (): void => {};\nlet alpineInstance: MorphAlpine | undefined;\n\nclass Block {\n constructor(\n readonly startComment: Comment,\n readonly endComment: Comment,\n ) {}\n\n get children(): Element[] {\n const children: Element[] = [];\n let node = this.startComment.nextSibling;\n while (node && node !== this.endComment) {\n if (node instanceof Element) children.push(node);\n node = node.nextSibling;\n }\n return children;\n }\n\n get firstChild(): ChildNode | null {\n const first = this.startComment.nextSibling;\n return first === this.endComment ? null : first;\n }\n\n appendChild(node: Node): Node {\n this.endComment.before(node);\n return node;\n }\n\n insertBefore(node: Node, reference: Node | null): Node {\n ((reference ?? this.endComment) as ChildNode).before(node);\n return node;\n }\n\n nextNode(reference: Node): ChildNode | null {\n const next = reference.nextSibling;\n return next === this.endComment ? null : next;\n }\n}\n\nconst nextSibling = (parent: Parent | Block, node: Node): ChildNode | null => (\n parent instanceof Block ? parent.nextNode(node) : node.nextSibling\n);\n\nconst createElement = (html: string): Element => {\n const template = document.createElement('template');\n template.innerHTML = html;\n const element = template.content.firstElementChild;\n if (!element) throw new Error('Morph HTML must contain a root element.');\n return element;\n};\n\nconst setIncomingAttribute = (target: Element, incoming: Attr): void => {\n if (incoming.namespaceURI) {\n target.setAttributeNodeNS(incoming.cloneNode() as Attr);\n } else if (incoming.name.includes('@')) {\n target.setAttributeNode(incoming.cloneNode() as Attr);\n } else {\n target.setAttribute(incoming.name, incoming.value);\n }\n};\n\nconst shouldSkip = (hook: SkippableNodeHook, node: Node): boolean => {\n let skip = false;\n hook(node, () => { skip = true; });\n return skip;\n};\n\nconst isConditionalStart = (node: Node | null): boolean => (\n node?.nodeType === Node.COMMENT_NODE && node.textContent === '[if BLOCK]><![endif]'\n);\n\nconst isConditionalEnd = (node: Node | null): boolean => (\n node?.nodeType === Node.COMMENT_NODE && node.textContent === '[if ENDBLOCK]><![endif]'\n);\n\nconst conditionalEnd = (parent: Parent | Block, start: Node): Comment => {\n let depth = 0;\n let node: Node | null = start;\n while ((node = nextSibling(parent, node))) {\n if (isConditionalStart(node)) depth += 1;\n else if (isConditionalEnd(node) && depth > 0) depth -= 1;\n else if (isConditionalEnd(node)) return node as Comment;\n }\n throw new Error('Unclosed conditional morph block.');\n};\n\ntype OwnedRange = {\n start: AlpineNode;\n end: AlpineNode;\n};\n\nconst ownedRange = (start: AlpineNode): OwnedRange => {\n let end = start;\n if (start._x_lastRenderedEl) end = start._x_lastRenderedEl;\n else if (start._x_currentIfEl) end = ownedRange(start._x_currentIfEl).end;\n else if (start._x_lookup?.size) {\n const owned = new Set(start._x_lookup.values());\n let sibling = start.nextSibling as AlpineNode | null;\n while (sibling && owned.has(sibling)) {\n end = ownedRange(sibling).end;\n sibling = end.nextSibling as AlpineNode | null;\n }\n }\n return {start, end};\n};\n\nconst afterOwnedRange = (parent: Parent | Block, range: OwnedRange): AlpineNode | null => (\n nextSibling(parent, range.end) as AlpineNode | null\n);\n\nconst isServerEqual = (from: AlpineNode, to: AlpineNode): boolean => {\n if (from.nodeType !== to.nodeType || from.nodeName !== to.nodeName) return false;\n if (from.nodeType === Node.TEXT_NODE || from.nodeType === Node.COMMENT_NODE) {\n return from.nodeValue === to.nodeValue;\n }\n if (from instanceof HTMLTemplateElement && to instanceof HTMLTemplateElement) {\n const fromTemplate = from as HTMLTemplateElement & AlpineNode;\n const toTemplate = to as HTMLTemplateElement & AlpineNode;\n if (fromTemplate._x_teleport) {\n const incomingTeleport = toTemplate._x_teleport ?? to.content.firstElementChild;\n return Boolean(incomingTeleport && isServerEqual(fromTemplate._x_teleport, incomingTeleport as AlpineNode));\n }\n return from.isEqualNode(to);\n }\n if (from instanceof Element && to instanceof Element) {\n if (from.attributes.length !== to.attributes.length) return false;\n for (const {name, value} of from.attributes) {\n if (to.getAttribute(name) !== value) return false;\n }\n }\n\n let fromChild = from.firstChild as AlpineNode | null;\n let toChild = to.firstChild as AlpineNode | null;\n while (fromChild && toChild) {\n if (!isServerEqual(fromChild, toChild)) return false;\n fromChild = ownedRange(fromChild).end.nextSibling as AlpineNode | null;\n toChild = toChild.nextSibling as AlpineNode | null;\n }\n return fromChild === null && toChild === null;\n};\n\nconst moveOwnedRangeBefore = (parent: Parent | Block, range: OwnedRange, before: Node | null): void => {\n if (range.start === before || afterOwnedRange(parent, range) === before) return;\n let node: Node | null = range.start;\n while (node) {\n const next: ChildNode | null = node.nextSibling;\n parent.insertBefore(node, before);\n if (node === range.end) break;\n node = next;\n }\n};\n\nconst seedDynamicId = (to: AlpineNode, from: AlpineNode | null): void => {\n const id = from?._x_bindings?.id;\n if (!id || !(to instanceof Element)) return;\n to.setAttribute('id', id);\n (to as HTMLElement).id = id;\n};\n\nconst buildDescendantCorrespondence = (\n fromElements: Element[],\n toElements: Element[],\n getKey: (node: Node | null) => unknown,\n): WeakMap<Node, symbol> => {\n const correspondence = new WeakMap<Node, symbol>();\n const fromDirectKeys = fromElements.map(getKey).filter(Boolean);\n const toDirectKeys = toElements.map(getKey).filter(Boolean);\n const directKeysReordered = fromDirectKeys.length >= 2\n && fromDirectKeys.length === toDirectKeys.length\n && new Set(fromDirectKeys).size === fromDirectKeys.length\n && fromDirectKeys.some((key, index) => key !== toDirectKeys[index])\n && fromDirectKeys.every((key) => toDirectKeys.includes(key));\n if (!directKeysReordered) return correspondence;\n\n const idCounts = (elements: Element[]): Map<string, number> => {\n const counts = new Map<string, number>();\n const count = (element: Element): void => {\n if (element.id) counts.set(element.id, (counts.get(element.id) ?? 0) + 1);\n };\n for (const element of elements) {\n count(element);\n element.querySelectorAll('[id]').forEach(count);\n }\n return counts;\n };\n const fromIdCounts = idCounts(fromElements);\n const toIdCounts = idCounts(toElements);\n const tokens = new Map<string, symbol>();\n for (const [id, count] of fromIdCounts) {\n if (count === 1 && toIdCounts.get(id) === 1) tokens.set(id, Symbol(id));\n }\n\n const indexDescendant = (element: Element): void => {\n if (getKey(element)) return;\n for (const descendant of element.querySelectorAll('[id]')) {\n const token = tokens.get(descendant.id);\n if (!token) continue;\n correspondence.set(element, token);\n return;\n }\n };\n fromElements.forEach(indexDescendant);\n toElements.forEach(indexDescendant);\n return correspondence;\n};\n\nconst createContext = (options: MorphOptions = {}) => {\n const context = {\n key: options.key ?? ((element: Element) => element.getAttribute('key')),\n lookahead: options.lookahead ?? false,\n updating: options.updating ?? noop,\n updated: options.updated ?? noop,\n removing: options.removing ?? noop,\n removed: options.removed ?? noop,\n remove: options.remove ?? ((node: Node) => { node.parentNode?.removeChild(node); }),\n adding: options.adding ?? noop,\n added: options.added ?? noop,\n skipUntilCondition: null as ((node: Node) => boolean) | null,\n };\n\n const getKey = (node: Node | null): unknown => (\n node instanceof Element ? context.key(node) : null\n );\n\n const requiresReplacement = (from: Node, to: Node): boolean => (\n from.nodeType !== to.nodeType\n || from.nodeName !== to.nodeName\n || getKey(from) !== getKey(to)\n || (from instanceof Element\n && to instanceof Element\n && from.getAttribute('x-data') !== to.getAttribute('x-data'))\n );\n\n const insertNodeBefore = (\n parent: Parent | Block,\n source: Node,\n before: Node | null,\n ): {inserted: false; node: null} | {inserted: true; node: AlpineNode} => {\n if (shouldSkip(context.adding, source)) return {inserted: false, node: null};\n const clone = source.cloneNode(true);\n parent.insertBefore(clone, before);\n context.added(clone);\n return {inserted: true, node: clone as AlpineNode};\n };\n\n const removeNode = (node: Node): boolean => {\n if (shouldSkip(context.removing, node)) return false;\n context.remove(node);\n context.removed(node);\n return true;\n };\n\n const removeOwnedRange = (range: OwnedRange): boolean => {\n if (shouldSkip(context.removing, range.start)) return false;\n context.remove(range.start);\n context.removed(range.start);\n return true;\n };\n\n const replaceNode = (from: Node, to: Node): boolean => {\n if (shouldSkip(context.removing, from)) return false;\n const clone = to.cloneNode(true);\n if (shouldSkip(context.adding, clone)) return false;\n from.parentNode?.insertBefore(clone, from);\n context.remove(from);\n context.removed(from);\n context.added(clone);\n return true;\n };\n\n const patchAttributes = (from: AlpineNode & Element, to: Element): boolean => {\n if (from._x_transitioning) return false;\n if ((from._x_isShown && !(to as AlpineNode)._x_isShown)\n || (!from._x_isShown && (to as AlpineNode)._x_isShown)) return false;\n\n let changed = false;\n const existing = Array.from(from.attributes);\n for (let index = existing.length - 1; index >= 0; index -= 1) {\n const name = existing[index]!.name;\n if (to.hasAttribute(name)) continue;\n if (name === 'open' && from instanceof HTMLDialogElement && from.open) from.close();\n else from.removeAttribute(name);\n changed = true;\n }\n const incoming = Array.from(to.attributes);\n for (let index = incoming.length - 1; index >= 0; index -= 1) {\n const attribute = incoming[index]!;\n const {name, value} = attribute;\n if (from.getAttribute(name) === value) continue;\n setIncomingAttribute(from, attribute);\n changed = true;\n }\n return changed;\n };\n\n let patchChildren: (from: Parent | Block, to: Parent | Block) => boolean;\n\n const patchNode = (from: AlpineNode, to: AlpineNode, pruning: PruningPolicy): boolean => {\n if (from instanceof Element && from.hasAttribute('data-ui-ignore-morph')) return false;\n if (requiresReplacement(from, to)) return replaceNode(from, to);\n if (pruning === 'before-descendant-hook'\n && from.nodeType !== Node.COMMENT_NODE\n && isServerEqual(from, to)) return false;\n\n let childrenOnly = false;\n let skipChildren = false;\n let skip = false;\n const skipUntil = (predicate: (node: Node) => boolean): void => {\n context.skipUntilCondition = predicate;\n };\n context.updating(\n from,\n to,\n () => { childrenOnly = true; },\n () => { skip = true; },\n () => { skipChildren = true; },\n skipUntil,\n );\n if (skip) return false;\n\n // Descendants that are server-identical are opaque. The root is checked only\n // after its hook has had the opportunity to mutate the incoming tree.\n if (isServerEqual(from, to)) return false;\n\n let changed = false;\n if (from.nodeType === Node.ELEMENT_NODE && alpineInstance) {\n alpineInstance.cloneNode(from as Element, to as Element);\n if (from._x_teleport && to._x_teleport) {\n changed = patch(from._x_teleport, to._x_teleport) || changed;\n }\n }\n\n if (to.nodeType === Node.TEXT_NODE || to.nodeType === Node.COMMENT_NODE) {\n if (from.nodeValue === to.nodeValue) return false;\n from.nodeValue = to.nodeValue;\n context.updated(from, to);\n return true;\n }\n\n if (!childrenOnly) changed = patchAttributes(from as AlpineNode & Element, to as Element) || changed;\n if (!skipChildren) changed = patchChildren(from as unknown as Parent, to as unknown as Parent) || changed;\n if (changed) context.updated(from, to);\n return changed;\n };\n\n const patch = (from: AlpineNode, to: AlpineNode): boolean => (\n patchNode(from, to, 'before-descendant-hook')\n );\n const patchRoot = (from: AlpineNode, to: AlpineNode): boolean => (\n patchNode(from, to, 'after-root-hook')\n );\n\n patchChildren = (from: Parent | Block, to: Parent | Block): boolean => {\n const fromElements = Array.from(from.children);\n const toElements = Array.from(to.children);\n const correspondence = buildDescendantCorrespondence(fromElements, toElements, getKey);\n\n const childKey = (node: Node | null): unknown => (\n node ? getKey(node) || correspondence.get(node) : null\n );\n const keyed = new Map<unknown, AlpineNode>();\n for (const element of fromElements) {\n const key = childKey(element);\n if (key) keyed.set(key, element as AlpineNode);\n }\n\n let changed = false;\n let currentFrom = from.firstChild as AlpineNode | null;\n let currentTo = to.firstChild as AlpineNode | null;\n\n incoming: while (currentTo) {\n seedDynamicId(currentTo, currentFrom);\n\n if (context.skipUntilCondition) {\n const fromDone = !currentFrom || context.skipUntilCondition(currentFrom);\n const toDone = context.skipUntilCondition(currentTo);\n if (fromDone && toDone) context.skipUntilCondition = null;\n else {\n if (!fromDone && currentFrom) currentFrom = afterOwnedRange(from, ownedRange(currentFrom));\n if (!toDone) currentTo = nextSibling(to, currentTo) as AlpineNode | null;\n continue;\n }\n }\n\n if (!currentFrom) {\n const addition = insertNodeBefore(from, currentTo, null);\n changed = addition.inserted || changed;\n currentTo = nextSibling(to, currentTo) as AlpineNode | null;\n continue;\n }\n\n if (isConditionalStart(currentFrom) && isConditionalStart(currentTo)) {\n const fromEnd = conditionalEnd(from, currentFrom);\n const toEnd = conditionalEnd(to, currentTo);\n changed = patchChildren(new Block(currentFrom as Comment, fromEnd), new Block(currentTo as Comment, toEnd)) || changed;\n currentFrom = nextSibling(from, fromEnd) as AlpineNode | null;\n currentTo = nextSibling(to, toEnd) as AlpineNode | null;\n continue;\n } else {\n if (context.lookahead\n && currentFrom instanceof Element\n && !currentFrom.isEqualNode(currentTo)) {\n let lookahead = nextSibling(to, currentTo) as AlpineNode | null;\n while (lookahead) {\n if (lookahead instanceof Element && currentFrom.isEqualNode(lookahead)) {\n const addition = insertNodeBefore(from, currentTo, currentFrom);\n if (!addition.inserted) {\n currentTo = nextSibling(to, currentTo) as AlpineNode | null;\n continue incoming;\n }\n currentFrom = addition.node;\n changed = true;\n break;\n }\n lookahead = nextSibling(to, lookahead) as AlpineNode | null;\n }\n }\n\n const toKey = childKey(currentTo);\n const fromKey = childKey(currentFrom);\n if (toKey !== fromKey) {\n const keyedMatch = toKey ? keyed.get(toKey) : undefined;\n if (keyedMatch) {\n moveOwnedRangeBefore(from, ownedRange(keyedMatch), currentFrom);\n currentFrom = keyedMatch;\n changed = true;\n } else if (toKey || fromKey) {\n const addition = insertNodeBefore(from, currentTo, currentFrom);\n if (!addition.inserted) {\n currentTo = nextSibling(to, currentTo) as AlpineNode | null;\n continue;\n }\n currentFrom = addition.node;\n changed = true;\n }\n }\n\n const afterFrom = afterOwnedRange(from, ownedRange(currentFrom));\n changed = patch(currentFrom, currentTo) || changed;\n currentFrom = afterFrom;\n }\n\n currentTo = nextSibling(to, currentTo) as AlpineNode | null;\n }\n\n while (currentFrom) {\n const range = ownedRange(currentFrom);\n const after = afterOwnedRange(from, range);\n changed = (range.end === range.start ? removeNode(currentFrom) : removeOwnedRange(range)) || changed;\n currentFrom = after;\n }\n return changed;\n };\n\n return {patchChildren, patchRoot};\n};\n\nconst morph = (from: Element, toHtml: Element | string, options: MorphOptions = {}): Element => {\n const to = (typeof toHtml === 'string' ? createElement(toHtml) : toHtml) as AlpineNode & Element;\n const source = from as AlpineNode & Element;\n if (alpineInstance?.closestDataStack && !source._x_dataStack) {\n to._x_dataStack = alpineInstance.closestDataStack(source);\n if (to._x_dataStack) alpineInstance.cloneNode(source, to);\n }\n createContext(options).patchRoot(source, to);\n return from;\n};\n\nconst morphBetween = (\n startMarker: Comment,\n endMarker: Comment,\n toHtml: Element | string,\n options: MorphOptions = {},\n): void => {\n const fromContainer = startMarker.parentNode as AlpineNode & Parent;\n const toContainer = typeof toHtml === 'string'\n ? (() => {\n const container = document.createElement('div');\n container.insertAdjacentHTML('beforeend', toHtml);\n return container;\n })()\n : toHtml;\n const toStart = document.createComment('[morph-start]');\n const toEnd = document.createComment('[morph-end]');\n toContainer.insertBefore(toStart, toContainer.firstChild);\n toContainer.appendChild(toEnd);\n if (alpineInstance?.closestDataStack) {\n (toContainer as AlpineNode)._x_dataStack = alpineInstance.closestDataStack(fromContainer);\n if ((toContainer as AlpineNode)._x_dataStack) alpineInstance.cloneNode(fromContainer as unknown as Element, toContainer);\n }\n createContext(options).patchChildren(\n new Block(startMarker, endMarker),\n new Block(toStart, toEnd),\n );\n};\n\nconst trellisMorph = (AlpineInstance: Alpine.Alpine): void => {\n const instance = AlpineInstance as MorphAlpine;\n alpineInstance = instance;\n instance.morph = morph;\n instance.morphBetween = morphBetween;\n};\n\nexport {morph, morphBetween};\nexport default trellisMorph;\n","type SubmitterElement = HTMLButtonElement | HTMLInputElement;\n\ntype ConfirmProceed = () => void;\ntype ConfirmCancel = () => void;\n\ntype ConfirmEventDetail = {\n form: HTMLFormElement;\n message: string;\n submitter: SubmitterElement | null;\n triggeringEvent: SubmitEvent;\n proceed: ConfirmProceed;\n cancel: ConfirmCancel;\n};\n\ntype ConfirmRuntimeOptions = {\n root?: Document;\n};\n\nconst DEFAULT_CONFIRM_MESSAGE = 'Are you sure?';\n\nlet removeSubmitListener: (() => void) | null = null;\nconst bypassedForms = new WeakSet<HTMLFormElement>();\n\nconst isSubmitterElement = (value: unknown): value is SubmitterElement => (\n value instanceof HTMLButtonElement || value instanceof HTMLInputElement\n);\n\nconst confirmMessageFor = ({form, submitter}: {\n form: HTMLFormElement;\n submitter: SubmitterElement | null;\n}): string | null => {\n const submitterMessage = submitter?.dataset.uiConfirm;\n if (submitterMessage !== undefined) return submitterMessage || DEFAULT_CONFIRM_MESSAGE;\n\n const formMessage = form.dataset.uiConfirm;\n if (formMessage !== undefined) return formMessage || DEFAULT_CONFIRM_MESSAGE;\n\n return null;\n};\n\nconst queueConfirmedSubmit = ({form, submitter}: {\n form: HTMLFormElement;\n submitter: SubmitterElement | null;\n}): void => {\n // Chromium can retain the form's submission guard through the current microtask checkpoint.\n window.setTimeout(() => {\n if (!form.isConnected || (submitter && submitter.form !== form)) return;\n\n bypassedForms.add(form);\n try {\n form.requestSubmit(submitter ?? undefined);\n } finally {\n bypassedForms.delete(form);\n }\n }, 0);\n};\n\nconst handleSubmit = (event: SubmitEvent): void => {\n const form = event.target;\n if (!(form instanceof HTMLFormElement)) return;\n\n if (bypassedForms.has(form)) {\n bypassedForms.delete(form);\n return;\n }\n\n const submitter = isSubmitterElement(event.submitter) ? event.submitter : null;\n const message = confirmMessageFor({form, submitter});\n if (message === null) return;\n\n event.preventDefault();\n\n let settled = false;\n const proceed = (): void => {\n if (settled) return;\n settled = true;\n queueConfirmedSubmit({form, submitter});\n };\n const cancel = (): void => {\n settled = true;\n };\n const confirmEvent = new CustomEvent<ConfirmEventDetail>('ui:confirm', {\n bubbles: true,\n cancelable: true,\n detail: {\n form,\n message,\n submitter,\n triggeringEvent: event,\n proceed,\n cancel,\n },\n });\n\n form.dispatchEvent(confirmEvent);\n if (confirmEvent.defaultPrevented) return;\n\n if (window.confirm(message)) {\n proceed();\n } else {\n cancel();\n }\n};\n\nconst registerConfirm = ({root = document}: ConfirmRuntimeOptions = {}): void => {\n if (removeSubmitListener) return;\n\n root.addEventListener('submit', handleSubmit as EventListener, {capture: true});\n removeSubmitListener = (): void => root.removeEventListener('submit', handleSubmit as EventListener, {capture: true});\n};\n\nconst unregisterConfirm = (): void => {\n removeSubmitListener?.();\n removeSubmitListener = null;\n};\n\nexport {registerConfirm, unregisterConfirm};\nexport type {ConfirmCancel, ConfirmEventDetail, ConfirmProceed, ConfirmRuntimeOptions};\n","import {writePreference} from './preferences';\nimport type {Alpine as AlpineType} from 'alpinejs';\n\nconst THEME_VALUES = ['light', 'dark', 'system'] as const;\ntype ThemeMode = typeof THEME_VALUES[number];\ntype ResolvedThemeMode = Exclude<ThemeMode, 'system'>;\n\ntype ThemeChangeDetail = {\n mode: ThemeMode;\n resolved: ResolvedThemeMode;\n dark: boolean;\n on: boolean;\n};\n\ntype ThemeStore = {\n mode: ThemeMode;\n resolved: ResolvedThemeMode;\n readonly dark: boolean;\n readonly on: boolean;\n set: (mode: ThemeMode) => void;\n toggle: () => void;\n};\n\nconst isThemeMode = (value: unknown): value is ThemeMode => (\n typeof value === 'string' && THEME_VALUES.includes(value as ThemeMode)\n);\n\nconst normalizeThemeMode = (value: unknown): ThemeMode => (\n isThemeMode(value) ? value : 'system'\n);\n\nconst storageKey = (): string => (\n document.documentElement.dataset.themeStorageKey || 'trellis-ui-theme'\n);\n\nconst fallbackMode = (): ThemeMode => normalizeThemeMode(document.documentElement.dataset.theme);\n\nconst prefersDark = (): boolean => (\n window.matchMedia('(prefers-color-scheme: dark)').matches\n);\n\nconst resolveDark = (mode: ThemeMode): boolean => (\n mode === 'dark' || (mode === 'system' && prefersDark())\n);\n\nconst applyThemeMode = (mode: ThemeMode): ThemeChangeDetail => {\n const dark = resolveDark(mode);\n const resolved: ResolvedThemeMode = dark ? 'dark' : 'light';\n const root = document.documentElement;\n\n root.classList.toggle('dark', dark);\n root.classList.toggle('light', mode === 'light');\n root.dataset.theme = mode;\n root.dataset.resolvedTheme = resolved;\n root.dispatchEvent(new CustomEvent<ThemeChangeDetail>('ui:theme-change', {\n detail: {mode, resolved, dark, on: dark},\n bubbles: true,\n }));\n\n return {mode, resolved, dark, on: dark};\n};\n\nconst createThemeStore = (): ThemeStore => {\n const initial = applyThemeMode(fallbackMode());\n\n return {\n mode: initial.mode,\n resolved: initial.resolved,\n get dark(): boolean {\n return this.resolved === 'dark';\n },\n get on(): boolean {\n return this.dark;\n },\n set(mode: ThemeMode): void {\n const nextMode = normalizeThemeMode(mode);\n void writePreference('themes', storageKey(), nextMode);\n const next = applyThemeMode(nextMode);\n this.mode = next.mode;\n this.resolved = next.resolved;\n },\n toggle(): void {\n this.set(this.resolved === 'dark' ? 'light' : 'dark');\n },\n };\n};\n\nconst registerThemeStore = (AlpineInstance: AlpineType): void => {\n if (typeof AlpineInstance.store !== 'function') return;\n\n const existingStore = AlpineInstance.store('theme') as ThemeStore | undefined;\n const store = existingStore ?? createThemeStore();\n\n AlpineInstance.store('theme', store);\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {\n if (store.mode !== 'system') return;\n const next = applyThemeMode('system');\n store.resolved = next.resolved;\n });\n};\n\nexport {\n applyThemeMode,\n createThemeStore,\n registerThemeStore,\n type ResolvedThemeMode,\n type ThemeChangeDetail,\n type ThemeStore,\n type ThemeMode,\n};\n","import type {CodecFn} from './codecs';\n\ntype PropKind = 'string' | 'number' | 'boolean' | 'enum' | 'json';\n\ntype ManifestProp = {\n type: PropKind;\n default?: unknown;\n values?: readonly string[];\n description?: string;\n initialOnly?: boolean;\n};\n\ntype ManifestPart = {\n selector: string;\n description: string;\n};\n\ntype ManifestToken = {\n name: string;\n description: string;\n};\n\ntype ManifestAcceptedEvent = {\n description: string;\n detail?: Record<string, string>;\n};\n\ntype ComponentManifestMeta = {\n group?: string;\n};\n\ntype ComponentManifestFields = {\n name: string;\n title: string;\n description: string;\n meta?: ComponentManifestMeta;\n slots?: Record<string, string>;\n events?: Record<string, string>;\n acceptedEvents?: Record<string, ManifestAcceptedEvent>;\n parts?: Record<string, ManifestPart>;\n tokens?: readonly ManifestToken[];\n};\n\ntype ManualComponentManifest = ComponentManifestFields & {\n props?: Record<string, ManifestProp>;\n propSchema?: never;\n};\n\ntype SchemaComponentManifest = ComponentManifestFields & {\n props: Record<string, ManifestProp>;\n propSchema: Record<string, CodecFn<unknown>>;\n};\n\ntype ComponentManifest = ManualComponentManifest | SchemaComponentManifest;\n\ntype ManifestPropDetails = Pick<ManifestProp, 'description'> & {\n name?: string;\n initialOnly?: boolean;\n};\n\ntype SchemaPropDetails<T extends Record<string, CodecFn<unknown>>> = {\n [K in keyof T]?: ManifestPropDetails;\n};\n\ntype DefineManifestOptions<T extends ManualComponentManifest> = {\n manifest: T & {propSchema?: never};\n};\n\ntype PropsFromSchemaOptions<T extends Record<string, CodecFn<unknown>>> = {\n schema: T;\n details: SchemaPropDetails<T>;\n};\n\ntype DefineSchemaManifestOptions<\n TSchema extends Record<string, CodecFn<unknown>>,\n TManifest extends ComponentManifestFields,\n> = {\n schema: TSchema;\n details: SchemaPropDetails<TSchema>;\n templateProps?: Record<string, ManifestProp>;\n templatePropsPosition?: 'before' | 'after';\n manifest: TManifest & {props?: never; propSchema?: never};\n};\n\nconst toSnake = (value: string): string => value.replace(/([A-Z])/g, '_$1').toLowerCase();\n\nconst defineManifest = <const T extends ManualComponentManifest>({manifest}: DefineManifestOptions<T>): Readonly<T> => {\n if ('propSchema' in manifest) throw new Error('Manual manifests cannot supply propSchema.');\n return Object.freeze(manifest);\n};\n\nconst propsFromSchema = <const T extends Record<string, CodecFn<unknown>>>({\n schema,\n details,\n}: PropsFromSchemaOptions<T>): Record<string, ManifestProp> => {\n const props: Record<string, ManifestProp> = {};\n\n Object.entries(schema).forEach(([schemaKey, codec]) => {\n const propDetails = details[schemaKey as keyof T] ?? {};\n const meta = codec.meta;\n const propName = propDetails.name ?? toSnake(schemaKey);\n if (propName in props) {\n throw new Error(`Schema property ${schemaKey} resolves to duplicate manifest property ${propName}.`);\n }\n const prop: ManifestProp = {\n type: meta.type,\n default: meta.default,\n };\n\n if (meta.values) prop.values = meta.values;\n if (propDetails.description) prop.description = propDetails.description;\n if (propDetails.initialOnly) prop.initialOnly = true;\n\n props[propName] = prop;\n });\n\n return props;\n};\n\nconst defineSchemaManifest = <\n const TSchema extends Record<string, CodecFn<unknown>>,\n const TManifest extends ComponentManifestFields,\n>({\n schema,\n details,\n templateProps = {},\n templatePropsPosition = 'after',\n manifest,\n}: DefineSchemaManifestOptions<TSchema, TManifest>): Readonly<TManifest & {\n props: Record<string, ManifestProp>;\n propSchema: TSchema;\n}> => {\n const schemaProps = propsFromSchema({schema, details});\n Object.keys(templateProps).forEach((propName) => {\n if (propName in schemaProps) {\n throw new Error(`Template prop ${propName} collides with schema property ${propName}.`);\n }\n });\n\n const props = templatePropsPosition === 'before'\n ? {...templateProps, ...schemaProps}\n : {...schemaProps, ...templateProps};\n const {name, title, description, meta, ...rest} = manifest;\n const result = {\n name,\n title,\n description,\n ...(meta ? {meta} : {}),\n propSchema: schema,\n props,\n ...rest,\n } as TManifest & {props: Record<string, ManifestProp>; propSchema: TSchema};\n\n return Object.freeze(result);\n};\n\nexport {defineManifest, defineSchemaManifest, propsFromSchema};\nexport type {\n ComponentManifest,\n DefineManifestOptions,\n DefineSchemaManifestOptions,\n ManualComponentManifest,\n ManifestPart,\n ManifestProp,\n ManifestPropDetails,\n ManifestAcceptedEvent,\n ComponentManifestMeta,\n ManifestToken,\n PropsFromSchemaOptions,\n PropKind,\n SchemaPropDetails,\n SchemaComponentManifest,\n};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {registerAnimateDirective} from './directives/animate';\nimport {registerAnimationLifecycle} from './motion/lifecycle';\nimport {registerRequestDirective} from './directives/request';\nimport {registerTransitionDirective} from './directives/transition';\nimport morph from './runtime/morph-engine';\nimport {setPropReactivity} from './runtime/codecs';\nimport {registerConfirm} from './runtime/confirm';\nimport {registerStream} from './runtime/engine/stream';\nimport {registerThemeStore} from './runtime/theme';\nimport {registerUiMagic, ui} from './runtime/ui';\n\ntype CoreRuntimePlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst coreRuntime: CoreRuntimePlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n setPropReactivity(AlpineInstance.reactive);\n AlpineInstance.plugin(morph);\n registerAnimationLifecycle(async () => { await AlpineInstance.nextTick(); });\n registerUiMagic(AlpineInstance);\n registerAnimateDirective(AlpineInstance);\n registerTransitionDirective(AlpineInstance);\n registerThemeStore(AlpineInstance);\n registerConfirm();\n registerRequestDirective(AlpineInstance);\n registerStream(AlpineInstance);\n};\n\nexport {coreRuntime, ui};\nexport default coreRuntime;\nexport type {CoreRuntimePlugin};\nexport {\n bool,\n createAlpineMachine,\n createMachine,\n decodeProps,\n defineAlpineData,\n defineManifest,\n defineSchemaManifest,\n defineProps,\n defineStyles,\n json,\n mergeBindings,\n number,\n oneOf,\n propsFromSchema,\n resolveStyle,\n string,\n createTransitionCoordinator,\n defineHook,\n} from './runtime';\nexport type {\n AlpineMachine,\n AlpineMachineOwner,\n AlpinePropsChangedEvent,\n AlpineDataFactory,\n AlpineDataRegistrar,\n CodecFn,\n ComponentManifest,\n CreateAlpineMachineOptions,\n DecodePropsOptions,\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 DefineManifestOptions,\n DefineSchemaManifestOptions,\n DefineStylesOptions,\n ManifestPart,\n ManifestProp,\n ManifestPropDetails,\n ManifestToken,\n ManualComponentManifest,\n MachineFactoryScope,\n BindingInput,\n PropState,\n PropsFromSchemaOptions,\n MergeBindingsOptions,\n ResolveStyleOptions,\n SchemaPropDetails,\n SchemaComponentManifest,\n SchemaToProps,\n StyleDefinition,\n StylePart,\n StyleProps,\n TrellisAlpineComponent,\n AnyTransitionHook,\n TransitionCallback,\n TransitionContext,\n TransitionCoordinator,\n TransitionCoordinatorOptions,\n TransitionEventCreator,\n TransitionForHook,\n TransitionHookDefinition,\n UiGetOptions,\n UiRequestOptions,\n UiRuntime,\n} from './runtime';\nexport {registerTransitionDirective} from './directives/transition';\n\nexport type {AnimationRecipe, AnimationPhase, AnimationContext} from './motion/registry';\nexport type {MotionConfiguration} from './motion/config';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from "./core-Z4zMCScs.js";
2
- export {default} from "./core-Z4zMCScs.js";
1
+ export * from "./core-CX4J7tsN.js";
2
+ export {default} from "./core-CX4J7tsN.js";