@typesafe-html5/typescript 0.2.61 → 0.2.72

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 (405) hide show
  1. package/build-all.mjs +54 -0
  2. package/dist/block/article/article.js +465 -0
  3. package/dist/block/article/article.js.map +7 -0
  4. package/dist/block/aside/aside.js +476 -0
  5. package/dist/block/aside/aside.js.map +7 -0
  6. package/dist/block/audio/audio.js +454 -0
  7. package/dist/block/audio/audio.js.map +7 -0
  8. package/dist/block/blockquote/blockquote.js +476 -0
  9. package/dist/block/blockquote/blockquote.js.map +7 -0
  10. package/dist/block/body/body.js +378 -0
  11. package/dist/block/body/body.js.map +7 -0
  12. package/dist/block/canvas/canvas.js +487 -0
  13. package/dist/block/canvas/canvas.js.map +7 -0
  14. package/dist/block/caption/caption.js +465 -0
  15. package/dist/block/caption/caption.js.map +7 -0
  16. package/dist/block/colgroup/colgroup.js +190 -0
  17. package/dist/block/colgroup/colgroup.js.map +7 -0
  18. package/dist/block/datalist/datalist.js +465 -0
  19. package/dist/block/datalist/datalist.js.map +7 -0
  20. package/dist/block/dd/dd.js +422 -0
  21. package/dist/block/dd/dd.js.map +7 -0
  22. package/dist/block/del/del.js +487 -0
  23. package/dist/block/del/del.js.map +7 -0
  24. package/dist/block/details/details.js +520 -0
  25. package/dist/block/details/details.js.map +7 -0
  26. package/dist/block/dialog/dialog.js +520 -0
  27. package/dist/block/dialog/dialog.js.map +7 -0
  28. package/dist/block/div/div.js +520 -0
  29. package/dist/block/div/div.js.map +7 -0
  30. package/dist/block/dl/dl.js +465 -0
  31. package/dist/block/dl/dl.js.map +7 -0
  32. package/dist/block/dt/dt.js +422 -0
  33. package/dist/block/dt/dt.js.map +7 -0
  34. package/dist/block/embed/embed.js +333 -0
  35. package/dist/block/embed/embed.js.map +7 -0
  36. package/dist/block/fieldset/fieldset.js +509 -0
  37. package/dist/block/fieldset/fieldset.js.map +7 -0
  38. package/dist/block/figcaption/figcaption.js +465 -0
  39. package/dist/block/figcaption/figcaption.js.map +7 -0
  40. package/dist/block/figure/figure.js +465 -0
  41. package/dist/block/figure/figure.js.map +7 -0
  42. package/dist/block/footer/footer.js +476 -0
  43. package/dist/block/footer/footer.js.map +7 -0
  44. package/dist/block/form/form.js +443 -0
  45. package/dist/block/form/form.js.map +7 -0
  46. package/dist/block/h1/h1.js +454 -0
  47. package/dist/block/h1/h1.js.map +7 -0
  48. package/dist/block/h2/h2.js +454 -0
  49. package/dist/block/h2/h2.js.map +7 -0
  50. package/dist/block/h3/h3.js +454 -0
  51. package/dist/block/h3/h3.js.map +7 -0
  52. package/dist/block/h4/h4.js +454 -0
  53. package/dist/block/h4/h4.js.map +7 -0
  54. package/dist/block/h5/h5.js +454 -0
  55. package/dist/block/h5/h5.js.map +7 -0
  56. package/dist/block/h6/h6.js +454 -0
  57. package/dist/block/h6/h6.js.map +7 -0
  58. package/dist/block/header/header.js +322 -0
  59. package/dist/block/header/header.js.map +7 -0
  60. package/dist/block/hgroup/hgroup.js +465 -0
  61. package/dist/block/hgroup/hgroup.js.map +7 -0
  62. package/dist/block/hr/hr.js +169 -0
  63. package/dist/block/hr/hr.js.map +7 -0
  64. package/dist/block/html/html.js +92 -0
  65. package/dist/block/html/html.js.map +7 -0
  66. package/dist/block/iframe/iframe.js +465 -0
  67. package/dist/block/iframe/iframe.js.map +7 -0
  68. package/dist/block/ins/ins.js +487 -0
  69. package/dist/block/ins/ins.js.map +7 -0
  70. package/dist/block/legend/legend.js +465 -0
  71. package/dist/block/legend/legend.js.map +7 -0
  72. package/dist/block/li/li.js +488 -0
  73. package/dist/block/li/li.js.map +7 -0
  74. package/dist/block/main/main.js +444 -0
  75. package/dist/block/main/main.js.map +7 -0
  76. package/dist/block/map/map.js +476 -0
  77. package/dist/block/map/map.js.map +7 -0
  78. package/dist/block/menu/menu.js +498 -0
  79. package/dist/block/menu/menu.js.map +7 -0
  80. package/dist/block/nav/nav.js +455 -0
  81. package/dist/block/nav/nav.js.map +7 -0
  82. package/dist/block/noscript/noscript.js +311 -0
  83. package/dist/block/noscript/noscript.js.map +7 -0
  84. package/dist/block/object/object.js +542 -0
  85. package/dist/block/object/object.js.map +7 -0
  86. package/dist/block/ol/ol.js +542 -0
  87. package/dist/block/ol/ol.js.map +7 -0
  88. package/dist/block/optgroup/optgroup.js +476 -0
  89. package/dist/block/optgroup/optgroup.js.map +7 -0
  90. package/dist/block/option/option.js +542 -0
  91. package/dist/block/option/option.js.map +7 -0
  92. package/dist/block/p/p.js +465 -0
  93. package/dist/block/p/p.js.map +7 -0
  94. package/dist/block/picture/picture.js +465 -0
  95. package/dist/block/picture/picture.js.map +7 -0
  96. package/dist/block/pre/pre.js +465 -0
  97. package/dist/block/pre/pre.js.map +7 -0
  98. package/dist/block/section/section.js +487 -0
  99. package/dist/block/section/section.js.map +7 -0
  100. package/dist/block/summary/summary.js +466 -0
  101. package/dist/block/summary/summary.js.map +7 -0
  102. package/dist/block/table/table.js +509 -0
  103. package/dist/block/table/table.js.map +7 -0
  104. package/dist/block/tbody/tbody.js +465 -0
  105. package/dist/block/tbody/tbody.js.map +7 -0
  106. package/dist/block/td/td.js +575 -0
  107. package/dist/block/td/td.js.map +7 -0
  108. package/dist/block/template/template.js +465 -0
  109. package/dist/block/template/template.js.map +7 -0
  110. package/dist/block/tfoot/tfoot.js +465 -0
  111. package/dist/block/tfoot/tfoot.js.map +7 -0
  112. package/dist/block/th/th.js +586 -0
  113. package/dist/block/th/th.js.map +7 -0
  114. package/dist/block/thead/thead.js +465 -0
  115. package/dist/block/thead/thead.js.map +7 -0
  116. package/dist/block/tr/tr.js +586 -0
  117. package/dist/block/tr/tr.js.map +7 -0
  118. package/dist/block/ul/ul.js +509 -0
  119. package/dist/block/ul/ul.js.map +7 -0
  120. package/dist/block/video/video.js +575 -0
  121. package/dist/block/video/video.js.map +7 -0
  122. package/dist/index.js +48830 -0
  123. package/dist/index.js.map +7 -0
  124. package/dist/inline/a/a.js +586 -0
  125. package/dist/inline/a/a.js.map +7 -0
  126. package/dist/inline/abbr/abbr.js +454 -0
  127. package/dist/inline/abbr/abbr.js.map +7 -0
  128. package/dist/inline/address/address.js +443 -0
  129. package/dist/inline/address/address.js.map +7 -0
  130. package/dist/inline/b/b.js +465 -0
  131. package/dist/inline/b/b.js.map +7 -0
  132. package/dist/inline/bdi/bdi.js +454 -0
  133. package/dist/inline/bdi/bdi.js.map +7 -0
  134. package/dist/inline/bdo/bdo.js +465 -0
  135. package/dist/inline/bdo/bdo.js.map +7 -0
  136. package/dist/inline/button/button.js +685 -0
  137. package/dist/inline/button/button.js.map +7 -0
  138. package/dist/inline/cite/cite.js +465 -0
  139. package/dist/inline/cite/cite.js.map +7 -0
  140. package/dist/inline/code/code.js +465 -0
  141. package/dist/inline/code/code.js.map +7 -0
  142. package/dist/inline/data/data.js +476 -0
  143. package/dist/inline/data/data.js.map +7 -0
  144. package/dist/inline/dfn/dfn.js +465 -0
  145. package/dist/inline/dfn/dfn.js.map +7 -0
  146. package/dist/inline/em/em.js +465 -0
  147. package/dist/inline/em/em.js.map +7 -0
  148. package/dist/inline/i/i.js +465 -0
  149. package/dist/inline/i/i.js.map +7 -0
  150. package/dist/inline/img/img.js +399 -0
  151. package/dist/inline/img/img.js.map +7 -0
  152. package/dist/inline/input/input.js +938 -0
  153. package/dist/inline/input/input.js.map +7 -0
  154. package/dist/inline/kbd/kbd.js +465 -0
  155. package/dist/inline/kbd/kbd.js.map +7 -0
  156. package/dist/inline/label/label.js +487 -0
  157. package/dist/inline/label/label.js.map +7 -0
  158. package/dist/inline/mark/mark.js +465 -0
  159. package/dist/inline/mark/mark.js.map +7 -0
  160. package/dist/inline/meter/meter.js +498 -0
  161. package/dist/inline/meter/meter.js.map +7 -0
  162. package/dist/inline/output/output.js +410 -0
  163. package/dist/inline/output/output.js.map +7 -0
  164. package/dist/inline/progress/progress.js +454 -0
  165. package/dist/inline/progress/progress.js.map +7 -0
  166. package/dist/inline/q/q.js +476 -0
  167. package/dist/inline/q/q.js.map +7 -0
  168. package/dist/inline/rp/rp.js +465 -0
  169. package/dist/inline/rp/rp.js.map +7 -0
  170. package/dist/inline/rt/rt.js +465 -0
  171. package/dist/inline/rt/rt.js.map +7 -0
  172. package/dist/inline/ruby/ruby.js +465 -0
  173. package/dist/inline/ruby/ruby.js.map +7 -0
  174. package/dist/inline/s/s.js +465 -0
  175. package/dist/inline/s/s.js.map +7 -0
  176. package/dist/inline/samp/samp.js +465 -0
  177. package/dist/inline/samp/samp.js.map +7 -0
  178. package/dist/inline/select/select.js +674 -0
  179. package/dist/inline/select/select.js.map +7 -0
  180. package/dist/inline/slot/slot.js +476 -0
  181. package/dist/inline/slot/slot.js.map +7 -0
  182. package/dist/inline/small/small.js +465 -0
  183. package/dist/inline/small/small.js.map +7 -0
  184. package/dist/inline/span/span.js +465 -0
  185. package/dist/inline/span/span.js.map +7 -0
  186. package/dist/inline/strong/strong.js +465 -0
  187. package/dist/inline/strong/strong.js.map +7 -0
  188. package/dist/inline/sub/sub.js +465 -0
  189. package/dist/inline/sub/sub.js.map +7 -0
  190. package/dist/inline/sup/sup.js +465 -0
  191. package/dist/inline/sup/sup.js.map +7 -0
  192. package/dist/inline/svg/svg.js +542 -0
  193. package/dist/inline/svg/svg.js.map +7 -0
  194. package/dist/inline/textarea/textarea.js +718 -0
  195. package/dist/inline/textarea/textarea.js.map +7 -0
  196. package/dist/inline/time/time.js +476 -0
  197. package/dist/inline/time/time.js.map +7 -0
  198. package/dist/inline/u/u.js +465 -0
  199. package/dist/inline/u/u.js.map +7 -0
  200. package/dist/inline/var/var.js +465 -0
  201. package/dist/inline/var/var.js.map +7 -0
  202. package/dist/void/area/area.js +388 -0
  203. package/dist/void/area/area.js.map +7 -0
  204. package/dist/void/base/base.js +37 -0
  205. package/dist/void/base/base.js.map +7 -0
  206. package/dist/void/br/br.js +135 -0
  207. package/dist/void/br/br.js.map +7 -0
  208. package/dist/void/col/col.js +135 -0
  209. package/dist/void/col/col.js.map +7 -0
  210. package/dist/void/head/head.js +37 -0
  211. package/dist/void/head/head.js.map +7 -0
  212. package/dist/void/link/link.js +213 -0
  213. package/dist/void/link/link.js.map +7 -0
  214. package/dist/void/meta/meta.js +147 -0
  215. package/dist/void/meta/meta.js.map +7 -0
  216. package/dist/void/param/param.js +146 -0
  217. package/dist/void/param/param.js.map +7 -0
  218. package/dist/void/script/script.js +213 -0
  219. package/dist/void/script/script.js.map +7 -0
  220. package/dist/void/source/source.js +168 -0
  221. package/dist/void/source/source.js.map +7 -0
  222. package/dist/void/style/style.js +147 -0
  223. package/dist/void/style/style.js.map +7 -0
  224. package/dist/void/title/title.js +37 -0
  225. package/dist/void/title/title.js.map +7 -0
  226. package/dist/void/track/track.js +190 -0
  227. package/dist/void/track/track.js.map +7 -0
  228. package/dist/void/wbr/wbr.js +124 -0
  229. package/dist/void/wbr/wbr.js.map +7 -0
  230. package/package.json +4 -4
  231. package/src/block/article/article.ts +649 -0
  232. package/{block → src/block}/aside/aside.ts +144 -1
  233. package/{block → src/block}/audio/audio.ts +128 -1
  234. package/src/block/blockquote/blockquote.ts +665 -0
  235. package/{block → src/block}/body/body.ts +91 -1
  236. package/{block → src/block}/canvas/canvas.ts +144 -1
  237. package/src/block/caption/caption.ts +649 -0
  238. package/{block → src/block}/colgroup/colgroup.ts +96 -1
  239. package/src/block/datalist/datalist.ts +649 -0
  240. package/{block/dialog/dialog.ts → src/block/dd/dd.ts} +114 -88
  241. package/{block → src/block}/del/del.ts +144 -1
  242. package/src/block/details/details.ts +729 -0
  243. package/src/block/dialog/dialog.ts +729 -0
  244. package/src/block/div/div.ts +729 -0
  245. package/src/block/dl/dl.ts +649 -0
  246. package/{block/details/details.ts → src/block/dt/dt.ts} +114 -88
  247. package/{block → src/block}/embed/embed.ts +144 -1
  248. package/{block → src/block}/fieldset/fieldset.ts +144 -1
  249. package/src/block/figcaption/figcaption.ts +649 -0
  250. package/src/block/figure/figure.ts +649 -0
  251. package/src/block/footer/footer.ts +665 -0
  252. package/{block → src/block}/form/form.ts +132 -5
  253. package/src/block/h1/h1.ts +633 -0
  254. package/src/block/h2/h2.ts +633 -0
  255. package/src/block/h3/h3.ts +633 -0
  256. package/src/block/h4/h4.ts +633 -0
  257. package/src/block/h5/h5.ts +633 -0
  258. package/src/block/h6/h6.ts +633 -0
  259. package/{block → src/block}/header/header.ts +144 -1
  260. package/src/block/hgroup/hgroup.ts +649 -0
  261. package/{block → src/block}/hr/hr.ts +59 -1
  262. package/{block → src/block}/html/html.ts +27 -1
  263. package/{block → src/block}/iframe/iframe.ts +112 -1
  264. package/{block → src/block}/ins/ins.ts +144 -1
  265. package/src/block/legend/legend.ts +649 -0
  266. package/{block → src/block}/li/li.ts +107 -1
  267. package/{block/div/div.ts → src/block/main/main.ts} +112 -54
  268. package/src/block/map/map.ts +665 -0
  269. package/{block → src/block}/menu/menu.ts +144 -1
  270. package/{block → src/block}/nav/nav.ts +107 -1
  271. package/{block → src/block}/noscript/noscript.ts +144 -1
  272. package/{block → src/block}/object/object.ts +144 -1
  273. package/{block → src/block}/ol/ol.ts +144 -1
  274. package/{block → src/block}/optgroup/optgroup.ts +144 -1
  275. package/{block → src/block}/option/option.ts +144 -1
  276. package/src/block/p/p.ts +649 -0
  277. package/src/block/picture/picture.ts +649 -0
  278. package/src/block/pre/pre.ts +649 -0
  279. package/{block → src/block}/section/section.ts +144 -1
  280. package/{block → src/block}/summary/summary.ts +107 -1
  281. package/{block → src/block}/table/table.ts +144 -1
  282. package/src/block/tbody/tbody.ts +649 -0
  283. package/{block → src/block}/td/td.ts +144 -1
  284. package/src/block/template/template.ts +649 -0
  285. package/src/block/tfoot/tfoot.ts +649 -0
  286. package/{block → src/block}/th/th.ts +144 -1
  287. package/src/block/thead/thead.ts +649 -0
  288. package/{block → src/block}/tr/tr.ts +144 -1
  289. package/{block → src/block}/ul/ul.ts +144 -1
  290. package/{block → src/block}/video/video.ts +144 -1
  291. package/{inline → src/inline}/a/a.ts +144 -1
  292. package/src/inline/abbr/abbr.ts +633 -0
  293. package/src/inline/address/address.ts +617 -0
  294. package/src/inline/b/b.ts +649 -0
  295. package/src/inline/bdi/bdi.ts +633 -0
  296. package/src/inline/bdo/bdo.ts +649 -0
  297. package/{inline → src/inline}/button/button.ts +145 -2
  298. package/src/inline/cite/cite.ts +649 -0
  299. package/src/inline/code/code.ts +649 -0
  300. package/src/inline/data/data.ts +665 -0
  301. package/src/inline/dfn/dfn.ts +649 -0
  302. package/src/inline/em/em.ts +649 -0
  303. package/src/inline/i/i.ts +649 -0
  304. package/{inline → src/inline}/img/img.ts +112 -1
  305. package/{inline → src/inline}/input/input.ts +145 -2
  306. package/src/inline/kbd/kbd.ts +649 -0
  307. package/{inline → src/inline}/label/label.ts +144 -1
  308. package/src/inline/mark/mark.ts +649 -0
  309. package/{inline → src/inline}/meter/meter.ts +144 -1
  310. package/{inline → src/inline}/output/output.ts +144 -1
  311. package/{inline → src/inline}/progress/progress.ts +144 -1
  312. package/src/inline/q/q.ts +665 -0
  313. package/src/inline/rp/rp.ts +649 -0
  314. package/src/inline/rt/rt.ts +649 -0
  315. package/src/inline/ruby/ruby.ts +649 -0
  316. package/src/inline/s/s.ts +649 -0
  317. package/src/inline/samp/samp.ts +649 -0
  318. package/{inline → src/inline}/select/select.ts +144 -1
  319. package/src/inline/slot/slot.ts +665 -0
  320. package/src/inline/small/small.ts +649 -0
  321. package/src/inline/span/span.ts +649 -0
  322. package/src/inline/strong/strong.ts +649 -0
  323. package/src/inline/sub/sub.ts +649 -0
  324. package/src/inline/sup/sup.ts +649 -0
  325. package/{inline → src/inline}/svg/svg.ts +144 -1
  326. package/{inline → src/inline}/textarea/textarea.ts +144 -1
  327. package/src/inline/time/time.ts +665 -0
  328. package/src/inline/u/u.ts +649 -0
  329. package/src/inline/var/var.ts +649 -0
  330. package/{void → src/void}/area/area.ts +144 -1
  331. package/{void → src/void}/base/base.ts +1 -1
  332. package/src/void/br/br.ts +172 -0
  333. package/src/void/col/col.ts +172 -0
  334. package/{void → src/void}/head/head.ts +1 -1
  335. package/{void → src/void}/link/link.ts +59 -1
  336. package/{void → src/void}/meta/meta.ts +59 -1
  337. package/src/void/param/param.ts +188 -0
  338. package/{void → src/void}/script/script.ts +59 -1
  339. package/src/void/source/source.ts +220 -0
  340. package/{void → src/void}/style/style.ts +59 -1
  341. package/{void → src/void}/title/title.ts +1 -1
  342. package/{void → src/void}/track/track.ts +96 -1
  343. package/src/void/wbr/wbr.ts +156 -0
  344. package/block/article/article.ts +0 -506
  345. package/block/blockquote/blockquote.ts +0 -522
  346. package/block/caption/caption.ts +0 -506
  347. package/block/datalist/datalist.ts +0 -506
  348. package/block/dd/dd.ts +0 -506
  349. package/block/dl/dl.ts +0 -506
  350. package/block/dt/dt.ts +0 -506
  351. package/block/figcaption/figcaption.ts +0 -506
  352. package/block/figure/figure.ts +0 -506
  353. package/block/footer/footer.ts +0 -522
  354. package/block/h1/h1.ts +0 -490
  355. package/block/h2/h2.ts +0 -490
  356. package/block/h3/h3.ts +0 -490
  357. package/block/h4/h4.ts +0 -490
  358. package/block/h5/h5.ts +0 -490
  359. package/block/h6/h6.ts +0 -490
  360. package/block/hgroup/hgroup.ts +0 -506
  361. package/block/legend/legend.ts +0 -506
  362. package/block/main/main.ts +0 -538
  363. package/block/map/map.ts +0 -522
  364. package/block/p/p.ts +0 -506
  365. package/block/picture/picture.ts +0 -506
  366. package/block/pre/pre.ts +0 -506
  367. package/block/tbody/tbody.ts +0 -506
  368. package/block/template/template.ts +0 -506
  369. package/block/tfoot/tfoot.ts +0 -506
  370. package/block/thead/thead.ts +0 -506
  371. package/inline/abbr/abbr.ts +0 -490
  372. package/inline/address/address.ts +0 -474
  373. package/inline/b/b.ts +0 -506
  374. package/inline/bdi/bdi.ts +0 -490
  375. package/inline/bdo/bdo.ts +0 -506
  376. package/inline/cite/cite.ts +0 -506
  377. package/inline/code/code.ts +0 -506
  378. package/inline/data/data.ts +0 -522
  379. package/inline/dfn/dfn.ts +0 -506
  380. package/inline/em/em.ts +0 -506
  381. package/inline/i/i.ts +0 -506
  382. package/inline/kbd/kbd.ts +0 -506
  383. package/inline/mark/mark.ts +0 -506
  384. package/inline/q/q.ts +0 -522
  385. package/inline/rp/rp.ts +0 -506
  386. package/inline/rt/rt.ts +0 -506
  387. package/inline/ruby/ruby.ts +0 -506
  388. package/inline/s/s.ts +0 -506
  389. package/inline/samp/samp.ts +0 -506
  390. package/inline/slot/slot.ts +0 -522
  391. package/inline/small/small.ts +0 -506
  392. package/inline/span/span.ts +0 -506
  393. package/inline/strong/strong.ts +0 -506
  394. package/inline/sub/sub.ts +0 -506
  395. package/inline/sup/sup.ts +0 -506
  396. package/inline/time/time.ts +0 -522
  397. package/inline/u/u.ts +0 -506
  398. package/inline/var/var.ts +0 -506
  399. package/void/br/br.ts +0 -77
  400. package/void/col/col.ts +0 -77
  401. package/void/param/param.ts +0 -93
  402. package/void/source/source.ts +0 -125
  403. package/void/wbr/wbr.ts +0 -61
  404. /package/{index.ts → src/index.ts} +0 -0
  405. /package/{tsconfig.json → src/tsconfig.json} +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * THIS FILE IS AUTOGENERATED. DO NOT EDIT IT.
