@spinjs/components 0.1.0-preview.2 → 0.2.0-alpha.1

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 (834) hide show
  1. package/README.md +15 -5
  2. package/dist/angle-slider/angle-slider.events.d.ts +2 -3
  3. package/dist/angle-slider/angle-slider.machine.d.ts +4 -5
  4. package/dist/angle-slider/angle-slider.machine.js +2 -2
  5. package/dist/angle-slider/angle-slider.presentation.d.ts +10 -11
  6. package/dist/angle-slider/angle-slider.presentation.js +2 -2
  7. package/dist/angle-slider/angle-slider.state.d.ts +1 -2
  8. package/dist/angle-slider/angle-slider.state.js +1 -1
  9. package/dist/angle-slider/angle-slider.transitions.d.ts +2 -3
  10. package/dist/angle-slider/examples/basic.html +2 -2
  11. package/dist/angle-slider/examples/basic.html.js +5 -0
  12. package/dist/angle-slider/examples/knob.html +1 -1
  13. package/dist/angle-slider/examples/knob.html.js +5 -0
  14. package/dist/angle-slider/examples/labeled.html +11 -11
  15. package/dist/angle-slider/examples/labeled.html.js +5 -0
  16. package/dist/angle-slider/examples/marks.html +2 -2
  17. package/dist/angle-slider/examples/marks.html.js +5 -0
  18. package/dist/async-list/async-list.events.d.ts +2 -3
  19. package/dist/async-list/async-list.machine.d.ts +2 -3
  20. package/dist/async-list/async-list.machine.js +1 -1
  21. package/dist/async-list/async-list.presentation.d.ts +13 -14
  22. package/dist/async-list/async-list.presentation.js +2 -2
  23. package/dist/async-list/async-list.state.d.ts +1 -2
  24. package/dist/async-list/async-list.state.js +1 -1
  25. package/dist/async-list/async-list.transitions.d.ts +3 -4
  26. package/dist/async-list/examples/basic.html +7 -7
  27. package/dist/async-list/examples/basic.html.js +5 -0
  28. package/dist/avatar/avatar.events.d.ts +2 -3
  29. package/dist/avatar/avatar.machine.d.ts +12 -4
  30. package/dist/avatar/avatar.machine.js +1 -1
  31. package/dist/avatar/avatar.presentation.d.ts +5 -6
  32. package/dist/avatar/avatar.presentation.js +1 -1
  33. package/dist/avatar/avatar.state.d.ts +1 -2
  34. package/dist/avatar/avatar.state.js +1 -1
  35. package/dist/avatar/avatar.transitions.d.ts +2 -3
  36. package/dist/avatar/examples/badge.html +2 -2
  37. package/dist/avatar/examples/badge.html.js +5 -0
  38. package/dist/avatar/examples/badgeminimal.html +1 -1
  39. package/dist/avatar/examples/badgeminimal.html.js +5 -0
  40. package/dist/avatar/examples/basic.html +1 -1
  41. package/dist/avatar/examples/basic.html.js +5 -0
  42. package/dist/avatar/examples/count.html +5 -5
  43. package/dist/avatar/examples/count.html.js +5 -0
  44. package/dist/avatar/examples/fallback.html +1 -1
  45. package/dist/avatar/examples/fallback.html.js +5 -0
  46. package/dist/avatar/examples/group.html +4 -4
  47. package/dist/avatar/examples/group.html.js +5 -0
  48. package/dist/avatar/examples/icon.html +2 -2
  49. package/dist/avatar/examples/icon.html.js +5 -0
  50. package/dist/avatar/examples/multiples.html +4 -4
  51. package/dist/avatar/examples/multiples.html.js +5 -0
  52. package/dist/avatar/examples/pills.html +12 -12
  53. package/dist/avatar/examples/pills.html.js +5 -0
  54. package/dist/avatar/examples/pillsolid.html +4 -4
  55. package/dist/avatar/examples/pillsolid.html.js +5 -0
  56. package/dist/avatar/examples/rounded.html +1 -1
  57. package/dist/avatar/examples/rounded.html.js +5 -0
  58. package/dist/avatar/examples/status.html +2 -2
  59. package/dist/avatar/examples/status.html.js +5 -0
  60. package/dist/avatar/examples/statusminimal.html +1 -1
  61. package/dist/avatar/examples/statusminimal.html.js +5 -0
  62. package/dist/avatar/examples/trusted.html +6 -6
  63. package/dist/avatar/examples/trusted.html.js +5 -0
  64. package/dist/avatar/examples/verification.html +3 -3
  65. package/dist/avatar/examples/verification.html.js +5 -0
  66. package/dist/carousel/carousel.events.d.ts +2 -3
  67. package/dist/carousel/carousel.machine.d.ts +3 -4
  68. package/dist/carousel/carousel.machine.js +1 -1
  69. package/dist/carousel/carousel.presentation.d.ts +14 -15
  70. package/dist/carousel/carousel.presentation.js +2 -2
  71. package/dist/carousel/carousel.state.d.ts +1 -2
  72. package/dist/carousel/carousel.state.js +1 -1
  73. package/dist/carousel/carousel.transitions.d.ts +2 -3
  74. package/dist/carousel/examples/autoplay.html +8 -8
  75. package/dist/carousel/examples/autoplay.html.js +5 -0
  76. package/dist/carousel/examples/basic.html +7 -7
  77. package/dist/carousel/examples/basic.html.js +5 -0
  78. package/dist/carousel/examples/cards.html +8 -8
  79. package/dist/carousel/examples/cards.html.js +5 -0
  80. package/dist/carousel/examples/hero.html +6 -6
  81. package/dist/carousel/examples/hero.html.js +5 -0
  82. package/dist/carousel/examples/infinite.html +7 -7
  83. package/dist/carousel/examples/infinite.html.js +5 -0
  84. package/dist/carousel/examples/minimal.html +5 -5
  85. package/dist/carousel/examples/minimal.html.js +5 -0
  86. package/dist/carousel/examples/testimonials.html +10 -10
  87. package/dist/carousel/examples/testimonials.html.js +5 -0
  88. package/dist/carousel/examples/thumbnails.html +8 -8
  89. package/dist/carousel/examples/thumbnails.html.js +5 -0
  90. package/dist/carousel/examples/vertical.html +8 -8
  91. package/dist/carousel/examples/vertical.html.js +5 -0
  92. package/dist/cascade-select/cascade.events.d.ts +2 -3
  93. package/dist/cascade-select/cascade.machine.d.ts +3 -4
  94. package/dist/cascade-select/cascade.machine.js +1 -1
  95. package/dist/cascade-select/cascade.presentation.d.ts +8 -9
  96. package/dist/cascade-select/cascade.presentation.js +12 -12
  97. package/dist/cascade-select/cascade.state.d.ts +1 -2
  98. package/dist/cascade-select/cascade.state.js +1 -1
  99. package/dist/cascade-select/cascade.transitions.d.ts +2 -3
  100. package/dist/cascade-select/examples/basic.html +13 -11
  101. package/dist/cascade-select/examples/basic.html.js +5 -0
  102. package/dist/color-picker/color-picker.events.d.ts +3 -4
  103. package/dist/color-picker/color-picker.machine.d.ts +3 -3
  104. package/dist/color-picker/color-picker.machine.js +1 -1
  105. package/dist/color-picker/color-picker.presentation.d.ts +18 -19
  106. package/dist/color-picker/color-picker.presentation.js +4 -5
  107. package/dist/color-picker/color-picker.state.d.ts +2 -3
  108. package/dist/color-picker/color-picker.state.js +2 -2
  109. package/dist/color-picker/color-picker.transitions.d.ts +3 -4
  110. package/dist/color-picker/color.d.ts +39 -0
  111. package/dist/color-picker/color.js +401 -0
  112. package/dist/color-picker/examples/basic.html +14 -14
  113. package/dist/color-picker/examples/basic.html.js +5 -0
  114. package/dist/color-picker/examples/hue-wheel.html +9 -9
  115. package/dist/color-picker/examples/hue-wheel.html.js +5 -0
  116. package/dist/color-picker/examples/inline.html +8 -8
  117. package/dist/color-picker/examples/inline.html.js +5 -0
  118. package/dist/color-picker/examples/with-presets.html +10 -10
  119. package/dist/color-picker/examples/with-presets.html.js +5 -0
  120. package/dist/combobox/combobox.events.d.ts +2 -3
  121. package/dist/combobox/combobox.machine.d.ts +3 -4
  122. package/dist/combobox/combobox.machine.js +1 -1
  123. package/dist/combobox/combobox.presentation.d.ts +8 -9
  124. package/dist/combobox/combobox.presentation.js +3 -3
  125. package/dist/combobox/combobox.state.d.ts +1 -2
  126. package/dist/combobox/combobox.state.js +1 -1
  127. package/dist/combobox/combobox.transitions.d.ts +3 -4
  128. package/dist/combobox/examples/basic.html +7 -7
  129. package/dist/combobox/examples/basic.html.js +5 -0
  130. package/dist/combobox/examples/directory.html +7 -7
  131. package/dist/combobox/examples/directory.html.js +5 -0
  132. package/dist/combobox/examples/grouping.html +7 -7
  133. package/dist/combobox/examples/grouping.html.js +5 -0
  134. package/dist/combobox/examples/multiple.html +8 -8
  135. package/dist/combobox/examples/multiple.html.js +5 -0
  136. package/dist/compiler/emit.d.ts +6 -0
  137. package/dist/compiler/emit.js +217 -0
  138. package/dist/compiler/transform.d.ts +52 -0
  139. package/dist/compiler/transform.js +169 -0
  140. package/dist/controller.d.ts +2 -3
  141. package/dist/controller.js +1 -1
  142. package/dist/date-input/date-input.events.d.ts +2 -3
  143. package/dist/date-input/date-input.machine.d.ts +3 -3
  144. package/dist/date-input/date-input.machine.js +1 -1
  145. package/dist/date-input/date-input.presentation.d.ts +6 -7
  146. package/dist/date-input/date-input.presentation.js +1 -1
  147. package/dist/date-input/date-input.state.d.ts +1 -2
  148. package/dist/date-input/date-input.state.js +1 -1
  149. package/dist/date-input/date-input.transitions.d.ts +3 -4
  150. package/dist/date-input/examples/basic.html +3 -3
  151. package/dist/date-input/examples/basic.html.js +5 -0
  152. package/dist/date-picker/date-picker.events.d.ts +2 -3
  153. package/dist/date-picker/date-picker.machine.d.ts +2 -3
  154. package/dist/date-picker/date-picker.machine.js +1 -1
  155. package/dist/date-picker/date-picker.presentation.d.ts +14 -15
  156. package/dist/date-picker/date-picker.presentation.js +2 -2
  157. package/dist/date-picker/date-picker.state.d.ts +1 -2
  158. package/dist/date-picker/date-picker.state.js +1 -1
  159. package/dist/date-picker/date-picker.transitions.d.ts +3 -4
  160. package/dist/date-picker/examples/appointment.html +7 -7
  161. package/dist/date-picker/examples/appointment.html.js +5 -0
  162. package/dist/date-picker/examples/basic.html.js +5 -0
  163. package/dist/date-picker/examples/multiple.html.js +5 -0
  164. package/dist/date-picker/examples/pricing.html.js +5 -0
  165. package/dist/date-picker/examples/range.html.js +5 -0
  166. package/dist/date-picker/examples/unavailable.html.js +5 -0
  167. package/dist/editable/editable.events.d.ts +2 -3
  168. package/dist/editable/editable.machine.d.ts +3 -4
  169. package/dist/editable/editable.machine.js +1 -1
  170. package/dist/editable/editable.presentation.d.ts +6 -7
  171. package/dist/editable/editable.presentation.js +1 -1
  172. package/dist/editable/editable.state.d.ts +1 -2
  173. package/dist/editable/editable.state.js +1 -1
  174. package/dist/editable/editable.transitions.d.ts +3 -4
  175. package/dist/editable/examples/basic.html +7 -7
  176. package/dist/editable/examples/basic.html.js +5 -0
  177. package/dist/editable/examples/doubleclick.html +6 -6
  178. package/dist/editable/examples/doubleclick.html.js +5 -0
  179. package/dist/editable/examples/inline-edit.html +4 -4
  180. package/dist/editable/examples/inline-edit.html.js +5 -0
  181. package/dist/editable/examples/profile-field.html +7 -7
  182. package/dist/editable/examples/profile-field.html.js +5 -0
  183. package/dist/editable/examples/resize.html +6 -6
  184. package/dist/editable/examples/resize.html.js +5 -0
  185. package/dist/editable/examples/task-item.html +7 -7
  186. package/dist/editable/examples/task-item.html.js +5 -0
  187. package/dist/editable/examples/title-editor.html +3 -3
  188. package/dist/editable/examples/title-editor.html.js +5 -0
  189. package/dist/editable/examples/with-controls.html +4 -4
  190. package/dist/editable/examples/with-controls.html.js +5 -0
  191. package/dist/examples.d.ts +22 -0
  192. package/dist/examples.js +501 -0
  193. package/dist/file-upload/examples/avatar.html +8 -8
  194. package/dist/file-upload/examples/avatar.html.js +5 -0
  195. package/dist/file-upload/examples/basic.html +8 -8
  196. package/dist/file-upload/examples/basic.html.js +5 -0
  197. package/dist/file-upload/examples/directory.html +8 -8
  198. package/dist/file-upload/examples/directory.html.js +5 -0
  199. package/dist/file-upload/examples/dragdrop.html +8 -8
  200. package/dist/file-upload/examples/dragdrop.html.js +5 -0
  201. package/dist/file-upload/examples/files.html +9 -9
  202. package/dist/file-upload/examples/files.html.js +5 -0
  203. package/dist/file-upload/examples/images.html +8 -8
  204. package/dist/file-upload/examples/images.html.js +5 -0
  205. package/dist/file-upload/examples/paste.html +8 -8
  206. package/dist/file-upload/examples/paste.html.js +5 -0
  207. package/dist/file-upload/examples/table.html +7 -7
  208. package/dist/file-upload/examples/table.html.js +5 -0
  209. package/dist/file-upload/file-upload.events.d.ts +2 -3
  210. package/dist/file-upload/file-upload.machine.d.ts +5 -3
  211. package/dist/file-upload/file-upload.machine.js +1 -1
  212. package/dist/file-upload/file-upload.presentation.d.ts +10 -11
  213. package/dist/file-upload/file-upload.presentation.js +1 -1
  214. package/dist/file-upload/file-upload.state.d.ts +1 -2
  215. package/dist/file-upload/file-upload.state.js +1 -1
  216. package/dist/file-upload/file-upload.transitions.d.ts +3 -4
  217. package/dist/floating-panel/examples/basic.html +22 -23
  218. package/dist/floating-panel/examples/basic.html.js +5 -0
  219. package/dist/floating-panel/examples/calculator.html +41 -41
  220. package/dist/floating-panel/examples/calculator.html.js +5 -0
  221. package/dist/floating-panel/examples/chat.html +29 -29
  222. package/dist/floating-panel/examples/chat.html.js +5 -0
  223. package/dist/floating-panel/examples/media-player.html +27 -27
  224. package/dist/floating-panel/examples/media-player.html.js +5 -0
  225. package/dist/floating-panel/examples/notes.html +36 -36
  226. package/dist/floating-panel/examples/notes.html.js +5 -0
  227. package/dist/floating-panel/examples/settings.html +34 -34
  228. package/dist/floating-panel/examples/settings.html.js +5 -0
  229. package/dist/floating-panel/examples/task.html +40 -40
  230. package/dist/floating-panel/examples/task.html.js +5 -0
  231. package/dist/floating-panel/examples/video-call.html +25 -25
  232. package/dist/floating-panel/examples/video-call.html.js +5 -0
  233. package/dist/floating-panel/floating-panel.events.d.ts +2 -3
  234. package/dist/floating-panel/floating-panel.machine.d.ts +2 -3
  235. package/dist/floating-panel/floating-panel.machine.js +1 -1
  236. package/dist/floating-panel/floating-panel.presentation.d.ts +11 -13
  237. package/dist/floating-panel/floating-panel.presentation.js +3 -6
  238. package/dist/floating-panel/floating-panel.state.d.ts +1 -2
  239. package/dist/floating-panel/floating-panel.state.js +1 -1
  240. package/dist/floating-panel/floating-panel.transitions.d.ts +3 -4
  241. package/dist/hover-card/examples/basic.html +5 -5
  242. package/dist/hover-card/examples/basic.html.js +5 -0
  243. package/dist/hover-card/examples/controlled.html +9 -10
  244. package/dist/hover-card/examples/controlled.html.js +5 -0
  245. package/dist/hover-card/examples/custom-positioning.html +8 -8
  246. package/dist/hover-card/examples/custom-positioning.html.js +5 -0
  247. package/dist/hover-card/examples/link.html +2 -2
  248. package/dist/hover-card/examples/link.html.js +5 -0
  249. package/dist/hover-card/examples/product.html +9 -9
  250. package/dist/hover-card/examples/product.html.js +5 -0
  251. package/dist/hover-card/examples/user.html +11 -11
  252. package/dist/hover-card/examples/user.html.js +5 -0
  253. package/dist/hover-card/examples/with-arrow.html +9 -9
  254. package/dist/hover-card/examples/with-arrow.html.js +5 -0
  255. package/dist/hover-card/hover-card.controller-def.d.ts +2 -4
  256. package/dist/hover-card/hover-card.controller-def.js +1 -1
  257. package/dist/image-cropper/crop-geometry.d.ts +1 -2
  258. package/dist/image-cropper/crop-geometry.js +1 -1
  259. package/dist/image-cropper/examples/basic.html +3 -3
  260. package/dist/image-cropper/examples/basic.html.js +5 -0
  261. package/dist/image-cropper/examples/circle.html +3 -3
  262. package/dist/image-cropper/examples/circle.html.js +5 -0
  263. package/dist/image-cropper/image-cropper.events.d.ts +2 -3
  264. package/dist/image-cropper/image-cropper.machine.d.ts +3 -4
  265. package/dist/image-cropper/image-cropper.machine.js +2 -2
  266. package/dist/image-cropper/image-cropper.presentation.d.ts +7 -8
  267. package/dist/image-cropper/image-cropper.presentation.js +2 -2
  268. package/dist/image-cropper/image-cropper.state.d.ts +1 -2
  269. package/dist/image-cropper/image-cropper.state.js +1 -1
  270. package/dist/image-cropper/image-cropper.transitions.d.ts +3 -4
  271. package/dist/index.d.ts +28 -13
  272. package/dist/index.js +21 -14
  273. package/dist/listbox/examples/basic.html +9 -9
  274. package/dist/listbox/examples/basic.html.js +5 -0
  275. package/dist/listbox/examples/controlled.html +9 -9
  276. package/dist/listbox/examples/controlled.html.js +5 -0
  277. package/dist/listbox/examples/countries.html +9 -9
  278. package/dist/listbox/examples/countries.html.js +5 -0
  279. package/dist/listbox/examples/grouped.html +9 -9
  280. package/dist/listbox/examples/grouped.html.js +5 -0
  281. package/dist/listbox/examples/icons.html +10 -10
  282. package/dist/listbox/examples/icons.html.js +5 -0
  283. package/dist/listbox/examples/multiple.html +9 -9
  284. package/dist/listbox/examples/multiple.html.js +5 -0
  285. package/dist/listbox/examples/priority.html +9 -9
  286. package/dist/listbox/examples/priority.html.js +5 -0
  287. package/dist/listbox/examples/settings.html +9 -9
  288. package/dist/listbox/examples/settings.html.js +5 -0
  289. package/dist/listbox/listbox.events.d.ts +2 -3
  290. package/dist/listbox/listbox.machine.d.ts +2 -3
  291. package/dist/listbox/listbox.machine.js +1 -1
  292. package/dist/listbox/listbox.presentation.d.ts +6 -5
  293. package/dist/listbox/listbox.presentation.js +1 -1
  294. package/dist/listbox/listbox.state.d.ts +1 -2
  295. package/dist/listbox/listbox.state.js +1 -1
  296. package/dist/listbox/listbox.transitions.d.ts +3 -4
  297. package/dist/menu/examples/basic.html +15 -13
  298. package/dist/menu/examples/basic.html.js +5 -0
  299. package/dist/menu/examples/context.html +14 -12
  300. package/dist/menu/examples/context.html.js +5 -0
  301. package/dist/menu/examples/groups.html +15 -13
  302. package/dist/menu/examples/groups.html.js +5 -0
  303. package/dist/menu/examples/icons.html +17 -15
  304. package/dist/menu/examples/icons.html.js +5 -0
  305. package/dist/menu/examples/nested.html +15 -13
  306. package/dist/menu/examples/nested.html.js +5 -0
  307. package/dist/menu/examples/user.html +21 -19
  308. package/dist/menu/examples/user.html.js +5 -0
  309. package/dist/menu/menu.events.d.ts +2 -3
  310. package/dist/menu/menu.machine.d.ts +2 -3
  311. package/dist/menu/menu.machine.js +1 -1
  312. package/dist/menu/menu.presentation.d.ts +6 -8
  313. package/dist/menu/menu.presentation.js +4 -5
  314. package/dist/menu/menu.state.d.ts +1 -2
  315. package/dist/menu/menu.state.js +1 -1
  316. package/dist/mode-picker/examples/basic.html +1 -1
  317. package/dist/mode-picker/examples/basic.html.js +5 -0
  318. package/dist/mode-picker/examples/minimal.html +1 -1
  319. package/dist/mode-picker/examples/minimal.html.js +5 -0
  320. package/dist/mode-picker/examples/pill.html +1 -1
  321. package/dist/mode-picker/examples/pill.html.js +5 -0
  322. package/dist/mode-picker/mode-picker.events.d.ts +2 -3
  323. package/dist/mode-picker/mode-picker.machine.d.ts +3 -3
  324. package/dist/mode-picker/mode-picker.machine.js +1 -1
  325. package/dist/mode-picker/mode-picker.presentation.d.ts +7 -8
  326. package/dist/mode-picker/mode-picker.presentation.js +2 -2
  327. package/dist/mode-picker/mode-picker.state.d.ts +1 -2
  328. package/dist/mode-picker/mode-picker.transitions.d.ts +3 -4
  329. package/dist/navigation-menu/examples/basic.html +6 -6
  330. package/dist/navigation-menu/examples/basic.html.js +5 -0
  331. package/dist/navigation-menu/examples/grouped.html +14 -12
  332. package/dist/navigation-menu/examples/grouped.html.js +5 -0
  333. package/dist/navigation-menu/examples/minimal.html +7 -5
  334. package/dist/navigation-menu/examples/minimal.html.js +5 -0
  335. package/dist/navigation-menu/navigation-menu.events.d.ts +2 -3
  336. package/dist/navigation-menu/navigation-menu.machine.d.ts +3 -3
  337. package/dist/navigation-menu/navigation-menu.machine.js +1 -1
  338. package/dist/navigation-menu/navigation-menu.presentation.d.ts +6 -7
  339. package/dist/navigation-menu/navigation-menu.presentation.js +2 -2
  340. package/dist/navigation-menu/navigation-menu.state.d.ts +1 -2
  341. package/dist/navigation-menu/navigation-menu.state.js +1 -1
  342. package/dist/navigation-menu/navigation-menu.transitions.d.ts +3 -4
  343. package/dist/number-input/examples/basic.html +10 -10
  344. package/dist/number-input/examples/basic.html.js +5 -0
  345. package/dist/number-input/examples/currency.html +6 -6
  346. package/dist/number-input/examples/currency.html.js +5 -0
  347. package/dist/number-input/examples/decimal.html +4 -4
  348. package/dist/number-input/examples/decimal.html.js +5 -0
  349. package/dist/number-input/examples/limits.html +6 -6
  350. package/dist/number-input/examples/limits.html.js +5 -0
  351. package/dist/number-input/examples/percentage.html +6 -6
  352. package/dist/number-input/examples/percentage.html.js +5 -0
  353. package/dist/number-input/examples/quantity.html +6 -6
  354. package/dist/number-input/examples/quantity.html.js +5 -0
  355. package/dist/number-input/examples/scrubber.html +11 -11
  356. package/dist/number-input/examples/scrubber.html.js +5 -0
  357. package/dist/number-input/examples/wheel.html +7 -7
  358. package/dist/number-input/examples/wheel.html.js +5 -0
  359. package/dist/number-input/number-input.events.d.ts +2 -3
  360. package/dist/number-input/number-input.machine.d.ts +4 -4
  361. package/dist/number-input/number-input.machine.js +1 -1
  362. package/dist/number-input/number-input.presentation.d.ts +7 -8
  363. package/dist/number-input/number-input.presentation.js +4 -4
  364. package/dist/number-input/number-input.state.d.ts +1 -2
  365. package/dist/number-input/number-input.state.js +1 -1
  366. package/dist/number-input/number-input.transitions.d.ts +3 -4
  367. package/dist/pagination/examples/basic.html +2 -2
  368. package/dist/pagination/examples/basic.html.js +5 -0
  369. package/dist/pagination/examples/dropdown.html +2 -2
  370. package/dist/pagination/examples/dropdown.html.js +5 -0
  371. package/dist/pagination/examples/info.html +3 -3
  372. package/dist/pagination/examples/info.html.js +5 -0
  373. package/dist/pagination/examples/jump.html +2 -2
  374. package/dist/pagination/examples/jump.html.js +5 -0
  375. package/dist/pagination/examples/numbered.html +2 -2
  376. package/dist/pagination/examples/numbered.html.js +5 -0
  377. package/dist/pagination/examples/pagesize.html +4 -4
  378. package/dist/pagination/examples/pagesize.html.js +5 -0
  379. package/dist/pagination/pagination.events.d.ts +2 -3
  380. package/dist/pagination/pagination.machine.d.ts +4 -4
  381. package/dist/pagination/pagination.machine.js +1 -1
  382. package/dist/pagination/pagination.presentation.d.ts +4 -5
  383. package/dist/pagination/pagination.presentation.js +1 -1
  384. package/dist/pagination/pagination.state.d.ts +1 -2
  385. package/dist/pagination/pagination.state.js +1 -1
  386. package/dist/pagination/pagination.transitions.d.ts +2 -3
  387. package/dist/pin-input/examples/basic.html +2 -2
  388. package/dist/pin-input/examples/basic.html.js +5 -0
  389. package/dist/pin-input/examples/field.html +4 -4
  390. package/dist/pin-input/examples/field.html.js +5 -0
  391. package/dist/pin-input/examples/masked.html +3 -3
  392. package/dist/pin-input/examples/masked.html.js +5 -0
  393. package/dist/pin-input/examples/placeholder.html +3 -3
  394. package/dist/pin-input/examples/placeholder.html.js +5 -0
  395. package/dist/pin-input/examples/twofactor.html +4 -4
  396. package/dist/pin-input/examples/twofactor.html.js +5 -0
  397. package/dist/pin-input/examples/verification.html +6 -6
  398. package/dist/pin-input/examples/verification.html.js +5 -0
  399. package/dist/pin-input/pin-input.events.d.ts +2 -3
  400. package/dist/pin-input/pin-input.machine.d.ts +3 -3
  401. package/dist/pin-input/pin-input.machine.js +1 -1
  402. package/dist/pin-input/pin-input.presentation.d.ts +4 -5
  403. package/dist/pin-input/pin-input.presentation.js +2 -2
  404. package/dist/pin-input/pin-input.state.d.ts +1 -2
  405. package/dist/pin-input/pin-input.state.js +1 -1
  406. package/dist/pin-input/pin-input.transitions.d.ts +1 -2
  407. package/dist/popover/examples/basic.html +4 -4
  408. package/dist/popover/examples/basic.html.js +5 -0
  409. package/dist/popover/examples/feedback.html +5 -5
  410. package/dist/popover/examples/feedback.html.js +5 -0
  411. package/dist/popover/examples/notifications.html +5 -5
  412. package/dist/popover/examples/notifications.html.js +5 -0
  413. package/dist/popover/examples/settings.html +8 -8
  414. package/dist/popover/examples/settings.html.js +5 -0
  415. package/dist/popover/examples/share.html +5 -5
  416. package/dist/popover/examples/share.html.js +5 -0
  417. package/dist/popover/examples/user.html +10 -10
  418. package/dist/popover/examples/user.html.js +5 -0
  419. package/dist/popover/popover.controller-def.d.ts +2 -4
  420. package/dist/popover/popover.controller-def.js +1 -1
  421. package/dist/rating-group/examples/basic.html +9 -9
  422. package/dist/rating-group/examples/basic.html.js +5 -0
  423. package/dist/rating-group/examples/movie.html +11 -11
  424. package/dist/rating-group/examples/movie.html.js +5 -0
  425. package/dist/rating-group/examples/product-review.html +13 -13
  426. package/dist/rating-group/examples/product-review.html.js +5 -0
  427. package/dist/rating-group/examples/service-evaluation.html +5 -5
  428. package/dist/rating-group/examples/service-evaluation.html.js +5 -0
  429. package/dist/rating-group/rating-group.events.d.ts +2 -3
  430. package/dist/rating-group/rating-group.machine.d.ts +2 -3
  431. package/dist/rating-group/rating-group.machine.js +1 -1
  432. package/dist/rating-group/rating-group.presentation.d.ts +6 -7
  433. package/dist/rating-group/rating-group.presentation.js +2 -2
  434. package/dist/rating-group/rating-group.state.d.ts +1 -2
  435. package/dist/rating-group/rating-group.state.js +1 -1
  436. package/dist/rating-group/rating-group.transitions.d.ts +3 -4
  437. package/dist/react/react.d.ts +2 -3
  438. package/dist/runtime/actions/action.d.ts +64 -0
  439. package/dist/runtime/actions/action.js +45 -0
  440. package/dist/runtime/actions/anchor.d.ts +43 -0
  441. package/dist/runtime/actions/anchor.js +127 -0
  442. package/dist/runtime/actions/date-picker-focus.d.ts +19 -0
  443. package/dist/runtime/actions/date-picker-focus.js +16 -0
  444. package/dist/runtime/actions/drag.d.ts +66 -0
  445. package/dist/runtime/actions/drag.js +118 -0
  446. package/dist/runtime/actions/form-control.d.ts +18 -0
  447. package/dist/runtime/actions/form-control.js +41 -0
  448. package/dist/runtime/actions/hover-delay.d.ts +26 -0
  449. package/dist/runtime/actions/hover-delay.js +61 -0
  450. package/dist/runtime/actions/index.d.ts +113 -0
  451. package/dist/runtime/actions/index.js +240 -0
  452. package/dist/runtime/actions/infinite-scroll.d.ts +22 -0
  453. package/dist/runtime/actions/infinite-scroll.js +33 -0
  454. package/dist/runtime/actions/interact-outside.d.ts +43 -0
  455. package/dist/runtime/actions/interact-outside.js +72 -0
  456. package/dist/runtime/actions/observe.d.ts +27 -0
  457. package/dist/runtime/actions/observe.js +25 -0
  458. package/dist/runtime/actions/scroll-into-view.d.ts +32 -0
  459. package/dist/runtime/actions/scroll-into-view.js +36 -0
  460. package/dist/runtime/actions/select-focus.d.ts +17 -0
  461. package/dist/runtime/actions/select-focus.js +16 -0
  462. package/dist/runtime/actions/select-options.d.ts +25 -0
  463. package/dist/runtime/actions/select-options.js +27 -0
  464. package/dist/runtime/actions/toast-actions.d.ts +65 -0
  465. package/dist/runtime/actions/toast-actions.js +143 -0
  466. package/dist/runtime/aria.d.ts +231 -0
  467. package/dist/runtime/aria.js +193 -0
  468. package/dist/runtime/component/define.d.ts +242 -0
  469. package/dist/runtime/component/define.js +12 -0
  470. package/dist/runtime/component/ids.d.ts +14 -0
  471. package/dist/runtime/component/ids.js +35 -0
  472. package/dist/runtime/component/synthesize.d.ts +32 -0
  473. package/dist/runtime/component/synthesize.js +385 -0
  474. package/dist/runtime/core/signal.d.ts +57 -0
  475. package/dist/runtime/core/signal.js +100 -0
  476. package/dist/runtime/core/style.d.ts +14 -0
  477. package/dist/runtime/core/style.js +31 -0
  478. package/dist/runtime/directives/bind.d.ts +38 -0
  479. package/dist/runtime/directives/bind.js +244 -0
  480. package/dist/runtime/directives/for.d.ts +12 -0
  481. package/dist/runtime/directives/for.js +104 -0
  482. package/dist/runtime/directives/if.d.ts +10 -0
  483. package/dist/runtime/directives/if.js +45 -0
  484. package/dist/runtime/directives/load.d.ts +13 -0
  485. package/dist/runtime/directives/load.js +119 -0
  486. package/dist/runtime/directives/spread.d.ts +17 -0
  487. package/dist/runtime/directives/spread.js +121 -0
  488. package/dist/runtime/directives/tpl.d.ts +11 -0
  489. package/dist/runtime/directives/tpl.js +39 -0
  490. package/dist/runtime/directives/use.d.ts +13 -0
  491. package/dist/runtime/directives/use.js +34 -0
  492. package/dist/runtime/index.d.ts +101 -0
  493. package/dist/runtime/index.js +40 -0
  494. package/dist/runtime/machine/fsm/machine.d.ts +192 -0
  495. package/dist/runtime/machine/fsm/machine.js +248 -0
  496. package/dist/runtime/math/index.d.ts +2 -0
  497. package/dist/runtime/math/index.js +1 -0
  498. package/dist/runtime/math/numbers.d.ts +58 -0
  499. package/dist/runtime/math/numbers.js +115 -0
  500. package/dist/runtime/props.d.ts +61 -0
  501. package/dist/runtime/props.js +113 -0
  502. package/dist/runtime/scope/element.d.ts +86 -0
  503. package/dist/runtime/scope/element.js +226 -0
  504. package/dist/runtime/scope/table.d.ts +55 -0
  505. package/dist/runtime/scope/table.js +174 -0
  506. package/dist/runtime/syntax/braces.d.ts +2 -0
  507. package/dist/runtime/syntax/braces.js +35 -0
  508. package/dist/runtime/syntax/classes.d.ts +22 -0
  509. package/dist/runtime/syntax/classes.js +119 -0
  510. package/dist/runtime/syntax/display.d.ts +25 -0
  511. package/dist/runtime/syntax/display.js +344 -0
  512. package/dist/runtime/syntax/expand-groups.d.ts +12 -0
  513. package/dist/runtime/syntax/expand-groups.js +31 -0
  514. package/dist/runtime/syntax/ir.d.ts +76 -0
  515. package/dist/runtime/syntax/ir.js +11 -0
  516. package/dist/runtime/syntax/parse.d.ts +2 -0
  517. package/dist/runtime/syntax/parse.js +407 -0
  518. package/dist/runtime/syntax/script-block.d.ts +43 -0
  519. package/dist/runtime/syntax/script-block.js +190 -0
  520. package/dist/runtime/testing.d.ts +11 -0
  521. package/dist/runtime/testing.js +1 -0
  522. package/dist/select/examples/basic.html +9 -9
  523. package/dist/select/examples/basic.html.js +5 -0
  524. package/dist/select/examples/category.html +10 -10
  525. package/dist/select/examples/category.html.js +5 -0
  526. package/dist/select/examples/country.html +10 -10
  527. package/dist/select/examples/country.html.js +5 -0
  528. package/dist/select/examples/language.html.js +5 -0
  529. package/dist/select/examples/multiple.html.js +5 -0
  530. package/dist/select/examples/profile.html +10 -10
  531. package/dist/select/examples/profile.html.js +5 -0
  532. package/dist/select/examples/theme.html.js +5 -0
  533. package/dist/select/examples/with-overlapping-label.html +8 -8
  534. package/dist/select/examples/with-overlapping-label.html.js +5 -0
  535. package/dist/select/select.events.d.ts +2 -3
  536. package/dist/select/select.machine.d.ts +2 -3
  537. package/dist/select/select.machine.js +1 -1
  538. package/dist/select/select.presentation.d.ts +16 -20
  539. package/dist/select/select.presentation.js +6 -6
  540. package/dist/select/select.shared.d.ts +1 -2
  541. package/dist/select/select.state.d.ts +1 -2
  542. package/dist/select/select.state.js +1 -1
  543. package/dist/select/select.transitions.d.ts +2 -3
  544. package/dist/shared/keyboard.d.ts +1 -2
  545. package/dist/signature-pad/examples/basic.html +3 -3
  546. package/dist/signature-pad/examples/basic.html.js +5 -0
  547. package/dist/signature-pad/examples/contract.html +7 -7
  548. package/dist/signature-pad/examples/contract.html.js +5 -0
  549. package/dist/signature-pad/examples/receipt.html +8 -8
  550. package/dist/signature-pad/examples/receipt.html.js +5 -0
  551. package/dist/signature-pad/examples/with-preview.html +6 -6
  552. package/dist/signature-pad/examples/with-preview.html.js +5 -0
  553. package/dist/signature-pad/signature-pad.events.d.ts +2 -3
  554. package/dist/signature-pad/signature-pad.machine.d.ts +4 -4
  555. package/dist/signature-pad/signature-pad.machine.js +2 -2
  556. package/dist/signature-pad/signature-pad.presentation.d.ts +10 -11
  557. package/dist/signature-pad/signature-pad.presentation.js +2 -2
  558. package/dist/signature-pad/signature-pad.state.d.ts +1 -2
  559. package/dist/signature-pad/signature-pad.state.js +1 -1
  560. package/dist/signature-pad/signature-pad.transitions.d.ts +3 -4
  561. package/dist/slider/examples/basic.html +1 -1
  562. package/dist/slider/examples/basic.html.js +5 -0
  563. package/dist/slider/examples/equalizer.html +13 -13
  564. package/dist/slider/examples/equalizer.html.js +5 -0
  565. package/dist/slider/examples/fractional.html.js +5 -0
  566. package/dist/slider/examples/marks.html +2 -2
  567. package/dist/slider/examples/marks.html.js +5 -0
  568. package/dist/slider/examples/range.html +1 -1
  569. package/dist/slider/examples/range.html.js +5 -0
  570. package/dist/slider/examples/stepped.html.js +5 -0
  571. package/dist/slider/examples/ticks.html +2 -2
  572. package/dist/slider/examples/ticks.html.js +5 -0
  573. package/dist/slider/examples/vertical.html.js +5 -0
  574. package/dist/slider/slider.events.d.ts +2 -3
  575. package/dist/slider/slider.machine.d.ts +3 -3
  576. package/dist/slider/slider.machine.js +2 -2
  577. package/dist/slider/slider.presentation.d.ts +8 -9
  578. package/dist/slider/slider.presentation.js +2 -2
  579. package/dist/slider/slider.state.d.ts +1 -2
  580. package/dist/slider/slider.state.js +1 -1
  581. package/dist/slider/slider.transitions.d.ts +3 -4
  582. package/dist/slider/slider.transitions.js +1 -1
  583. package/dist/solid/solid.d.ts +2 -3
  584. package/dist/spin-element.d.ts +1 -2
  585. package/dist/spin-element.js +1 -1
  586. package/dist/splitter/examples/basic.html +2 -2
  587. package/dist/splitter/examples/basic.html.js +5 -0
  588. package/dist/splitter/examples/nested.html +4 -4
  589. package/dist/splitter/examples/nested.html.js +5 -0
  590. package/dist/splitter/examples/threepanels.html +2 -2
  591. package/dist/splitter/examples/threepanels.html.js +5 -0
  592. package/dist/splitter/examples/vertical.html +2 -2
  593. package/dist/splitter/examples/vertical.html.js +5 -0
  594. package/dist/splitter/splitter.events.d.ts +2 -3
  595. package/dist/splitter/splitter.machine.d.ts +2 -3
  596. package/dist/splitter/splitter.machine.js +1 -1
  597. package/dist/splitter/splitter.presentation.d.ts +5 -6
  598. package/dist/splitter/splitter.presentation.js +1 -1
  599. package/dist/splitter/splitter.state.d.ts +1 -2
  600. package/dist/splitter/splitter.state.js +1 -1
  601. package/dist/splitter/splitter.transitions.d.ts +2 -3
  602. package/dist/steps/examples/basic.html +5 -5
  603. package/dist/steps/examples/basic.html.js +5 -0
  604. package/dist/steps/examples/checkmarks.html +4 -4
  605. package/dist/steps/examples/checkmarks.html.js +5 -0
  606. package/dist/steps/examples/content.html +5 -5
  607. package/dist/steps/examples/content.html.js +5 -0
  608. package/dist/steps/examples/descriptions.html +2 -2
  609. package/dist/steps/examples/descriptions.html.js +5 -0
  610. package/dist/steps/examples/icons.html +2 -2
  611. package/dist/steps/examples/icons.html.js +5 -0
  612. package/dist/steps/examples/lines.html +2 -2
  613. package/dist/steps/examples/lines.html.js +5 -0
  614. package/dist/steps/examples/navigation.html +4 -4
  615. package/dist/steps/examples/navigation.html.js +5 -0
  616. package/dist/steps/examples/onboarding.html +4 -4
  617. package/dist/steps/examples/onboarding.html.js +5 -0
  618. package/dist/steps/examples/progress.html +3 -3
  619. package/dist/steps/examples/progress.html.js +5 -0
  620. package/dist/steps/examples/segmented.html +6 -6
  621. package/dist/steps/examples/segmented.html.js +5 -0
  622. package/dist/steps/examples/vertical.html +5 -5
  623. package/dist/steps/examples/vertical.html.js +5 -0
  624. package/dist/steps/examples/verticallabels.html +2 -2
  625. package/dist/steps/examples/verticallabels.html.js +5 -0
  626. package/dist/steps/examples/verticalnavigation.html +2 -2
  627. package/dist/steps/examples/verticalnavigation.html.js +5 -0
  628. package/dist/steps/steps.events.d.ts +2 -3
  629. package/dist/steps/steps.machine.d.ts +3 -3
  630. package/dist/steps/steps.machine.js +1 -1
  631. package/dist/steps/steps.presentation.d.ts +4 -5
  632. package/dist/steps/steps.presentation.js +1 -1
  633. package/dist/steps/steps.state.d.ts +1 -2
  634. package/dist/steps/steps.state.js +1 -1
  635. package/dist/steps/steps.transitions.d.ts +3 -4
  636. package/dist/tabs/examples/basic.html +2 -2
  637. package/dist/tabs/examples/basic.html.js +5 -0
  638. package/dist/tabs/examples/dashboard.html +42 -42
  639. package/dist/tabs/examples/dashboard.html.js +5 -0
  640. package/dist/tabs/examples/ghost.html +2 -2
  641. package/dist/tabs/examples/ghost.html.js +5 -0
  642. package/dist/tabs/examples/icon-above.html +6 -6
  643. package/dist/tabs/examples/icon-above.html.js +5 -0
  644. package/dist/tabs/examples/icon-only.html +3 -3
  645. package/dist/tabs/examples/icon-only.html.js +5 -0
  646. package/dist/tabs/examples/outline-with-icons.html +6 -6
  647. package/dist/tabs/examples/outline-with-icons.html.js +5 -0
  648. package/dist/tabs/examples/outline.html +3 -3
  649. package/dist/tabs/examples/outline.html.js +5 -0
  650. package/dist/tabs/examples/pills.html +2 -2
  651. package/dist/tabs/examples/pills.html.js +5 -0
  652. package/dist/tabs/examples/project.html +33 -33
  653. package/dist/tabs/examples/project.html.js +5 -0
  654. package/dist/tabs/examples/settings.html +35 -35
  655. package/dist/tabs/examples/settings.html.js +5 -0
  656. package/dist/tabs/examples/stack-with-icons.html +7 -7
  657. package/dist/tabs/examples/stack-with-icons.html.js +5 -0
  658. package/dist/tabs/examples/stack.html +3 -3
  659. package/dist/tabs/examples/stack.html.js +5 -0
  660. package/dist/tabs/examples/underline.html +3 -3
  661. package/dist/tabs/examples/underline.html.js +5 -0
  662. package/dist/tabs/examples/vertical-ghost.html +3 -3
  663. package/dist/tabs/examples/vertical-ghost.html.js +5 -0
  664. package/dist/tabs/examples/vertical-icons.html +5 -5
  665. package/dist/tabs/examples/vertical-icons.html.js +5 -0
  666. package/dist/tabs/examples/vertical-underline.html +4 -4
  667. package/dist/tabs/examples/vertical-underline.html.js +5 -0
  668. package/dist/tabs/examples/vertical-with-icons.html +6 -6
  669. package/dist/tabs/examples/vertical-with-icons.html.js +5 -0
  670. package/dist/tabs/examples/vertical.html +2 -2
  671. package/dist/tabs/examples/vertical.html.js +5 -0
  672. package/dist/tabs/examples/with-badges.html +3 -3
  673. package/dist/tabs/examples/with-badges.html.js +5 -0
  674. package/dist/tabs/examples/with-icons.html +4 -4
  675. package/dist/tabs/examples/with-icons.html.js +5 -0
  676. package/dist/tabs/tabs.events.d.ts +2 -3
  677. package/dist/tabs/tabs.machine.d.ts +3 -3
  678. package/dist/tabs/tabs.machine.js +1 -1
  679. package/dist/tabs/tabs.presentation.d.ts +6 -7
  680. package/dist/tabs/tabs.presentation.js +1 -1
  681. package/dist/tabs/tabs.state.d.ts +1 -2
  682. package/dist/tabs/tabs.state.js +1 -1
  683. package/dist/tabs/tabs.transitions.d.ts +3 -4
  684. package/dist/tags-input/examples/basic.html +9 -9
  685. package/dist/tags-input/examples/basic.html.js +5 -0
  686. package/dist/tags-input/examples/with-combobox.html +14 -14
  687. package/dist/tags-input/examples/with-combobox.html.js +5 -0
  688. package/dist/tags-input/tags.events.d.ts +2 -3
  689. package/dist/tags-input/tags.machine.d.ts +6 -4
  690. package/dist/tags-input/tags.machine.js +2 -2
  691. package/dist/tags-input/tags.presentation.d.ts +6 -7
  692. package/dist/tags-input/tags.presentation.js +1 -1
  693. package/dist/tags-input/tags.state.d.ts +1 -2
  694. package/dist/tags-input/tags.state.js +2 -2
  695. package/dist/tags-input/tags.transitions.d.ts +2 -3
  696. package/dist/theme-picker/examples/basic.html +6 -6
  697. package/dist/theme-picker/examples/basic.html.js +5 -0
  698. package/dist/theme-picker/examples/cards.html +4 -4
  699. package/dist/theme-picker/examples/cards.html.js +5 -0
  700. package/dist/theme-picker/examples/compact.html +3 -3
  701. package/dist/theme-picker/examples/compact.html.js +5 -0
  702. package/dist/theme-picker/examples/swatches.html +2 -2
  703. package/dist/theme-picker/examples/swatches.html.js +5 -0
  704. package/dist/theme-picker/theme-picker.events.d.ts +2 -3
  705. package/dist/theme-picker/theme-picker.machine.d.ts +3 -3
  706. package/dist/theme-picker/theme-picker.machine.js +1 -1
  707. package/dist/theme-picker/theme-picker.presentation.d.ts +9 -10
  708. package/dist/theme-picker/theme-picker.presentation.js +2 -2
  709. package/dist/theme-picker/theme-picker.state.d.ts +1 -2
  710. package/dist/theme-picker/theme-picker.transitions.d.ts +3 -4
  711. package/dist/timer/examples/basic.html +1 -1
  712. package/dist/timer/examples/basic.html.js +5 -0
  713. package/dist/timer/examples/card.html +4 -4
  714. package/dist/timer/examples/card.html.js +5 -0
  715. package/dist/timer/examples/compact.html +5 -5
  716. package/dist/timer/examples/compact.html.js +5 -0
  717. package/dist/timer/examples/countdown.html +3 -3
  718. package/dist/timer/examples/countdown.html.js +5 -0
  719. package/dist/timer/examples/labels.html +3 -3
  720. package/dist/timer/examples/labels.html.js +5 -0
  721. package/dist/timer/examples/large.html +2 -2
  722. package/dist/timer/examples/large.html.js +5 -0
  723. package/dist/timer/examples/minimal.html +1 -1
  724. package/dist/timer/examples/minimal.html.js +5 -0
  725. package/dist/timer/examples/pomodoro.html +3 -3
  726. package/dist/timer/examples/pomodoro.html.js +5 -0
  727. package/dist/timer/examples/workout.html +4 -4
  728. package/dist/timer/examples/workout.html.js +5 -0
  729. package/dist/timer/timer.events.d.ts +2 -3
  730. package/dist/timer/timer.machine.d.ts +2 -3
  731. package/dist/timer/timer.machine.js +1 -1
  732. package/dist/timer/timer.presentation.d.ts +7 -8
  733. package/dist/timer/timer.presentation.js +1 -1
  734. package/dist/timer/timer.state.d.ts +1 -2
  735. package/dist/timer/timer.state.js +1 -1
  736. package/dist/timer/timer.transitions.d.ts +2 -3
  737. package/dist/toast/examples/action.html +3 -3
  738. package/dist/toast/examples/action.html.js +5 -0
  739. package/dist/toast/examples/basic.html +3 -3
  740. package/dist/toast/examples/basic.html.js +5 -0
  741. package/dist/toast/examples/bottomcenter.html +3 -3
  742. package/dist/toast/examples/bottomcenter.html.js +5 -0
  743. package/dist/toast/examples/bottomleft.html +3 -3
  744. package/dist/toast/examples/bottomleft.html.js +5 -0
  745. package/dist/toast/examples/bottomright.html +3 -3
  746. package/dist/toast/examples/bottomright.html.js +5 -0
  747. package/dist/toast/examples/duration.html +3 -3
  748. package/dist/toast/examples/duration.html.js +5 -0
  749. package/dist/toast/examples/promise.html +6 -6
  750. package/dist/toast/examples/promise.html.js +5 -0
  751. package/dist/toast/examples/topcenter.html +3 -3
  752. package/dist/toast/examples/topcenter.html.js +5 -0
  753. package/dist/toast/examples/topleft.html +3 -3
  754. package/dist/toast/examples/topleft.html.js +5 -0
  755. package/dist/toast/examples/topright.html +3 -3
  756. package/dist/toast/examples/topright.html.js +5 -0
  757. package/dist/toast/examples/types.html +3 -3
  758. package/dist/toast/examples/types.html.js +5 -0
  759. package/dist/toast/examples/updatable.html.js +5 -0
  760. package/dist/toast/toast.events.d.ts +2 -3
  761. package/dist/toast/toast.machine.d.ts +4 -4
  762. package/dist/toast/toast.machine.js +1 -1
  763. package/dist/toast/toast.presentation.d.ts +5 -6
  764. package/dist/toast/toast.presentation.js +1 -1
  765. package/dist/toast/toast.state.d.ts +1 -2
  766. package/dist/toast/toast.state.js +3 -3
  767. package/dist/toast/toast.transitions.d.ts +3 -4
  768. package/dist/toc/examples/basic.html +31 -0
  769. package/dist/toc/examples/basic.html.js +5 -0
  770. package/dist/toc/toc.events.d.ts +19 -0
  771. package/dist/toc/toc.events.js +1 -0
  772. package/dist/toc/toc.machine.d.ts +5 -0
  773. package/dist/toc/toc.machine.js +59 -0
  774. package/dist/toc/toc.presentation.d.ts +127 -0
  775. package/dist/toc/toc.presentation.js +117 -0
  776. package/dist/toc/toc.state.d.ts +41 -0
  777. package/dist/toc/toc.state.js +64 -0
  778. package/dist/toc/toc.transitions.d.ts +8 -0
  779. package/dist/toc/toc.transitions.js +27 -0
  780. package/dist/toggle-group/examples/basic.html +2 -2
  781. package/dist/toggle-group/examples/basic.html.js +5 -0
  782. package/dist/toggle-group/examples/ghost.html +1 -1
  783. package/dist/toggle-group/examples/ghost.html.js +5 -0
  784. package/dist/toggle-group/examples/icons.html +3 -3
  785. package/dist/toggle-group/examples/icons.html.js +5 -0
  786. package/dist/toggle-group/examples/multiple.html.js +5 -0
  787. package/dist/toggle-group/examples/outline.html +2 -2
  788. package/dist/toggle-group/examples/outline.html.js +5 -0
  789. package/dist/toggle-group/examples/toolbar.html +3 -3
  790. package/dist/toggle-group/examples/toolbar.html.js +5 -0
  791. package/dist/toggle-group/toggle-group.events.d.ts +2 -3
  792. package/dist/toggle-group/toggle-group.machine.d.ts +3 -3
  793. package/dist/toggle-group/toggle-group.machine.js +1 -1
  794. package/dist/toggle-group/toggle-group.presentation.d.ts +6 -7
  795. package/dist/toggle-group/toggle-group.presentation.js +2 -2
  796. package/dist/toggle-group/toggle-group.state.d.ts +1 -2
  797. package/dist/toggle-group/toggle-group.state.js +1 -1
  798. package/dist/toggle-group/toggle-group.transitions.d.ts +3 -4
  799. package/dist/tooltip/examples/basic.html.js +5 -0
  800. package/dist/tooltip/examples/metrics.html +9 -9
  801. package/dist/tooltip/examples/metrics.html.js +5 -0
  802. package/dist/tooltip/examples/positioning.html +4 -4
  803. package/dist/tooltip/examples/positioning.html.js +5 -0
  804. package/dist/tooltip/examples/status.html +10 -10
  805. package/dist/tooltip/examples/status.html.js +5 -0
  806. package/dist/tooltip/examples/video.html +6 -6
  807. package/dist/tooltip/examples/video.html.js +5 -0
  808. package/dist/tooltip/examples/with-arrow.html +1 -1
  809. package/dist/tooltip/examples/with-arrow.html.js +5 -0
  810. package/dist/tooltip/tooltip.controller-def.d.ts +3 -5
  811. package/dist/tooltip/tooltip.controller-def.js +1 -1
  812. package/dist/tour/examples/basic.html +5 -5
  813. package/dist/tour/examples/basic.html.js +5 -0
  814. package/dist/tour/tour.events.d.ts +2 -3
  815. package/dist/tour/tour.machine.d.ts +7 -3
  816. package/dist/tour/tour.machine.js +1 -1
  817. package/dist/tour/tour.presentation.d.ts +6 -7
  818. package/dist/tour/tour.presentation.js +1 -1
  819. package/dist/tour/tour.state.d.ts +1 -2
  820. package/dist/tour/tour.state.js +1 -1
  821. package/dist/tour/tour.transitions.d.ts +3 -4
  822. package/dist/tree-view/examples/basic.html +10 -10
  823. package/dist/tree-view/examples/basic.html.js +5 -0
  824. package/dist/tree-view/examples/loading.html +11 -11
  825. package/dist/tree-view/examples/loading.html.js +5 -0
  826. package/dist/tree-view/tree-view.events.d.ts +2 -3
  827. package/dist/tree-view/tree-view.machine.d.ts +2 -3
  828. package/dist/tree-view/tree-view.machine.js +1 -1
  829. package/dist/tree-view/tree-view.presentation.d.ts +7 -8
  830. package/dist/tree-view/tree-view.presentation.js +2 -2
  831. package/dist/tree-view/tree-view.state.d.ts +1 -2
  832. package/dist/tree-view/tree-view.state.js +1 -1
  833. package/dist/tree-view/tree-view.transitions.d.ts +3 -4
  834. package/package.json +43 -8
