@spinjs/components 0.1.0-preview.1 → 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 +11 -12
  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 +20 -21
  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 +7 -8
  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 +9 -10
  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
@@ -0,0 +1,244 @@
1
+ import { effect, own, scope } from "../core/signal.js";
2
+ // src/runtime/directives/bind.ts
3
+ function bindText(node, get) {
4
+ let last;
5
+ effect(() => {
6
+ const v = get();
7
+ if (v !== last) {
8
+ last = v;
9
+ node.data = v == null ? "" : String(v);
10
+ }
11
+ });
12
+ }
13
+ /** The class a markup's class attribute holds.
14
+ *
15
+ * The attribute takes the shape the markup reads best: a list of parts,
16
+ * where a part is a string of classes or an object of conditions.
17
+ *
18
+ * class={["mb-4 text-sm text-muted", { "bg-primary": focused }]}
19
+ *
20
+ * A string is the classes themselves — plain text, so the build's
21
+ * extractor sees them as they are. An object's keys are the classes and
22
+ * its values the conditions; a key whose value is truthy is in.
23
+ *
24
+ * The values are live reads, so the class follows the state.
25
+ */
26
+ function classOf(classes) {
27
+ const out = [];
28
+ const keys = [];
29
+ const groupOf = (core) => {
30
+ let match;
31
+ if (/^bg-(.+)$/.exec(core) !== null) return "bg";
32
+ if (/^text-(left|center|right|justify|start|end)$/.exec(core) !== null) return "text-align";
33
+ if (/^text-(.+)$/.exec(core) !== null) return "text-color";
34
+ if (/^type-(.+)$/.exec(core) !== null) return "type";
35
+ if (/^opacity-\d+$/.exec(core) !== null) return "opacity";
36
+ if (/^cursor-(.+)$/.exec(core) !== null) return "cursor";
37
+ if (/^-?scale-(.+)$/.exec(core) !== null) return "scale";
38
+ if (/^-?rotate-(.+)$/.exec(core) !== null) return "rotate";
39
+ if (/^shadow(?:-(.+))?$/.exec(core) !== null) return "shadow";
40
+ if (/^rounded(?:-(none|sm|md|lg|xl|2xl|3xl|full))?$/.exec(core) !== null) return "rounded";
41
+ if (/^border(?:-(0|2|4|8))?$/.exec(core) !== null) return "border-width";
42
+ if (/^border-(solid|dashed|dotted|double|none)$/.exec(core) !== null) return "border-style";
43
+ if (/^border-(?!t$|r$|b$|l$|x$|y$|s$|e$|t-|r-|b-|l-|x-|y-|s-|e-)(.+)$/.exec(core) !== null) return "border-color";
44
+ match = /^(p|px|py|pt|pr|pb|pl|ps|pe|m|mx|my|mt|mr|mb|ml|ms|me|gap|gap-x|gap-y|w|h|min-w|max-w|min-h|max-h|z)-(.+)$/.exec(core);
45
+ if (match !== null) return match[1];
46
+ if (/^(block|inline-block|inline|flex|inline-flex|grid|inline-grid|contents|hidden)$/.exec(core) !== null) return "display";
47
+ if (/^(static|relative|absolute|fixed|sticky)$/.exec(core) !== null) return "position";
48
+ return null;
49
+ };
50
+ const push = (text) => {
51
+ for (const token of text.split(/\s+/)) {
52
+ if (token.length === 0) continue;
53
+ const cut = token.lastIndexOf(":");
54
+ const variant = cut === -1 ? "" : token.slice(0, cut + 1);
55
+ const core = cut === -1 ? token : token.slice(cut + 1);
56
+ const group = groupOf(core);
57
+ if (group === null) {
58
+ out.push(token);
59
+ keys.push(null);
60
+ continue;
61
+ }
62
+ const conflictKey = variant + group;
63
+ const fill = /^bg-(.+)$/.exec(core)?.[1];
64
+ for (let index = out.length - 1; index >= 0; index--) if (keys[index] === conflictKey) {
65
+ if (fill !== void 0 && group === "bg" && (fill === "surface" || fill.startsWith("surface-") || fill === "transparent")) {
66
+ const prevFill = /^bg-(.+)$/.exec(out[index].slice(variant.length))?.[1];
67
+ if (prevFill !== void 0) {
68
+ const inkKey = `${variant}text-on-${prevFill}`;
69
+ const at = out.indexOf(inkKey);
70
+ if (at !== -1) {
71
+ out.splice(at, 1);
72
+ keys.splice(at, 1);
73
+ if (at <= index) index -= 1;
74
+ }
75
+ }
76
+ }
77
+ out.splice(index, 1);
78
+ keys.splice(index, 1);
79
+ }
80
+ out.push(token);
81
+ keys.push(conflictKey);
82
+ }
83
+ };
84
+ const part = (value) => {
85
+ if (typeof value === "string") {
86
+ push(value);
87
+ return;
88
+ }
89
+ if (Array.isArray(value)) {
90
+ for (const item of value) part(item);
91
+ return;
92
+ }
93
+ if (value !== null && typeof value === "object") for (const [name, condition] of Object.entries(value)) {
94
+ if (!condition) continue;
95
+ push(name);
96
+ }
97
+ };
98
+ part(classes);
99
+ return out.join(" ");
100
+ }
101
+ function bindAttr(el, name, get) {
102
+ let last = Symbol("init");
103
+ effect(() => {
104
+ const v = get();
105
+ if (Object.is(v, last)) return;
106
+ last = v;
107
+ if (v === void 0 || v === null || v === false) el.removeAttribute(name);
108
+ else if (v === true) el.setAttribute(name, "");
109
+ else el.setAttribute(name, String(v));
110
+ });
111
+ }
112
+ function bindProp(el, name, get) {
113
+ const view = el;
114
+ effect(() => {
115
+ view[name] = get();
116
+ });
117
+ }
118
+ function bindDynamic(el, name, get) {
119
+ if (el.tagName.includes("-")) bindProp(el, name, get);
120
+ else bindAttr(el, name, get);
121
+ }
122
+ function bindValue(el, source) {
123
+ const view = el;
124
+ let last = source();
125
+ view["value"] = last;
126
+ const onInput = () => {
127
+ const next = view["value"];
128
+ if (next === last) return;
129
+ last = next;
130
+ source.set(next);
131
+ };
132
+ el.addEventListener("input", onInput);
133
+ const stopInput = () => el.removeEventListener("input", onInput);
134
+ let stopEffect = () => {};
135
+ {
136
+ const owner = scope();
137
+ owner.run(() => effect(() => {
138
+ const next = source();
139
+ if (next === last) return;
140
+ last = next;
141
+ if (view["value"] !== next) view["value"] = next;
142
+ }));
143
+ const dispose = () => owner.dispose();
144
+ stopEffect = dispose;
145
+ }
146
+ const stop = () => {
147
+ stopInput();
148
+ stopEffect();
149
+ };
150
+ try {
151
+ own(stop);
152
+ } catch {}
153
+ return {
154
+ pull() {
155
+ const next = source();
156
+ if (next === last) return;
157
+ last = next;
158
+ if (view["value"] !== next) view["value"] = next;
159
+ },
160
+ stop
161
+ };
162
+ }
163
+ function bindChecked(el, source) {
164
+ let last = source();
165
+ el.checked = last;
166
+ const onInput = () => {
167
+ const next = el.checked;
168
+ if (next === last) return;
169
+ last = next;
170
+ source.set(next);
171
+ };
172
+ el.addEventListener("input", onInput);
173
+ const stopInput = () => el.removeEventListener("input", onInput);
174
+ let stopEffect = () => {};
175
+ {
176
+ const owner = scope();
177
+ owner.run(() => effect(() => {
178
+ const next = source();
179
+ if (next === last) return;
180
+ last = next;
181
+ el.checked = next;
182
+ }));
183
+ stopEffect = () => owner.dispose();
184
+ }
185
+ const stop = () => {
186
+ stopInput();
187
+ stopEffect();
188
+ };
189
+ try {
190
+ own(stop);
191
+ } catch {}
192
+ return {
193
+ pull() {
194
+ const next = source();
195
+ if (next === last) return;
196
+ last = next;
197
+ el.checked = next;
198
+ },
199
+ stop
200
+ };
201
+ }
202
+ /**
203
+ * Light-DOM transclusion. At build start the element's existing children are
204
+ * moved out and grouped by their `slot` attribute (`""` = default). A
205
+ * `<slot name="x">` in markup resolves to its group; unmatched groups are
206
+ * dropped (native slot behavior — unassigned nodes render nowhere).
207
+ *
208
+ * Why manual instead of shadow DOM: the preset styles light DOM, and every
209
+ * selector in the system assumes it. Shadow would isolate correctly and
210
+ * break everything else.
211
+ */
212
+ const projectedSlots = /* @__PURE__ */ new WeakMap();
213
+ function projectSlots(el) {
214
+ const cached = projectedSlots.get(el);
215
+ if (cached !== void 0) {
216
+ for (const node of [...el.childNodes]) {
217
+ if (node.nodeType === 8) continue;
218
+ el.removeChild(node);
219
+ }
220
+ return cached;
221
+ }
222
+ const groups = /* @__PURE__ */ new Map();
223
+ for (const node of [...el.childNodes]) {
224
+ if (node.nodeType === 8) continue;
225
+ const name = node instanceof Element ? node.getAttribute("slot") ?? "" : "";
226
+ const group = groups.get(name);
227
+ if (group !== void 0) group.push(node);
228
+ else groups.set(name, [node]);
229
+ el.removeChild(node);
230
+ }
231
+ projectedSlots.set(el, groups);
232
+ return groups;
233
+ }
234
+ /**
235
+ * Places assigned nodes (moved, never cloned — state and listeners travel)
236
+ * before `anchor`, or the fallback nodes when nothing was assigned.
237
+ */
238
+ function placeSlot(host, anchor, assigned, fallback) {
239
+ const nodes = assigned !== void 0 && assigned.length > 0 ? assigned : fallback;
240
+ for (const n of nodes) if (n.parentNode !== host || n.nextSibling !== anchor) host.insertBefore(n, anchor);
241
+ }
242
+ export { bindAttr, bindChecked, bindDynamic, bindProp, bindText, bindValue, classOf, placeSlot, projectSlots };
243
+
244
+ //# sourceMappingURL=bind.js.map
@@ -0,0 +1,12 @@
1
+ export interface RenderedItem {
2
+ nodes: Node[];
3
+ cleanup?: () => void;
4
+ update?: (item: unknown, index: number) => void;
5
+ }
6
+ export interface BindForOptions<T> {
7
+ anchor: Comment;
8
+ items: () => readonly T[];
9
+ key: (item: T, index: number) => unknown;
10
+ render: (item: T, index: number) => RenderedItem;
11
+ }
12
+ export declare function bindFor<T>(opts: BindForOptions<T>): () => void;
@@ -0,0 +1,104 @@
1
+ import { effect, own, scope, untrack } from "../core/signal.js";
2
+ // src/runtime/directives/for.ts
3
+ function bindFor(opts) {
4
+ const { anchor, items, key, render } = opts;
5
+ const parent = () => anchor.parentNode;
6
+ let cells = [];
7
+ let index = /* @__PURE__ */ new Map();
8
+ let last;
9
+ const sync = (list) => {
10
+ const host = parent();
11
+ if (host === null) return;
12
+ const next = new Array(list.length);
13
+ for (let i = 0; i < list.length; i++) {
14
+ const item = list[i];
15
+ const k = key(item, i);
16
+ const bucket = index.get(k);
17
+ const hit = bucket !== void 0 && bucket.at < bucket.cells.length ? bucket.cells[bucket.at++] : void 0;
18
+ if (hit !== void 0) {
19
+ hit.item = item;
20
+ next[i] = hit;
21
+ } else {
22
+ const owner = scope();
23
+ let rendered;
24
+ untrack(() => {
25
+ owner.run(() => {
26
+ rendered = render(item, i);
27
+ });
28
+ });
29
+ const nodes = [...rendered.nodes];
30
+ for (const n of nodes) host.insertBefore(n, anchor);
31
+ next[i] = {
32
+ key: k,
33
+ item,
34
+ rendered,
35
+ nodes,
36
+ owner
37
+ };
38
+ }
39
+ }
40
+ const dead = [];
41
+ const keep = /* @__PURE__ */ new Set();
42
+ for (const cell of next) for (const n of cell.nodes) keep.add(n);
43
+ for (const cell of cells) {
44
+ let alive = false;
45
+ for (const n of cell.nodes) if (keep.has(n)) {
46
+ alive = true;
47
+ break;
48
+ }
49
+ if (!alive) dead.push(cell);
50
+ }
51
+ let cursor = anchor;
52
+ for (let idx = next.length - 1; idx >= 0; idx--) {
53
+ const cell = next[idx];
54
+ if (cell.nodes.length === 0) continue;
55
+ for (let k = cell.nodes.length - 1; k >= 0; k--) {
56
+ const n = cell.nodes[k];
57
+ if (n.parentNode !== host) host.insertBefore(n, cursor);
58
+ else if (n.nextSibling !== cursor) host.insertBefore(n, cursor);
59
+ cursor = n;
60
+ }
61
+ }
62
+ for (let i = 0; i < next.length; i++) {
63
+ const cell = next[i];
64
+ cell.rendered.update?.(cell.item, i);
65
+ }
66
+ for (const cell of dead) {
67
+ for (const n of cell.nodes) if (n.parentNode === host) host.removeChild(n);
68
+ cell.rendered.cleanup?.();
69
+ cell.owner.dispose();
70
+ }
71
+ cells = next;
72
+ const rebuilt = /* @__PURE__ */ new Map();
73
+ for (const cell of next) {
74
+ const bucket = rebuilt.get(cell.key);
75
+ if (bucket === void 0) rebuilt.set(cell.key, {
76
+ cells: [cell],
77
+ at: 0
78
+ });
79
+ else bucket.cells.push(cell);
80
+ }
81
+ index = rebuilt;
82
+ };
83
+ effect(() => {
84
+ const v = items();
85
+ if (v !== last) {
86
+ last = v;
87
+ sync(v ?? []);
88
+ }
89
+ });
90
+ const stop = () => {
91
+ for (const cell of cells) {
92
+ cell.rendered.cleanup?.();
93
+ cell.owner.dispose();
94
+ }
95
+ cells = [];
96
+ };
97
+ try {
98
+ own(stop);
99
+ } catch {}
100
+ return stop;
101
+ }
102
+ export { bindFor };
103
+
104
+ //# sourceMappingURL=for.js.map
@@ -0,0 +1,10 @@
1
+ export interface BranchRender {
2
+ nodes: Node[];
3
+ cleanup?: () => void;
4
+ }
5
+ export interface BindIfOptions {
6
+ anchor: Comment;
7
+ test: () => number;
8
+ branches: Array<() => BranchRender>;
9
+ }
10
+ export declare function bindIf(opts: BindIfOptions): () => void;
@@ -0,0 +1,45 @@
1
+ import { effect, own, scope, untrack } from "../core/signal.js";
2
+ // src/runtime/directives/if.ts
3
+ function bindIf(opts) {
4
+ const { anchor, test, branches } = opts;
5
+ let nodes = [];
6
+ let cleanup;
7
+ let owner;
8
+ let last;
9
+ const teardown = () => {
10
+ cleanup?.();
11
+ cleanup = void 0;
12
+ owner?.dispose();
13
+ owner = void 0;
14
+ const host = anchor.parentNode;
15
+ if (host !== null) {
16
+ for (const n of nodes) if (n.parentNode === host) host.removeChild(n);
17
+ }
18
+ nodes = [];
19
+ };
20
+ effect(() => {
21
+ const v = test();
22
+ if (v === last) return;
23
+ last = v;
24
+ teardown();
25
+ if (v < 0 || v >= branches.length) return;
26
+ const next = scope();
27
+ owner = next;
28
+ let rendered;
29
+ next.run(() => untrack(() => {
30
+ rendered = branches[v]();
31
+ }));
32
+ cleanup = rendered.cleanup;
33
+ nodes = rendered.nodes;
34
+ const host = anchor.parentNode;
35
+ if (host !== null) for (const n of nodes) host.insertBefore(n, anchor);
36
+ });
37
+ const stop = () => teardown();
38
+ try {
39
+ own(stop);
40
+ } catch {}
41
+ return stop;
42
+ }
43
+ export { bindIf };
44
+
45
+ //# sourceMappingURL=if.js.map
@@ -0,0 +1,13 @@
1
+ import { ElementAction } from "./use.js";
2
+ import { Node } from "../syntax/ir.js";
3
+ import { Handle } from "../scope/table.js";
4
+ export interface LoaderActions {
5
+ readonly [name: string]: ElementAction<unknown>;
6
+ }
7
+ export interface LoaderScope {
8
+ readonly [name: string]: unknown;
9
+ }
10
+ export declare function load(source: string, actions: LoaderActions, values: LoaderScope, onUnknown?: "throw" | "skip", resolve?: (handle: Handle) => unknown): {
11
+ nodes: Node[];
12
+ dispose(): void;
13
+ };
@@ -0,0 +1,119 @@
1
+ import { bindAttr, bindText } from "./bind.js";
2
+ import { bindSpread } from "./spread.js";
3
+ import { on, runAction } from "./use.js";
4
+ import { scope } from "../core/signal.js";
5
+ import { bindFor } from "./for.js";
6
+ import { parse } from "../syntax/parse.js";
7
+ // src/runtime/directives/load.ts
8
+ function resolve(value) {
9
+ if (typeof value === "function" && value.length === 0) try {
10
+ return value();
11
+ } catch {
12
+ return;
13
+ }
14
+ return value;
15
+ }
16
+ function readExpr(expr, values) {
17
+ const names = Object.keys(values);
18
+ const args = names.map((name) => values[name]);
19
+ try {
20
+ return resolve(new Function(...names, `return (${expr});`)(...args));
21
+ } catch {
22
+ return;
23
+ }
24
+ }
25
+ function callExpr(expr, values) {
26
+ const fn = readExpr(expr, values);
27
+ if (typeof fn === "function") return fn;
28
+ return () => void 0;
29
+ }
30
+ function wire(root, ir, actions, values, _parts) {
31
+ const walk = (nodes, mount, _target, rowScope) => {
32
+ const active = rowScope ?? values;
33
+ for (const node of nodes) {
34
+ if (node.kind === "text") {
35
+ if (!node.parts.some((part) => part.kind === "expr")) {
36
+ const text = node.parts.map((part) => part.kind === "static" ? part.value : "").join("");
37
+ if (text.length > 0) mount.appendChild(document.createTextNode(text));
38
+ continue;
39
+ }
40
+ const t = document.createTextNode("");
41
+ mount.appendChild(t);
42
+ bindText(t, () => {
43
+ let out = "";
44
+ for (const part of node.parts) if (part.kind === "static") out += part.value;
45
+ else {
46
+ const v = readExpr(part.expr, active);
47
+ out += v == null ? "" : String(v);
48
+ }
49
+ return out;
50
+ });
51
+ continue;
52
+ }
53
+ if (node.kind === "for") {
54
+ const anchor = document.createComment("for");
55
+ mount.appendChild(anchor);
56
+ bindFor({
57
+ anchor,
58
+ items: () => readExpr(node.source, active) ?? [],
59
+ key: node.key !== void 0 ? (item, i) => readExpr(node.key, {
60
+ ...active,
61
+ [node.binding]: item,
62
+ i
63
+ }) : (_item, i) => i,
64
+ render: (item) => {
65
+ const frag = document.createDocumentFragment();
66
+ const rowScope = {
67
+ ...active,
68
+ [node.binding]: item
69
+ };
70
+ walk(node.body, frag, [], rowScope);
71
+ return { nodes: [...frag.childNodes] };
72
+ }
73
+ });
74
+ continue;
75
+ }
76
+ const el = document.createElement(node.tag);
77
+ for (const attr of node.attrs) if (attr.value.kind === "static") el.setAttribute(attr.name, attr.value.value);
78
+ else {
79
+ const expr = attr.value.expr;
80
+ bindAttr(el, attr.name, () => readExpr(expr, active));
81
+ }
82
+ for (const ev of node.events) {
83
+ const handler = callExpr(ev.handler, active);
84
+ on(el, ev.event, (e) => handler(e));
85
+ }
86
+ for (const use of node.actions) {
87
+ const action = actions[use.name];
88
+ if (typeof action === "function") {
89
+ if (use.param !== void 0) runAction(el, action, () => readExpr(use.param, active));
90
+ else runAction(el, action, void 0);
91
+ }
92
+ }
93
+ for (const spread of node.spreads) bindSpread(el, () => readExpr(spread.expr, active));
94
+ mount.appendChild(el);
95
+ walk(node.children, el, [], active);
96
+ }
97
+ };
98
+ walk(ir.nodes, root, _parts);
99
+ }
100
+ function load(source, actions, values, onUnknown = "skip", resolve) {
101
+ const ir = parse(source);
102
+ const frag = document.createDocumentFragment();
103
+ const owner = scope();
104
+ const effectiveValues = resolve ? {
105
+ ...values,
106
+ "@@resolve": resolve
107
+ } : values;
108
+ const stop = owner.run(() => {
109
+ wire(frag, ir, actions, effectiveValues, []);
110
+ return () => owner.dispose();
111
+ });
112
+ return {
113
+ nodes: [...frag.childNodes],
114
+ dispose: stop
115
+ };
116
+ }
117
+ export { load };
118
+
119
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Reactive prop application from a live reader.
3
+ *
4
+ * Loader-owned effect: called from emitted code in build scope. The reader
5
+ * re-runs when a signal it reads moves, plus on insertion. Handlers (on*)
6
+ * are skipped — actions own those.
7
+ */
8
+ export declare function bindActionProps(el: Element, read: () => Record<string, unknown>): void;
9
+ /**
10
+ * Reactive spread application from a live reader.
11
+ *
12
+ * Same lifecycle as bindActionProps (signal-driven), but `on*`
13
+ * function values attach as event listeners instead of being skipped —
14
+ * the bag owns its handlers. Listener names are the lowercased slice(2)
15
+ * of the key; a camelCase name (`onFocus`) is already the DOM spelling.
16
+ */
17
+ export declare function bindSpread(el: Element, read: () => Record<string, unknown>): () => void;
@@ -0,0 +1,121 @@
1
+ import { effect, signal, untrack } from "../core/signal.js";
2
+ import { runAction } from "../actions/action.js";
3
+ import { ACTIONS } from "../actions/index.js";
4
+ import { runInElement } from "../scope/element.js";
5
+ import { toStyleString } from "../core/style.js";
6
+ // src/runtime/directives/spread.ts
7
+ /**
8
+ * Properties written through the IDL rather than as content attributes.
9
+ */
10
+ const ASSIGNABLE = /* @__PURE__ */ new Set([
11
+ "value",
12
+ "checked",
13
+ "selected",
14
+ "tabIndex"
15
+ ]);
16
+ /**
17
+ * Whether the element declares the name as a writable property. A
18
+ * declared prop crosses through its accessor — an array or an object
19
+ * cannot travel as an attribute, and the element's grammar owns the
20
+ * coercion. A getter-only property (the DOM's `form`, say) stays on the
21
+ * attribute path: writing it would throw.
22
+ */
23
+ const hasAccessor = (el, name) => {
24
+ let target = el;
25
+ while (target !== null) {
26
+ const desc = Object.getOwnPropertyDescriptor(target, name);
27
+ if (desc !== void 0) return typeof desc.set === "function";
28
+ target = Object.getPrototypeOf(target);
29
+ }
30
+ return false;
31
+ };
32
+ /**
33
+ * Reactive prop application from a live reader.
34
+ *
35
+ * Loader-owned effect: called from emitted code in build scope. The reader
36
+ * re-runs when a signal it reads moves, plus on insertion. Handlers (on*)
37
+ * are skipped — actions own those.
38
+ */
39
+ function bindActionProps(el, read) {
40
+ let last = {};
41
+ effect(() => {
42
+ const props = read();
43
+ for (const name of Object.keys(last)) if (!(name in props) && !name.startsWith("on")) el.removeAttribute(name);
44
+ for (const [name, value] of Object.entries(props)) {
45
+ if (name.startsWith("on")) continue;
46
+ if (!ASSIGNABLE.has(name) && Object.is(value, last[name])) continue;
47
+ if (ASSIGNABLE.has(name)) el[name] = value;
48
+ else if (name.startsWith("aria-") && (value === true || value === false)) el.setAttribute(name, value === true ? "true" : "false");
49
+ else if (value === void 0 || value === null || value === false) el.removeAttribute(name);
50
+ else if (value === true) el.setAttribute(name, "");
51
+ else el.setAttribute(name, String(value));
52
+ }
53
+ last = props;
54
+ });
55
+ }
56
+ /**
57
+ * Reactive spread application from a live reader.
58
+ *
59
+ * Same lifecycle as bindActionProps (signal-driven), but `on*`
60
+ * function values attach as event listeners instead of being skipped —
61
+ * the bag owns its handlers. Listener names are the lowercased slice(2)
62
+ * of the key; a camelCase name (`onFocus`) is already the DOM spelling.
63
+ */
64
+ function bindSpread(el, read) {
65
+ let last = {};
66
+ const attached = /* @__PURE__ */ new Map();
67
+ const latest = signal({});
68
+ const attachedActions = /* @__PURE__ */ new Set();
69
+ effect(() => {
70
+ const props = read();
71
+ for (const name of Object.keys(last)) {
72
+ const directive = name.startsWith("use:");
73
+ if (!(name in props) && !name.startsWith("on") && !directive) el.removeAttribute(name);
74
+ }
75
+ const seen = /* @__PURE__ */ new Set();
76
+ const EVENT_ALIASES = { doubleclick: "dblclick" };
77
+ for (const [name, value] of Object.entries(props)) {
78
+ if (name.startsWith("on") && typeof value === "function") {
79
+ const type = EVENT_ALIASES[name.slice(2).toLowerCase()] ?? name.slice(2).toLowerCase();
80
+ const listener = value;
81
+ seen.add(type);
82
+ if (attached.get(type) !== listener) {
83
+ const prev = attached.get(type);
84
+ if (prev !== void 0) el.removeEventListener(type, prev);
85
+ el.addEventListener(type, listener);
86
+ attached.set(type, listener);
87
+ }
88
+ continue;
89
+ }
90
+ if (name.startsWith("use:")) continue;
91
+ if (Object.is(value, last[name])) continue;
92
+ if (name === "style") el.setAttribute("style", toStyleString(value));
93
+ else if (ASSIGNABLE.has(name) || hasAccessor(el, name)) el[name] = value;
94
+ else if (name.startsWith("aria-") && typeof value === "boolean") el.setAttribute(name, String(value));
95
+ else if (value === void 0 || value === null || value === false) el.removeAttribute(name);
96
+ else if (value === true) el.setAttribute(name, "");
97
+ else el.setAttribute(name, String(value));
98
+ }
99
+ for (const [type, fn] of attached) if (!seen.has(type)) {
100
+ el.removeEventListener(type, fn);
101
+ attached.delete(type);
102
+ }
103
+ last = props;
104
+ latest(props);
105
+ for (const name of Object.keys(props)) {
106
+ if (!name.startsWith("use:") || name.length <= 4) continue;
107
+ if (attachedActions.has(name)) continue;
108
+ const action = ACTIONS[name.slice(4)];
109
+ if (typeof action !== "function") continue;
110
+ attachedActions.add(name);
111
+ runInElement(el, () => untrack(() => runAction(el, action, () => {
112
+ const entry = latest()[name];
113
+ return typeof entry === "function" ? entry() : entry;
114
+ })));
115
+ }
116
+ });
117
+ return () => {};
118
+ }
119
+ export { bindActionProps, bindSpread };
120
+
121
+ //# sourceMappingURL=spread.js.map