3
3
  *
4
- * @generated December 28, 2025 12:26:31
4
+ * @generated January 2, 2026 15:45:45
5
5
  * @component Option
6
6
  * @description
7
7
  */
@@ -11,10 +11,18 @@ export interface OptionProps {
11
11
  * Child content or elements
12
12
  */
13
13
  children?: string | HTMLElement | (string | HTMLElement)[];
14
+ /**
15
+ * Keyboard shortcut to activate or focus the element
16
+ */
17
+ accessKey?: string;
14
18
  /**
15
19
  * specifies a shortcut key (or keys) to activate or focus an element
16
20
  */
17
21
  accesskey?: string | null | undefined;
22
+ /**
23
+ * Mapping of Alpine.js directives (shorthand or full) to their values (e.g., {@click: "do()"} or {"x-on:click":"do()"})
24
+ */
25
+ 'alpine-attributes'?: Record<string, string> | null | undefined;
18
26
  /**
19
27
  * Indicates whether assistive technologies should present the entire region as a whole when changes occur.
20
28
  */
@@ -79,10 +87,22 @@ export interface OptionProps {
79
87
  * Represents the autocapitalize behavior of the element
80
88
  */
81
89
  autocapitalize?: 'none' | 'sentences' | 'words' | 'characters' | null | undefined;
90
+ /**
91
+ * CSS class names
92
+ */
93
+ className?: string;
94
+ /**
95
+ * Whether the element is editable
96
+ */
97
+ contentEditable?: boolean | "true" | "false" | "inherit";
82
98
  /**
83
99
  * Indicates whether the element can be edited in place
84
100
  */
85
101
  contenteditable?: 'true' | 'false' | 'inherit' | boolean | null | undefined;
102
+ /**
103
+ * Mapping of data-* attributes to their values (e.g., {"test":"value"} -> data-test="value")
104
+ */
105
+ 'data-attributes'?: Record<string, string> | null | undefined;
86
106
  /**
87
107
  * Represents the text direction of the element
88
108
  */
@@ -99,6 +119,10 @@ export interface OptionProps {
99
119
  * Indicates whether the element is hidden
100
120
  */
101
121
  hidden?: boolean | null | undefined;
122
+ /**
123
+ * Unique identifier
124
+ */
125
+ id?: string;
102
126
  /**
103
127
  * used to specify the data entry mode for an input. It helps guide on-screen keyboards (especially on mobile devices) to show the appropriate layout for the expected input type
104
128
  */
@@ -135,6 +159,10 @@ export interface OptionProps {
135
159
  * Represents the CSS inline style of the element
136
160
  */
137
161
  style?: string | null | undefined;
162
+ /**
163
+ * Tab order position
164
+ */
165
+ tabIndex?: number;
138
166
  /**
139
167
  * Represents a tab order of the element
140
168
  */
@@ -168,9 +196,26 @@ export class Option {
168
196
  if (props.children !== undefined) {
169
197
  this.setChildren(props.children);
170
198
  }
199
+ if (props.accessKey !== undefined) {
200
+ this.element.setAttribute('accessKey', String(props.accessKey));
201
+ }
171
202
  if (props.accesskey !== undefined) {
172
203
  this.element.setAttribute('accesskey', String(props.accesskey));
173
204
  }
205
+ if (props['alpine-attributes'] !== undefined) {
206
+ const __map = props['alpine-attributes'];
207
+ if (__map !== null && __map !== undefined) {
208
+ for (const __k in __map) {
209
+ const __v = (__map as any)[__k];
210
+ let __attr = __k;
211
+ if (__k.startsWith('@')) { __attr = 'x-on:' + __k.slice(1); }
212
+ else if (__k.startsWith(':')) { __attr = 'x-bind:' + __k.slice(1); }
213
+ else if (__k.startsWith('.')) { __attr = 'x-model' + __k; }
214
+ else if (!__k.startsWith('x-') && ['show','text','html','if','for','cloak','init','data','effect','ignore','ref','transition','teleport'].includes(__k)) { __attr = 'x-' + __k; }
215
+ this.element.setAttribute(__attr, String(__v));
216
+ }
217
+ }
218
+ }
174
219
  if (props['aria-atomic'] !== undefined) {
175
220
  this.setAriaAtomic(props['aria-atomic']);
176
221
  }
@@ -219,9 +264,23 @@ export class Option {
219
264
  if (props.autocapitalize !== undefined) {
220
265
  this.setAutocapitalize(props.autocapitalize);
221
266
  }
267
+ if (props.className !== undefined) {
268
+ this.element.setAttribute('className', String(props.className));
269
+ }
270
+ if (props.contentEditable !== undefined) {
271
+ this.element.setAttribute('contentEditable', String(props.contentEditable));
272
+ }
222
273
  if (props.contenteditable !== undefined) {
223
274
  this.setContenteditable(props.contenteditable);
224
275
  }
276
+ if (props['data-attributes'] !== undefined) {
277
+ const __map = props['data-attributes'];
278
+ if (__map !== null && __map !== undefined) {
279
+ for (const __k in __map) {
280
+ this.element.setAttribute(`data-${__k}`, String((__map as any)[__k]));
281
+ }
282
+ }
283
+ }
225
284
  if (props.dir !== undefined) {
226
285
  this.setDir(props.dir);
227
286
  }
@@ -234,6 +293,9 @@ export class Option {
234
293
  if (props.hidden !== undefined) {
235
294
  this.element.setAttribute('hidden', String(props.hidden));
236
295
  }
296
+ if (props.id !== undefined) {
297
+ this.element.setAttribute('id', String(props.id));
298
+ }
237
299
  if (props.inputmode !== undefined) {
238
300
  this.setInputmode(props.inputmode);
239
301
  }
@@ -261,6 +323,9 @@ export class Option {
261
323
  if (props.style !== undefined) {
262
324
  this.element.setAttribute('style', String(props.style));
263
325
  }
326
+ if (props.tabIndex !== undefined) {
327
+ this.element.setAttribute('tabIndex', String(props.tabIndex));
328
+ }
264
329
  if (props.tabindex !== undefined) {
265
330
  this.element.setAttribute('tabindex', String(props.tabindex));
266
331
  }
@@ -275,6 +340,15 @@ export class Option {
275
340
  }
276
341
  }
277
342
 
343
+ setAccessKey(value: string): this {
344
+ if (value === null || value === undefined) {
345
+ this.element.removeAttribute('accessKey');
346
+ } else {
347
+ this.element.setAttribute('accessKey', String(value));
348
+ }
349
+ return this;
350
+ }
351
+
278
352
  setAccesskey(value: string | null | undefined): this {
279
353
  if (value === null || value === undefined) {
280
354
  this.element.removeAttribute('accesskey');
@@ -284,6 +358,25 @@ export class Option {
284
358
  return this;
285
359
  }
286
360
 
361
+ setAlpineAttributes(value: string | null | undefined): this {
362
+ if (value === null || value === undefined) {
363
+ // Remove all x-* Alpine attributes (best-effort)
364
+ for (const __a of Array.from(this.element.attributes)) {
365
+ if ((__a as Attr).name.startsWith('x-')) { (this.element as HTMLElement).removeAttribute((__a as Attr).name); }
366
+ }
367
+ } else {
368
+ for (const __k in value as Record<string, string>) {
369
+ let __attr = __k;
370
+ if (__k.startsWith('@')) { __attr = 'x-on:' + __k.slice(1); }
371
+ else if (__k.startsWith(':')) { __attr = 'x-bind:' + __k.slice(1); }
372
+ else if (__k.startsWith('.')) { __attr = 'x-model' + __k; }
373
+ else if (!__k.startsWith('x-') && ['show','text','html','if','for','cloak','init','data','effect','ignore','ref','transition','teleport'].includes(__k)) { __attr = 'x-' + __k; }
374
+ this.element.setAttribute(__attr, String((value as any)[__k]));
375
+ }
376
+ }
377
+ return this;
378
+ }
379
+
287
380
  setAriaAtomic(value: 'false' | 'true' | boolean | null | undefined): this {
288
381
  if (value === null || value === undefined) {
289
382
  this.element.removeAttribute('aria-atomic');
@@ -428,6 +521,24 @@ export class Option {
428
521
  return this;
429
522
  }
430
523
 
524
+ setClassName(value: string): this {
525
+ if (value === null || value === undefined) {
526
+ this.element.removeAttribute('className');
527
+ } else {
528
+ this.element.setAttribute('className', String(value));
529
+ }
530
+ return this;
531
+ }
532
+
533
+ setContentEditable(value: boolean | "true" | "false" | "inherit"): this {
534
+ if (value === true) {
535
+ this.element.setAttribute('contentEditable', '');
536
+ } else {
537
+ this.element.removeAttribute('contentEditable');
538
+ }
539
+ return this;
540
+ }
541
+
431
542
  setContenteditable(value: 'true' | 'false' | 'inherit' | boolean | null | undefined): this {
432
543
  if (value === null || value === undefined) {
433
544
  this.element.removeAttribute('contenteditable');
@@ -437,6 +548,20 @@ export class Option {
437
548
  return this;
438
549
  }
439
550
 
551
+ setDataAttributes(value: Record<string, string>): this {
552
+ if (value === null || value === undefined) {
553
+ // Remove all data-* attributes (best-effort)
554
+ for (const __a of Array.from(this.element.attributes)) {
555
+ if ((__a as Attr).name.startsWith('data-')) { (this.element as HTMLElement).removeAttribute((__a as Attr).name); }
556
+ }
557
+ } else {
558
+ for (const __k in value as Record<string, string>) {
559
+ this.element.setAttribute(`data-${__k}`, String((value as any)[__k]));
560
+ }
561
+ }
562
+ return this;
563
+ }
564
+
440
565
  setDir(value: 'ltr' | 'rtl' | 'auto' | null | undefined): this {
441
566
  if (value === null || value === undefined) {
442
567
  this.element.removeAttribute('dir');
@@ -473,6 +598,15 @@ export class Option {
473
598
  return this;
474
599
  }
475
600
 
601
+ setId(value: string): this {
602
+ if (value === null || value === undefined) {
603
+ this.element.removeAttribute('id');
604
+ } else {
605
+ this.element.setAttribute('id', String(value));
606
+ }
607
+ return this;
608
+ }
609
+
476
610
  setInputmode(value: 'none' | 'text' | 'decimal' | 'numeric' | 'email' | 'tel' | 'url' | 'search' | null | undefined): this {
477
611
  if (value === null || value === undefined) {
478
612
  this.element.removeAttribute('inputmode');
@@ -554,6 +688,15 @@ export class Option {
554
688
  return this;
555
689
  }
556
690
 
691
+ setTabIndex(value: number): this {
692
+ if (value === null || value === undefined) {
693
+ this.element.removeAttribute('tabIndex');
694
+ } else {
695
+ this.element.setAttribute('tabIndex', String(value));
696
+ }
697
+ return this;
698
+ }
699
+
557
700
  setTabindex(value: number | null | undefined): this {
558
701
  if (value === null || value === undefined) {
559
702
  this.element.removeAttribute('tabindex');