@@ -1,4 +1,4 @@
1
- import { defaultTwin } from "@spinjs/runtime";
1
+ import { defaultTwin } from "@spinjs/components/runtime";
2
2
  // src/rating-group/rating-group.state.ts
3
3
  function ratingValue(raw) {
4
4
  const n = typeof raw === "number" ? raw : Number(raw);
@@ -1,6 +1,6 @@
1
- import { RatingGroupContext } from "./rating-group.state.js";
2
1
  import { RatingGroupEvents } from "./rating-group.events.js";
3
- import { AssignFor } from "@spinjs/runtime/fsm";
2
+ import { RatingGroupContext } from "./rating-group.state.js";
3
+ import { AssignFor } from "@spinjs/components/fsm";
4
4
  type RatingAssign<K extends keyof RatingGroupEvents = keyof RatingGroupEvents> = AssignFor<RatingGroupContext, RatingGroupEvents, K>;
5
5
  export declare const clearHoveredValue: () => Partial<RatingGroupContext>;
6
6
  export declare const setValue: RatingAssign<"CLICK" | "SPACE">;
@@ -12,5 +12,4 @@ export declare const arrowLeft: (ctx: RatingGroupContext) => Partial<RatingGroup
12
12
  export declare const arrowRight: (ctx: RatingGroupContext) => Partial<RatingGroupContext>;
13
13
  export declare const homeValue: () => Partial<RatingGroupContext>;
14
14
  export declare const endValue: (ctx: RatingGroupContext) => Partial<RatingGroupContext>;
15
- export {};
16
- //# sourceMappingURL=rating-group.transitions.d.ts.map
15
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { CtlFor, ElementTarget, spinComponentCtl } from "../controller.js";
2
- import { DefinedComponent } from "@spinjs/runtime";
2
+ import { DefinedComponent } from "@spinjs/components/runtime";
3
3
  /**
4
4
  * React adapter: `useSpinComponent(el)` is the app controller's instrument.
5
5
  *
@@ -25,5 +25,4 @@ import { DefinedComponent } from "@spinjs/runtime";
25
25
  */
26
26
  export declare function useSpinComponent<D extends DefinedComponent<any, any>>(def: D): CtlFor<D>;
27
27
  export declare function useSpinComponent<D extends DefinedComponent<any, any>>(target: ElementTarget, def: D): CtlFor<D>;
28
- export declare function useSpinComponent<TCommands extends object = object, TState extends object = Record<string, () => unknown>, TProps extends object = Record<string, unknown>>(el: ElementTarget, handle?: object): ReturnType<typeof spinComponentCtl<TCommands, TState, TProps>>;
29
- //# sourceMappingURL=react.d.ts.map
28
+ export declare function useSpinComponent<TCommands extends object = object, TState extends object = Record<string, () => unknown>, TProps extends object = Record<string, unknown>>(el: ElementTarget, handle?: object): ReturnType<typeof spinComponentCtl<TCommands, TState, TProps>>;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The action contract: Svelte's, deliberately.
3
+ *
4
+ * An action is a function that receives the element it is attached to and a
5
+ * parameter, and may return `{ update, destroy }`. The runtime wires the
6
+ * lifecycle: call on mount, `update(param)` when the parameter's reactive
7
+ * reads change, `destroy()` when the element goes away.
8
+ *
9
+ * ```ts
10
+ * function myAction(node, params) {
11
+ * const stop = listen(node, "click", params.onClick)
12
+ * return { destroy: stop }
13
+ * }
14
+ * <div use:myAction={{ onClick }} />
15
+ * ```
16
+ *
17
+ * What an action may do — the whole gate, enforced by the shipped catalog
18
+ * and the contract tests, not by convention:
19
+ *
20
+ * - Mutate only the node it is given: attributes, focus, scroll, class.
21
+ * - Listen anywhere it must (document, observers) — observe, don't reach.
22
+ * - Read layout freely. Write NO styles: not `style.*`, not `cssText`, not
23
+ * stylesheets. Visual state flows through attributes and utility classes;
24
+ * that is what keeps the styling engine the single source of truth.
25
+ * - Cross element boundaries in one direction only: none. Coordination goes
26
+ * through `send` events.
27
+ * - Hold no state that outlives the element. A timer, a drag offset, an
28
+ * observer handle — all released in `destroy`.
29
+ *
30
+ * `param` is the only inbound channel. A machine that needs context reads
31
+ * it, resolves it, and passes the result as the param; actions never see
32
+ * the scope chain.
33
+ */
34
+ export interface ActionResult<P = unknown> {
35
+ /** Called when the param's reactive dependencies change. */
36
+ update?(param: P): void;
37
+ /** Called once when the element unmounts. Release everything. */
38
+ destroy?(): void;
39
+ }
40
+ export type ElementAction<P = unknown> = (node: Element, param: P) => ActionResult<P> | void;
41
+ /**
42
+ * Wrap an action so its setup does not track reactive reads: whatever the
43
+ * action reads at mount must not subscribe the surrounding effect. Params
44
+ * still flow through `update`, re-run by `runAction`'s effect.
45
+ */
46
+ export declare function createAction<P>(fn: ElementAction<P>): ElementAction<P>;
47
+ /**
48
+ * Attach an action with full lifecycle. The compiler target for
49
+ * `use:name={param}` and for bag-carried `use:` entries.
50
+ *
51
+ * The param is a thunk, not a value: an action that wanted it once would be
52
+ * a reaction to a value, and reactive re-params are the whole point. A
53
+ * missing thunk runs the action exactly once with `undefined`.
54
+ *
55
+ * The setup effect is owned by the surrounding scope, so it — and the
56
+ * destroy cleanup — release when the component unmounts. An action that
57
+ * outlived its element would be a leak nothing else can see; the scope is
58
+ * what makes that impossible rather than unlikely.
59
+ *
60
+ * A non-function is inert rather than fatal: a directive that threw because
61
+ * an action was not found would take the tree down, which tells an author
62
+ * less than a behavior that simply did not happen.
63
+ */
64
+ export declare function runAction<P>(node: Element, action: ElementAction<P> | null | undefined, paramThunk?: () => P): void;
@@ -0,0 +1,45 @@
1
+ import { effect, own, untrack } from "../core/signal.js";
2
+ // src/runtime/actions/action.ts
3
+ /**
4
+ * Wrap an action so its setup does not track reactive reads: whatever the
5
+ * action reads at mount must not subscribe the surrounding effect. Params
6
+ * still flow through `update`, re-run by `runAction`'s effect.
7
+ */
8
+ function createAction(fn) {
9
+ return (node, param) => untrack(() => fn(node, param) ?? void 0);
10
+ }
11
+ /**
12
+ * Attach an action with full lifecycle. The compiler target for
13
+ * `use:name={param}` and for bag-carried `use:` entries.
14
+ *
15
+ * The param is a thunk, not a value: an action that wanted it once would be
16
+ * a reaction to a value, and reactive re-params are the whole point. A
17
+ * missing thunk runs the action exactly once with `undefined`.
18
+ *
19
+ * The setup effect is owned by the surrounding scope, so it — and the
20
+ * destroy cleanup — release when the component unmounts. An action that
21
+ * outlived its element would be a leak nothing else can see; the scope is
22
+ * what makes that impossible rather than unlikely.
23
+ *
24
+ * A non-function is inert rather than fatal: a directive that threw because
25
+ * an action was not found would take the tree down, which tells an author
26
+ * less than a behavior that simply did not happen.
27
+ */
28
+ function runAction(node, action, paramThunk) {
29
+ if (typeof action !== "function") return;
30
+ let result;
31
+ let started = false;
32
+ effect(() => {
33
+ const param = paramThunk === void 0 ? void 0 : paramThunk();
34
+ if (!started) {
35
+ started = true;
36
+ result = action(node, param) ?? void 0;
37
+ } else result?.update?.(param);
38
+ });
39
+ own(() => {
40
+ result?.destroy?.();
41
+ });
42
+ }
43
+ export { createAction, runAction };
44
+
45
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1,43 @@
1
+ import { ElementAction } from "./action.js";
2
+ /**
3
+ * Position a floating node against an anchor, reporting the geometry the
4
+ * bag carries as custom properties.
5
+ *
6
+ * The platform owns the measurement: the anchor's rect against the
7
+ * positioner's offset parent, re-read on resize, scroll, and param change.
8
+ * The measurement reports through `onGeometry`, and the bag turns it into
9
+ * the style object the geometry channel owns (`--anchor-x/y/w`) — the
10
+ * action writes no styles itself, the same split the menu's anchor vars
11
+ * keep. The recipe's bracketed utilities decide what each var feeds, so
12
+ * the theme still owns appearance and the vars are data, not styles.
13
+ *
14
+ * Placement is a suggestion the viewport can veto: a panel below the
15
+ * anchor with no room below flips above, and the flip reports alongside
16
+ * the geometry so the origin utility can follow. Anything fancier
17
+ * (collision middleware, arrow centering) is a consumer decision, not
18
+ * this action's.
19
+ */
20
+ export type AnchorPlacement = "top" | "bottom" | "left" | "right";
21
+ export interface AnchorGeometry {
22
+ /** Anchor's left edge relative to the positioner's offset parent. */
23
+ readonly x: number;
24
+ /** Panel's top edge relative to the positioner's offset parent. */
25
+ readonly y: number;
26
+ /** Anchor width, for min-width matching. */
27
+ readonly w: number;
28
+ /** Anchor height, for a mask that frames it. */
29
+ readonly h: number;
30
+ /** The side the panel actually sits on, after the viewport's veto. */
31
+ readonly placement: AnchorPlacement;
32
+ }
33
+ export interface AnchorParam {
34
+ /** Element the panel positions against; the node's previous sibling when absent. */
35
+ readonly anchor?: Element | null;
36
+ /** Preferred side; flips when the preferred side has no room. */
37
+ readonly placement?: AnchorPlacement;
38
+ /** Gap between anchor and panel, in pixels. */
39
+ readonly offset?: number;
40
+ /** Fresh geometry; the bag turns this into custom properties. */
41
+ readonly onGeometry?: (geometry: AnchorGeometry) => void;
42
+ }
43
+ export declare const anchor: ElementAction<AnchorParam | undefined>;
@@ -0,0 +1,127 @@
1
+ import { createAction } from "./action.js";
2
+ // src/runtime/actions/anchor.ts
3
+ const anchor = createAction((node, param) => {
4
+ let current = param;
5
+ let last;
6
+ const resolveAnchor = () => current?.anchor instanceof Element ? current.anchor : node.previousElementSibling;
7
+ const resolveHost = () => node instanceof HTMLElement ? node.offsetParent ?? node.parentElement : null;
8
+ const measure = () => {
9
+ const anchorEl = resolveAnchor();
10
+ if (!(anchorEl instanceof HTMLElement)) return;
11
+ if (!(node instanceof HTMLElement)) return;
12
+ const topLayer = (() => {
13
+ try {
14
+ return node.matches(":popover-open");
15
+ } catch {
16
+ return false;
17
+ }
18
+ })();
19
+ const host = topLayer ? null : resolveHost();
20
+ if (!topLayer && host === null) return;
21
+ const gap = current?.offset ?? 8;
22
+ const want = current?.placement ?? "bottom";
23
+ const anchorRect = anchorEl.getBoundingClientRect();
24
+ const hostRect = host?.getBoundingClientRect();
25
+ const hostLeft = hostRect?.left ?? 0;
26
+ const hostTop = hostRect?.top ?? 0;
27
+ const hostBottom = hostRect?.bottom ?? globalThis.innerHeight ?? 0;
28
+ const panelHeight = node.offsetHeight;
29
+ const panelWidth = node.offsetWidth;
30
+ const viewportBottom = Number.isFinite(globalThis.innerHeight) ? globalThis.innerHeight : hostBottom;
31
+ const roomBelow = Math.max(hostBottom - anchorRect.bottom - gap, viewportBottom - anchorRect.bottom - gap);
32
+ const roomAbove = Math.max(anchorRect.top - hostTop - gap, anchorRect.top - gap);
33
+ const roomRight = (hostRect?.right ?? globalThis.innerWidth ?? 0) - anchorRect.right - gap;
34
+ const hostLeftEdge = hostRect?.left ?? 0;
35
+ const roomLeft = anchorRect.left - hostLeftEdge - gap;
36
+ const horizontal = want === "left" || want === "right";
37
+ const placement = horizontal ? want === "right" ? roomRight < panelWidth && roomLeft > roomRight ? "left" : "right" : roomLeft < panelWidth && roomRight > roomLeft ? "right" : "left" : want === "bottom" ? roomBelow < panelHeight && roomAbove > roomBelow ? "top" : "bottom" : roomAbove < panelHeight && roomBelow > roomAbove ? "bottom" : "top";
38
+ const viewportWidth = globalThis.innerWidth;
39
+ const shiftX = (x) => {
40
+ if (!Number.isFinite(viewportWidth) || !Number.isFinite(panelWidth)) return x;
41
+ const viewX = hostLeft + x;
42
+ const overflowRight = viewX + panelWidth + gap - viewportWidth;
43
+ if (overflowRight > 0) return Math.max(-hostLeft + gap, x - overflowRight);
44
+ const overflowLeft = gap - viewX;
45
+ if (overflowLeft > 0) return x + overflowLeft;
46
+ return x;
47
+ };
48
+ const geometry = horizontal ? {
49
+ x: placement === "right" ? anchorRect.right - hostLeft + gap : anchorRect.left - hostLeft - panelWidth - gap,
50
+ y: anchorRect.top - hostTop + (anchorRect.height - panelHeight) / 2,
51
+ w: anchorRect.width,
52
+ h: anchorRect.height,
53
+ placement
54
+ } : {
55
+ x: shiftX(anchorRect.left - hostLeft),
56
+ y: placement === "bottom" ? anchorRect.bottom - hostTop + gap : anchorRect.top - hostTop - panelHeight - gap,
57
+ w: anchorRect.width,
58
+ h: anchorRect.height,
59
+ placement
60
+ };
61
+ const key = `${geometry.x},${geometry.y},${geometry.w},${geometry.placement}`;
62
+ if (key === last) return;
63
+ last = key;
64
+ if (node instanceof HTMLElement) {
65
+ if (node.style.position === "") node.style.position = topLayer ? "fixed" : "absolute";
66
+ node.style.left = `${geometry.x}px`;
67
+ node.style.top = `${geometry.y}px`;
68
+ node.style.minWidth = `${geometry.w}px`;
69
+ }
70
+ current?.onGeometry?.(geometry);
71
+ };
72
+ const ro = typeof ResizeObserver === "function" ? new ResizeObserver(() => measure()) : void 0;
73
+ ro?.observe(node);
74
+ const scrollRoot = node.ownerDocument;
75
+ const onScroll = () => measure();
76
+ const onResize = () => measure();
77
+ const view = scrollRoot.defaultView;
78
+ scrollRoot.addEventListener("scroll", onScroll, {
79
+ capture: true,
80
+ passive: true
81
+ });
82
+ view?.addEventListener("resize", onResize);
83
+ measure();
84
+ const visibly = () => {
85
+ if (!(node instanceof HTMLElement)) return false;
86
+ if (node.hasAttribute("hidden")) return false;
87
+ try {
88
+ if (node.closest("[hidden]") !== null) return false;
89
+ } catch {
90
+ return false;
91
+ }
92
+ return true;
93
+ };
94
+ let shown = visibly();
95
+ const Mutation = (node.ownerDocument?.defaultView)?.MutationObserver ?? (typeof MutationObserver === "function" ? MutationObserver : void 0);
96
+ const watcher = Mutation !== void 0 ? new Mutation(() => {
97
+ const now = visibly();
98
+ if (now && !shown) measure();
99
+ shown = now;
100
+ }) : void 0;
101
+ if (watcher !== void 0 && node instanceof HTMLElement) {
102
+ watcher.observe(node, {
103
+ attributes: true,
104
+ attributeFilter: ["hidden"]
105
+ });
106
+ watcher.observe(node.parentElement ?? node.ownerDocument.documentElement, {
107
+ attributes: true,
108
+ attributeFilter: ["hidden"],
109
+ subtree: true
110
+ });
111
+ }
112
+ return {
113
+ update: (next) => {
114
+ current = next;
115
+ measure();
116
+ },
117
+ destroy: () => {
118
+ ro?.disconnect();
119
+ watcher?.disconnect();
120
+ scrollRoot.removeEventListener("scroll", onScroll, true);
121
+ view?.removeEventListener("resize", onResize);
122
+ }
123
+ };
124
+ });
125
+ export { anchor };
126
+
127
+ //# sourceMappingURL=anchor.js.map
@@ -0,0 +1,19 @@
1
+ import { ElementAction } from "./action.js";
2
+ /**
3
+ * date-picker-focus — move focus to the focused day when the panel opens.
4
+ *
5
+ * The `setInitialFocus` behaviour: a keyboard user who opened the calendar
6
+ * expects the arrow keys to move the focused day, and the trigger's own
7
+ * keys stop applying once the panel is up. The focused cell is the
8
+ * panel's tab stop, so opening hands it focus (unless focus already
9
+ * moved inside — a pointer that landed on a cell must not be yanked
10
+ * away).
11
+ *
12
+ * A reflex, so an action: it runs at attach and again whenever the
13
+ * open flag moves, and it focuses only the cell it is given.
14
+ */
15
+ export interface DatePickerFocusParam {
16
+ readonly open: boolean;
17
+ readonly cellId: string;
18
+ }
19
+ export declare const datePickerFocus: ElementAction<DatePickerFocusParam | undefined>;
@@ -0,0 +1,16 @@
1
+ import { createAction } from "./action.js";
2
+ // src/runtime/actions/date-picker-focus.ts
3
+ const datePickerFocus = createAction((node, param) => {
4
+ if (param === void 0) return;
5
+ const apply = (current) => {
6
+ if (!current.open) return;
7
+ const active = document.activeElement;
8
+ if (active instanceof Node && node.contains(active)) return;
9
+ document.getElementById(current.cellId)?.focus?.();
10
+ };
11
+ apply(param);
12
+ return { update: apply };
13
+ });
14
+ export { datePickerFocus };
15
+
16
+ //# sourceMappingURL=date-picker-focus.js.map
@@ -0,0 +1,66 @@
1
+ import { ElementAction } from "./action.js";
2
+ /**
3
+ * A pointer drag on a handle: pointerdown arms, pointermove reports the
4
+ * delta from the press point, pointerup ends, and Escape cancels back to
5
+ * the press point.
6
+ *
7
+ * The listeners live on the document once armed — the node is the handle,
8
+ * so the reports keep arriving even after the pointer leaves it. The
9
+ * machine sees three facts — START, MOVE (with the delta and the pressed
10
+ * modifiers), END — and decides what they mean; the gesture itself (the
11
+ * listeners, the escape hatch, the capture, the release) is all here.
12
+ *
13
+ * The pointer is CAPTURED on the handle for the gesture's life, so a
14
+ * release off the handle still ends the drag: the components that used to
15
+ * carry their own `setPointerCapture` helper now own the gesture through
16
+ * this action alone.
17
+ */
18
+ export interface DragParam {
19
+ /** True while the gesture is legal (a maximized panel does not drag). */
20
+ readonly enabled?: boolean;
21
+ /** Capture the pointer on the handle for the gesture's life (default: true). */
22
+ readonly capture?: boolean;
23
+ /** Cancel the press's default (default: true). */
24
+ readonly preventDefault?: boolean;
25
+ /** Keep the press from reaching the handle's ancestors (default: false). */
26
+ readonly stopPropagation?: boolean;
27
+ /** Escape cancels the gesture (default: true). A handle whose gesture
28
+ * has no cancel path sets it false: Escape then does nothing. */
29
+ readonly cancelOnEscape?: boolean;
30
+ /** The press came down on the handle. */
31
+ readonly onStart?: (event: DragPress) => void;
32
+ /** The pointer moved; the delta is from the press point. */
33
+ readonly onMove?: (delta: DragDelta) => void;
34
+ /** The pointer came up or Escape arrived; `cancelled` reads which. */
35
+ readonly onEnd?: (end: {
36
+ readonly cancelled: boolean;
37
+ }) => void;
38
+ }
39
+ export interface DragPress {
40
+ readonly altKey: boolean;
41
+ readonly shiftKey: boolean;
42
+ /** The control key, when the press carried one. */
43
+ readonly ctrlKey?: boolean;
44
+ /** The meta key, when the press carried one. */
45
+ readonly metaKey?: boolean;
46
+ /** The press point, in client coordinates. */
47
+ readonly x: number;
48
+ /** The press point, in client coordinates. */
49
+ readonly y: number;
50
+ /** The pointer that owns the gesture. */
51
+ readonly pointerId: number;
52
+ /** The press's pressure: 0.5 for a mouse, the pen's force for a pen. */
53
+ readonly pressure: number;
54
+ /** What the press landed on: the handle, or something inside it. */
55
+ readonly target: EventTarget | null;
56
+ /** The handle's box, read where the gesture is reported. */
57
+ readonly rect: DOMRect | null;
58
+ /** The handle's direction at press time: mirroring math reads this,
59
+ * not a prop. */
60
+ readonly direction: "ltr" | "rtl";
61
+ }
62
+ export interface DragDelta extends DragPress {
63
+ readonly dx: number;
64
+ readonly dy: number;
65
+ }
66
+ export declare const drag: ElementAction<DragParam | undefined>;
@@ -0,0 +1,118 @@
1
+ import { createAction } from "./action.js";
2
+ // src/runtime/actions/drag.ts
3
+ /** The handle's direction, read where the gesture is reported: direction
4
+ * is platform truth (inherited, settable above the component), so it is
5
+ * read at gesture time, never stored, never passed as a prop. */
6
+ const directionOf = (node) => {
7
+ try {
8
+ return node.ownerDocument?.defaultView?.getComputedStyle(node).direction === "rtl" ? "rtl" : "ltr";
9
+ } catch {
10
+ return "ltr";
11
+ }
12
+ };
13
+ /** The handle's box, read where the gesture is reported: a handle that
14
+ * measures itself is the action's job, not the caller's. */
15
+ const boxOf = (node) => {
16
+ if (typeof node.getBoundingClientRect !== "function") return null;
17
+ try {
18
+ return node.getBoundingClientRect();
19
+ } catch {
20
+ return null;
21
+ }
22
+ };
23
+ const drag = createAction((node, param) => {
24
+ let originX = 0;
25
+ let originY = 0;
26
+ let pointerId = -1;
27
+ let captured = false;
28
+ let stop;
29
+ const end = (cancelled) => {
30
+ stop?.();
31
+ stop = void 0;
32
+ if (captured) {
33
+ captured = false;
34
+ const release = node.releasePointerCapture;
35
+ if (typeof release === "function") try {
36
+ release.call(node, pointerId);
37
+ } catch {}
38
+ }
39
+ param?.onEnd?.({ cancelled });
40
+ };
41
+ const arm = (event) => {
42
+ if (stop !== void 0) return;
43
+ if (param?.enabled === false) return;
44
+ if (event.button !== 0) return;
45
+ const target = event.target;
46
+ if (target instanceof Element && target !== node && target.closest("button, a, input, select, textarea") !== null) return;
47
+ if (param?.preventDefault !== false) event.preventDefault();
48
+ if (param?.stopPropagation === true) event.stopPropagation();
49
+ originX = event.clientX;
50
+ originY = event.clientY;
51
+ pointerId = event.pointerId;
52
+ const press = {
53
+ altKey: event.altKey,
54
+ shiftKey: event.shiftKey,
55
+ ctrlKey: event.ctrlKey,
56
+ metaKey: event.metaKey,
57
+ x: event.clientX,
58
+ y: event.clientY,
59
+ pointerId: event.pointerId,
60
+ pressure: event.pressure,
61
+ target,
62
+ rect: boxOf(node),
63
+ direction: directionOf(node)
64
+ };
65
+ if (param?.capture !== false) {
66
+ const capture = node.setPointerCapture;
67
+ if (typeof capture === "function") try {
68
+ capture.call(node, event.pointerId);
69
+ captured = true;
70
+ } catch {}
71
+ }
72
+ param?.onStart?.(press);
73
+ const doc = node.ownerDocument;
74
+ const onMove = (moveEvent) => {
75
+ if (param?.preventDefault !== false) moveEvent.preventDefault();
76
+ param?.onMove?.({
77
+ altKey: moveEvent.altKey || press.altKey,
78
+ shiftKey: moveEvent.shiftKey || press.shiftKey,
79
+ x: moveEvent.clientX,
80
+ y: moveEvent.clientY,
81
+ pointerId: moveEvent.pointerId,
82
+ pressure: moveEvent.pressure,
83
+ target: moveEvent.target,
84
+ rect: boxOf(node),
85
+ direction: directionOf(node),
86
+ dx: moveEvent.clientX - originX,
87
+ dy: moveEvent.clientY - originY
88
+ });
89
+ };
90
+ const onUp = () => end(false);
91
+ const onKey = (keyEvent) => {
92
+ if (keyEvent.key !== "Escape") return;
93
+ if (param?.cancelOnEscape === false) return;
94
+ end(true);
95
+ };
96
+ doc.addEventListener("pointermove", onMove);
97
+ doc.addEventListener("pointerup", onUp);
98
+ doc.addEventListener("keydown", onKey);
99
+ stop = () => {
100
+ doc.removeEventListener("pointermove", onMove);
101
+ doc.removeEventListener("pointerup", onUp);
102
+ doc.removeEventListener("keydown", onKey);
103
+ };
104
+ };
105
+ node.addEventListener("pointerdown", arm);
106
+ return {
107
+ update: (next) => {
108
+ param = next;
109
+ },
110
+ destroy: () => {
111
+ end(true);
112
+ node.removeEventListener("pointerdown", arm);
113
+ }
114
+ };
115
+ });
116
+ export { drag };
117
+
118
+ //# sourceMappingURL=drag.js.map
@@ -0,0 +1,18 @@
1
+ import { ElementAction } from "./action.js";
2
+ /**
3
+ * formControl — report the ancestor fieldset's disabled state and the form's
4
+ * reset.
5
+ *
6
+ * Both are the FORM's state, not the widget's: a control inside a disabled
7
+ * fieldset is inert, and a reset returns it to its seeded value. The machine
8
+ * decides what either report means.
9
+ *
10
+ * Written for the rating-group port: a radio-shaped control inside a form
11
+ * participates in both reports, and nothing in the action catalog wires
12
+ * either.
13
+ */
14
+ export interface FormControlParam {
15
+ onDisabledChange?: (disabled: boolean) => void;
16
+ onFormReset?: () => void;
17
+ }
18
+ export declare const formControl: ElementAction<FormControlParam | undefined>;
@@ -0,0 +1,41 @@
1
+ import { createAction } from "./action.js";
2
+ // src/runtime/actions/form-control.ts
3
+ const formControl = createAction((node, param) => {
4
+ const stops = [];
5
+ let observer;
6
+ const reportFieldset = (fieldset) => {
7
+ param?.onDisabledChange?.(fieldset !== null && fieldset.disabled);
8
+ };
9
+ const onReset = (event) => {
10
+ event.preventDefault();
11
+ param?.onFormReset?.();
12
+ };
13
+ queueMicrotask(() => {
14
+ const fieldset = node.closest("fieldset");
15
+ const form = node.closest("form");
16
+ reportFieldset(fieldset);
17
+ if (fieldset !== null && typeof MutationObserver === "function") {
18
+ observer = new MutationObserver(() => reportFieldset(fieldset));
19
+ observer.observe(fieldset, {
20
+ attributes: true,
21
+ attributeFilter: ["disabled"]
22
+ });
23
+ }
24
+ if (form !== null) {
25
+ form.addEventListener("reset", onReset);
26
+ stops.push(() => form.removeEventListener("reset", onReset));
27
+ }
28
+ });
29
+ return {
30
+ update: (next) => {
31
+ param = next;
32
+ },
33
+ destroy: () => {
34
+ observer?.disconnect();
35
+ for (const stop of stops) stop();
36
+ }
37
+ };
38
+ });
39
+ export { formControl };
40
+
41
+ //# sourceMappingURL=form-control.js.map
@@ -0,0 +1,26 @@
1
+ import { ElementAction } from "./action.js";
2
+ /**
3
+ * The two dwell clocks a hover surface needs: open after resting on the
4
+ * trigger, close after leaving the surface.
5
+ *
6
+ * One action, not two, because the clocks share one invariant: leaving
7
+ * cancels a pending open, and re-entering cancels a pending close. Two
8
+ * timers with separate owners would race that handoff through the host.
9
+ * The timer is the action's, so a platform-owned surface (tooltip,
10
+ * hover-card) has no transitional state to hold — the attach maps the
11
+ * two reports onto `showPopover`/`hidePopover` directly.
12
+ *
13
+ * Touch never opens: a tooltip that opens on tap steals the tap the
14
+ * trigger itself wanted.
15
+ */
16
+ export interface HoverDelayParam {
17
+ /** Rest on the trigger before `onOpen` fires, in milliseconds. */
18
+ readonly openDelay?: number;
19
+ /** Off the surface before `onClose` fires, in milliseconds. */
20
+ readonly closeDelay?: number;
21
+ /** The pointer rested long enough; the surface opens. */
22
+ readonly onOpen?: () => void;
23
+ /** The pointer stayed away long enough; the surface closes. */
24
+ readonly onClose?: () => void;
25
+ }
26
+ export declare const hoverDelay: ElementAction<HoverDelayParam | undefined>;