@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,217 @@
1
+ // src/compiler/emit.ts
2
+ const KEYWORDS = /* @__PURE__ */ new Set([
3
+ "true",
4
+ "false",
5
+ "null",
6
+ "undefined",
7
+ "this",
8
+ "typeof",
9
+ "void",
10
+ "new",
11
+ "in",
12
+ "of",
13
+ "instanceof",
14
+ "return",
15
+ "const",
16
+ "let",
17
+ "var",
18
+ "if",
19
+ "else",
20
+ "for",
21
+ "while",
22
+ "do",
23
+ "switch",
24
+ "case",
25
+ "break",
26
+ "continue",
27
+ "function",
28
+ "arrow",
29
+ "async",
30
+ "await",
31
+ "try",
32
+ "catch",
33
+ "finally",
34
+ "throw",
35
+ "class",
36
+ "extends",
37
+ "super",
38
+ "import",
39
+ "export",
40
+ "default",
41
+ "delete",
42
+ "yield"
43
+ ]);
44
+ function freeNames(expr, bound) {
45
+ const found = [];
46
+ const re = /[A-Za-z_$][A-Za-z0-9_$]*/g;
47
+ let m;
48
+ const stripped = expr.replace(/"[^"]*"|'[^']*'|`[^`]*`/g, "\"\"");
49
+ while ((m = re.exec(stripped)) !== null) {
50
+ const name = m[0];
51
+ if (stripped.slice(Math.max(0, m.index - 1), m.index) === ".") continue;
52
+ const behind = stripped.slice(0, m.index);
53
+ const ahead = stripped.slice(m.index + name.length);
54
+ if (/[{,]\s*$/.test(behind) && /^\s*:/.test(ahead)) continue;
55
+ if (KEYWORDS.has(name)) continue;
56
+ if (bound.has(name)) continue;
57
+ if (!found.includes(name)) found.push(name);
58
+ }
59
+ return found;
60
+ }
61
+ /** A static handler's own params: `(event) => ...` binds `event`, so the
62
+ * scope rewrite must leave it alone. Simple identifiers only — a handler
63
+ * with destructured or defaulted params keeps the old (broken) rewrite
64
+ * rather than a cleverer wrong one. */
65
+ function handlerParams(handler) {
66
+ const arrow = handler.match(/^\s*(?:\(([^()]*)\)|([A-Za-z_$][A-Za-z0-9_$]*))\s*=>/);
67
+ if (arrow === null) return [];
68
+ const list = arrow[1] ?? arrow[2] ?? "";
69
+ const params = list.split(",").map((p) => p.trim()).filter((p) => /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(p));
70
+ const rawCount = list.trim() === "" ? 0 : list.split(",").length;
71
+ return params.length === rawCount ? params : [];
72
+ }
73
+ function scopeExpr(expr, bound) {
74
+ const names = freeNames(expr, bound);
75
+ if (names.length === 0) return expr;
76
+ let out = expr;
77
+ for (const name of names.sort((a, b) => b.length - a.length)) {
78
+ const re = new RegExp(`(?<![A-Za-z0-9_$."])${name}(?![A-Za-z0-9_$])`, "g");
79
+ out = out.replace(re, `values.${name}`);
80
+ }
81
+ return out;
82
+ }
83
+ const pad = (depth) => " ".repeat(depth);
84
+ function emit(ir) {
85
+ let bindings = 0;
86
+ let seq = 0;
87
+ const emitNodes = (nodes, depth, host, parts = "parts", bound = /* @__PURE__ */ new Set()) => {
88
+ const out = [];
89
+ for (const node of nodes) {
90
+ if (node.kind === "text") {
91
+ if (!node.parts.some((part) => part.kind === "expr")) {
92
+ const text = node.parts.map((part) => part.kind === "static" ? part.value : "").join("");
93
+ if (text.length === 0) continue;
94
+ out.push(`${pad(depth)}{ const t = document.createTextNode(${JSON.stringify(text)}); ${host}.appendChild(t); }`);
95
+ } else {
96
+ bindings++;
97
+ const id = `t${seq++}`;
98
+ const reads = node.parts.map((part) => {
99
+ if (part.kind === "static") return JSON.stringify(part.value);
100
+ return `String((${scopeExpr(part.expr, bound)}) ?? "")`;
101
+ }).join(" + ");
102
+ out.push(`${pad(depth)}{ const ${id} = document.createTextNode(""); const ${id}Fresh = signal(0); effect(() => { ${id}Fresh(); ${id}.data = (${reads}); }); ${parts}.push(() => ${id}Fresh(${id}Fresh() + 1)); ${host}.appendChild(${id}); }`);
103
+ }
104
+ continue;
105
+ }
106
+ if (node.kind === "for") {
107
+ bindings++;
108
+ const id = `l${seq++}`;
109
+ const keyScope = /* @__PURE__ */ new Set([
110
+ ...bound,
111
+ node.binding,
112
+ "item",
113
+ "i"
114
+ ]);
115
+ const withRow = /* @__PURE__ */ new Set([
116
+ ...bound,
117
+ node.binding,
118
+ "item",
119
+ "i"
120
+ ]);
121
+ const key = node.key !== void 0 ? `(item, i) => (${scopeExpr(node.key, keyScope).replace(new RegExp(`(?<![A-Za-z0-9_$."])${node.binding}(?![A-Za-z0-9_$])`, "g"), "item")})` : `(_item, i) => i`;
122
+ out.push(`${pad(depth)}{ const ${id} = document.createComment("for"); ${host}.appendChild(${id});`);
123
+ out.push(`${pad(depth + 1)}const view${id} = bindFor({ anchor: ${id},`);
124
+ out.push(`${pad(depth + 2)}items: () => ((${scopeExpr(node.source, bound)}) ?? []),`);
125
+ out.push(`${pad(depth + 2)}key: ${key},`);
126
+ out.push(`${pad(depth + 2)}render: (item, i) => {`);
127
+ out.push(`${pad(depth + 3)}let ${node.binding} = item;`);
128
+ out.push(`${pad(depth + 3)}const rowParts = [];`);
129
+ out.push(`${pad(depth + 3)}const frag = document.createDocumentFragment();`);
130
+ for (const line of emitNodes(node.body, depth + 3, "frag", "rowParts", withRow)) out.push(line);
131
+ out.push(`${pad(depth + 3)}return { nodes: [...frag.childNodes], update(item) { ${node.binding} = item; for (const u of rowParts) u(); } };`);
132
+ out.push(`${pad(depth + 2)}}});`);
133
+ out.push(`${pad(depth)}}`);
134
+ continue;
135
+ }
136
+ if (node.tag === "slot") {
137
+ const nameAttr = node.attrs.find((a) => a.name === "name");
138
+ const nameExpr = nameAttr === void 0 ? `""` : nameAttr.value.kind === "static" ? JSON.stringify(nameAttr.value.value) : `String((${scopeExpr(nameAttr.value.expr, bound)}) ?? "")`;
139
+ const anchor = `s${seq++}`;
140
+ const fragId = `sf${seq++}`;
141
+ const fb = `f${seq++}`;
142
+ out.push(`${pad(depth)}{ const ${anchor} = document.createComment("slot"); ${host}.appendChild(${anchor});`);
143
+ out.push(`${pad(depth + 1)}const ${fragId} = document.createDocumentFragment();`);
144
+ for (const line of emitNodes(node.children, depth + 1, fragId, parts, bound)) out.push(line);
145
+ out.push(`${pad(depth + 1)}const ${fb} = [...${fragId}.childNodes];`);
146
+ out.push(`${pad(depth + 1)}${parts}.push(() => placeSlot(${host}, ${anchor}, (values["@@slots"] || new Map()).get(${nameExpr}), ${fb}));`);
147
+ out.push(`${pad(depth)}}`);
148
+ continue;
149
+ }
150
+ const el = `e${seq++}`;
151
+ const showTest = node.kind === "element" && node.show !== void 0 ? `() => ((${scopeExpr(node.show, bound)}) ? 0 : 1)` : void 0;
152
+ const bid = showTest !== void 0 ? `b${seq++}` : void 0;
153
+ if (showTest !== void 0) {
154
+ bindings++;
155
+ const aid = `a${seq++}`;
156
+ out.push(`${pad(depth)}{ const ${aid} = document.createComment("show"); ${host}.appendChild(${aid});`);
157
+ out.push(`${pad(depth + 1)}bindIf({ anchor: ${aid}, test: ${showTest}, branches: [() => {`);
158
+ out.push(`${pad(depth + 2)}const ${bid}f = document.createDocumentFragment();`);
159
+ out.push(`${pad(depth + 2)}const ${bid}p = [];`);
160
+ }
161
+ const iDepth = showTest !== void 0 ? depth + 2 : depth;
162
+ const iParts = bid !== void 0 ? `${bid}p` : parts;
163
+ const inSvg = node.tag === "svg" || bound.has("@@svg");
164
+ if (node.tag === "host") out.push(`${pad(iDepth)}{ const ${el} = _host;`);
165
+ else if (inSvg) out.push(`${pad(iDepth)}{ const ${el} = document.createElementNS("http://www.w3.org/2000/svg", ${JSON.stringify(node.tag)});`);
166
+ else out.push(`${pad(iDepth)}{ const ${el} = document.createElement(${JSON.stringify(node.tag)});`);
167
+ for (const attr of node.attrs) if (attr.value.kind === "static") out.push(`${pad(iDepth + 1)}${el}.setAttribute(${JSON.stringify(attr.name)}, ${JSON.stringify(attr.value.value)});`);
168
+ else {
169
+ bindings++;
170
+ const merge = attr.name === "class" && /^\s*[\[{]/.test(attr.value.expr) ? "classOf(" : "";
171
+ const close = merge === "" ? "" : ")";
172
+ out.push(`${pad(iDepth + 1)}bindAttr(${el}, ${JSON.stringify(attr.name)}, () => (${merge}${scopeExpr(attr.value.expr, bound)}${close}));`);
173
+ }
174
+ for (const ev of node.events) {
175
+ bindings++;
176
+ const shadowed = /* @__PURE__ */ new Set([...bound, ...handlerParams(ev.handler)]);
177
+ out.push(`${pad(iDepth + 1)}on(${el}, ${JSON.stringify(ev.event)}, (...args) => (${scopeExpr(ev.handler, shadowed)})(...args));`);
178
+ }
179
+ for (const use of node.actions) {
180
+ bindings++;
181
+ const param = use.param !== void 0 ? `() => (${scopeExpr(use.param, bound)})` : `undefined`;
182
+ out.push(`${pad(iDepth + 1)}runAction(${el}, actions[${JSON.stringify(use.name)}], ${param});`);
183
+ }
184
+ for (const spread of node.spreads) {
185
+ bindings++;
186
+ out.push(`${pad(iDepth + 1)}${iParts}.push(bindSpread(${el}, () => (${scopeExpr(spread.expr, bound)})));`);
187
+ }
188
+ const childBound = inSvg ? /* @__PURE__ */ new Set([...bound, "@@svg"]) : bound;
189
+ for (const line of emitNodes(node.children, iDepth + 1, el, iParts, childBound)) out.push(line);
190
+ if (node.tag !== "host") out.push(`${pad(iDepth + 1)}${bid !== void 0 ? `${bid}f` : host}.appendChild(${el});`);
191
+ out.push(`${pad(iDepth)}}`);
192
+ if (showTest !== void 0 && bid !== void 0) {
193
+ out.push(`${pad(depth + 2)}for (const u of ${bid}p) u();`);
194
+ out.push(`${pad(depth + 2)}return { nodes: [...${bid}f.childNodes], update() { for (const u of ${bid}p) u(); } };`);
195
+ out.push(`${pad(depth + 1)}}, () => ({ nodes: [], update() {} })]});`);
196
+ out.push(`${pad(depth)}}`);
197
+ }
198
+ }
199
+ return out;
200
+ };
201
+ return {
202
+ js: [
203
+ `import { runAction, on, bindAttr, bindText, classOf, bindFor, bindIf, bindActionProps, bindSpread, placeSlot, signal, effect } from "@spinjs/components/runtime";`,
204
+ `export function create(actions, values, _host) {`,
205
+ ` const parts = [];`,
206
+ ` const frag = document.createDocumentFragment();`,
207
+ ...emitNodes(ir.nodes, 2, "frag", "parts", /* @__PURE__ */ new Set()),
208
+ ` for (const u of parts) u();`,
209
+ ` return { nodes: [...frag.childNodes], update() { for (const u of parts) u(); } };`,
210
+ `}`
211
+ ].join("\n"),
212
+ bindings
213
+ };
214
+ }
215
+ export { emit };
216
+
217
+ //# sourceMappingURL=emit.js.map
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The pure half of the `.html → define()` transform: markup in, module out.
3
+ *
4
+ * No filesystem, no bundler, no project root. The unplugin stage lives
5
+ * composer-side and calls in with the source it loaded; includes and
6
+ * actions arrive through injected readers because only the stage knows
7
+ * where the project keeps them.
8
+ */
9
+ import { EmitOutput, emit } from "./emit.js";
10
+ /** The virtual module that registers every project component. */
11
+ export declare const SPIN_COMPONENTS_ID = "spin/components";
12
+ /** Read a file's text, or throw naming it. The stage injects the fs. */
13
+ export type ReadFile = (path: string) => Promise<string>;
14
+ /** One action module beside a component: the import line and the registry entry. */
15
+ export interface ActionImports {
16
+ readonly imports: string;
17
+ readonly entries: readonly string[];
18
+ }
19
+ declare const sanitizePrefix: (raw: string) => string;
20
+ /** The tag a project file registers, shared by the transform and the type writer. */
21
+ export declare function tagForProjectFile(file: string, componentsDir: string, prefix: string): string;
22
+ /** The body of the virtual registration module: one side-effect import per file. */
23
+ export declare function renderComponentsModule(files: readonly string[]): string;
24
+ /** The project's component tags as JSX types. */
25
+ export declare function renderComponentsDts(tags: readonly string[]): string;
26
+ /**
27
+ * The includes in a markup: `<include file="./_markup.html" />`.
28
+ *
29
+ * A family's markup lives ONCE, and its examples are that markup with
30
+ * their own parameters. The include is resolved textually, before the
31
+ * parse, so the parser never sees it: the included file's body is
32
+ * inlined, and the INCLUDING file's scope decl stands (the included
33
+ * file's own scope decl is dropped — it is the family's, and the
34
+ * example's is narrower).
35
+ */
36
+ export declare function resolveIncludes(source: string, id: string, readFile: ReadFile): Promise<string>;
37
+ /** Everything the transform needs beyond the markup itself. */
38
+ export interface TransformInput {
39
+ /** The bundler id, `?spin-component` suffix included. */
40
+ readonly id: string;
41
+ /** The custom-element tag this module defines. */
42
+ readonly tag: string;
43
+ /** The action imports the stage resolved beside the file. */
44
+ readonly actions: ActionImports;
45
+ }
46
+ /**
47
+ * Markup to module: strip comments, expand groups, extract the script,
48
+ * parse, emit, and wrap in `define()`. The stage resolved the tag and
49
+ * the actions; this assembles them.
50
+ */
51
+ export declare function transformMarkup(source: string, input: TransformInput): string;
52
+ export { type EmitOutput, emit, sanitizePrefix };
@@ -0,0 +1,169 @@
1
+ import { emit } from "./emit.js";
2
+ import { expandVariantGroups, extractScript, parse, stripScript } from "@spinjs/components/runtime";
3
+ // src/compiler/transform.ts
4
+ /**
5
+ * The pure half of the `.html → define()` transform: markup in, module out.
6
+ *
7
+ * No filesystem, no bundler, no project root. The unplugin stage lives
8
+ * composer-side and calls in with the source it loaded; includes and
9
+ * actions arrive through injected readers because only the stage knows
10
+ * where the project keeps them.
11
+ */
12
+ /** The virtual module that registers every project component. */
13
+ const SPIN_COMPONENTS_ID = "spin/components";
14
+ const sanitizePrefix = (raw) => {
15
+ let base = raw;
16
+ const slash = base.lastIndexOf("/");
17
+ if (slash >= 0) base = base.slice(slash + 1);
18
+ const out = base.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
19
+ return out === "" || out === "workspace" ? "app" : out;
20
+ };
21
+ /** The tag a project file registers, shared by the transform and the type writer. */
22
+ function tagForProjectFile(file, componentsDir, prefix) {
23
+ const stem = file.split("/").pop().replace(/\.html$/, "");
24
+ const parts = file.split("/");
25
+ const at = parts.lastIndexOf(componentsDir.split("/").pop());
26
+ const segments = at < 0 ? [] : parts.slice(at + 1, -1);
27
+ if (stem.startsWith(`${prefix}-`) || stem.startsWith("spin-")) return stem;
28
+ return [
29
+ prefix,
30
+ ...segments,
31
+ stem
32
+ ].join("-");
33
+ }
34
+ /** The body of the virtual registration module: one side-effect import per file. */
35
+ function renderComponentsModule(files) {
36
+ return files.map((file) => `import "/${file}";`).join("\n") + "\n";
37
+ }
38
+ /** The project's component tags as JSX types. */
39
+ function renderComponentsDts(tags) {
40
+ const allTags = [...new Set(tags)].sort();
41
+ return [
42
+ "/**",
43
+ " * The project's own components, for TypeScript — every framework, and none.",
44
+ " *",
45
+ " * GENERATED by the spin components stage from src/lib/components. Do not edit by hand.",
46
+ " */",
47
+ "export {};",
48
+ "",
49
+ "declare module \"spin/styles.css\";",
50
+ "declare module \"spin.css\";",
51
+ "declare module \"uno.css\";",
52
+ "declare module \"spin/components\";",
53
+ "/** What every project component accepts: a ref, common attributes, and machine props. */",
54
+ "interface SpinProjectComponentAttributes {",
55
+ " ref?: HTMLElement | ((el: HTMLElement) => void);",
56
+ " class?: string;",
57
+ " id?: string;",
58
+ " role?: string;",
59
+ " title?: string;",
60
+ " children?: unknown;",
61
+ " [attribute: string]: unknown;",
62
+ "}",
63
+ "",
64
+ "declare global {",
65
+ " interface HTMLElementTagNameMap {",
66
+ allTags.map((tag) => ` "${tag}": HTMLElement & SpinProjectComponentAttributes;`).join("\n"),
67
+ " }",
68
+ "}",
69
+ "",
70
+ "declare module \"solid-js\" {",
71
+ " namespace JSX {",
72
+ " interface IntrinsicElements {",
73
+ allTags.map((tag) => ` "${tag}": SpinProjectComponentAttributes;`).join("\n"),
74
+ " }",
75
+ " }",
76
+ "}",
77
+ ""
78
+ ].join("\n");
79
+ }
80
+ /**
81
+ * The includes in a markup: `<include file="./_markup.html" />`.
82
+ *
83
+ * A family's markup lives ONCE, and its examples are that markup with
84
+ * their own parameters. The include is resolved textually, before the
85
+ * parse, so the parser never sees it: the included file's body is
86
+ * inlined, and the INCLUDING file's scope decl stands (the included
87
+ * file's own scope decl is dropped — it is the family's, and the
88
+ * example's is narrower).
89
+ */
90
+ async function resolveIncludes(source, id, readFile) {
91
+ const dir = id.split("?")[0].split("/").slice(0, -1).join("/");
92
+ let code = source;
93
+ for (let pass = 0; pass < 8; pass += 1) {
94
+ const m = /<include\s+file="([^"]+)"\s*\/?>/.exec(code);
95
+ if (m === null) break;
96
+ const target = m[1];
97
+ const resolved = (target.startsWith("/") ? target.slice(1) : `${dir}/${target}`).split("/").reduce((parts, part) => {
98
+ if (part === "..") return parts.slice(0, -1);
99
+ if (part === ".") return parts;
100
+ return [...parts, part];
101
+ }, []).join("/");
102
+ let included;
103
+ try {
104
+ included = await readFile(resolved);
105
+ } catch {
106
+ throw new Error(`spin-components: ${id} includes ${target}, which is not there`);
107
+ }
108
+ const body = included.replace(/<script(\s[^>]*)?>[\s\S]*?<\/script>\s*/, "");
109
+ code = code.replace(m[0], body);
110
+ }
111
+ return code;
112
+ }
113
+ /**
114
+ * Markup to module: strip comments, expand groups, extract the script,
115
+ * parse, emit, and wrap in `define()`. The stage resolved the tag and
116
+ * the actions; this assembles them.
117
+ */
118
+ function transformMarkup(source, input) {
119
+ const code = expandVariantGroups(source.replace(/<!--[\s\S]*?-->/g, ""));
120
+ const scriptSource = extractScript(code);
121
+ const script = scriptSource === void 0 ? void 0 : stripScript(scriptSource);
122
+ const markup = scriptSource === void 0 ? code : code.replace(/<script(\s[^>]*)?>[\s\S]*?<\/script>\s*/g, "");
123
+ if (/<!doctype|<style[\s>]/i.test(markup)) throw new Error(`spin-components: ${input.id} looks like a document, not a component`);
124
+ const ir = parse(markup);
125
+ const { js } = emit(ir);
126
+ const scriptBindings = script?.calls ?? [];
127
+ const body = js.replace(/^export function create\(ctx, actions\) \{/, "export function create(actions, values) {").replace(/void ctx;\n/, "");
128
+ const scriptImports = [];
129
+ if (script !== void 0) for (const m of script.module.matchAll(/^\s*import(?:\s|\{|\*)[\s\S]*?from\s*["'][^"']+["']\s*;?/gm)) scriptImports.push(m[0].trim());
130
+ const scriptCalls = [];
131
+ if (script !== void 0) {
132
+ for (const c of script.consumes) scriptCalls.push(` const ${c.name} = consume(${c.handle});`);
133
+ for (const binding of scriptBindings) {
134
+ const bridge = `${binding.name}Bridge`;
135
+ const component = `${binding.factory}`;
136
+ scriptCalls.push(` const ${bridge}Events = Object.fromEntries(Object.entries(${component}.events ?? {}).map(([eventName, contract]) => [contract.on, (details) => { el.dispatchEvent(new CustomEvent(eventName, { detail: contract.detail(details), bubbles: true })); }]));\n const ${bridge}Script = ${binding.args || "{}"};\n const ${bridge}Props = () => { const p = { ...${bridge}Script, ...props, ...${bridge}Events }; delete p["@@resolve"]; delete p["@@slots"]; p["@@authored"] = (name) => authored(name) || name in ${bridge}Script; return p; };\n const ${bridge} = watch(${component}, () => "createBridge" in ${component}\n ? ${component}.createBridge(${bridge}Props, () => el, bridgeId(el, ${JSON.stringify(input.tag)}, ${JSON.stringify(binding.name)}))\n : { api: ${component}.attach(el), dispose() {} }, ${component}.commands, ${JSON.stringify(binding.name)});\n values[${JSON.stringify(binding.name)}] = ${bridge}.api;\n for (const command of ${component}.commands ?? []) el[command] = (...args) => ${bridge}.api[command](...args);\n`);
137
+ }
138
+ }
139
+ const hasConsume = scriptCalls.length > 0;
140
+ const hasBindings = scriptBindings.length > 0;
141
+ const componentRefs = scriptBindings.map((b) => b.factory);
142
+ const fieldsExpr = hasConsume && componentRefs.length > 0 ? `[...new Set([${componentRefs.map((c) => `...(${c}.fields ?? [])`).join(", ")}])]` : "[]";
143
+ const buildParams = hasConsume ? "el, props, watch, consume, authored" : "el";
144
+ const runtimeImport = hasConsume ? `import { define, uniqueId, projectSlots } from "@spinjs/components/runtime";` : `import { define, projectSlots } from "@spinjs/components/runtime";`;
145
+ const bridgeIdHelper = hasBindings ? "const bridgeId = (el, tag, name) => el.id !== \"\" ? `${el.id}:${name}` : uniqueId(`${tag}-${name}`);" : "";
146
+ const defineHead = hasConsume ? `define(${JSON.stringify(input.tag)}, { props: ${fieldsExpr}, build({ ${buildParams} }) {` : `define(${JSON.stringify(input.tag)}, { build({ ${buildParams} }) {`;
147
+ const file = input.id.split("?")[0];
148
+ return [
149
+ runtimeImport,
150
+ input.actions.imports,
151
+ ...scriptImports,
152
+ `const actions = { ${input.actions.entries.join(", ")} };`,
153
+ ...bridgeIdHelper === "" ? [] : [bridgeIdHelper],
154
+ body,
155
+ `/* spin-components v1 ${input.tag} */`,
156
+ defineHead,
157
+ ` const values = {};`,
158
+ ...scriptCalls,
159
+ ` values["@@slots"] = projectSlots(el);`,
160
+ ` const { nodes } = create(actions, values, el);`,
161
+ ` for (const node of nodes) el.appendChild(node);`,
162
+ `} });`,
163
+ ...file.includes("/examples/") ? [`if (import.meta.hot) import.meta.hot.accept(() => import.meta.hot.invalidate());`] : [],
164
+ `export default ${JSON.stringify(input.tag)};`
165
+ ].join("\n");
166
+ }
167
+ export { SPIN_COMPONENTS_ID, emit, renderComponentsDts, renderComponentsModule, resolveIncludes, sanitizePrefix, tagForProjectFile, transformMarkup };
168
+
169
+ //# sourceMappingURL=transform.js.map
@@ -1,4 +1,4 @@
1
- import { DefinedComponent } from "@spinjs/runtime";
1
+ import { DefinedComponent } from "@spinjs/components/runtime";
2
2
  /**
3
3
  * The app-controller surface: `{ commands, state, bind, ref }`, for whichever
4
4
  * component the host is holding.
@@ -48,5 +48,4 @@ export interface SpinComponentCtl<TCommands extends object = object, TState exte
48
48
  /** The ctl for `target` — never nullish; resolution happens at call time. */
49
49
  export declare function spinComponentCtl<D extends DefinedComponent<any, any>>(def: D): CtlFor<D>;
50
50
  export declare function spinComponentCtl<D extends DefinedComponent<any, any>>(target: ElementTarget, def: D): CtlFor<D>;
51
- export declare function spinComponentCtl<TCommands extends object = object, TState extends object = Record<string, () => unknown>, TProps extends object = Record<string, unknown>>(target: ElementTarget, handle?: object): SpinComponentCtl<TCommands, TState, TProps>;
52
- //# sourceMappingURL=controller.d.ts.map
51
+ export declare function spinComponentCtl<TCommands extends object = object, TState extends object = Record<string, () => unknown>, TProps extends object = Record<string, unknown>>(target: ElementTarget, handle?: object): SpinComponentCtl<TCommands, TState, TProps>;
@@ -1,5 +1,5 @@
1
1
  import { bindSpinElement } from "./spin-element.js";
2
- import { controllerOf, effect, scope, signal } from "@spinjs/runtime";
2
+ import { controllerOf, effect, scope, signal } from "@spinjs/components/runtime";
3
3
  // src/controller.ts
4
4
  function resolveTarget(target) {
5
5
  if (target === null || target === void 0) return void 0;
@@ -1,5 +1,5 @@
1
1
  import { DateValue } from "./date-input.state.js";
2
- import { EventUnion } from "@spinjs/runtime/fsm";
2
+ import { EventUnion } from "@spinjs/components/fsm";
3
3
  export interface DateInputEvents {
4
4
  "VALUE.SET": {
5
5
  value: DateValue | null | string;
@@ -33,5 +33,4 @@ export type DateInputEvent = EventUnion<DateInputEvents>;
33
33
  export type DateInputValueChange = {
34
34
  readonly value: DateValue | null;
35
35
  readonly valueAsString: string;
36
- };
37
- //# sourceMappingURL=date-input.events.d.ts.map
36
+ };
@@ -1,6 +1,6 @@
1
+ /** Date-input machine: the field values, the focused segment, and the keys typed into it. */
1
2
  import { DateInputArgs, DateInputContext, DateInputState } from "./date-input.state.js";
2
3
  import { DateInputEvents } from "./date-input.events.js";
3
- import { Machine } from "@spinjs/runtime/fsm";
4
+ import { Machine } from "@spinjs/components/fsm";
4
5
  export declare function dateInput(args?: DateInputArgs, authored?: (name: string) => boolean): Machine<DateInputContext, DateInputEvents, DateInputState>;
5
- export type { DateInputState };
6
- //# sourceMappingURL=date-input.machine.d.ts.map
6
+ export type { DateInputState };
@@ -1,6 +1,6 @@
1
1
  import { clearEnteredKeys, initial } from "./date-input.state.js";
2
2
  import { adjustSegment, arrowLeft, arrowRight, backspaceClear, backspaceEmpty, backspacePrev, blurSegment, clearValue, endSegment, focusSegment, homeSegment, inputSegment, isSameSegmentFocus, pasteSegment, setHourCycle, setValue } from "./date-input.transitions.js";
3
- import { createMachine } from "@spinjs/runtime/fsm";
3
+ import { createMachine } from "@spinjs/components/fsm";
4
4
  // src/date-input/date-input.machine.ts
5
5
  /** Date-input machine: the field values, the focused segment, and the keys typed into it. */
6
6
  function dateInput(args = {}, authored = () => false) {
@@ -1,6 +1,6 @@
1
1
  import { DateInputArgs, DateInputContext, DateInputField, DateInputState, DateValue } from "./date-input.state.js";
2
2
  import { DateInputEvents, DateInputValueChange } from "./date-input.events.js";
3
- import { ApiOf, ViewFor } from "@spinjs/runtime";
3
+ import { ApiOf, ViewFor } from "@spinjs/components/runtime";
4
4
  /** One rendered segment: a field the user edits, or a literal between them. */
5
5
  export interface DateSegmentView {
6
6
  readonly index: number;
@@ -14,10 +14,10 @@ type ScopeLike = ViewFor<DateInputContext, DateInputEvents, DateInputState>;
14
14
  /** The component's public state: the names the markup may key on. */
15
15
  export declare const def: {
16
16
  name: string;
17
- machine: (args: DateInputArgs, authored: (name: string) => boolean) => import("@spinjs/runtime").Machine<DateInputContext, DateInputEvents, DateInputState>;
17
+ machine: (args: DateInputArgs, authored: (name: string) => boolean) => import("@spinjs/components/runtime").Machine<DateInputContext, DateInputEvents, DateInputState>;
18
18
  start: "idle";
19
19
  settled: ({ before, after, focus }: {
20
- readonly event: import("@spinjs/runtime").AnyEvent;
20
+ readonly event: import("@spinjs/components/runtime").AnyEvent;
21
21
  readonly before: {
22
22
  readonly context: DateInputContext;
23
23
  readonly state: DateInputState;
@@ -31,7 +31,7 @@ export declare const def: {
31
31
  readonly id: (part: string, slot?: unknown) => string;
32
32
  readonly focus: (part: string, slot?: unknown) => void;
33
33
  readonly measure: (part: string, slot?: unknown) => DOMRect | null;
34
- readonly send: (event: import("@spinjs/runtime").AnyEvent) => void;
34
+ readonly send: (event: import("@spinjs/components/runtime").AnyEvent) => void;
35
35
  }) => void;
36
36
  parts: {
37
37
  segment: {
@@ -128,6 +128,5 @@ export declare const def: {
128
128
  };
129
129
  };
130
130
  export type DateInputApi = ApiOf<typeof def>;
131
- export declare const dateInput: import("@spinjs/runtime").DefinedComponent<DateInputApi, DateInputArgs>;
132
- export type { DateInputValueChange, DateValue };
133
- //# sourceMappingURL=date-input.presentation.d.ts.map
131
+ export declare const dateInput: import("@spinjs/components/runtime").DefinedComponent<DateInputApi, DateInputArgs>;
132
+ export type { DateInputValueChange, DateValue };
@@ -1,6 +1,6 @@
1
1
  import { FIELD_LIMITS, clampValue as clampValue$1, daysInMonth, segmentFields, valueAsString } from "./date-input.state.js";
2
2
  import { dateInput as dateInput$1 } from "./date-input.machine.js";
3
- import { ariaDisabled, ariaInvalid, ariaLabelledBy, ariaReadOnly, defineComponent, isRecord, sliderThumb } from "@spinjs/runtime";
3
+ import { ariaDisabled, ariaInvalid, ariaLabelledBy, ariaReadOnly, defineComponent, isRecord, sliderThumb } from "@spinjs/components/runtime";
4
4
  // src/date-input/date-input.presentation.ts
5
5
  const FIELD_LABELS = {
6
6
  year: "Year",
@@ -73,5 +73,4 @@ export declare function commit(next: DateFields, ctx: DateInputContext): Partial
73
73
  export declare function advance(next: DateFields, ctx: DateInputContext, index: number, fields: readonly DateInputField[]): Partial<DateInputContext>;
74
74
  export declare const setActiveSegment: (_ctx: DateInputContext, e: DateInputEvent) => Partial<DateInputContext>;
75
75
  export declare const clearEnteredKeys: () => Partial<DateInputContext>;
76
- export declare const setPrevSegment: (ctx: DateInputContext) => Partial<DateInputContext>;
77
- //# sourceMappingURL=date-input.state.d.ts.map
76
+ export declare const setPrevSegment: (ctx: DateInputContext) => Partial<DateInputContext>;
@@ -1,4 +1,4 @@
1
- import { defaultTwin } from "@spinjs/runtime";
1
+ import { defaultTwin } from "@spinjs/components/runtime";
2
2
  // src/date-input/date-input.state.ts
3
3
  const FIELD_LIMITS = {
4
4
  year: {
@@ -1,6 +1,6 @@
1
- import { DateInputContext } from "./date-input.state.js";
2
1
  import { DateInputEvents } from "./date-input.events.js";
3
- import { AssignFor, GuardFor } from "@spinjs/runtime/fsm";
2
+ import { DateInputContext } from "./date-input.state.js";
3
+ import { AssignFor, GuardFor } from "@spinjs/components/fsm";
4
4
  type DateInputAssign<K extends keyof DateInputEvents = keyof DateInputEvents> = AssignFor<DateInputContext, DateInputEvents, K>;
5
5
  export declare const setValue: DateInputAssign<"VALUE.SET">;
6
6
  export declare const clearValue: DateInputAssign<"VALUE.CLEAR">;
@@ -18,5 +18,4 @@ export declare const backspaceClear: DateInputAssign<"SEGMENT.BACKSPACE">;
18
18
  export declare const homeSegment: DateInputAssign<"SEGMENT.HOME">;
19
19
  export declare const endSegment: DateInputAssign<"SEGMENT.END">;
20
20
  export declare const pasteSegment: DateInputAssign<"SEGMENT.PASTE">;
21
- export {};
22
- //# sourceMappingURL=date-input.transitions.d.ts.map
21
+ export {};
@@ -5,11 +5,11 @@ const machine = dateInput({});
5
5
  </script>
6
6
 
7
7
  <div class="w-fit max-w-full" {...machine.getRootProps()}>
8
- <label class={["block text-sm font-medium text-text transition-opacity duration-fast ease-decelerate", { "opacity-50": machine.disabled }]} {...machine.getLabelProps()}>Date</label>
9
- <div class={["flex h-7 items-center gap-1 rounded-md border border-solid border-border bg-surface px-2 text-sm text-text shadow-sm transition-colors duration-fast ease-decelerate", { "ring-2 ring-border-strong": machine.focused, "cursor-not-allowed opacity-50": machine.disabled }]} {...machine.getControlProps()}>
8
+ <label class={["block transition-opacity duration-fast ease-decelerate", { "opacity-50": machine.disabled }]} {...machine.getLabelProps()}>Date</label>
9
+ <div class={["flex h-7 items-center gap-1 rounded-md border bg-surface px-2 type-body shadow-sm transition-colors duration-fast ease-decelerate", { "ring-2 ring-border-strong": machine.focused, "cursor-not-allowed opacity-50": machine.disabled }]} {...machine.getControlProps()}>
10
10
  <template for={machine.getSegments()} as={row} key={row.index}>
11
11
  <span
12
- class={["rounded-sm px-1 tabular-nums outline-none transition-colors duration-fast ease-decelerate", { "bg-primary text-on-primary": machine.activeSegment === row.fieldIndex, "text-text-muted": row.placeholder }]}
12
+ class={["rounded-sm px-1 tabular-nums outline-none transition-colors duration-fast ease-decelerate", { "bg-primary text-on-primary": row.field !== null && machine.activeSegment === row.fieldIndex, "px-0 select-none text-muted": row.field === null, "text-muted": row.placeholder }]}
13
13
  {...machine.getSegmentProps(row.fieldIndex)}
14
14
  >{row.text}</span>
15
15
  </template>
@@ -0,0 +1,5 @@
1
+ // src/date-input/examples/basic.html
2
+ var basic_default = "<script lang=\"ts\">\nimport { dateInput } from \"../date-input.presentation.ts\";\n\nconst machine = dateInput({});\n<\/script>\n\n<div class=\"w-fit max-w-full\" {...machine.getRootProps()}>\n <label class={[\"block transition-opacity duration-fast ease-decelerate\", { \"opacity-50\": machine.disabled }]} {...machine.getLabelProps()}>Date</label>\n <div class={[\"flex h-7 items-center gap-1 rounded-md border bg-surface px-2 type-body shadow-sm transition-colors duration-fast ease-decelerate\", { \"ring-2 ring-border-strong\": machine.focused, \"cursor-not-allowed opacity-50\": machine.disabled }]} {...machine.getControlProps()}>\n <template for={machine.getSegments()} as={row} key={row.index}>\n <span\n class={[\"rounded-sm px-1 tabular-nums outline-none transition-colors duration-fast ease-decelerate\", { \"bg-primary text-on-primary\": row.field !== null && machine.activeSegment === row.fieldIndex, \"px-0 select-none text-muted\": row.field === null, \"text-muted\": row.placeholder }]}\n {...machine.getSegmentProps(row.fieldIndex)}\n >{row.text}</span>\n </template>\n </div>\n <input {...machine.getHiddenInputProps()} />\n</div>\n";
3
+ export { basic_default as default };
4
+
5
+ //# sourceMappingURL=basic.html.js.map
@@ -1,5 +1,5 @@
1
1
  import { DatePickerValue, DatePickerView } from "./date-picker.state.js";
2
- import { EventUnion } from "@spinjs/runtime/fsm";
2
+ import { EventUnion } from "@spinjs/components/fsm";
3
3
  export interface DatePickerValueChange {
4
4
  readonly value: readonly DatePickerValue[];
5
5
  readonly valueAsString: readonly string[];
@@ -38,5 +38,4 @@ export interface DatePickerEvents {
38
38
  };
39
39
  "TABLE.ESCAPE": {};
40
40
  }
41
- export type DatePickerEvent = EventUnion<DatePickerEvents>;
42
- //# sourceMappingURL=date-picker.events.d.ts.map
41
+ export type DatePickerEvent = EventUnion<DatePickerEvents>;
@@ -1,6 +1,5 @@
1
1
  import { DatePickerArgs, DatePickerContext, DatePickerSelectionMode, DatePickerState, DatePickerValue, DatePickerView, daysOf, normalizeDays } from "./date-picker.state.js";
2
2
  import { DatePickerEvents } from "./date-picker.events.js";
3
- import { Machine } from "@spinjs/runtime/fsm";
3
+ import { Machine } from "@spinjs/components/fsm";
4
4
  export declare function datePicker(args: DatePickerArgs | undefined, authored: (name: string) => boolean): Machine<DatePickerContext, DatePickerEvents, DatePickerState>;
5
- export { type DatePickerArgs, type DatePickerContext, type DatePickerEvents, type DatePickerSelectionMode, type DatePickerState, type DatePickerValue, type DatePickerView, daysOf, normalizeDays };
6
- //# sourceMappingURL=date-picker.machine.d.ts.map
5
+ export { type DatePickerArgs, type DatePickerContext, type DatePickerEvents, type DatePickerSelectionMode, type DatePickerState, type DatePickerValue, type DatePickerView, daysOf, normalizeDays };
@@ -1,6 +1,6 @@
1
1
  import { daysOf, initial, normalizeDays } from "./date-picker.state.js";
2
2
  import { clearHover, clearValue, drillIntoView, hoverRangeDay, isAboveDayView, isDayView, isMultiPicker, isRangePicker, isSelfClosingSelection, resetView, selectRangeDay, selectSingleDay, setFocusAboveDay, setFocusDay, setValue, setView, toggleMultiDay } from "./date-picker.transitions.js";
3
- import { createMachine } from "@spinjs/runtime/fsm";
3
+ import { createMachine } from "@spinjs/components/fsm";
4
4
  // src/date-picker/date-picker.machine.ts
5
5
  function datePicker(args = {}, authored) {
6
6
  return createMachine({