@lnpg/pkgn-sol 1.0.0-beta.0

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 (1140) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +64 -0
  3. package/dist/assets/fonts/montserrat/Montserrat-Variable-Font.ttf +0 -0
  4. package/dist/assets/fonts/montserrat/Montserrat-Variable-Italic-Font.ttf +0 -0
  5. package/dist/assets/fonts/montserrat/OFL.txt +93 -0
  6. package/dist/assets/fonts/montserrat/README.txt +81 -0
  7. package/dist/cjs/chunks/dom.cjs +2 -0
  8. package/dist/cjs/chunks/dom.cjs.map +1 -0
  9. package/dist/cjs/chunks/inline.cjs +2 -0
  10. package/dist/cjs/chunks/inline.cjs.map +1 -0
  11. package/dist/cjs/chunks/pkgn-sol.cjs +2 -0
  12. package/dist/cjs/chunks/pkgn-sol.cjs.map +1 -0
  13. package/dist/cjs/elements/break/br/br.cjs +2 -0
  14. package/dist/cjs/elements/break/br/br.cjs.map +1 -0
  15. package/dist/cjs/elements/break/break.cjs +2 -0
  16. package/dist/cjs/elements/break/break.cjs.map +1 -0
  17. package/dist/cjs/elements/break/wbr/wbr.cjs +2 -0
  18. package/dist/cjs/elements/break/wbr/wbr.cjs.map +1 -0
  19. package/dist/cjs/elements/container/container.cjs +2 -0
  20. package/dist/cjs/elements/container/container.cjs.map +1 -0
  21. package/dist/cjs/elements/container/div/div.cjs +2 -0
  22. package/dist/cjs/elements/container/div/div.cjs.map +1 -0
  23. package/dist/cjs/elements/container/span/span.cjs +2 -0
  24. package/dist/cjs/elements/container/span/span.cjs.map +1 -0
  25. package/dist/cjs/elements/figure/figcaption/figcaption.cjs +2 -0
  26. package/dist/cjs/elements/figure/figcaption/figcaption.cjs.map +1 -0
  27. package/dist/cjs/elements/figure/figure/figure.cjs +2 -0
  28. package/dist/cjs/elements/figure/figure/figure.cjs.map +1 -0
  29. package/dist/cjs/elements/figure/figure.cjs +2 -0
  30. package/dist/cjs/elements/figure/figure.cjs.map +1 -0
  31. package/dist/cjs/elements/form/button/button.cjs +2 -0
  32. package/dist/cjs/elements/form/button/button.cjs.map +1 -0
  33. package/dist/cjs/elements/form/datalist/datalist.cjs +2 -0
  34. package/dist/cjs/elements/form/datalist/datalist.cjs.map +1 -0
  35. package/dist/cjs/elements/form/fieldset/fieldset.cjs +2 -0
  36. package/dist/cjs/elements/form/fieldset/fieldset.cjs.map +1 -0
  37. package/dist/cjs/elements/form/form/form.cjs +2 -0
  38. package/dist/cjs/elements/form/form/form.cjs.map +1 -0
  39. package/dist/cjs/elements/form/form.cjs +2 -0
  40. package/dist/cjs/elements/form/form.cjs.map +1 -0
  41. package/dist/cjs/elements/form/input/input.cjs +2 -0
  42. package/dist/cjs/elements/form/input/input.cjs.map +1 -0
  43. package/dist/cjs/elements/form/label/label.cjs +2 -0
  44. package/dist/cjs/elements/form/label/label.cjs.map +1 -0
  45. package/dist/cjs/elements/form/legend/legend.cjs +2 -0
  46. package/dist/cjs/elements/form/legend/legend.cjs.map +1 -0
  47. package/dist/cjs/elements/form/meter/meter.cjs +2 -0
  48. package/dist/cjs/elements/form/meter/meter.cjs.map +1 -0
  49. package/dist/cjs/elements/form/optgroup/optgroup.cjs +2 -0
  50. package/dist/cjs/elements/form/optgroup/optgroup.cjs.map +1 -0
  51. package/dist/cjs/elements/form/option/option.cjs +2 -0
  52. package/dist/cjs/elements/form/option/option.cjs.map +1 -0
  53. package/dist/cjs/elements/form/output/output.cjs +2 -0
  54. package/dist/cjs/elements/form/output/output.cjs.map +1 -0
  55. package/dist/cjs/elements/form/progress/progress.cjs +2 -0
  56. package/dist/cjs/elements/form/progress/progress.cjs.map +1 -0
  57. package/dist/cjs/elements/form/select/select.cjs +2 -0
  58. package/dist/cjs/elements/form/select/select.cjs.map +1 -0
  59. package/dist/cjs/elements/form/textarea/textarea.cjs +2 -0
  60. package/dist/cjs/elements/form/textarea/textarea.cjs.map +1 -0
  61. package/dist/cjs/elements/heading/h1/h1.cjs +2 -0
  62. package/dist/cjs/elements/heading/h1/h1.cjs.map +1 -0
  63. package/dist/cjs/elements/heading/h2/h2.cjs +2 -0
  64. package/dist/cjs/elements/heading/h2/h2.cjs.map +1 -0
  65. package/dist/cjs/elements/heading/h3/h3.cjs +2 -0
  66. package/dist/cjs/elements/heading/h3/h3.cjs.map +1 -0
  67. package/dist/cjs/elements/heading/h4/h4.cjs +2 -0
  68. package/dist/cjs/elements/heading/h4/h4.cjs.map +1 -0
  69. package/dist/cjs/elements/heading/h5/h5.cjs +2 -0
  70. package/dist/cjs/elements/heading/h5/h5.cjs.map +1 -0
  71. package/dist/cjs/elements/heading/h6/h6.cjs +2 -0
  72. package/dist/cjs/elements/heading/h6/h6.cjs.map +1 -0
  73. package/dist/cjs/elements/heading/heading.cjs +2 -0
  74. package/dist/cjs/elements/heading/heading.cjs.map +1 -0
  75. package/dist/cjs/elements/inline/a/a.cjs +2 -0
  76. package/dist/cjs/elements/inline/a/a.cjs.map +1 -0
  77. package/dist/cjs/elements/inline/abbr/abbr.cjs +2 -0
  78. package/dist/cjs/elements/inline/abbr/abbr.cjs.map +1 -0
  79. package/dist/cjs/elements/inline/b/b.cjs +2 -0
  80. package/dist/cjs/elements/inline/b/b.cjs.map +1 -0
  81. package/dist/cjs/elements/inline/cite/cite.cjs +2 -0
  82. package/dist/cjs/elements/inline/cite/cite.cjs.map +1 -0
  83. package/dist/cjs/elements/inline/code/code.cjs +2 -0
  84. package/dist/cjs/elements/inline/code/code.cjs.map +1 -0
  85. package/dist/cjs/elements/inline/data/data.cjs +2 -0
  86. package/dist/cjs/elements/inline/data/data.cjs.map +1 -0
  87. package/dist/cjs/elements/inline/dfn/dfn.cjs +2 -0
  88. package/dist/cjs/elements/inline/dfn/dfn.cjs.map +1 -0
  89. package/dist/cjs/elements/inline/em/em.cjs +2 -0
  90. package/dist/cjs/elements/inline/em/em.cjs.map +1 -0
  91. package/dist/cjs/elements/inline/i/i.cjs +2 -0
  92. package/dist/cjs/elements/inline/i/i.cjs.map +1 -0
  93. package/dist/cjs/elements/inline/inline.cjs +1 -0
  94. package/dist/cjs/elements/inline/kbd/kbd.cjs +2 -0
  95. package/dist/cjs/elements/inline/kbd/kbd.cjs.map +1 -0
  96. package/dist/cjs/elements/inline/mark/mark.cjs +2 -0
  97. package/dist/cjs/elements/inline/mark/mark.cjs.map +1 -0
  98. package/dist/cjs/elements/inline/q/q.cjs +2 -0
  99. package/dist/cjs/elements/inline/q/q.cjs.map +1 -0
  100. package/dist/cjs/elements/inline/rb/rb.cjs +2 -0
  101. package/dist/cjs/elements/inline/rb/rb.cjs.map +1 -0
  102. package/dist/cjs/elements/inline/rt/rt.cjs +2 -0
  103. package/dist/cjs/elements/inline/rt/rt.cjs.map +1 -0
  104. package/dist/cjs/elements/inline/rtc/rtc.cjs +2 -0
  105. package/dist/cjs/elements/inline/rtc/rtc.cjs.map +1 -0
  106. package/dist/cjs/elements/inline/ruby/ruby.cjs +2 -0
  107. package/dist/cjs/elements/inline/ruby/ruby.cjs.map +1 -0
  108. package/dist/cjs/elements/inline/s/s.cjs +2 -0
  109. package/dist/cjs/elements/inline/s/s.cjs.map +1 -0
  110. package/dist/cjs/elements/inline/samp/samp.cjs +2 -0
  111. package/dist/cjs/elements/inline/samp/samp.cjs.map +1 -0
  112. package/dist/cjs/elements/inline/small/small.cjs +2 -0
  113. package/dist/cjs/elements/inline/small/small.cjs.map +1 -0
  114. package/dist/cjs/elements/inline/strong/strong.cjs +2 -0
  115. package/dist/cjs/elements/inline/strong/strong.cjs.map +1 -0
  116. package/dist/cjs/elements/inline/sub/sub.cjs +2 -0
  117. package/dist/cjs/elements/inline/sub/sub.cjs.map +1 -0
  118. package/dist/cjs/elements/inline/sup/sup.cjs +2 -0
  119. package/dist/cjs/elements/inline/sup/sup.cjs.map +1 -0
  120. package/dist/cjs/elements/inline/time/time.cjs +2 -0
  121. package/dist/cjs/elements/inline/time/time.cjs.map +1 -0
  122. package/dist/cjs/elements/inline/u/u.cjs +2 -0
  123. package/dist/cjs/elements/inline/u/u.cjs.map +1 -0
  124. package/dist/cjs/elements/inline/var/var.cjs +2 -0
  125. package/dist/cjs/elements/inline/var/var.cjs.map +1 -0
  126. package/dist/cjs/elements/interactive/details/details.cjs +2 -0
  127. package/dist/cjs/elements/interactive/details/details.cjs.map +1 -0
  128. package/dist/cjs/elements/interactive/dialog/dialog.cjs +2 -0
  129. package/dist/cjs/elements/interactive/dialog/dialog.cjs.map +1 -0
  130. package/dist/cjs/elements/interactive/interactive.cjs +2 -0
  131. package/dist/cjs/elements/interactive/interactive.cjs.map +1 -0
  132. package/dist/cjs/elements/interactive/summary/summary.cjs +2 -0
  133. package/dist/cjs/elements/interactive/summary/summary.cjs.map +1 -0
  134. package/dist/cjs/elements/layout/article/article.cjs +2 -0
  135. package/dist/cjs/elements/layout/article/article.cjs.map +1 -0
  136. package/dist/cjs/elements/layout/aside/aside.cjs +2 -0
  137. package/dist/cjs/elements/layout/aside/aside.cjs.map +1 -0
  138. package/dist/cjs/elements/layout/footer/footer.cjs +2 -0
  139. package/dist/cjs/elements/layout/footer/footer.cjs.map +1 -0
  140. package/dist/cjs/elements/layout/header/header.cjs +2 -0
  141. package/dist/cjs/elements/layout/header/header.cjs.map +1 -0
  142. package/dist/cjs/elements/layout/layout.cjs +2 -0
  143. package/dist/cjs/elements/layout/layout.cjs.map +1 -0
  144. package/dist/cjs/elements/layout/main/main.cjs +2 -0
  145. package/dist/cjs/elements/layout/main/main.cjs.map +1 -0
  146. package/dist/cjs/elements/layout/nav/nav.cjs +2 -0
  147. package/dist/cjs/elements/layout/nav/nav.cjs.map +1 -0
  148. package/dist/cjs/elements/layout/section/section.cjs +2 -0
  149. package/dist/cjs/elements/layout/section/section.cjs.map +1 -0
  150. package/dist/cjs/elements/list/dd/dd.cjs +2 -0
  151. package/dist/cjs/elements/list/dd/dd.cjs.map +1 -0
  152. package/dist/cjs/elements/list/dl/dl.cjs +2 -0
  153. package/dist/cjs/elements/list/dl/dl.cjs.map +1 -0
  154. package/dist/cjs/elements/list/dt/dt.cjs +2 -0
  155. package/dist/cjs/elements/list/dt/dt.cjs.map +1 -0
  156. package/dist/cjs/elements/list/li/li.cjs +2 -0
  157. package/dist/cjs/elements/list/li/li.cjs.map +1 -0
  158. package/dist/cjs/elements/list/list.cjs +2 -0
  159. package/dist/cjs/elements/list/list.cjs.map +1 -0
  160. package/dist/cjs/elements/list/ol/ol.cjs +2 -0
  161. package/dist/cjs/elements/list/ol/ol.cjs.map +1 -0
  162. package/dist/cjs/elements/list/ul/ul.cjs +2 -0
  163. package/dist/cjs/elements/list/ul/ul.cjs.map +1 -0
  164. package/dist/cjs/elements/media/audio/audio.cjs +2 -0
  165. package/dist/cjs/elements/media/audio/audio.cjs.map +1 -0
  166. package/dist/cjs/elements/media/canvas/canvas.cjs +2 -0
  167. package/dist/cjs/elements/media/canvas/canvas.cjs.map +1 -0
  168. package/dist/cjs/elements/media/embed/embed.cjs +2 -0
  169. package/dist/cjs/elements/media/embed/embed.cjs.map +1 -0
  170. package/dist/cjs/elements/media/iframe/iframe.cjs +2 -0
  171. package/dist/cjs/elements/media/iframe/iframe.cjs.map +1 -0
  172. package/dist/cjs/elements/media/img/img.cjs +2 -0
  173. package/dist/cjs/elements/media/img/img.cjs.map +1 -0
  174. package/dist/cjs/elements/media/math/math.cjs +2 -0
  175. package/dist/cjs/elements/media/math/math.cjs.map +1 -0
  176. package/dist/cjs/elements/media/media.cjs +2 -0
  177. package/dist/cjs/elements/media/media.cjs.map +1 -0
  178. package/dist/cjs/elements/media/object/object.cjs +2 -0
  179. package/dist/cjs/elements/media/object/object.cjs.map +1 -0
  180. package/dist/cjs/elements/media/svg/svg.cjs +2 -0
  181. package/dist/cjs/elements/media/svg/svg.cjs.map +1 -0
  182. package/dist/cjs/elements/media/video/video.cjs +2 -0
  183. package/dist/cjs/elements/media/video/video.cjs.map +1 -0
  184. package/dist/cjs/elements/responsive/area/area.cjs +2 -0
  185. package/dist/cjs/elements/responsive/area/area.cjs.map +1 -0
  186. package/dist/cjs/elements/responsive/map/map.cjs +2 -0
  187. package/dist/cjs/elements/responsive/map/map.cjs.map +1 -0
  188. package/dist/cjs/elements/responsive/picture/picture.cjs +2 -0
  189. package/dist/cjs/elements/responsive/picture/picture.cjs.map +1 -0
  190. package/dist/cjs/elements/responsive/responsive.cjs +2 -0
  191. package/dist/cjs/elements/responsive/responsive.cjs.map +1 -0
  192. package/dist/cjs/elements/responsive/source/source.cjs +2 -0
  193. package/dist/cjs/elements/responsive/source/source.cjs.map +1 -0
  194. package/dist/cjs/elements/responsive/track/track.cjs +2 -0
  195. package/dist/cjs/elements/responsive/track/track.cjs.map +1 -0
  196. package/dist/cjs/elements/table/caption/caption.cjs +2 -0
  197. package/dist/cjs/elements/table/caption/caption.cjs.map +1 -0
  198. package/dist/cjs/elements/table/col/col.cjs +2 -0
  199. package/dist/cjs/elements/table/col/col.cjs.map +1 -0
  200. package/dist/cjs/elements/table/colgroup/colgroup.cjs +2 -0
  201. package/dist/cjs/elements/table/colgroup/colgroup.cjs.map +1 -0
  202. package/dist/cjs/elements/table/table/table.cjs +2 -0
  203. package/dist/cjs/elements/table/table/table.cjs.map +1 -0
  204. package/dist/cjs/elements/table/table.cjs +2 -0
  205. package/dist/cjs/elements/table/table.cjs.map +1 -0
  206. package/dist/cjs/elements/table/tbody/tbody.cjs +2 -0
  207. package/dist/cjs/elements/table/tbody/tbody.cjs.map +1 -0
  208. package/dist/cjs/elements/table/td/td.cjs +2 -0
  209. package/dist/cjs/elements/table/td/td.cjs.map +1 -0
  210. package/dist/cjs/elements/table/tfoot/tfoot.cjs +2 -0
  211. package/dist/cjs/elements/table/tfoot/tfoot.cjs.map +1 -0
  212. package/dist/cjs/elements/table/th/th.cjs +2 -0
  213. package/dist/cjs/elements/table/th/th.cjs.map +1 -0
  214. package/dist/cjs/elements/table/thead/thead.cjs +2 -0
  215. package/dist/cjs/elements/table/thead/thead.cjs.map +1 -0
  216. package/dist/cjs/elements/table/tr/tr.cjs +2 -0
  217. package/dist/cjs/elements/table/tr/tr.cjs.map +1 -0
  218. package/dist/cjs/elements/text/address/address.cjs +2 -0
  219. package/dist/cjs/elements/text/address/address.cjs.map +1 -0
  220. package/dist/cjs/elements/text/blockquote/blockquote.cjs +2 -0
  221. package/dist/cjs/elements/text/blockquote/blockquote.cjs.map +1 -0
  222. package/dist/cjs/elements/text/hr/hr.cjs +2 -0
  223. package/dist/cjs/elements/text/hr/hr.cjs.map +1 -0
  224. package/dist/cjs/elements/text/paragraph/paragraph.cjs +2 -0
  225. package/dist/cjs/elements/text/paragraph/paragraph.cjs.map +1 -0
  226. package/dist/cjs/elements/text/pre/pre.cjs +2 -0
  227. package/dist/cjs/elements/text/pre/pre.cjs.map +1 -0
  228. package/dist/cjs/elements/text/text.cjs +2 -0
  229. package/dist/cjs/elements/text/text.cjs.map +1 -0
  230. package/dist/cjs/elements.cjs +2 -0
  231. package/dist/cjs/elements.cjs.map +1 -0
  232. package/dist/cjs/index.cjs +2 -0
  233. package/dist/cjs/index.cjs.map +1 -0
  234. package/dist/css/core.css +1 -0
  235. package/dist/css/core.css.map +1 -0
  236. package/dist/css/elements/break/br/br.css +1 -0
  237. package/dist/css/elements/break/br/br.css.map +1 -0
  238. package/dist/css/elements/break/wbr/wbr.css +1 -0
  239. package/dist/css/elements/break/wbr/wbr.css.map +1 -0
  240. package/dist/css/elements/container/div/div.css +1 -0
  241. package/dist/css/elements/container/div/div.css.map +1 -0
  242. package/dist/css/elements/container/span/span.css +1 -0
  243. package/dist/css/elements/container/span/span.css.map +1 -0
  244. package/dist/css/elements/figure/figcaption/figcaption.css +1 -0
  245. package/dist/css/elements/figure/figcaption/figcaption.css.map +1 -0
  246. package/dist/css/elements/figure/figure/figure.css +1 -0
  247. package/dist/css/elements/figure/figure/figure.css.map +1 -0
  248. package/dist/css/elements/form/button/button.css +1 -0
  249. package/dist/css/elements/form/button/button.css.map +1 -0
  250. package/dist/css/elements/form/datalist/datalist.css +1 -0
  251. package/dist/css/elements/form/datalist/datalist.css.map +1 -0
  252. package/dist/css/elements/form/fieldset/fieldset.css +1 -0
  253. package/dist/css/elements/form/fieldset/fieldset.css.map +1 -0
  254. package/dist/css/elements/form/form/form.css +1 -0
  255. package/dist/css/elements/form/form/form.css.map +1 -0
  256. package/dist/css/elements/form/input/input.css +1 -0
  257. package/dist/css/elements/form/input/input.css.map +1 -0
  258. package/dist/css/elements/form/label/label.css +1 -0
  259. package/dist/css/elements/form/label/label.css.map +1 -0
  260. package/dist/css/elements/form/legend/legend.css +1 -0
  261. package/dist/css/elements/form/legend/legend.css.map +1 -0
  262. package/dist/css/elements/form/meter/meter.css +1 -0
  263. package/dist/css/elements/form/meter/meter.css.map +1 -0
  264. package/dist/css/elements/form/optgroup/optgroup.css +1 -0
  265. package/dist/css/elements/form/optgroup/optgroup.css.map +1 -0
  266. package/dist/css/elements/form/option/option.css +1 -0
  267. package/dist/css/elements/form/option/option.css.map +1 -0
  268. package/dist/css/elements/form/output/output.css +1 -0
  269. package/dist/css/elements/form/output/output.css.map +1 -0
  270. package/dist/css/elements/form/progress/progress.css +1 -0
  271. package/dist/css/elements/form/progress/progress.css.map +1 -0
  272. package/dist/css/elements/form/select/select.css +1 -0
  273. package/dist/css/elements/form/select/select.css.map +1 -0
  274. package/dist/css/elements/form/textarea/textarea.css +1 -0
  275. package/dist/css/elements/form/textarea/textarea.css.map +1 -0
  276. package/dist/css/elements/heading/h1/h1.css +1 -0
  277. package/dist/css/elements/heading/h1/h1.css.map +1 -0
  278. package/dist/css/elements/heading/h2/h2.css +1 -0
  279. package/dist/css/elements/heading/h2/h2.css.map +1 -0
  280. package/dist/css/elements/heading/h3/h3.css +1 -0
  281. package/dist/css/elements/heading/h3/h3.css.map +1 -0
  282. package/dist/css/elements/heading/h4/h4.css +1 -0
  283. package/dist/css/elements/heading/h4/h4.css.map +1 -0
  284. package/dist/css/elements/heading/h5/h5.css +1 -0
  285. package/dist/css/elements/heading/h5/h5.css.map +1 -0
  286. package/dist/css/elements/heading/h6/h6.css +1 -0
  287. package/dist/css/elements/heading/h6/h6.css.map +1 -0
  288. package/dist/css/elements/inline/a/a.css +1 -0
  289. package/dist/css/elements/inline/a/a.css.map +1 -0
  290. package/dist/css/elements/inline/abbr/abbr.css +1 -0
  291. package/dist/css/elements/inline/abbr/abbr.css.map +1 -0
  292. package/dist/css/elements/inline/b/b.css +1 -0
  293. package/dist/css/elements/inline/b/b.css.map +1 -0
  294. package/dist/css/elements/inline/cite/cite.css +1 -0
  295. package/dist/css/elements/inline/cite/cite.css.map +1 -0
  296. package/dist/css/elements/inline/code/code.css +1 -0
  297. package/dist/css/elements/inline/code/code.css.map +1 -0
  298. package/dist/css/elements/inline/data/data.css +1 -0
  299. package/dist/css/elements/inline/data/data.css.map +1 -0
  300. package/dist/css/elements/inline/dfn/dfn.css +1 -0
  301. package/dist/css/elements/inline/dfn/dfn.css.map +1 -0
  302. package/dist/css/elements/inline/em/em.css +1 -0
  303. package/dist/css/elements/inline/em/em.css.map +1 -0
  304. package/dist/css/elements/inline/i/i.css +1 -0
  305. package/dist/css/elements/inline/i/i.css.map +1 -0
  306. package/dist/css/elements/inline/kbd/kbd.css +1 -0
  307. package/dist/css/elements/inline/kbd/kbd.css.map +1 -0
  308. package/dist/css/elements/inline/mark/mark.css +1 -0
  309. package/dist/css/elements/inline/mark/mark.css.map +1 -0
  310. package/dist/css/elements/inline/q/q.css +1 -0
  311. package/dist/css/elements/inline/q/q.css.map +1 -0
  312. package/dist/css/elements/inline/rb/rb.css +1 -0
  313. package/dist/css/elements/inline/rb/rb.css.map +1 -0
  314. package/dist/css/elements/inline/rp/rp.css +1 -0
  315. package/dist/css/elements/inline/rp/rp.css.map +1 -0
  316. package/dist/css/elements/inline/rt/rt.css +1 -0
  317. package/dist/css/elements/inline/rt/rt.css.map +1 -0
  318. package/dist/css/elements/inline/rtc/rtc.css +1 -0
  319. package/dist/css/elements/inline/rtc/rtc.css.map +1 -0
  320. package/dist/css/elements/inline/ruby/ruby.css +1 -0
  321. package/dist/css/elements/inline/ruby/ruby.css.map +1 -0
  322. package/dist/css/elements/inline/s/s.css +1 -0
  323. package/dist/css/elements/inline/s/s.css.map +1 -0
  324. package/dist/css/elements/inline/samp/samp.css +1 -0
  325. package/dist/css/elements/inline/samp/samp.css.map +1 -0
  326. package/dist/css/elements/inline/small/small.css +1 -0
  327. package/dist/css/elements/inline/small/small.css.map +1 -0
  328. package/dist/css/elements/inline/strong/strong.css +1 -0
  329. package/dist/css/elements/inline/strong/strong.css.map +1 -0
  330. package/dist/css/elements/inline/sub/sub.css +1 -0
  331. package/dist/css/elements/inline/sub/sub.css.map +1 -0
  332. package/dist/css/elements/inline/sup/sup.css +1 -0
  333. package/dist/css/elements/inline/sup/sup.css.map +1 -0
  334. package/dist/css/elements/inline/time/time.css +1 -0
  335. package/dist/css/elements/inline/time/time.css.map +1 -0
  336. package/dist/css/elements/inline/u/u.css +1 -0
  337. package/dist/css/elements/inline/u/u.css.map +1 -0
  338. package/dist/css/elements/inline/var/var.css +1 -0
  339. package/dist/css/elements/inline/var/var.css.map +1 -0
  340. package/dist/css/elements/interactive/details/details.css +1 -0
  341. package/dist/css/elements/interactive/details/details.css.map +1 -0
  342. package/dist/css/elements/interactive/dialog/dialog.css +1 -0
  343. package/dist/css/elements/interactive/dialog/dialog.css.map +1 -0
  344. package/dist/css/elements/interactive/summary/summary.css +1 -0
  345. package/dist/css/elements/interactive/summary/summary.css.map +1 -0
  346. package/dist/css/elements/layout/article/article.css +1 -0
  347. package/dist/css/elements/layout/article/article.css.map +1 -0
  348. package/dist/css/elements/layout/aside/aside.css +1 -0
  349. package/dist/css/elements/layout/aside/aside.css.map +1 -0
  350. package/dist/css/elements/layout/footer/footer.css +1 -0
  351. package/dist/css/elements/layout/footer/footer.css.map +1 -0
  352. package/dist/css/elements/layout/header/header.css +1 -0
  353. package/dist/css/elements/layout/header/header.css.map +1 -0
  354. package/dist/css/elements/layout/main/main.css +1 -0
  355. package/dist/css/elements/layout/main/main.css.map +1 -0
  356. package/dist/css/elements/layout/nav/nav.css +1 -0
  357. package/dist/css/elements/layout/nav/nav.css.map +1 -0
  358. package/dist/css/elements/layout/section/section.css +1 -0
  359. package/dist/css/elements/layout/section/section.css.map +1 -0
  360. package/dist/css/elements/list/dd/dd.css +1 -0
  361. package/dist/css/elements/list/dd/dd.css.map +1 -0
  362. package/dist/css/elements/list/dl/dl.css +1 -0
  363. package/dist/css/elements/list/dl/dl.css.map +1 -0
  364. package/dist/css/elements/list/dt/dt.css +1 -0
  365. package/dist/css/elements/list/dt/dt.css.map +1 -0
  366. package/dist/css/elements/list/li/li.css +1 -0
  367. package/dist/css/elements/list/li/li.css.map +1 -0
  368. package/dist/css/elements/list/ol/ol.css +1 -0
  369. package/dist/css/elements/list/ol/ol.css.map +1 -0
  370. package/dist/css/elements/list/ul/ul.css +1 -0
  371. package/dist/css/elements/list/ul/ul.css.map +1 -0
  372. package/dist/css/elements/media/audio/audio.css +1 -0
  373. package/dist/css/elements/media/audio/audio.css.map +1 -0
  374. package/dist/css/elements/media/canvas/canvas.css +1 -0
  375. package/dist/css/elements/media/canvas/canvas.css.map +1 -0
  376. package/dist/css/elements/media/embed/embed.css +1 -0
  377. package/dist/css/elements/media/embed/embed.css.map +1 -0
  378. package/dist/css/elements/media/iframe/iframe.css +1 -0
  379. package/dist/css/elements/media/iframe/iframe.css.map +1 -0
  380. package/dist/css/elements/media/img/img.css +1 -0
  381. package/dist/css/elements/media/img/img.css.map +1 -0
  382. package/dist/css/elements/media/math/math.css +1 -0
  383. package/dist/css/elements/media/math/math.css.map +1 -0
  384. package/dist/css/elements/media/object/object.css +1 -0
  385. package/dist/css/elements/media/object/object.css.map +1 -0
  386. package/dist/css/elements/media/svg/svg.css +1 -0
  387. package/dist/css/elements/media/svg/svg.css.map +1 -0
  388. package/dist/css/elements/media/video/video.css +1 -0
  389. package/dist/css/elements/media/video/video.css.map +1 -0
  390. package/dist/css/elements/responsive/area/area.css +1 -0
  391. package/dist/css/elements/responsive/area/area.css.map +1 -0
  392. package/dist/css/elements/responsive/map/map.css +1 -0
  393. package/dist/css/elements/responsive/map/map.css.map +1 -0
  394. package/dist/css/elements/responsive/picture/picture.css +1 -0
  395. package/dist/css/elements/responsive/picture/picture.css.map +1 -0
  396. package/dist/css/elements/responsive/source/source.css +1 -0
  397. package/dist/css/elements/responsive/source/source.css.map +1 -0
  398. package/dist/css/elements/responsive/track/track.css +1 -0
  399. package/dist/css/elements/responsive/track/track.css.map +1 -0
  400. package/dist/css/elements/table/caption/caption.css +1 -0
  401. package/dist/css/elements/table/caption/caption.css.map +1 -0
  402. package/dist/css/elements/table/col/col.css +1 -0
  403. package/dist/css/elements/table/col/col.css.map +1 -0
  404. package/dist/css/elements/table/colgroup/colgroup.css +1 -0
  405. package/dist/css/elements/table/colgroup/colgroup.css.map +1 -0
  406. package/dist/css/elements/table/table/table.css +1 -0
  407. package/dist/css/elements/table/table/table.css.map +1 -0
  408. package/dist/css/elements/table/tbody/tbody.css +1 -0
  409. package/dist/css/elements/table/tbody/tbody.css.map +1 -0
  410. package/dist/css/elements/table/td/td.css +1 -0
  411. package/dist/css/elements/table/td/td.css.map +1 -0
  412. package/dist/css/elements/table/tfoot/tfoot.css +1 -0
  413. package/dist/css/elements/table/tfoot/tfoot.css.map +1 -0
  414. package/dist/css/elements/table/th/th.css +1 -0
  415. package/dist/css/elements/table/th/th.css.map +1 -0
  416. package/dist/css/elements/table/thead/thead.css +1 -0
  417. package/dist/css/elements/table/thead/thead.css.map +1 -0
  418. package/dist/css/elements/table/tr/tr.css +1 -0
  419. package/dist/css/elements/table/tr/tr.css.map +1 -0
  420. package/dist/css/elements/text/address/address.css +1 -0
  421. package/dist/css/elements/text/address/address.css.map +1 -0
  422. package/dist/css/elements/text/blockquote/blockquote.css +1 -0
  423. package/dist/css/elements/text/blockquote/blockquote.css.map +1 -0
  424. package/dist/css/elements/text/hr/hr.css +1 -0
  425. package/dist/css/elements/text/hr/hr.css.map +1 -0
  426. package/dist/css/elements/text/paragraph/paragraph.css +1 -0
  427. package/dist/css/elements/text/paragraph/paragraph.css.map +1 -0
  428. package/dist/css/elements/text/pre/pre.css +1 -0
  429. package/dist/css/elements/text/pre/pre.css.map +1 -0
  430. package/dist/css/main.css +1 -0
  431. package/dist/css/main.css.map +1 -0
  432. package/dist/esm/chunks/dom.js +38 -0
  433. package/dist/esm/chunks/dom.js.map +1 -0
  434. package/dist/esm/chunks/inline.js +81 -0
  435. package/dist/esm/chunks/inline.js.map +1 -0
  436. package/dist/esm/chunks/pkgn-sol.js +7 -0
  437. package/dist/esm/chunks/pkgn-sol.js.map +1 -0
  438. package/dist/esm/elements/break/br/br.js +26 -0
  439. package/dist/esm/elements/break/br/br.js.map +1 -0
  440. package/dist/esm/elements/break/break.js +12 -0
  441. package/dist/esm/elements/break/break.js.map +1 -0
  442. package/dist/esm/elements/break/wbr/wbr.js +26 -0
  443. package/dist/esm/elements/break/wbr/wbr.js.map +1 -0
  444. package/dist/esm/elements/container/container.js +12 -0
  445. package/dist/esm/elements/container/container.js.map +1 -0
  446. package/dist/esm/elements/container/div/div.js +26 -0
  447. package/dist/esm/elements/container/div/div.js.map +1 -0
  448. package/dist/esm/elements/container/span/span.js +26 -0
  449. package/dist/esm/elements/container/span/span.js.map +1 -0
  450. package/dist/esm/elements/figure/figcaption/figcaption.js +26 -0
  451. package/dist/esm/elements/figure/figcaption/figcaption.js.map +1 -0
  452. package/dist/esm/elements/figure/figure/figure.js +26 -0
  453. package/dist/esm/elements/figure/figure/figure.js.map +1 -0
  454. package/dist/esm/elements/figure/figure.js +12 -0
  455. package/dist/esm/elements/figure/figure.js.map +1 -0
  456. package/dist/esm/elements/form/button/button.js +31 -0
  457. package/dist/esm/elements/form/button/button.js.map +1 -0
  458. package/dist/esm/elements/form/datalist/datalist.js +26 -0
  459. package/dist/esm/elements/form/datalist/datalist.js.map +1 -0
  460. package/dist/esm/elements/form/fieldset/fieldset.js +27 -0
  461. package/dist/esm/elements/form/fieldset/fieldset.js.map +1 -0
  462. package/dist/esm/elements/form/form/form.js +27 -0
  463. package/dist/esm/elements/form/form/form.js.map +1 -0
  464. package/dist/esm/elements/form/form.js +36 -0
  465. package/dist/esm/elements/form/form.js.map +1 -0
  466. package/dist/esm/elements/form/input/input.js +31 -0
  467. package/dist/esm/elements/form/input/input.js.map +1 -0
  468. package/dist/esm/elements/form/label/label.js +29 -0
  469. package/dist/esm/elements/form/label/label.js.map +1 -0
  470. package/dist/esm/elements/form/legend/legend.js +26 -0
  471. package/dist/esm/elements/form/legend/legend.js.map +1 -0
  472. package/dist/esm/elements/form/meter/meter.js +29 -0
  473. package/dist/esm/elements/form/meter/meter.js.map +1 -0
  474. package/dist/esm/elements/form/optgroup/optgroup.js +24 -0
  475. package/dist/esm/elements/form/optgroup/optgroup.js.map +1 -0
  476. package/dist/esm/elements/form/option/option.js +26 -0
  477. package/dist/esm/elements/form/option/option.js.map +1 -0
  478. package/dist/esm/elements/form/output/output.js +27 -0
  479. package/dist/esm/elements/form/output/output.js.map +1 -0
  480. package/dist/esm/elements/form/progress/progress.js +27 -0
  481. package/dist/esm/elements/form/progress/progress.js.map +1 -0
  482. package/dist/esm/elements/form/select/select.js +29 -0
  483. package/dist/esm/elements/form/select/select.js.map +1 -0
  484. package/dist/esm/elements/form/textarea/textarea.js +31 -0
  485. package/dist/esm/elements/form/textarea/textarea.js.map +1 -0
  486. package/dist/esm/elements/heading/h1/h1.js +26 -0
  487. package/dist/esm/elements/heading/h1/h1.js.map +1 -0
  488. package/dist/esm/elements/heading/h2/h2.js +26 -0
  489. package/dist/esm/elements/heading/h2/h2.js.map +1 -0
  490. package/dist/esm/elements/heading/h3/h3.js +26 -0
  491. package/dist/esm/elements/heading/h3/h3.js.map +1 -0
  492. package/dist/esm/elements/heading/h4/h4.js +26 -0
  493. package/dist/esm/elements/heading/h4/h4.js.map +1 -0
  494. package/dist/esm/elements/heading/h5/h5.js +26 -0
  495. package/dist/esm/elements/heading/h5/h5.js.map +1 -0
  496. package/dist/esm/elements/heading/h6/h6.js +26 -0
  497. package/dist/esm/elements/heading/h6/h6.js.map +1 -0
  498. package/dist/esm/elements/heading/heading.js +20 -0
  499. package/dist/esm/elements/heading/heading.js.map +1 -0
  500. package/dist/esm/elements/inline/a/a.js +28 -0
  501. package/dist/esm/elements/inline/a/a.js.map +1 -0
  502. package/dist/esm/elements/inline/abbr/abbr.js +26 -0
  503. package/dist/esm/elements/inline/abbr/abbr.js.map +1 -0
  504. package/dist/esm/elements/inline/b/b.js +26 -0
  505. package/dist/esm/elements/inline/b/b.js.map +1 -0
  506. package/dist/esm/elements/inline/cite/cite.js +26 -0
  507. package/dist/esm/elements/inline/cite/cite.js.map +1 -0
  508. package/dist/esm/elements/inline/code/code.js +26 -0
  509. package/dist/esm/elements/inline/code/code.js.map +1 -0
  510. package/dist/esm/elements/inline/data/data.js +26 -0
  511. package/dist/esm/elements/inline/data/data.js.map +1 -0
  512. package/dist/esm/elements/inline/dfn/dfn.js +26 -0
  513. package/dist/esm/elements/inline/dfn/dfn.js.map +1 -0
  514. package/dist/esm/elements/inline/em/em.js +26 -0
  515. package/dist/esm/elements/inline/em/em.js.map +1 -0
  516. package/dist/esm/elements/inline/i/i.js +26 -0
  517. package/dist/esm/elements/inline/i/i.js.map +1 -0
  518. package/dist/esm/elements/inline/inline.js +27 -0
  519. package/dist/esm/elements/inline/kbd/kbd.js +26 -0
  520. package/dist/esm/elements/inline/kbd/kbd.js.map +1 -0
  521. package/dist/esm/elements/inline/mark/mark.js +26 -0
  522. package/dist/esm/elements/inline/mark/mark.js.map +1 -0
  523. package/dist/esm/elements/inline/q/q.js +33 -0
  524. package/dist/esm/elements/inline/q/q.js.map +1 -0
  525. package/dist/esm/elements/inline/rb/rb.js +26 -0
  526. package/dist/esm/elements/inline/rb/rb.js.map +1 -0
  527. package/dist/esm/elements/inline/rt/rt.js +26 -0
  528. package/dist/esm/elements/inline/rt/rt.js.map +1 -0
  529. package/dist/esm/elements/inline/rtc/rtc.js +27 -0
  530. package/dist/esm/elements/inline/rtc/rtc.js.map +1 -0
  531. package/dist/esm/elements/inline/ruby/ruby.js +26 -0
  532. package/dist/esm/elements/inline/ruby/ruby.js.map +1 -0
  533. package/dist/esm/elements/inline/s/s.js +26 -0
  534. package/dist/esm/elements/inline/s/s.js.map +1 -0
  535. package/dist/esm/elements/inline/samp/samp.js +26 -0
  536. package/dist/esm/elements/inline/samp/samp.js.map +1 -0
  537. package/dist/esm/elements/inline/small/small.js +26 -0
  538. package/dist/esm/elements/inline/small/small.js.map +1 -0
  539. package/dist/esm/elements/inline/strong/strong.js +26 -0
  540. package/dist/esm/elements/inline/strong/strong.js.map +1 -0
  541. package/dist/esm/elements/inline/sub/sub.js +26 -0
  542. package/dist/esm/elements/inline/sub/sub.js.map +1 -0
  543. package/dist/esm/elements/inline/sup/sup.js +26 -0
  544. package/dist/esm/elements/inline/sup/sup.js.map +1 -0
  545. package/dist/esm/elements/inline/time/time.js +26 -0
  546. package/dist/esm/elements/inline/time/time.js.map +1 -0
  547. package/dist/esm/elements/inline/u/u.js +26 -0
  548. package/dist/esm/elements/inline/u/u.js.map +1 -0
  549. package/dist/esm/elements/inline/var/var.js +26 -0
  550. package/dist/esm/elements/inline/var/var.js.map +1 -0
  551. package/dist/esm/elements/interactive/details/details.js +29 -0
  552. package/dist/esm/elements/interactive/details/details.js.map +1 -0
  553. package/dist/esm/elements/interactive/dialog/dialog.js +26 -0
  554. package/dist/esm/elements/interactive/dialog/dialog.js.map +1 -0
  555. package/dist/esm/elements/interactive/interactive.js +14 -0
  556. package/dist/esm/elements/interactive/interactive.js.map +1 -0
  557. package/dist/esm/elements/interactive/summary/summary.js +26 -0
  558. package/dist/esm/elements/interactive/summary/summary.js.map +1 -0
  559. package/dist/esm/elements/layout/article/article.js +26 -0
  560. package/dist/esm/elements/layout/article/article.js.map +1 -0
  561. package/dist/esm/elements/layout/aside/aside.js +26 -0
  562. package/dist/esm/elements/layout/aside/aside.js.map +1 -0
  563. package/dist/esm/elements/layout/footer/footer.js +26 -0
  564. package/dist/esm/elements/layout/footer/footer.js.map +1 -0
  565. package/dist/esm/elements/layout/header/header.js +26 -0
  566. package/dist/esm/elements/layout/header/header.js.map +1 -0
  567. package/dist/esm/elements/layout/layout.js +22 -0
  568. package/dist/esm/elements/layout/layout.js.map +1 -0
  569. package/dist/esm/elements/layout/main/main.js +26 -0
  570. package/dist/esm/elements/layout/main/main.js.map +1 -0
  571. package/dist/esm/elements/layout/nav/nav.js +26 -0
  572. package/dist/esm/elements/layout/nav/nav.js.map +1 -0
  573. package/dist/esm/elements/layout/section/section.js +26 -0
  574. package/dist/esm/elements/layout/section/section.js.map +1 -0
  575. package/dist/esm/elements/list/dd/dd.js +26 -0
  576. package/dist/esm/elements/list/dd/dd.js.map +1 -0
  577. package/dist/esm/elements/list/dl/dl.js +26 -0
  578. package/dist/esm/elements/list/dl/dl.js.map +1 -0
  579. package/dist/esm/elements/list/dt/dt.js +26 -0
  580. package/dist/esm/elements/list/dt/dt.js.map +1 -0
  581. package/dist/esm/elements/list/li/li.js +27 -0
  582. package/dist/esm/elements/list/li/li.js.map +1 -0
  583. package/dist/esm/elements/list/list.js +20 -0
  584. package/dist/esm/elements/list/list.js.map +1 -0
  585. package/dist/esm/elements/list/ol/ol.js +27 -0
  586. package/dist/esm/elements/list/ol/ol.js.map +1 -0
  587. package/dist/esm/elements/list/ul/ul.js +26 -0
  588. package/dist/esm/elements/list/ul/ul.js.map +1 -0
  589. package/dist/esm/elements/media/audio/audio.js +27 -0
  590. package/dist/esm/elements/media/audio/audio.js.map +1 -0
  591. package/dist/esm/elements/media/canvas/canvas.js +21 -0
  592. package/dist/esm/elements/media/canvas/canvas.js.map +1 -0
  593. package/dist/esm/elements/media/embed/embed.js +44 -0
  594. package/dist/esm/elements/media/embed/embed.js.map +1 -0
  595. package/dist/esm/elements/media/iframe/iframe.js +27 -0
  596. package/dist/esm/elements/media/iframe/iframe.js.map +1 -0
  597. package/dist/esm/elements/media/img/img.js +25 -0
  598. package/dist/esm/elements/media/img/img.js.map +1 -0
  599. package/dist/esm/elements/media/math/math.js +23 -0
  600. package/dist/esm/elements/media/math/math.js.map +1 -0
  601. package/dist/esm/elements/media/media.js +26 -0
  602. package/dist/esm/elements/media/media.js.map +1 -0
  603. package/dist/esm/elements/media/object/object.js +37 -0
  604. package/dist/esm/elements/media/object/object.js.map +1 -0
  605. package/dist/esm/elements/media/svg/svg.js +27 -0
  606. package/dist/esm/elements/media/svg/svg.js.map +1 -0
  607. package/dist/esm/elements/media/video/video.js +27 -0
  608. package/dist/esm/elements/media/video/video.js.map +1 -0
  609. package/dist/esm/elements/responsive/area/area.js +20 -0
  610. package/dist/esm/elements/responsive/area/area.js.map +1 -0
  611. package/dist/esm/elements/responsive/map/map.js +35 -0
  612. package/dist/esm/elements/responsive/map/map.js.map +1 -0
  613. package/dist/esm/elements/responsive/picture/picture.js +26 -0
  614. package/dist/esm/elements/responsive/picture/picture.js.map +1 -0
  615. package/dist/esm/elements/responsive/responsive.js +18 -0
  616. package/dist/esm/elements/responsive/responsive.js.map +1 -0
  617. package/dist/esm/elements/responsive/source/source.js +29 -0
  618. package/dist/esm/elements/responsive/source/source.js.map +1 -0
  619. package/dist/esm/elements/responsive/track/track.js +27 -0
  620. package/dist/esm/elements/responsive/track/track.js.map +1 -0
  621. package/dist/esm/elements/table/caption/caption.js +26 -0
  622. package/dist/esm/elements/table/caption/caption.js.map +1 -0
  623. package/dist/esm/elements/table/col/col.js +30 -0
  624. package/dist/esm/elements/table/col/col.js.map +1 -0
  625. package/dist/esm/elements/table/colgroup/colgroup.js +33 -0
  626. package/dist/esm/elements/table/colgroup/colgroup.js.map +1 -0
  627. package/dist/esm/elements/table/table/table.js +26 -0
  628. package/dist/esm/elements/table/table/table.js.map +1 -0
  629. package/dist/esm/elements/table/table.js +28 -0
  630. package/dist/esm/elements/table/table.js.map +1 -0
  631. package/dist/esm/elements/table/tbody/tbody.js +26 -0
  632. package/dist/esm/elements/table/tbody/tbody.js.map +1 -0
  633. package/dist/esm/elements/table/td/td.js +39 -0
  634. package/dist/esm/elements/table/td/td.js.map +1 -0
  635. package/dist/esm/elements/table/tfoot/tfoot.js +26 -0
  636. package/dist/esm/elements/table/tfoot/tfoot.js.map +1 -0
  637. package/dist/esm/elements/table/th/th.js +33 -0
  638. package/dist/esm/elements/table/th/th.js.map +1 -0
  639. package/dist/esm/elements/table/thead/thead.js +26 -0
  640. package/dist/esm/elements/table/thead/thead.js.map +1 -0
  641. package/dist/esm/elements/table/tr/tr.js +26 -0
  642. package/dist/esm/elements/table/tr/tr.js.map +1 -0
  643. package/dist/esm/elements/text/address/address.js +26 -0
  644. package/dist/esm/elements/text/address/address.js.map +1 -0
  645. package/dist/esm/elements/text/blockquote/blockquote.js +29 -0
  646. package/dist/esm/elements/text/blockquote/blockquote.js.map +1 -0
  647. package/dist/esm/elements/text/hr/hr.js +26 -0
  648. package/dist/esm/elements/text/hr/hr.js.map +1 -0
  649. package/dist/esm/elements/text/paragraph/paragraph.js +26 -0
  650. package/dist/esm/elements/text/paragraph/paragraph.js.map +1 -0
  651. package/dist/esm/elements/text/pre/pre.js +26 -0
  652. package/dist/esm/elements/text/pre/pre.js.map +1 -0
  653. package/dist/esm/elements/text/text.js +18 -0
  654. package/dist/esm/elements/text/text.js.map +1 -0
  655. package/dist/esm/elements.js +34 -0
  656. package/dist/esm/elements.js.map +1 -0
  657. package/dist/esm/index.js +73 -0
  658. package/dist/esm/index.js.map +1 -0
  659. package/dist/types/elements/break/br/index.d.ts +111 -0
  660. package/dist/types/elements/break/br/index.d.ts.map +1 -0
  661. package/dist/types/elements/break/index.d.ts +32 -0
  662. package/dist/types/elements/break/index.d.ts.map +1 -0
  663. package/dist/types/elements/break/wbr/index.d.ts +112 -0
  664. package/dist/types/elements/break/wbr/index.d.ts.map +1 -0
  665. package/dist/types/elements/container/div/index.d.ts +123 -0
  666. package/dist/types/elements/container/div/index.d.ts.map +1 -0
  667. package/dist/types/elements/container/index.d.ts +32 -0
  668. package/dist/types/elements/container/index.d.ts.map +1 -0
  669. package/dist/types/elements/container/span/index.d.ts +100 -0
  670. package/dist/types/elements/container/span/index.d.ts.map +1 -0
  671. package/dist/types/elements/figure/figcaption/index.d.ts +115 -0
  672. package/dist/types/elements/figure/figcaption/index.d.ts.map +1 -0
  673. package/dist/types/elements/figure/figure/index.d.ts +124 -0
  674. package/dist/types/elements/figure/figure/index.d.ts.map +1 -0
  675. package/dist/types/elements/figure/index.d.ts +38 -0
  676. package/dist/types/elements/figure/index.d.ts.map +1 -0
  677. package/dist/types/elements/form/button/index.d.ts +216 -0
  678. package/dist/types/elements/form/button/index.d.ts.map +1 -0
  679. package/dist/types/elements/form/datalist/index.d.ts +140 -0
  680. package/dist/types/elements/form/datalist/index.d.ts.map +1 -0
  681. package/dist/types/elements/form/fieldset/index.d.ts +147 -0
  682. package/dist/types/elements/form/fieldset/index.d.ts.map +1 -0
  683. package/dist/types/elements/form/form/index.d.ts +210 -0
  684. package/dist/types/elements/form/form/index.d.ts.map +1 -0
  685. package/dist/types/elements/form/index.d.ts +140 -0
  686. package/dist/types/elements/form/index.d.ts.map +1 -0
  687. package/dist/types/elements/form/input/index.d.ts +313 -0
  688. package/dist/types/elements/form/input/index.d.ts.map +1 -0
  689. package/dist/types/elements/form/label/index.d.ts +144 -0
  690. package/dist/types/elements/form/label/index.d.ts.map +1 -0
  691. package/dist/types/elements/form/legend/index.d.ts +126 -0
  692. package/dist/types/elements/form/legend/index.d.ts.map +1 -0
  693. package/dist/types/elements/form/meter/index.d.ts +152 -0
  694. package/dist/types/elements/form/meter/index.d.ts.map +1 -0
  695. package/dist/types/elements/form/optgroup/index.d.ts +127 -0
  696. package/dist/types/elements/form/optgroup/index.d.ts.map +1 -0
  697. package/dist/types/elements/form/option/index.d.ts +160 -0
  698. package/dist/types/elements/form/option/index.d.ts.map +1 -0
  699. package/dist/types/elements/form/output/index.d.ts +146 -0
  700. package/dist/types/elements/form/output/index.d.ts.map +1 -0
  701. package/dist/types/elements/form/progress/index.d.ts +140 -0
  702. package/dist/types/elements/form/progress/index.d.ts.map +1 -0
  703. package/dist/types/elements/form/select/index.d.ts +158 -0
  704. package/dist/types/elements/form/select/index.d.ts.map +1 -0
  705. package/dist/types/elements/form/textarea/index.d.ts +228 -0
  706. package/dist/types/elements/form/textarea/index.d.ts.map +1 -0
  707. package/dist/types/elements/heading/h1/index.d.ts +130 -0
  708. package/dist/types/elements/heading/h1/index.d.ts.map +1 -0
  709. package/dist/types/elements/heading/h2/index.d.ts +128 -0
  710. package/dist/types/elements/heading/h2/index.d.ts.map +1 -0
  711. package/dist/types/elements/heading/h3/index.d.ts +126 -0
  712. package/dist/types/elements/heading/h3/index.d.ts.map +1 -0
  713. package/dist/types/elements/heading/h4/index.d.ts +113 -0
  714. package/dist/types/elements/heading/h4/index.d.ts.map +1 -0
  715. package/dist/types/elements/heading/h5/index.d.ts +126 -0
  716. package/dist/types/elements/heading/h5/index.d.ts.map +1 -0
  717. package/dist/types/elements/heading/h6/index.d.ts +119 -0
  718. package/dist/types/elements/heading/h6/index.d.ts.map +1 -0
  719. package/dist/types/elements/heading/index.d.ts +68 -0
  720. package/dist/types/elements/heading/index.d.ts.map +1 -0
  721. package/dist/types/elements/index.d.ts +106 -0
  722. package/dist/types/elements/index.d.ts.map +1 -0
  723. package/dist/types/elements/inline/a/index.d.ts +203 -0
  724. package/dist/types/elements/inline/a/index.d.ts.map +1 -0
  725. package/dist/types/elements/inline/abbr/index.d.ts +132 -0
  726. package/dist/types/elements/inline/abbr/index.d.ts.map +1 -0
  727. package/dist/types/elements/inline/b/index.d.ts +121 -0
  728. package/dist/types/elements/inline/b/index.d.ts.map +1 -0
  729. package/dist/types/elements/inline/cite/index.d.ts +125 -0
  730. package/dist/types/elements/inline/cite/index.d.ts.map +1 -0
  731. package/dist/types/elements/inline/code/index.d.ts +137 -0
  732. package/dist/types/elements/inline/code/index.d.ts.map +1 -0
  733. package/dist/types/elements/inline/data/index.d.ts +144 -0
  734. package/dist/types/elements/inline/data/index.d.ts.map +1 -0
  735. package/dist/types/elements/inline/dfn/index.d.ts +124 -0
  736. package/dist/types/elements/inline/dfn/index.d.ts.map +1 -0
  737. package/dist/types/elements/inline/em/index.d.ts +124 -0
  738. package/dist/types/elements/inline/em/index.d.ts.map +1 -0
  739. package/dist/types/elements/inline/i/index.d.ts +143 -0
  740. package/dist/types/elements/inline/i/index.d.ts.map +1 -0
  741. package/dist/types/elements/inline/index.d.ts +229 -0
  742. package/dist/types/elements/inline/index.d.ts.map +1 -0
  743. package/dist/types/elements/inline/kbd/index.d.ts +123 -0
  744. package/dist/types/elements/inline/kbd/index.d.ts.map +1 -0
  745. package/dist/types/elements/inline/mark/index.d.ts +125 -0
  746. package/dist/types/elements/inline/mark/index.d.ts.map +1 -0
  747. package/dist/types/elements/inline/q/index.d.ts +138 -0
  748. package/dist/types/elements/inline/q/index.d.ts.map +1 -0
  749. package/dist/types/elements/inline/rb/index.d.ts +143 -0
  750. package/dist/types/elements/inline/rb/index.d.ts.map +1 -0
  751. package/dist/types/elements/inline/rp/index.d.ts +123 -0
  752. package/dist/types/elements/inline/rp/index.d.ts.map +1 -0
  753. package/dist/types/elements/inline/rt/index.d.ts +124 -0
  754. package/dist/types/elements/inline/rt/index.d.ts.map +1 -0
  755. package/dist/types/elements/inline/rtc/index.d.ts +122 -0
  756. package/dist/types/elements/inline/rtc/index.d.ts.map +1 -0
  757. package/dist/types/elements/inline/ruby/index.d.ts +147 -0
  758. package/dist/types/elements/inline/ruby/index.d.ts.map +1 -0
  759. package/dist/types/elements/inline/s/index.d.ts +125 -0
  760. package/dist/types/elements/inline/s/index.d.ts.map +1 -0
  761. package/dist/types/elements/inline/samp/index.d.ts +122 -0
  762. package/dist/types/elements/inline/samp/index.d.ts.map +1 -0
  763. package/dist/types/elements/inline/small/index.d.ts +138 -0
  764. package/dist/types/elements/inline/small/index.d.ts.map +1 -0
  765. package/dist/types/elements/inline/strong/index.d.ts +126 -0
  766. package/dist/types/elements/inline/strong/index.d.ts.map +1 -0
  767. package/dist/types/elements/inline/sub/index.d.ts +130 -0
  768. package/dist/types/elements/inline/sub/index.d.ts.map +1 -0
  769. package/dist/types/elements/inline/sup/index.d.ts +125 -0
  770. package/dist/types/elements/inline/sup/index.d.ts.map +1 -0
  771. package/dist/types/elements/inline/time/index.d.ts +149 -0
  772. package/dist/types/elements/inline/time/index.d.ts.map +1 -0
  773. package/dist/types/elements/inline/u/index.d.ts +122 -0
  774. package/dist/types/elements/inline/u/index.d.ts.map +1 -0
  775. package/dist/types/elements/inline/var/index.d.ts +127 -0
  776. package/dist/types/elements/inline/var/index.d.ts.map +1 -0
  777. package/dist/types/elements/interactive/details/index.d.ts +134 -0
  778. package/dist/types/elements/interactive/details/index.d.ts.map +1 -0
  779. package/dist/types/elements/interactive/dialog/index.d.ts +162 -0
  780. package/dist/types/elements/interactive/dialog/index.d.ts.map +1 -0
  781. package/dist/types/elements/interactive/index.d.ts +48 -0
  782. package/dist/types/elements/interactive/index.d.ts.map +1 -0
  783. package/dist/types/elements/interactive/summary/index.d.ts +122 -0
  784. package/dist/types/elements/interactive/summary/index.d.ts.map +1 -0
  785. package/dist/types/elements/layout/article/index.d.ts +129 -0
  786. package/dist/types/elements/layout/article/index.d.ts.map +1 -0
  787. package/dist/types/elements/layout/aside/index.d.ts +122 -0
  788. package/dist/types/elements/layout/aside/index.d.ts.map +1 -0
  789. package/dist/types/elements/layout/footer/index.d.ts +122 -0
  790. package/dist/types/elements/layout/footer/index.d.ts.map +1 -0
  791. package/dist/types/elements/layout/header/index.d.ts +131 -0
  792. package/dist/types/elements/layout/header/index.d.ts.map +1 -0
  793. package/dist/types/elements/layout/index.d.ts +83 -0
  794. package/dist/types/elements/layout/index.d.ts.map +1 -0
  795. package/dist/types/elements/layout/main/index.d.ts +135 -0
  796. package/dist/types/elements/layout/main/index.d.ts.map +1 -0
  797. package/dist/types/elements/layout/nav/index.d.ts +136 -0
  798. package/dist/types/elements/layout/nav/index.d.ts.map +1 -0
  799. package/dist/types/elements/layout/section/index.d.ts +128 -0
  800. package/dist/types/elements/layout/section/index.d.ts.map +1 -0
  801. package/dist/types/elements/list/dd/index.d.ts +120 -0
  802. package/dist/types/elements/list/dd/index.d.ts.map +1 -0
  803. package/dist/types/elements/list/dl/index.d.ts +131 -0
  804. package/dist/types/elements/list/dl/index.d.ts.map +1 -0
  805. package/dist/types/elements/list/dt/index.d.ts +126 -0
  806. package/dist/types/elements/list/dt/index.d.ts.map +1 -0
  807. package/dist/types/elements/list/index.d.ts +69 -0
  808. package/dist/types/elements/list/index.d.ts.map +1 -0
  809. package/dist/types/elements/list/li/index.d.ts +155 -0
  810. package/dist/types/elements/list/li/index.d.ts.map +1 -0
  811. package/dist/types/elements/list/ol/index.d.ts +155 -0
  812. package/dist/types/elements/list/ol/index.d.ts.map +1 -0
  813. package/dist/types/elements/list/ul/index.d.ts +145 -0
  814. package/dist/types/elements/list/ul/index.d.ts.map +1 -0
  815. package/dist/types/elements/media/audio/index.d.ts +197 -0
  816. package/dist/types/elements/media/audio/index.d.ts.map +1 -0
  817. package/dist/types/elements/media/canvas/index.d.ts +146 -0
  818. package/dist/types/elements/media/canvas/index.d.ts.map +1 -0
  819. package/dist/types/elements/media/embed/index.d.ts +138 -0
  820. package/dist/types/elements/media/embed/index.d.ts.map +1 -0
  821. package/dist/types/elements/media/iframe/index.d.ts +222 -0
  822. package/dist/types/elements/media/iframe/index.d.ts.map +1 -0
  823. package/dist/types/elements/media/img/index.d.ts +83 -0
  824. package/dist/types/elements/media/img/index.d.ts.map +1 -0
  825. package/dist/types/elements/media/index.d.ts +89 -0
  826. package/dist/types/elements/media/index.d.ts.map +1 -0
  827. package/dist/types/elements/media/math/index.d.ts +132 -0
  828. package/dist/types/elements/media/math/index.d.ts.map +1 -0
  829. package/dist/types/elements/media/object/index.d.ts +183 -0
  830. package/dist/types/elements/media/object/index.d.ts.map +1 -0
  831. package/dist/types/elements/media/svg/index.d.ts +44 -0
  832. package/dist/types/elements/media/svg/index.d.ts.map +1 -0
  833. package/dist/types/elements/media/video/index.d.ts +225 -0
  834. package/dist/types/elements/media/video/index.d.ts.map +1 -0
  835. package/dist/types/elements/responsive/area/index.d.ts +158 -0
  836. package/dist/types/elements/responsive/area/index.d.ts.map +1 -0
  837. package/dist/types/elements/responsive/index.d.ts +67 -0
  838. package/dist/types/elements/responsive/index.d.ts.map +1 -0
  839. package/dist/types/elements/responsive/map/index.d.ts +138 -0
  840. package/dist/types/elements/responsive/map/index.d.ts.map +1 -0
  841. package/dist/types/elements/responsive/picture/index.d.ts +120 -0
  842. package/dist/types/elements/responsive/picture/index.d.ts.map +1 -0
  843. package/dist/types/elements/responsive/source/index.d.ts +175 -0
  844. package/dist/types/elements/responsive/source/index.d.ts.map +1 -0
  845. package/dist/types/elements/responsive/track/index.d.ts +183 -0
  846. package/dist/types/elements/responsive/track/index.d.ts.map +1 -0
  847. package/dist/types/elements/table/caption/index.d.ts +132 -0
  848. package/dist/types/elements/table/caption/index.d.ts.map +1 -0
  849. package/dist/types/elements/table/col/index.d.ts +132 -0
  850. package/dist/types/elements/table/col/index.d.ts.map +1 -0
  851. package/dist/types/elements/table/colgroup/index.d.ts +147 -0
  852. package/dist/types/elements/table/colgroup/index.d.ts.map +1 -0
  853. package/dist/types/elements/table/index.d.ts +102 -0
  854. package/dist/types/elements/table/index.d.ts.map +1 -0
  855. package/dist/types/elements/table/table/index.d.ts +143 -0
  856. package/dist/types/elements/table/table/index.d.ts.map +1 -0
  857. package/dist/types/elements/table/tbody/index.d.ts +134 -0
  858. package/dist/types/elements/table/tbody/index.d.ts.map +1 -0
  859. package/dist/types/elements/table/td/index.d.ts +146 -0
  860. package/dist/types/elements/table/td/index.d.ts.map +1 -0
  861. package/dist/types/elements/table/tfoot/index.d.ts +131 -0
  862. package/dist/types/elements/table/tfoot/index.d.ts.map +1 -0
  863. package/dist/types/elements/table/th/index.d.ts +187 -0
  864. package/dist/types/elements/table/th/index.d.ts.map +1 -0
  865. package/dist/types/elements/table/thead/index.d.ts +130 -0
  866. package/dist/types/elements/table/thead/index.d.ts.map +1 -0
  867. package/dist/types/elements/table/tr/index.d.ts +134 -0
  868. package/dist/types/elements/table/tr/index.d.ts.map +1 -0
  869. package/dist/types/elements/text/address/index.d.ts +133 -0
  870. package/dist/types/elements/text/address/index.d.ts.map +1 -0
  871. package/dist/types/elements/text/blockquote/index.d.ts +153 -0
  872. package/dist/types/elements/text/blockquote/index.d.ts.map +1 -0
  873. package/dist/types/elements/text/hr/index.d.ts +121 -0
  874. package/dist/types/elements/text/hr/index.d.ts.map +1 -0
  875. package/dist/types/elements/text/index.d.ts +57 -0
  876. package/dist/types/elements/text/index.d.ts.map +1 -0
  877. package/dist/types/elements/text/paragraph/index.d.ts +139 -0
  878. package/dist/types/elements/text/paragraph/index.d.ts.map +1 -0
  879. package/dist/types/elements/text/pre/index.d.ts +135 -0
  880. package/dist/types/elements/text/pre/index.d.ts.map +1 -0
  881. package/dist/types/index.d.ts +4 -0
  882. package/dist/types/index.d.ts.map +1 -0
  883. package/dist/types/ts/adapters/tailwind/v4/index.d.ts +3 -0
  884. package/dist/types/ts/adapters/tailwind/v4/index.d.ts.map +1 -0
  885. package/dist/types/ts/adapters/tailwind/v4/plugin.d.ts +11 -0
  886. package/dist/types/ts/adapters/tailwind/v4/plugin.d.ts.map +1 -0
  887. package/dist/types/ts/adapters/tailwind/v4/preset.d.ts +12 -0
  888. package/dist/types/ts/adapters/tailwind/v4/preset.d.ts.map +1 -0
  889. package/dist/types/ts/dom.d.ts +247 -0
  890. package/dist/types/ts/dom.d.ts.map +1 -0
  891. package/package.json +705 -0
  892. package/src/elements/break/br/br.scss +26 -0
  893. package/src/elements/break/br/index.ts +150 -0
  894. package/src/elements/break/index.ts +33 -0
  895. package/src/elements/break/wbr/index.ts +151 -0
  896. package/src/elements/break/wbr/wbr.scss +27 -0
  897. package/src/elements/container/div/div.scss +27 -0
  898. package/src/elements/container/div/index.ts +163 -0
  899. package/src/elements/container/index.ts +33 -0
  900. package/src/elements/container/span/index.ts +137 -0
  901. package/src/elements/container/span/span.scss +28 -0
  902. package/src/elements/figure/figcaption/figcaption.scss +53 -0
  903. package/src/elements/figure/figcaption/index.ts +157 -0
  904. package/src/elements/figure/figure/figure.scss +53 -0
  905. package/src/elements/figure/figure/index.ts +164 -0
  906. package/src/elements/figure/index.ts +39 -0
  907. package/src/elements/form/button/button.scss +39 -0
  908. package/src/elements/form/button/index.ts +335 -0
  909. package/src/elements/form/datalist/datalist.scss +40 -0
  910. package/src/elements/form/datalist/index.ts +183 -0
  911. package/src/elements/form/fieldset/fieldset.scss +46 -0
  912. package/src/elements/form/fieldset/index.ts +211 -0
  913. package/src/elements/form/form/form.scss +42 -0
  914. package/src/elements/form/form/index.ts +308 -0
  915. package/src/elements/form/index.ts +153 -0
  916. package/src/elements/form/input/index.ts +528 -0
  917. package/src/elements/form/input/input.scss +39 -0
  918. package/src/elements/form/label/index.ts +194 -0
  919. package/src/elements/form/label/label.scss +41 -0
  920. package/src/elements/form/legend/index.ts +166 -0
  921. package/src/elements/form/legend/legend.scss +40 -0
  922. package/src/elements/form/meter/index.ts +231 -0
  923. package/src/elements/form/meter/meter.scss +36 -0
  924. package/src/elements/form/optgroup/index.ts +187 -0
  925. package/src/elements/form/optgroup/optgroup.scss +37 -0
  926. package/src/elements/form/option/index.ts +218 -0
  927. package/src/elements/form/option/option.scss +38 -0
  928. package/src/elements/form/output/index.ts +205 -0
  929. package/src/elements/form/output/output.scss +42 -0
  930. package/src/elements/form/progress/index.ts +215 -0
  931. package/src/elements/form/progress/progress.scss +38 -0
  932. package/src/elements/form/select/index.ts +250 -0
  933. package/src/elements/form/select/select.scss +38 -0
  934. package/src/elements/form/textarea/index.ts +351 -0
  935. package/src/elements/form/textarea/textarea.scss +39 -0
  936. package/src/elements/heading/h1/h1.scss +59 -0
  937. package/src/elements/heading/h1/index.ts +170 -0
  938. package/src/elements/heading/h2/h2.scss +53 -0
  939. package/src/elements/heading/h2/index.ts +168 -0
  940. package/src/elements/heading/h3/h3.scss +54 -0
  941. package/src/elements/heading/h3/index.ts +166 -0
  942. package/src/elements/heading/h4/h4.scss +48 -0
  943. package/src/elements/heading/h4/index.ts +150 -0
  944. package/src/elements/heading/h5/h5.scss +50 -0
  945. package/src/elements/heading/h5/index.ts +166 -0
  946. package/src/elements/heading/h6/h6.scss +48 -0
  947. package/src/elements/heading/h6/index.ts +158 -0
  948. package/src/elements/heading/index.ts +73 -0
  949. package/src/elements/index.ts +118 -0
  950. package/src/elements/inline/a/a.scss +55 -0
  951. package/src/elements/inline/a/index.ts +291 -0
  952. package/src/elements/inline/abbr/abbr.scss +54 -0
  953. package/src/elements/inline/abbr/index.ts +172 -0
  954. package/src/elements/inline/b/b.scss +38 -0
  955. package/src/elements/inline/b/index.ts +161 -0
  956. package/src/elements/inline/cite/cite.scss +36 -0
  957. package/src/elements/inline/cite/index.ts +165 -0
  958. package/src/elements/inline/code/code.scss +45 -0
  959. package/src/elements/inline/code/index.ts +176 -0
  960. package/src/elements/inline/data/data.scss +36 -0
  961. package/src/elements/inline/data/index.ts +208 -0
  962. package/src/elements/inline/dfn/dfn.scss +36 -0
  963. package/src/elements/inline/dfn/index.ts +164 -0
  964. package/src/elements/inline/em/em.scss +35 -0
  965. package/src/elements/inline/em/index.ts +164 -0
  966. package/src/elements/inline/i/i.scss +38 -0
  967. package/src/elements/inline/i/index.ts +182 -0
  968. package/src/elements/inline/index.ts +254 -0
  969. package/src/elements/inline/kbd/index.ts +163 -0
  970. package/src/elements/inline/kbd/kbd.scss +44 -0
  971. package/src/elements/inline/mark/index.ts +165 -0
  972. package/src/elements/inline/mark/mark.scss +45 -0
  973. package/src/elements/inline/q/index.ts +206 -0
  974. package/src/elements/inline/q/q.scss +44 -0
  975. package/src/elements/inline/rb/index.ts +186 -0
  976. package/src/elements/inline/rb/rb.scss +35 -0
  977. package/src/elements/inline/rp/index.ts +163 -0
  978. package/src/elements/inline/rp/rp.scss +41 -0
  979. package/src/elements/inline/rt/index.ts +164 -0
  980. package/src/elements/inline/rt/rt.scss +36 -0
  981. package/src/elements/inline/rtc/index.ts +168 -0
  982. package/src/elements/inline/rtc/rtc.scss +40 -0
  983. package/src/elements/inline/ruby/index.ts +186 -0
  984. package/src/elements/inline/ruby/ruby.scss +39 -0
  985. package/src/elements/inline/s/index.ts +165 -0
  986. package/src/elements/inline/s/s.scss +37 -0
  987. package/src/elements/inline/samp/index.ts +162 -0
  988. package/src/elements/inline/samp/samp.scss +43 -0
  989. package/src/elements/inline/small/index.ts +177 -0
  990. package/src/elements/inline/small/small.scss +35 -0
  991. package/src/elements/inline/strong/index.ts +166 -0
  992. package/src/elements/inline/strong/strong.scss +35 -0
  993. package/src/elements/inline/sub/index.ts +170 -0
  994. package/src/elements/inline/sub/sub.scss +44 -0
  995. package/src/elements/inline/sup/index.ts +165 -0
  996. package/src/elements/inline/sup/sup.scss +43 -0
  997. package/src/elements/inline/time/index.ts +206 -0
  998. package/src/elements/inline/time/time.scss +38 -0
  999. package/src/elements/inline/u/index.ts +162 -0
  1000. package/src/elements/inline/u/u.scss +42 -0
  1001. package/src/elements/inline/var/index.ts +167 -0
  1002. package/src/elements/inline/var/var.scss +44 -0
  1003. package/src/elements/interactive/details/details.scss +42 -0
  1004. package/src/elements/interactive/details/index.ts +198 -0
  1005. package/src/elements/interactive/dialog/dialog.scss +55 -0
  1006. package/src/elements/interactive/dialog/index.ts +219 -0
  1007. package/src/elements/interactive/index.ts +50 -0
  1008. package/src/elements/interactive/summary/index.ts +161 -0
  1009. package/src/elements/interactive/summary/summary.scss +48 -0
  1010. package/src/elements/layout/article/article.scss +42 -0
  1011. package/src/elements/layout/article/index.ts +169 -0
  1012. package/src/elements/layout/aside/aside.scss +42 -0
  1013. package/src/elements/layout/aside/index.ts +161 -0
  1014. package/src/elements/layout/footer/footer.scss +42 -0
  1015. package/src/elements/layout/footer/index.ts +161 -0
  1016. package/src/elements/layout/header/header.scss +42 -0
  1017. package/src/elements/layout/header/index.ts +171 -0
  1018. package/src/elements/layout/index.ts +89 -0
  1019. package/src/elements/layout/main/index.ts +175 -0
  1020. package/src/elements/layout/main/main.scss +43 -0
  1021. package/src/elements/layout/nav/index.ts +176 -0
  1022. package/src/elements/layout/nav/nav.scss +42 -0
  1023. package/src/elements/layout/section/index.ts +168 -0
  1024. package/src/elements/layout/section/section.scss +42 -0
  1025. package/src/elements/list/dd/dd.scss +49 -0
  1026. package/src/elements/list/dd/index.ts +159 -0
  1027. package/src/elements/list/dl/dl.scss +39 -0
  1028. package/src/elements/list/dl/index.ts +171 -0
  1029. package/src/elements/list/dt/dt.scss +51 -0
  1030. package/src/elements/list/dt/index.ts +166 -0
  1031. package/src/elements/list/index.ts +74 -0
  1032. package/src/elements/list/li/index.ts +213 -0
  1033. package/src/elements/list/li/li.scss +39 -0
  1034. package/src/elements/list/ol/index.ts +205 -0
  1035. package/src/elements/list/ol/ol.scss +39 -0
  1036. package/src/elements/list/ul/index.ts +195 -0
  1037. package/src/elements/list/ul/ul.scss +42 -0
  1038. package/src/elements/media/audio/audio.scss +43 -0
  1039. package/src/elements/media/audio/index.ts +281 -0
  1040. package/src/elements/media/canvas/canvas.scss +46 -0
  1041. package/src/elements/media/canvas/index.ts +194 -0
  1042. package/src/elements/media/embed/embed.scss +37 -0
  1043. package/src/elements/media/embed/index.ts +246 -0
  1044. package/src/elements/media/iframe/iframe.scss +39 -0
  1045. package/src/elements/media/iframe/index.ts +331 -0
  1046. package/src/elements/media/img/img.scss +47 -0
  1047. package/src/elements/media/img/index.ts +146 -0
  1048. package/src/elements/media/index.ts +97 -0
  1049. package/src/elements/media/math/index.ts +200 -0
  1050. package/src/elements/media/math/math.scss +46 -0
  1051. package/src/elements/media/object/index.ts +282 -0
  1052. package/src/elements/media/object/object.scss +42 -0
  1053. package/src/elements/media/svg/index.ts +122 -0
  1054. package/src/elements/media/svg/svg.scss +44 -0
  1055. package/src/elements/media/video/index.ts +376 -0
  1056. package/src/elements/media/video/video.scss +44 -0
  1057. package/src/elements/responsive/area/area.scss +29 -0
  1058. package/src/elements/responsive/area/index.ts +244 -0
  1059. package/src/elements/responsive/index.ts +71 -0
  1060. package/src/elements/responsive/map/index.ts +231 -0
  1061. package/src/elements/responsive/map/map.scss +38 -0
  1062. package/src/elements/responsive/picture/index.ts +159 -0
  1063. package/src/elements/responsive/picture/picture.scss +32 -0
  1064. package/src/elements/responsive/source/index.ts +247 -0
  1065. package/src/elements/responsive/source/source.scss +28 -0
  1066. package/src/elements/responsive/track/index.ts +254 -0
  1067. package/src/elements/responsive/track/track.scss +28 -0
  1068. package/src/elements/table/caption/caption.scss +54 -0
  1069. package/src/elements/table/caption/index.ts +172 -0
  1070. package/src/elements/table/col/col.scss +32 -0
  1071. package/src/elements/table/col/index.ts +189 -0
  1072. package/src/elements/table/colgroup/colgroup.scss +34 -0
  1073. package/src/elements/table/colgroup/index.ts +224 -0
  1074. package/src/elements/table/index.ts +111 -0
  1075. package/src/elements/table/table/index.ts +183 -0
  1076. package/src/elements/table/table/table.scss +56 -0
  1077. package/src/elements/table/tbody/index.ts +174 -0
  1078. package/src/elements/table/tbody/tbody.scss +32 -0
  1079. package/src/elements/table/td/index.ts +220 -0
  1080. package/src/elements/table/td/td.scss +48 -0
  1081. package/src/elements/table/tfoot/index.ts +171 -0
  1082. package/src/elements/table/tfoot/tfoot.scss +30 -0
  1083. package/src/elements/table/th/index.ts +277 -0
  1084. package/src/elements/table/th/th.scss +48 -0
  1085. package/src/elements/table/thead/index.ts +170 -0
  1086. package/src/elements/table/thead/thead.scss +32 -0
  1087. package/src/elements/table/tr/index.ts +174 -0
  1088. package/src/elements/table/tr/tr.scss +30 -0
  1089. package/src/elements/text/address/address.scss +61 -0
  1090. package/src/elements/text/address/index.ts +173 -0
  1091. package/src/elements/text/blockquote/blockquote.scss +50 -0
  1092. package/src/elements/text/blockquote/index.ts +203 -0
  1093. package/src/elements/text/hr/hr.scss +50 -0
  1094. package/src/elements/text/hr/index.ts +161 -0
  1095. package/src/elements/text/index.ts +61 -0
  1096. package/src/elements/text/paragraph/index.ts +179 -0
  1097. package/src/elements/text/paragraph/paragraph.scss +49 -0
  1098. package/src/elements/text/pre/index.ts +175 -0
  1099. package/src/elements/text/pre/pre.scss +59 -0
  1100. package/src/scss/_elements.scss +178 -0
  1101. package/src/scss/_font-face.scss +35 -0
  1102. package/src/scss/_reboot.scss +120 -0
  1103. package/src/scss/_root.scss +112 -0
  1104. package/src/scss/adapters/bootstrap/v5/index.scss +364 -0
  1105. package/src/scss/core.scss +53 -0
  1106. package/src/scss/functions/_colours.scss +340 -0
  1107. package/src/scss/functions/_fonts.scss +454 -0
  1108. package/src/scss/functions/_index.scss +78 -0
  1109. package/src/scss/functions/_options.scss +233 -0
  1110. package/src/scss/functions/_spacing.scss +405 -0
  1111. package/src/scss/functions/_theme.scss +355 -0
  1112. package/src/scss/functions/_typography.scss +403 -0
  1113. package/src/scss/main.scss +47 -0
  1114. package/src/scss/maps/_colours.scss +344 -0
  1115. package/src/scss/maps/_dark-theme.scss +47 -0
  1116. package/src/scss/maps/_fonts.scss +145 -0
  1117. package/src/scss/maps/_index.scss +96 -0
  1118. package/src/scss/maps/_options.scss +53 -0
  1119. package/src/scss/maps/_spacing.scss +63 -0
  1120. package/src/scss/maps/_theme.scss +206 -0
  1121. package/src/scss/maps/_typography.scss +127 -0
  1122. package/src/scss/mixins/_colours.scss +304 -0
  1123. package/src/scss/mixins/_fonts.scss +227 -0
  1124. package/src/scss/mixins/_index.scss +93 -0
  1125. package/src/scss/mixins/_options.scss +297 -0
  1126. package/src/scss/mixins/_spacing.scss +176 -0
  1127. package/src/scss/mixins/_theme.scss +273 -0
  1128. package/src/scss/mixins/_typography.scss +272 -0
  1129. package/src/scss/tokens/_colours.scss +707 -0
  1130. package/src/scss/tokens/_dark-theme.scss +50 -0
  1131. package/src/scss/tokens/_fonts.scss +81 -0
  1132. package/src/scss/tokens/_index.scss +100 -0
  1133. package/src/scss/tokens/_options.scss +77 -0
  1134. package/src/scss/tokens/_spacing.scss +43 -0
  1135. package/src/scss/tokens/_theme.scss +325 -0
  1136. package/src/scss/tokens/_typography.scss +218 -0
  1137. package/src/ts/adapters/tailwind/v4/index.ts +2 -0
  1138. package/src/ts/adapters/tailwind/v4/plugin.ts +47 -0
  1139. package/src/ts/adapters/tailwind/v4/preset.ts +75 -0
  1140. package/src/ts/dom.ts +378 -0
package/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2026 LNPG Development Team
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # @lnpg/pkgn-sol (v1.0.0-beta.0)
2
+
3
+ **pkgn-sol** is LNPG’s framework-agnostic design foundation for shared CSS, SCSS, design tokens,
4
+ typography, spacing, colour, and reset styles across UI kits, applications, and websites.
5
+
6
+ It ships:
7
+
8
+ - **CSS** builds (ready to drop into any app)
9
+ - **SCSS** source (tokens, functions, mixins, element styles, and adapters)
10
+ - **Typed HTML element factories** (safe-ish DOM creation helpers with strong TypeScript typing)
11
+ - **Tailwind v4 adapter** (preset + plugin wrapper)
12
+
13
+ Repo: https://github.com/lnpgdev/pkgn-sol
14
+ Docs (VitePress site): `npm run docs`
15
+ API docs (TypeDoc markdown): generated into `docs/api/ts`
16
+
17
+ ---
18
+
19
+ ## Table of contents
20
+
21
+ - [What pkgn-sol is](#what-pkgn-sol-is)
22
+ - [Install](#install)
23
+ - [Entry points](#entry-points)
24
+ - [JavaScript/TypeScript](#javascripttypescript)
25
+ - [Elements API](#elements-api)
26
+ - [Tailwind adapter](#tailwind-adapter)
27
+ - [CSS entry points](#css-entry-points)
28
+ - [SCSS entry points](#scss-entry-points)
29
+ - [Quick start](#quick-start)
30
+ - [Use prebuilt CSS](#use-prebuilt-css)
31
+ - [Use SCSS tokens/functions/mixins](#use-scss-tokensfunctionsmixins)
32
+ - [Use element factories](#use-element-factories)
33
+ - [Use Tailwind adapter](#use-tailwind-adapter)
34
+ - [Design + security principles](#design--security-principles)
35
+ - [Build outputs](#build-outputs)
36
+ - [Scripts](#scripts)
37
+ - [Production readiness checklist](#production-readiness-checklist)
38
+ - [Contributing](#contributing)
39
+ - [License](#license)
40
+
41
+ ---
42
+
43
+ ## What pkgn-sol is
44
+
45
+ pkgn-sol aims to be the **lowest-level** design foundation layer:
46
+
47
+ - **Styles**: tokens + primitives + optional element styling
48
+ - **DOM**: typed factories that wrap native elements (no framework assumptions)
49
+
50
+ pkgn-sol intentionally does **not** attempt to be:
51
+
52
+ - a full component library
53
+ - a design system website
54
+ - a framework binding (React/Vue/etc)
55
+
56
+ Think of it as: _“a reliable base layer you can import into anything, without regretting it later.”_
57
+
58
+ ---
59
+
60
+ ## Install
61
+
62
+ ```bash
63
+ npm i @lnpg/pkgn-sol
64
+ ```
@@ -0,0 +1,93 @@
1
+ Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ http://scripts.sil.org/OFL
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,81 @@
1
+ Montserrat Variable Font
2
+ ========================
3
+
4
+ This download contains Montserrat as both variable fonts and static fonts.
5
+
6
+ Montserrat is a variable font with this axis:
7
+ wght
8
+
9
+ This means all the styles are contained in these files:
10
+ Montserrat-VariableFont_wght.ttf
11
+ Montserrat-Italic-VariableFont_wght.ttf
12
+
13
+ If your app fully supports variable fonts, you can now pick intermediate styles
14
+ that aren’t available as static fonts. Not all apps support variable fonts, and
15
+ in those cases you can use the static font files for Montserrat:
16
+ static/Montserrat-Thin.ttf
17
+ static/Montserrat-ExtraLight.ttf
18
+ static/Montserrat-Light.ttf
19
+ static/Montserrat-Regular.ttf
20
+ static/Montserrat-Medium.ttf
21
+ static/Montserrat-SemiBold.ttf
22
+ static/Montserrat-Bold.ttf
23
+ static/Montserrat-ExtraBold.ttf
24
+ static/Montserrat-Black.ttf
25
+ static/Montserrat-ThinItalic.ttf
26
+ static/Montserrat-ExtraLightItalic.ttf
27
+ static/Montserrat-LightItalic.ttf
28
+ static/Montserrat-Italic.ttf
29
+ static/Montserrat-MediumItalic.ttf
30
+ static/Montserrat-SemiBoldItalic.ttf
31
+ static/Montserrat-BoldItalic.ttf
32
+ static/Montserrat-ExtraBoldItalic.ttf
33
+ static/Montserrat-BlackItalic.ttf
34
+
35
+ Get started
36
+ -----------
37
+
38
+ 1. Install the font files you want to use
39
+
40
+ 2. Use your app's font picker to view the font family and all the
41
+ available styles
42
+
43
+ Learn more about variable fonts
44
+ -------------------------------
45
+
46
+ https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
47
+ https://variablefonts.typenetwork.com
48
+ https://medium.com/variable-fonts
49
+
50
+ In desktop apps
51
+
52
+ https://theblog.adobe.com/can-variable-fonts-illustrator-cc
53
+ https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
54
+
55
+ Online
56
+
57
+ https://developers.google.com/fonts/docs/getting_started
58
+ https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
59
+ https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
60
+
61
+ Installing fonts
62
+
63
+ MacOS: https://support.apple.com/en-us/HT201749
64
+ Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
65
+ Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
66
+
67
+ Android Apps
68
+
69
+ https://developers.google.com/fonts/docs/android
70
+ https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
71
+
72
+ License
73
+ -------
74
+ Please read the full license text (OFL.txt) to understand the permissions,
75
+ restrictions and requirements for usage, redistribution, and modification.
76
+
77
+ You can use them in your products & projects – print or digital,
78
+ commercial or otherwise.
79
+
80
+ This isn't legal advice, please consider consulting a lawyer and see the full
81
+ license for all details.
@@ -0,0 +1,2 @@
1
+ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};function n(e){let t=String(e),n=t.trim().toLowerCase();if(n.length===0)throw Error(`Unsafe attribute "" is not allowed (empty attribute name).`);if(n.startsWith(`on`))throw Error(`Unsafe attribute "${t}" is not allowed (event handler attributes are blocked).`);if(n===`style`)throw Error(`Unsafe attribute "style" is not allowed. Use the "style" object field instead.`)}function r(e,t,r){n(t),e.setAttribute(t,String(r))}function i(e,t){if(t){if(t.id&&(e.id=t.id),t.className&&(e.className=t.className),t.title&&(e.title=t.title),t.lang&&(e.lang=t.lang),t.dir&&(e.dir=t.dir),t.role&&r(e,`role`,t.role),typeof t.hidden==`boolean`&&(e.hidden=t.hidden),typeof t.tabIndex==`number`&&(e.tabIndex=t.tabIndex),typeof t.draggable==`boolean`&&(e.draggable=t.draggable),typeof t.spellCheck==`boolean`&&(e.spellcheck=t.spellCheck),t.translate&&r(e,`translate`,t.translate),t.contentEditable&&(e.contentEditable=t.contentEditable),t.style&&Object.assign(e.style,t.style),t.dataset)for(let[n,r]of Object.entries(t.dataset))e.dataset[n]=String(r);if(t.aria)for(let[n,i]of Object.entries(t.aria))r(e,`aria-${n}`,i);if(t.attrs)for(let[n,i]of Object.entries(t.attrs))r(e,n,i)}}function a(e,t,n){let r=document.createElement(e);return i(r,t),typeof n==`string`&&(r.textContent=n),r}function o(e,t){return a(e,t)}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=dom.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.cjs","names":[],"sources":["../../../src/ts/dom.ts"],"sourcesContent":["/**\n * DOM helpers for pkgn-sol element modules.\n *\n * @remarks\n * pkgn-sol is a design foundation, not a component framework. These helpers exist to\n * keep element entrypoints small, consistent, and safe across:\n * - Vanilla JS\n * - TypeScript direct consumption\n * - React and Vue lifecycle usage\n *\n * The helpers apply a curated set of common global attributes and provide an\n * escape hatch for additional attributes, while preventing common XSS footguns.\n *\n * @module\n * @category Internal\n */\n\n/**\n * Canonical element return type for a given HTML tag key.\n *\n * @remarks\n * This avoids \"invented\" DOM types (e.g. `HTMLAddressElement`) and always matches\n * what TypeScript's `lib.dom.d.ts` actually provides.\n *\n * @example\n * type HrEl = ElementOf<'hr'>; // HTMLHRElement\n * type AddressEl = ElementOf<'address'>; // HTMLElement (no special DOM interface)\n *\n * @category Types\n */\nexport type ElementOf<K extends keyof HTMLElementTagNameMap> = HTMLElementTagNameMap[K];\n\n/**\n * Values that are safely coerced to strings for attributes.\n *\n * @category Types\n */\nexport type AttrValue = string | number | boolean;\n\n/**\n * A curated, safe subset of HTML global attributes commonly applied to elements.\n *\n * @remarks\n * This type intentionally focuses on widely used global attributes and provides\n * a generic escape hatch via {@link GlobalAttrs.attrs} for less common cases.\n *\n * Security rules enforced by {@link applyGlobalAttrs}:\n * - Blocks inline event handler attributes like `onclick`\n * - Blocks the raw `style` attribute. Use {@link GlobalAttrs.style} instead\n *\n * @category Attributes\n */\nexport type GlobalAttrs = {\n /**\n * The element ID.\n *\n * @remarks\n * Must be unique within the document.\n */\n id?: string;\n\n /**\n * The element class string.\n *\n * @remarks\n * This maps to `class` in HTML. Use this instead of passing `class` through\n * {@link GlobalAttrs.attrs}.\n */\n className?: string;\n\n /**\n * Advisory information, typically shown as a tooltip in browsers.\n */\n title?: string;\n\n /**\n * Language of the element's content.\n *\n * @remarks\n * Useful when rendering mixed-language documents, or when an element's content\n * differs from the page language.\n */\n lang?: string;\n\n /**\n * Text direction of the element's content.\n */\n dir?: 'ltr' | 'rtl' | 'auto';\n\n /**\n * Optional ARIA role.\n *\n * @remarks\n * Prefer native semantics when possible. Only set `role` when needed.\n */\n role?: string;\n\n /**\n * Whether the element is hidden.\n *\n * @remarks\n * Mirrors the `hidden` boolean attribute.\n */\n hidden?: boolean;\n\n /**\n * Tabbing order.\n *\n * @remarks\n * Use with care. Setting a tab index on non-interactive elements can reduce\n * usability and accessibility.\n */\n tabIndex?: number;\n\n /**\n * Whether the element is draggable.\n */\n draggable?: boolean;\n\n /**\n * Whether spellchecking is enabled for editable content.\n *\n * @remarks\n * Mirrors `spellcheck`. This has effect primarily when `contentEditable` is used.\n */\n spellCheck?: boolean;\n\n /**\n * Translation hint for user agents.\n *\n * @remarks\n * Maps to the `translate` attribute.\n */\n translate?: 'yes' | 'no';\n\n /**\n * Whether the element is editable.\n *\n * @remarks\n * Use sparingly. Many apps are better served by explicit form controls.\n */\n contentEditable?: 'true' | 'false' | 'plaintext-only';\n\n /**\n * Inline style properties to assign to the element.\n *\n * @remarks\n * This is safer than accepting a raw style string because it avoids the\n * `style=\"...\"` attribute injection surface.\n *\n * This does not make untrusted input \"safe\". If callers build styles from\n * untrusted sources, they must validate inputs appropriately.\n */\n style?: Partial<CSSStyleDeclaration>;\n\n /**\n * Dataset values applied as `data-*` attributes.\n *\n * @remarks\n * Keys map to `HTMLElement.dataset` keys (camelCase), and values are coerced\n * to strings.\n *\n * Example: `{ trackingId: \"123\" }` becomes `data-tracking-id=\"123\"`.\n */\n dataset?: Record<string, AttrValue>;\n\n /**\n * ARIA attribute values applied as `aria-*` attributes.\n *\n * @remarks\n * Keys are appended to `aria-`. Example: `{ label: \"Close\" }` becomes\n * `aria-label=\"Close\"`.\n */\n aria?: Record<string, AttrValue>;\n\n /**\n * Escape hatch for additional attributes not modeled above.\n *\n * @remarks\n * This exists to keep the API practical without turning pkgn-sol into a full DOM\n * abstraction layer.\n *\n * Security rules:\n * - Attributes starting with `on` are rejected (blocks inline event handlers)\n * - The `style` attribute is rejected (use {@link GlobalAttrs.style})\n */\n attrs?: Record<string, AttrValue>;\n};\n\n/**\n * Enforce attribute-name safety rules for attribute escape hatches.\n *\n * @remarks\n * This function blocks common XSS surfaces when callers attempt to set raw\n * attributes. It is intentionally conservative.\n *\n * @param name - The attribute name as provided by the caller.\n * @throws Error if the attribute name is not permitted.\n *\n * @category Security\n */\nfunction assertSafeAttrName(name: string): void {\n const raw = String(name);\n const n = raw.trim().toLowerCase();\n\n if (n.length === 0) {\n throw new Error('Unsafe attribute \"\" is not allowed (empty attribute name).');\n }\n\n // Block inline event handlers: onclick, onload, onerror, etc.\n if (n.startsWith('on')) {\n throw new Error(\n `Unsafe attribute \"${raw}\" is not allowed (event handler attributes are blocked).`,\n );\n }\n\n // Block raw style attribute injection. Use the `style` object field instead.\n if (n === 'style') {\n throw new Error(\n 'Unsafe attribute \"style\" is not allowed. Use the \"style\" object field instead.',\n );\n }\n}\n\n/**\n * Set an attribute on an element after applying security rules.\n *\n * @param el - The element to modify.\n * @param name - The attribute name.\n * @param value - The attribute value.\n * @throws Error if the attribute name is not permitted.\n *\n * @category Internal\n */\nfunction setAttr(el: Element, name: string, value: AttrValue): void {\n assertSafeAttrName(name);\n el.setAttribute(name, String(value));\n}\n\n/**\n * Apply {@link GlobalAttrs} to an existing element.\n *\n * @remarks\n * - This function does not attempt to \"sanitize\" content. It avoids the biggest\n * footguns by refusing inline event handler attributes and raw `style`.\n * - Text content should be assigned via `textContent` rather than `innerHTML`.\n *\n * @param el - The element to apply attributes to.\n * @param a - The attribute bag. If omitted, the function is a no-op.\n *\n * @example\n * Apply common attributes:\n * ```ts\n * const p = document.createElement(\"p\");\n * applyGlobalAttrs(p, { id: \"intro\", className: \"lead\", lang: \"en\" });\n * ```\n *\n * @example\n * Apply dataset and ARIA:\n * ```ts\n * applyGlobalAttrs(p, {\n * dataset: { trackingId: \"123\" },\n * aria: { label: \"Intro paragraph\" }\n * });\n * ```\n *\n * @throws Error if {@link GlobalAttrs.attrs} or {@link GlobalAttrs.aria} contain\n * an unsafe attribute name.\n *\n * @category Attributes\n */\nexport function applyGlobalAttrs(el: HTMLElement, a?: GlobalAttrs): void {\n if (!a) return;\n\n if (a.id) el.id = a.id;\n if (a.className) el.className = a.className;\n if (a.title) el.title = a.title;\n\n if (a.lang) el.lang = a.lang;\n if (a.dir) el.dir = a.dir;\n\n if (a.role) setAttr(el, 'role', a.role);\n\n if (typeof a.hidden === 'boolean') el.hidden = a.hidden;\n if (typeof a.tabIndex === 'number') el.tabIndex = a.tabIndex;\n\n if (typeof a.draggable === 'boolean') el.draggable = a.draggable;\n if (typeof a.spellCheck === 'boolean') el.spellcheck = a.spellCheck;\n\n if (a.translate) setAttr(el, 'translate', a.translate);\n\n if (a.contentEditable) el.contentEditable = a.contentEditable;\n\n if (a.style) {\n Object.assign(el.style, a.style);\n }\n\n if (a.dataset) {\n for (const [k, v] of Object.entries(a.dataset)) {\n // Dataset keys must be valid identifiers; consumers control this.\n el.dataset[k] = String(v);\n }\n }\n\n if (a.aria) {\n for (const [k, v] of Object.entries(a.aria)) {\n setAttr(el, `aria-${k}`, v);\n }\n }\n\n if (a.attrs) {\n for (const [k, v] of Object.entries(a.attrs)) {\n setAttr(el, k, v);\n }\n }\n}\n\n/**\n * Create a DOM element, apply {@link GlobalAttrs}, and optionally set text content.\n *\n * @remarks\n * This helper is intentionally conservative:\n * - Uses `textContent`, not `innerHTML`, which prevents HTML interpretation.\n * - Does not accept a raw style string.\n *\n * @typeParam K - A key of {@link HTMLElementTagNameMap}, inferred from `tag`.\n * @param tag - The tag name to create.\n * @param attrs - Global attributes to apply.\n * @param text - Optional text content. Assigned via `textContent`.\n * @returns The created element with the correct DOM type for the tag.\n *\n * @example\n * ```ts\n * const p = createElement(\"p\", { className: \"lead\" }, \"Hello.\");\n * document.body.appendChild(p);\n * ```\n *\n * @throws Error if unsafe attributes are provided via {@link GlobalAttrs.attrs}\n * or {@link GlobalAttrs.aria}.\n *\n * @category DOM\n */\nexport function createElement<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n attrs?: GlobalAttrs,\n text?: string,\n): ElementOf<K> {\n const el = document.createElement(tag) as ElementOf<K>;\n applyGlobalAttrs(el as unknown as HTMLElement, attrs);\n\n // Security: textContent does not interpret HTML.\n if (typeof text === 'string') (el as unknown as Node).textContent = text;\n\n return el;\n}\n\n/**\n * Create a void element (e.g. `<hr>`, `<br>`) and apply {@link GlobalAttrs}.\n *\n * @remarks\n * Use this when the element must never carry text content.\n *\n * @typeParam K - A key of {@link HTMLElementTagNameMap}, inferred from `tag`.\n * @param tag - The tag name to create.\n * @param attrs - Global attributes to apply.\n * @returns The created element with the correct DOM type for the tag.\n *\n * @throws Error if unsafe attributes are provided via {@link GlobalAttrs.attrs}\n * or {@link GlobalAttrs.aria}.\n *\n * @category DOM\n */\nexport function createVoidElement<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n attrs?: GlobalAttrs,\n): ElementOf<K> {\n return createElement(tag, attrs);\n}\n"],"mappings":"oJAyMA,SAAS,EAAmB,EAAoB,CAC9C,IAAM,EAAM,OAAO,EAAK,CAClB,EAAI,EAAI,MAAM,CAAC,aAAa,CAElC,GAAI,EAAE,SAAW,EACf,MAAU,MAAM,6DAA6D,CAI/E,GAAI,EAAE,WAAW,KAAK,CACpB,MAAU,MACR,qBAAqB,EAAI,0DAC1B,CAIH,GAAI,IAAM,QACR,MAAU,MACR,iFACD,CAcL,SAAS,EAAQ,EAAa,EAAc,EAAwB,CAClE,EAAmB,EAAK,CACxB,EAAG,aAAa,EAAM,OAAO,EAAM,CAAC,CAmCtC,SAAgB,EAAiB,EAAiB,EAAuB,CAClE,KAyBL,IAvBI,EAAE,KAAI,EAAG,GAAK,EAAE,IAChB,EAAE,YAAW,EAAG,UAAY,EAAE,WAC9B,EAAE,QAAO,EAAG,MAAQ,EAAE,OAEtB,EAAE,OAAM,EAAG,KAAO,EAAE,MACpB,EAAE,MAAK,EAAG,IAAM,EAAE,KAElB,EAAE,MAAM,EAAQ,EAAI,OAAQ,EAAE,KAAK,CAEnC,OAAO,EAAE,QAAW,YAAW,EAAG,OAAS,EAAE,QAC7C,OAAO,EAAE,UAAa,WAAU,EAAG,SAAW,EAAE,UAEhD,OAAO,EAAE,WAAc,YAAW,EAAG,UAAY,EAAE,WACnD,OAAO,EAAE,YAAe,YAAW,EAAG,WAAa,EAAE,YAErD,EAAE,WAAW,EAAQ,EAAI,YAAa,EAAE,UAAU,CAElD,EAAE,kBAAiB,EAAG,gBAAkB,EAAE,iBAE1C,EAAE,OACJ,OAAO,OAAO,EAAG,MAAO,EAAE,MAAM,CAG9B,EAAE,QACJ,IAAK,GAAM,CAAC,EAAG,KAAM,OAAO,QAAQ,EAAE,QAAQ,CAE5C,EAAG,QAAQ,GAAK,OAAO,EAAE,CAI7B,GAAI,EAAE,KACJ,IAAK,GAAM,CAAC,EAAG,KAAM,OAAO,QAAQ,EAAE,KAAK,CACzC,EAAQ,EAAI,QAAQ,IAAK,EAAE,CAI/B,GAAI,EAAE,MACJ,IAAK,GAAM,CAAC,EAAG,KAAM,OAAO,QAAQ,EAAE,MAAM,CAC1C,EAAQ,EAAI,EAAG,EAAE,EA8BvB,SAAgB,EACd,EACA,EACA,EACc,CACd,IAAM,EAAK,SAAS,cAAc,EAAI,CAMtC,OALA,EAAiB,EAA8B,EAAM,CAGjD,OAAO,GAAS,WAAU,EAAwB,YAAc,GAE7D,EAmBT,SAAgB,EACd,EACA,EACc,CACd,OAAO,EAAc,EAAK,EAAM"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./dom.cjs`),t=require(`../elements/inline/a/a.cjs`),n=require(`../elements/inline/abbr/abbr.cjs`),r=require(`../elements/inline/b/b.cjs`),i=require(`../elements/inline/small/small.cjs`),a=require(`../elements/inline/strong/strong.cjs`),o=require(`../elements/inline/cite/cite.cjs`),s=require(`../elements/inline/code/code.cjs`),c=require(`../elements/inline/data/data.cjs`),l=require(`../elements/inline/dfn/dfn.cjs`),u=require(`../elements/inline/em/em.cjs`),d=require(`../elements/inline/i/i.cjs`),f=require(`../elements/inline/kbd/kbd.cjs`),p=require(`../elements/inline/mark/mark.cjs`),m=require(`../elements/inline/q/q.cjs`),h=require(`../elements/inline/rb/rb.cjs`),g=require(`../elements/inline/rt/rt.cjs`),_=require(`../elements/inline/rtc/rtc.cjs`),v=require(`../elements/inline/ruby/ruby.cjs`),y=require(`../elements/inline/s/s.cjs`),b=require(`../elements/inline/samp/samp.cjs`),x=require(`../elements/inline/sub/sub.cjs`),S=require(`../elements/inline/sup/sup.cjs`),C=require(`../elements/inline/time/time.cjs`),w=require(`../elements/inline/u/u.cjs`),T=require(`../elements/inline/var/var.cjs`);var E=e.i({RP_SELECTOR:()=>`rp`,RP_TAG:()=>`rp`,createRp:()=>O,enhanceRps:()=>k});function D(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function O(t,n){return e.n(`rp`,D(n),t)}function k(e=document){}var A=e.i({abbr:()=>n.t,anchor:()=>t.t,b:()=>r.t,cite:()=>o.t,code:()=>s.t,data:()=>c.t,dfn:()=>l.t,em:()=>u.t,italic:()=>d.t,kbd:()=>f.t,mark:()=>p.t,q:()=>m.t,rb:()=>h.t,rp:()=>E,rt:()=>g.t,rtc:()=>_.t,ruby:()=>v.t,s:()=>y.t,samp:()=>b.t,small:()=>i.t,strong:()=>a.t,sub:()=>x.t,sup:()=>S.t,time:()=>C.t,u:()=>w.t,var:()=>T.t});Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return A}});
2
+ //# sourceMappingURL=inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline.cjs","names":[],"sources":["../../../src/elements/inline/rp/index.ts","../../../src/elements/inline/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Rp element helpers.\n *\n * @remarks\n * The rp element (`<rp>`) provides fallback parentheses (or other markers) for\n * ruby annotations when ruby rendering is not supported.\n *\n * Best-practice guidance:\n * - Use `<rp>` only inside `<ruby>` as a fallback wrapper around `<rt>` content.\n * - Keep `<rp>` content short (commonly \"(\" and \")\").\n * - Do not use `<rp>` for general punctuation or layout. Use normal text instead.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create rp elements in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * References:\n * - MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs (e.g. `lable`).\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for rp elements.\n *\n * @category Constants\n */\nexport const RP_TAG = 'rp' as const;\n\n/**\n * A CSS selector targeting rp elements.\n *\n * @category Constants\n */\nexport const RP_SELECTOR = 'rp';\n\n/**\n * Attribute bag for rp creation/enhancement.\n *\n * @remarks\n * Rp elements accept standard HTML global attributes.\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type RpAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link RpAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The rp attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: RpAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n // Only attach `aria` if something was actually defined.\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create an rp element with optional text content and global attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param text - Optional text content for the rp element (commonly \"(\" or \")\").\n * @param attrs - Optional attributes to apply.\n * @returns The created `<rp>` element.\n *\n * @example\n * Create a ruby fallback wrapper:\n * ```ts\n * import { createRp } from \"@lnpg/pkgn-sol/elements/inline/rp\";\n *\n * const open = createRp(\"(\");\n * const close = createRp(\")\");\n * ```\n *\n * @category DOM\n */\nexport function createRp(text?: string, attrs?: RpAttrs): ElementOf<typeof RP_TAG> {\n return createElement(RP_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance rp elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * Why does it exist?\n * - It establishes a stable integration pattern for frameworks (Vue/React/etc.)\n * - It allows future progressive enhancements without changing consumer code\n *\n * What it will never do:\n * - It will not inject styles (CSS remains the source of truth)\n * - It will not introduce framework-specific behavior\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceRps(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for rp.\n void root;\n}\n","/**\n * Inline text element factories.\n *\n * Provides framework-agnostic factory functions for semantic and typographic\n * inline elements used inside paragraphs, headings, labels, and other text\n * content.\n *\n * These factories:\n * - Create semantic inline elements using pkgn-sol's hardened DOM helpers.\n * - Forward curated global attributes.\n * - Enforce structured, typed attribute bags.\n * - Encourage accessible, standards-aligned markup.\n * - Prevent unsafe attribute injection.\n *\n * Inline elements refine meaning (emphasis, citations, abbreviations), express\n * user input or code, and support annotations such as Ruby text.\n *\n * @module elements/inline\n * @since 0.1.0\n */\n\n/**\n * `<a>` element factory namespace.\n *\n * Represents a hyperlink to another location.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a\n */\nexport * as anchor from './a';\n\n/**\n * `<abbr>` element factory namespace.\n *\n * Represents an abbreviation or acronym, typically with a `title` expansion.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr\n */\nexport * as abbr from './abbr';\n\n/**\n * `<b>` element factory namespace.\n *\n * Represents stylistically offset text without conveying extra importance.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b\n */\nexport * as b from './b';\n\n/**\n * `<small>` element factory namespace.\n *\n * Represents side comments or small print.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/small\n */\nexport * as small from './small';\n\n/**\n * `<strong>` element factory namespace.\n *\n * Represents strong importance, seriousness, or urgency.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong\n */\nexport * as strong from './strong';\n\n/**\n * `<cite>` element factory namespace.\n *\n * Represents the title of a cited creative work.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite\n */\nexport * as cite from './cite';\n\n/**\n * `<code>` element factory namespace.\n *\n * Represents a fragment of computer code.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code\n */\nexport * as code from './code';\n\n/**\n * `<data>` element factory namespace.\n *\n * Associates a machine-readable value with human-readable content.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data\n */\nexport * as data from './data';\n\n/**\n * `<dfn>` element factory namespace.\n *\n * Represents the defining instance of a term.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn\n */\nexport * as dfn from './dfn';\n\n/**\n * `<em>` element factory namespace.\n *\n * Represents stress emphasis.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em\n */\nexport * as em from './em';\n\n/**\n * `<i>` element factory namespace.\n *\n * Represents text in an alternate voice or mood, or otherwise offset from normal prose.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i\n */\nexport * as italic from './i';\n\n/**\n * `<kbd>` element factory namespace.\n *\n * Represents user input, typically keyboard input.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd\n */\nexport * as kbd from './kbd';\n\n/**\n * `<mark>` element factory namespace.\n *\n * Represents text marked or highlighted for reference.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark\n */\nexport * as mark from './mark';\n\n/**\n * `<q>` element factory namespace.\n *\n * Represents a short inline quotation.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q\n */\nexport * as q from './q';\n\n/**\n * `<rb>` element factory namespace.\n *\n * Represents the base text component of a ruby annotation.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rb\n */\nexport * as rb from './rb';\n\n/**\n * `<rp>` element factory namespace.\n *\n * Represents fallback parentheses for ruby annotations.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp\n */\nexport * as rp from './rp';\n\n/**\n * `<rt>` element factory namespace.\n *\n * Represents ruby text, the pronunciation/annotation for base text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt\n */\nexport * as rt from './rt';\n\n/**\n * `<rtc>` element factory namespace.\n *\n * Represents a ruby text container for semantic annotation groups.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rtc\n */\nexport * as rtc from './rtc';\n\n/**\n * `<ruby>` element factory namespace.\n *\n * Represents ruby annotations for East Asian typography.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby\n */\nexport * as ruby from './ruby';\n\n/**\n * `<s>` element factory namespace.\n *\n * Represents content that is no longer accurate or relevant.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s\n */\nexport * as s from './s';\n\n/**\n * `<samp>` element factory namespace.\n *\n * Represents sample output from a program or computing system.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp\n */\nexport * as samp from './samp';\n\n/**\n * `<sub>` element factory namespace.\n *\n * Represents subscript text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub\n */\nexport * as sub from './sub';\n\n/**\n * `<sup>` element factory namespace.\n *\n * Represents superscript text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup\n */\nexport * as sup from './sup';\n\n/**\n * `<time>` element factory namespace.\n *\n * Represents a specific time period, optionally with a machine-readable `datetime`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time\n */\nexport * as time from './time';\n\n/**\n * `<u>` element factory namespace.\n *\n * Represents unarticulated annotation, such as misspelled text or proper names in some contexts.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/u\n */\nexport * as u from './u';\n\n/**\n * `<var>` element factory namespace.\n *\n * Represents a variable in a mathematical expression or programming context.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/var\n */\nexport * as var from './var';\n"],"mappings":"urCA8FA,SAAS,EAAc,EAA0C,CAC/D,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CASvD,OAPI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAG7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EA2BrD,SAAgB,EAAS,EAAe,EAA2C,CACjF,OAAO,EAAA,EAAA,KAAsB,EAAc,EAAM,CAAE,EAAK,CAqB1D,SAAgB,EAAW,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ throw Error(`Could not resolve "tailwindcss/plugin" imported by "@lnpg/pkgn-sol". Is it installed?`);
2
+ //# sourceMappingURL=pkgn-sol.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkgn-sol.cjs","names":[],"sources":["../../../__vite-optional-peer-dep:tailwindcss/plugin:@lnpg/pkgn-sol"],"sourcesContent":["export default {};\nthrow new Error(`Could not resolve \"tailwindcss/plugin\" imported by \"@lnpg/pkgn-sol\". Is it installed?`)"],"mappings":"AACA,MAAU,MAAM,wFAAA"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({BR_SELECTOR:()=>`br`,BR_TAG:()=>`br`,createBr:()=>a,enhanceBrs:()=>o}),n=`br`,r=`br`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t){return e.r(`br`,i(t))}function o(e=document){}exports.BR_SELECTOR=r,exports.BR_TAG=n,exports.createBr=a,exports.enhanceBrs=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=br.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br.cjs","names":[],"sources":["../../../../../src/elements/break/br/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Br element helpers.\n *\n * @remarks\n * The br element (`<br>`) represents a line break within phrasing content.\n *\n * Best-practice guidance:\n * - Use `<br>` only for line breaks within text (e.g. poems, addresses).\n * - Do not use `<br>` for layout or spacing. Use CSS instead.\n * - `<br>` is a void element and must not contain text content.\n *\n * This module provides a small, framework-agnostic helper so consumers can:\n * - create line breaks safely in vanilla JS/TS\n * - apply consistent global attributes via pkgn-sol's hardened DOM helpers\n * - rely on a stable enhancement hook for future evolution\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @module\n * @category Elements\n */\n\nimport { createVoidElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs.\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for line break elements.\n *\n * @category Constants\n */\nexport const BR_TAG = 'br' as const;\n\n/**\n * A CSS selector targeting br elements.\n *\n * @category Constants\n */\nexport const BR_SELECTOR = 'br';\n\n/**\n * Attribute bag for br creation/enhancement.\n *\n * @remarks\n * `<br>` accepts only global HTML attributes.\n * It does not accept text content and has no element-specific attributes.\n *\n * @category Attributes\n */\nexport type BrAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link BrAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The br attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: BrAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a br element with optional global attributes.\n *\n * @remarks\n * - `<br>` is a void element and does not accept text content.\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param attrs - Optional attributes to apply.\n * @returns The created `<br>` element.\n *\n * @example\n * ```ts\n * import { createBr } from \"@lnpg/pkgn-sol/elements/break/br\";\n *\n * paragraph.appendChild(createBr());\n * ```\n *\n * @category DOM\n */\nexport function createBr(attrs?: BrAttrs): ElementOf<typeof BR_TAG> {\n return createVoidElement(BR_TAG, toGlobalAttrs(attrs));\n}\n\n/**\n * Enhance br elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * It exists to establish a stable enhancement pattern across all elements.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceBrs(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for br.\n void root;\n}\n"],"mappings":"gMA0Da,EAAS,KAOT,EAAc,KA0B3B,SAAS,EAAc,EAA0C,CAC/D,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CAQvD,OANI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAE7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EAwBrD,SAAgB,EAAS,EAA2C,CAClE,OAAO,EAAA,EAAA,KAA0B,EAAc,EAAM,CAAC,CAexD,SAAgB,EAAW,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunks/dom.cjs`),t=require(`./br/br.cjs`),n=require(`./wbr/wbr.cjs`);var r=e.i({br:()=>t.t,wbr:()=>n.t});Object.defineProperty(exports,`br`,{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`wbr`,{enumerable:!0,get:function(){return n.t}});
2
+ //# sourceMappingURL=break.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"break.cjs","names":[],"sources":["../../../../src/elements/break/index.ts"],"sourcesContent":["/**\n * Line and word break element factories.\n *\n * Provides framework-agnostic factory functions for elements that control\n * line breaking and word breaking behaviour within text flow.\n *\n * These factories:\n * - Create semantic HTML break elements using pkgn-sol's hardened DOM helpers.\n * - Forward curated global attributes.\n * - Enforce structured ARIA input where applicable.\n * - Prevent unsafe attribute injection.\n *\n * @module elements/break\n * @since 0.1.0\n */\n\n/**\n * `<br>` element factory namespace.\n *\n * Represents a line break opportunity within text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br\n */\nexport * as br from './br';\n\n/**\n * `<wbr>` element factory namespace.\n *\n * Represents a word break opportunity within text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr\n */\nexport * as wbr from './wbr';\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({WBR_SELECTOR:()=>`wbr`,WBR_TAG:()=>`wbr`,createWbr:()=>a,enhanceWbrs:()=>o}),n=`wbr`,r=`wbr`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t){return e.r(`wbr`,i(t))}function o(e=document){}exports.WBR_SELECTOR=r,exports.WBR_TAG=n,exports.createWbr=a,exports.enhanceWbrs=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=wbr.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wbr.cjs","names":[],"sources":["../../../../../src/elements/break/wbr/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Wbr element helpers.\n *\n * @remarks\n * The wbr element (`<wbr>`) represents a word break opportunity.\n *\n * Best-practice guidance:\n * - Use `<wbr>` to suggest optional break points within long words or URLs.\n * - It does not force a line break; the browser decides if a break is needed.\n * - Do not use `<wbr>` for layout or spacing. Use CSS instead.\n * - `<wbr>` is a void element and must not contain text content.\n *\n * This module provides a small, framework-agnostic helper so consumers can:\n * - create word break opportunities safely in vanilla JS/TS\n * - apply consistent global attributes via pkgn-sol's hardened DOM helpers\n * - rely on a stable enhancement hook for future evolution\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @module\n * @category Elements\n */\n\nimport { createVoidElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs.\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for word break opportunity elements.\n *\n * @category Constants\n */\nexport const WBR_TAG = 'wbr' as const;\n\n/**\n * A CSS selector targeting wbr elements.\n *\n * @category Constants\n */\nexport const WBR_SELECTOR = 'wbr';\n\n/**\n * Attribute bag for wbr creation/enhancement.\n *\n * @remarks\n * `<wbr>` accepts only global HTML attributes.\n * It does not accept text content and has no element-specific attributes.\n *\n * @category Attributes\n */\nexport type WbrAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link WbrAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The wbr attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: WbrAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a wbr element with optional global attributes.\n *\n * @remarks\n * - `<wbr>` is a void element and does not accept text content.\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param attrs - Optional attributes to apply.\n * @returns The created `<wbr>` element.\n *\n * @example\n * ```ts\n * import { createWbr } from \"@lnpg/pkgn-sol/elements/break/wbr\";\n *\n * paragraph.appendChild(createWbr());\n * ```\n *\n * @category DOM\n */\nexport function createWbr(attrs?: WbrAttrs): ElementOf<typeof WBR_TAG> {\n return createVoidElement(WBR_TAG, toGlobalAttrs(attrs));\n}\n\n/**\n * Enhance wbr elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * It exists to establish a stable enhancement pattern across all elements.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceWbrs(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for wbr.\n void root;\n}\n"],"mappings":"sMA2Da,EAAU,MAOV,EAAe,MA0B5B,SAAS,EAAc,EAA2C,CAChE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CAQvD,OANI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAE7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EAwBrD,SAAgB,EAAU,EAA6C,CACrE,OAAO,EAAA,EAAA,MAA2B,EAAc,EAAM,CAAC,CAezD,SAAgB,EAAY,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunks/dom.cjs`),t=require(`./div/div.cjs`),n=require(`./span/span.cjs`);var r=e.i({div:()=>t.t,span:()=>n.t});Object.defineProperty(exports,`div`,{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,`span`,{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=container.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.cjs","names":[],"sources":["../../../../src/elements/container/index.ts"],"sourcesContent":["/**\n * Container element factories.\n *\n * Provides framework-agnostic factory functions for generic container\n * elements used to group flow or inline content.\n *\n * These factories:\n * - Create semantic HTML elements using pkgn-sol's hardened DOM helpers.\n * - Forward curated global attributes.\n * - Enforce structured ARIA input.\n * - Prevent unsafe attribute injection.\n *\n * @module elements/container\n * @since 0.1.0\n */\n\n/**\n * `<div>` element factory namespace.\n *\n * Represents a generic block-level container with no semantic meaning.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div\n */\nexport * as div from './div';\n\n/**\n * `<span>` element factory namespace.\n *\n * Represents a generic inline container with no semantic meaning.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span\n */\nexport * as span from './span';\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({DIV_SELECTOR:()=>`div`,DIV_TAG:()=>`div`,createDiv:()=>a,enhanceDivs:()=>o}),n=`div`,r=`div`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t,n){return e.n(`div`,i(n),t)}function o(e=document){}exports.DIV_SELECTOR=r,exports.DIV_TAG=n,exports.createDiv=a,exports.enhanceDivs=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=div.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"div.cjs","names":[],"sources":["../../../../../src/elements/container/div/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Div element helpers.\n *\n * @remarks\n * The div element (`<div>`) is a non-semantic, generic container.\n *\n * Best-practice guidance:\n * - Prefer semantic elements when available (e.g. `<section>`, `<nav>`, `<article>`).\n * - Use `<div>` as a last resort when no semantic element fits.\n * - Avoid obsolete attributes like `align`; use CSS instead.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create div containers in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs (e.g. `lable`).\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for div containers.\n *\n * @category Constants\n */\nexport const DIV_TAG = 'div' as const;\n\n/**\n * A CSS selector targeting div elements.\n *\n * @category Constants\n */\nexport const DIV_SELECTOR = 'div';\n\n/**\n * Attribute bag for div creation/enhancement.\n *\n * @remarks\n * Div elements accept standard HTML global attributes.\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type DivAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link DivAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The div attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: DivAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n // Only attach `aria` if something was actually defined.\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a div element with optional text content and global attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param text - Optional text content for the div.\n * @param attrs - Optional attributes to apply.\n * @returns The created `<div>` element.\n *\n * @example\n * Create and append a div:\n * ```ts\n * import { createDiv } from \"@lnpg/pkgn-sol/elements/container/div\";\n *\n * document.body.appendChild(\n * createDiv(\"Hello.\", { className: \"box\", id: \"root\" })\n * );\n * ```\n *\n * @category DOM\n */\nexport function createDiv(text?: string, attrs?: DivAttrs): ElementOf<typeof DIV_TAG> {\n return createElement(DIV_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance div elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * Why does it exist?\n * - It establishes a stable integration pattern for frameworks (Vue/React/etc.)\n * - It allows future progressive enhancements without changing consumer code\n *\n * What it will never do:\n * - It will not inject styles (CSS remains the source of truth)\n * - It will not introduce framework-specific behavior\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceDivs(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for div.\n void root;\n}\n"],"mappings":"sMA0Da,EAAU,MAOV,EAAe,MA4B5B,SAAS,EAAc,EAA2C,CAChE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CASvD,OAPI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAG7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EA4BrD,SAAgB,EAAU,EAAe,EAA6C,CACpF,OAAO,EAAA,EAAA,MAAuB,EAAc,EAAM,CAAE,EAAK,CAqB3D,SAAgB,EAAY,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({SPAN_SELECTOR:()=>r,SPAN_TAG:()=>n,createSpan:()=>a,enhanceSpans:()=>o}),n=`span`,r=`span`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.SPAN_SELECTOR=r,exports.SPAN_TAG=n,exports.createSpan=a,exports.enhanceSpans=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=span.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span.cjs","names":[],"sources":["../../../../../src/elements/container/span/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Span element helpers.\n *\n * @remarks\n * The `<span>` element is a generic inline container for phrasing content.\n * It has no inherent semantics and should be used only when no more suitable\n * semantic element exists.\n *\n * This module:\n * - Creates `<span>` elements via pkgn-sol's DOM helpers (no direct DOM calls).\n * - Applies a curated subset of global attributes safely.\n * - Exposes an enhancement hook (currently a no-op) for consistency and\n * potential future progressive enhancements.\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is a small, typed subset intended to prevent typo-driven ARIA bugs and\n * keep the API practical. Values are mapped into {@link GlobalAttrs.aria}.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for span.\n *\n * @category Constants\n */\nexport const SPAN_TAG = 'span' as const;\n\n/**\n * A CSS selector targeting span elements.\n *\n * @category Constants\n */\nexport const SPAN_SELECTOR = 'span';\n\n/**\n * Attribute bag for span creation/enhancement.\n *\n * @remarks\n * `<span>` supports HTML global attributes only.\n *\n * pkgn-sol additionally supports a typed, structured ARIA input that is mapped into\n * {@link GlobalAttrs.aria} without modifying the shared DOM helpers.\n *\n * @category Attributes\n */\nexport type SpanAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link SpanAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The span attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: SpanAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n return Object.keys(mappedAria).length > 0 ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a span element with optional text content and global attributes.\n *\n * @remarks\n * - Text is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper, which enforces:\n * - No inline event handler attributes (e.g. `onclick`)\n * - No raw `style` attribute injection (use the `style` object field)\n * - No empty attribute names\n *\n * @param text - Optional text content for the span.\n * @param attrs - Optional attributes to apply.\n * @returns The created `<span>` element.\n *\n * @category DOM\n */\nexport function createSpan(text?: string, attrs?: SpanAttrs): ElementOf<typeof SPAN_TAG> {\n return createElement(SPAN_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance span elements within a given root.\n *\n * @remarks\n * Intentionally a no-op in `0.1.0`. This exists to provide a stable, consistent\n * integration hook across element modules.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceSpans(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for span.\n void root;\n}\n"],"mappings":"kMAmDa,EAAW,OAOX,EAAgB,OA4B7B,SAAS,EAAc,EAA4C,CACjE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CAMvD,OAJI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAExD,OAAO,KAAK,EAAW,CAAC,OAAS,EAAI,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EAmB9E,SAAgB,EAAW,EAAe,EAA+C,CACvF,OAAO,EAAA,EAAc,EAAU,EAAc,EAAM,CAAE,EAAK,CAc5D,SAAgB,EAAa,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({FIGCAPTION_SELECTOR:()=>r,FIGCAPTION_TAG:()=>n,createFigcaption:()=>a,enhanceFigcaptions:()=>o}),n=`figcaption`,r=`figcaption`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.FIGCAPTION_SELECTOR=r,exports.FIGCAPTION_TAG=n,exports.createFigcaption=a,exports.enhanceFigcaptions=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=figcaption.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figcaption.cjs","names":[],"sources":["../../../../../src/elements/figure/figcaption/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Figcaption element helpers.\n *\n * @remarks\n * The figcaption element (`<figcaption>`) represents a caption or legend for\n * the rest of the contents of its parent `<figure>` element.\n *\n * Best-practice guidance (summary):\n * - Use `<figcaption>` as the caption for a `<figure>`.\n * - Place it as the first or last child of the `<figure>` where possible.\n * - Keep the visible caption text human-friendly and meaningful.\n * - Do not use `<figcaption>` purely for styling. Use CSS instead.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create `<figcaption>` elements in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs.\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for figcaption.\n *\n * @category Constants\n */\nexport const FIGCAPTION_TAG = 'figcaption' as const;\n\n/**\n * A CSS selector targeting figcaption elements.\n *\n * @category Constants\n */\nexport const FIGCAPTION_SELECTOR = 'figcaption';\n\n/**\n * Attribute bag for figcaption creation/enhancement.\n *\n * @remarks\n * `<figcaption>` supports standard HTML global attributes.\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type FigcaptionAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link FigcaptionAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The figcaption attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: FigcaptionAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a figcaption element with optional text content and attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param text - Optional text content for the figcaption element.\n * @param attrs - Optional attributes to apply.\n * @returns The created `<figcaption>` element.\n *\n * @example\n * ```ts\n * import { createFigcaption } from \"@lnpg/pkgn-sol/elements/figure/figcaption\";\n *\n * const c = createFigcaption(\"Kitchen layout, 2026\", { className: \"caption\" });\n * document.body.appendChild(c);\n * ```\n *\n * @category DOM\n */\nexport function createFigcaption(\n text?: string,\n attrs?: FigcaptionAttrs,\n): ElementOf<typeof FIGCAPTION_TAG> {\n return createElement(FIGCAPTION_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance figcaption elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceFigcaptions(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for figcaption.\n void root;\n}\n"],"mappings":"0NA4Da,EAAiB,aAOjB,EAAsB,aA4BnC,SAAS,EAAc,EAAkD,CACvE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CAQvD,OANI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAE7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EA0BrD,SAAgB,EACd,EACA,EACkC,CAClC,OAAO,EAAA,EAAc,EAAgB,EAAc,EAAM,CAAE,EAAK,CAalE,SAAgB,EAAmB,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({FIGURE_SELECTOR:()=>r,FIGURE_TAG:()=>n,createFigure:()=>a,enhanceFigures:()=>o}),n=`figure`,r=`figure`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.FIGURE_SELECTOR=r,exports.FIGURE_TAG=n,exports.createFigure=a,exports.enhanceFigures=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=figure.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure.cjs","names":[],"sources":["../../../../../src/elements/figure/figure/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Figure element helpers.\n *\n * @remarks\n * The figure element (`<figure>`) represents self-contained content, optionally\n * with a caption provided by a nested `<figcaption>`.\n *\n * Best-practice guidance:\n * - Use `<figure>` for content referenced from the main flow but which could be\n * moved elsewhere without affecting the document's meaning.\n * - If a caption is present, use `<figcaption>` as the first or last child.\n * - Avoid using `<figure>` purely as a styling hook.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create `<figure>` elements in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs (e.g. `lable`).\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for figure.\n *\n * @category Constants\n */\nexport const FIGURE_TAG = 'figure' as const;\n\n/**\n * A CSS selector targeting figure elements.\n *\n * @category Constants\n */\nexport const FIGURE_SELECTOR = 'figure';\n\n/**\n * Attribute bag for figure creation/enhancement.\n *\n * @remarks\n * `<figure>` supports standard HTML global attributes only.\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type FigureAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link FigureAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The figure attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: FigureAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n // Only attach `aria` if something was actually defined.\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a figure element with optional text content and global attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * Note: `<figure>` typically contains richer flow content (images, code blocks,\n * quotes, etc.). This helper supports optional text for parity with other pkgn-sol\n * element factories; consumers can append child nodes as needed.\n *\n * @param text - Optional text content for the figure.\n * @param attrs - Optional attributes to apply.\n * @returns The created `<figure>` element.\n *\n * @example\n * Create a figure and append custom content:\n * ```ts\n * import { createFigure } from \"@lnpg/pkgn-sol/elements/figure/figure\";\n * import { createFigcaption } from \"@lnpg/pkgn-sol/elements/figure/figcaption\";\n *\n * const fig = createFigure(undefined, { className: \"media\" });\n * fig.appendChild(document.createElement(\"img\"));\n * fig.appendChild(createFigcaption(\"Caption\"));\n * ```\n *\n * @category DOM\n */\nexport function createFigure(text?: string, attrs?: FigureAttrs): ElementOf<typeof FIGURE_TAG> {\n return createElement(FIGURE_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance figure elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceFigures(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for figure.\n void root;\n}\n"],"mappings":"0MA8Da,EAAa,SAOb,EAAkB,SA4B/B,SAAS,EAAc,EAA8C,CACnE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CASvD,OAPI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAG7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EAiCrD,SAAgB,EAAa,EAAe,EAAmD,CAC7F,OAAO,EAAA,EAAc,EAAY,EAAc,EAAM,CAAE,EAAK,CAa9D,SAAgB,EAAe,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunks/dom.cjs`),t=require(`./figcaption/figcaption.cjs`),n=require(`./figure/figure.cjs`);var r=e.i({figcaption:()=>t.t,figure:()=>n.t});Object.defineProperty(exports,`figcaption`,{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,`figure`,{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=figure.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure.cjs","names":[],"sources":["../../../../src/elements/figure/index.ts"],"sourcesContent":["/**\n * Figure and figcaption element factories.\n *\n * Provides framework-agnostic factory functions for the semantic HTML\n * `<figure>` and `<figcaption>` elements.\n *\n * These factories:\n * - Create semantic figure structures using pkgn-sol's hardened DOM helpers.\n * - Forward curated global attributes.\n * - Enforce structured, typed attribute bags.\n * - Preserve correct semantic relationships between media and captions.\n * - Prevent unsafe attribute injection.\n *\n * The `<figure>` element represents self-contained content such as images,\n * diagrams, code listings, or illustrations, optionally paired with a\n * `<figcaption>` that provides a caption or legend.\n *\n * @module elements/figure\n * @since 0.1.0\n */\n\n/**\n * `<figcaption>` element factory namespace.\n *\n * Represents a caption or legend describing the contents of a `<figure>`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption\n */\nexport * as figcaption from './figcaption';\n\n/**\n * `<figure>` element factory namespace.\n *\n * Represents self-contained content that may include media, illustrations,\n * code examples, or diagrams, optionally associated with a `<figcaption>`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure\n */\nexport * as figure from './figure';\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({BUTTON_SELECTOR:()=>r,BUTTON_TAG:()=>n,createButton:()=>a,enhanceButtons:()=>o}),n=`button`,r=`button`;function i(e){let{aria:t,type:n,name:r,value:i,disabled:a,autofocus:o,form:s,formAction:c,formEnctype:l,formMethod:u,formNoValidate:d,formTarget:f,popoverTarget:p,popoverTargetAction:m,command:h,commandFor:g,..._}=e??{},v={..._.attrs??{}},y=(e,t)=>{t!==void 0&&(Object.prototype.hasOwnProperty.call(v,e)||(v[e]=t))};y(`type`,n??`button`),y(`name`,r),y(`value`,i),y(`form`,s),y(`formaction`,c),y(`formenctype`,l),y(`formmethod`,u),y(`formtarget`,f),y(`popovertarget`,p),y(`popovertargetaction`,m),y(`command`,h),y(`commandfor`,g),a===!0&&y(`disabled`,``),o===!0&&y(`autofocus`,``),d===!0&&y(`formnovalidate`,``);let b={..._,attrs:v},x={};if(t&&(typeof t.label==`string`&&(x.label=t.label),typeof t.labelledby==`string`&&(x.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(x.hidden=t.hidden)),Object.keys(x).length>0&&(b.aria=x),Object.keys(v).length===0){let{attrs:e,...t}=b;return t}return b}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.BUTTON_SELECTOR=r,exports.BUTTON_TAG=n,exports.createButton=a,exports.enhanceButtons=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.cjs","names":[],"sources":["../../../../../src/elements/form/button/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Button element helpers.\n *\n * @remarks\n * The button element (`<button>`) is an interactive control that users can\n * activate via mouse, keyboard, touch, or assistive technology. :contentReference[oaicite:5]{index=5}\n *\n * Best-practice guidance:\n * - Prefer native `<button>` semantics over non-semantic elements with `role=\"button\"`.\n * - Provide an accessible name via visible text or ARIA labelling.\n * - Avoid placing interactive content inside a button (nested links/inputs/etc.).\n * - In forms, explicitly set a button `type` to avoid accidental submissions.\n * In HTML, the default `type` is effectively `\"submit\"` in many form contexts. :contentReference[oaicite:6]{index=6}\n *\n * pkgn-sol-specific conventions:\n * - Defaults `type` to `\"button\"` unless the caller explicitly sets `type`\n * (via the typed `type` field or via the raw `attrs` escape hatch).\n * - Applies global attributes via pkgn-sol's hardened DOM helpers (`dom.ts`),\n * which block inline event handler attributes (e.g. `onclick`) and the raw\n * `style` attribute string.\n * - Supports a small structured ARIA input to reduce typo-based ARIA bugs.\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type AttrValue, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset mapped into {@link GlobalAttrs.aria}.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference(s) to labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * Allowed `type` values for `<button>`.\n *\n * @remarks\n * HTML supports `submit`, `reset`, and `button`. :contentReference[oaicite:7]{index=7}\n *\n * @category Attributes\n */\nexport type ButtonType = 'submit' | 'reset' | 'button';\n\n/**\n * Allowed `formenctype` values for submit buttons.\n *\n * @category Attributes\n */\nexport type ButtonFormEnctype =\n | 'application/x-www-form-urlencoded'\n | 'multipart/form-data'\n | 'text/plain';\n\n/**\n * Allowed `formmethod` values for submit buttons.\n *\n * @remarks\n * `dialog` is supported for form submission to a dialog in HTML. :contentReference[oaicite:8]{index=8}\n *\n * @category Attributes\n */\nexport type ButtonFormMethod = 'get' | 'post' | 'dialog';\n\n/**\n * Allowed `popovertargetaction` values for popover trigger buttons.\n *\n * @remarks\n * Mirrors the `popovertargetaction` attribute. :contentReference[oaicite:9]{index=9}\n *\n * @category Attributes\n */\nexport type PopoverTargetAction = 'toggle' | 'show' | 'hide';\n\n/**\n * The semantic tag name for buttons.\n *\n * @category Constants\n */\nexport const BUTTON_TAG = 'button' as const;\n\n/**\n * A CSS selector targeting button elements.\n *\n * @category Constants\n */\nexport const BUTTON_SELECTOR = 'button';\n\n/**\n * Attribute bag for button creation/enhancement.\n *\n * @remarks\n * `<button>` supports global attributes plus button/form-associated attributes.\n * This type models the most commonly used attributes in a typed way, while still\n * providing {@link GlobalAttrs.attrs} as an escape hatch (validated by `dom.ts`).\n *\n * Notes:\n * - `type` defaults to `\"button\"` in pkgn-sol to avoid accidental form submission.\n * - Boolean attributes are applied by presence (empty string) when `true`.\n * - `command` and `commandfor` are part of the HTML Invoker Commands model. :contentReference[oaicite:10]{index=10}\n *\n * @category Attributes\n */\nexport type ButtonAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n\n /**\n * The button type. pkgn-sol defaults to `\"button\"` when not provided.\n */\n type?: ButtonType;\n\n /**\n * The button name (used during form submission).\n */\n name?: string;\n\n /**\n * The button value (used during form submission).\n */\n value?: string;\n\n /**\n * Disables the button when true.\n */\n disabled?: boolean;\n\n /**\n * Autofocus hint.\n */\n autofocus?: boolean;\n\n /**\n * Associates the button with a form element by ID.\n */\n form?: string;\n\n /**\n * Overrides the form `action` for submit buttons.\n */\n formAction?: string;\n\n /**\n * Overrides the form encoding type for submit buttons.\n */\n formEnctype?: ButtonFormEnctype;\n\n /**\n * Overrides the form HTTP method for submit buttons.\n */\n formMethod?: ButtonFormMethod;\n\n /**\n * When true, prevents constraint validation on submission.\n */\n formNoValidate?: boolean;\n\n /**\n * Overrides the form target for submission.\n *\n * @remarks\n * Can be a special keyword like `_blank` or a named browsing context.\n */\n formTarget?: string;\n\n /**\n * ID of the popover element this button targets.\n */\n popoverTarget?: string;\n\n /**\n * Action to perform on the targeted popover.\n */\n popoverTargetAction?: PopoverTargetAction;\n\n /**\n * Invoker Commands: the command name.\n */\n command?: string;\n\n /**\n * Invoker Commands: the element ID to invoke/control.\n */\n commandFor?: string;\n};\n\n/**\n * Normalize {@link ButtonAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @remarks\n * This follows the same pattern used by other attribute-rich modules (e.g. iframe):\n * - Start with any caller-provided raw attrs escape hatch.\n * - Apply typed attributes without overriding explicit raw attributes.\n * - Map structured ARIA into {@link GlobalAttrs.aria}.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: ButtonAttrs): GlobalAttrs {\n const {\n aria,\n type,\n name,\n value,\n disabled,\n autofocus,\n form,\n formAction,\n formEnctype,\n formMethod,\n formNoValidate,\n formTarget,\n popoverTarget,\n popoverTargetAction,\n command,\n commandFor,\n ...rest\n } = attrs ?? {};\n\n // Start with any caller-provided attrs escape hatch (still validated by dom.ts).\n const mergedAttrs: Record<string, AttrValue> = { ...(rest.attrs ?? {}) };\n\n // Helper: only set if caller didn't already set the raw attribute explicitly.\n const setIfUnset = (key: string, v: AttrValue | undefined): void => {\n if (v === undefined) return;\n if (Object.prototype.hasOwnProperty.call(mergedAttrs, key)) return;\n mergedAttrs[key] = v;\n };\n\n // pkgn-sol safety: default to type=\"button\" unless caller explicitly overrides it.\n setIfUnset('type', type ?? 'button');\n\n setIfUnset('name', name);\n setIfUnset('value', value);\n setIfUnset('form', form);\n setIfUnset('formaction', formAction);\n setIfUnset('formenctype', formEnctype);\n setIfUnset('formmethod', formMethod);\n setIfUnset('formtarget', formTarget);\n setIfUnset('popovertarget', popoverTarget);\n setIfUnset('popovertargetaction', popoverTargetAction);\n setIfUnset('command', command);\n setIfUnset('commandfor', commandFor);\n\n // Boolean attributes are represented by presence. We set empty-string when true.\n if (disabled === true) setIfUnset('disabled', '');\n if (autofocus === true) setIfUnset('autofocus', '');\n if (formNoValidate === true) setIfUnset('formnovalidate', '');\n\n const mapped: GlobalAttrs = { ...rest, attrs: mergedAttrs };\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n if (aria) {\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n }\n\n if (Object.keys(mappedAria).length > 0) {\n mapped.aria = mappedAria;\n }\n\n // If mergedAttrs ended up empty, avoid attaching it.\n if (Object.keys(mergedAttrs).length === 0) {\n const { attrs: _unused, ...withoutAttrs } = mapped;\n return withoutAttrs;\n }\n\n return mapped;\n}\n\n/**\n * Create a button element with optional text content and attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - pkgn-sol defaults `type` to `\"button\"` to reduce accidental form submissions. :contentReference[oaicite:11]{index=11}\n * - Global attributes are applied via pkgn-sol's shared DOM helper, including security\n * guards that block inline event handler attributes (e.g. `onclick`) and raw\n * `style` attribute strings.\n *\n * @param text - Optional text content for the button.\n * @param attrs - Optional attributes to apply.\n * @returns The created `<button>` element.\n *\n * @example\n * ```ts\n * import { createButton } from \"@lnpg/pkgn-sol/elements/form/button\";\n *\n * document.body.appendChild(createButton(\"Save\", { className: \"btn\" }));\n * ```\n *\n * @category DOM\n */\nexport function createButton(text?: string, attrs?: ButtonAttrs): ElementOf<typeof BUTTON_TAG> {\n return createElement(BUTTON_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance button elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceButtons(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for button.\n void root;\n}\n"],"mappings":"0MAqGa,EAAa,SAOb,EAAkB,SAiH/B,SAAS,EAAc,EAAkC,CACvD,GAAM,CACJ,OACA,OACA,OACA,QACA,WACA,YACA,OACA,aACA,cACA,aACA,iBACA,aACA,gBACA,sBACA,UACA,aACA,GAAG,GACD,GAAS,EAAE,CAGT,EAAyC,CAAE,GAAI,EAAK,OAAS,EAAE,CAAG,CAGlE,GAAc,EAAa,IAAmC,CAC9D,IAAM,IAAA,KACN,OAAO,UAAU,eAAe,KAAK,EAAa,EAAI,GAC1D,EAAY,GAAO,KAIrB,EAAW,OAAQ,GAAQ,SAAS,CAEpC,EAAW,OAAQ,EAAK,CACxB,EAAW,QAAS,EAAM,CAC1B,EAAW,OAAQ,EAAK,CACxB,EAAW,aAAc,EAAW,CACpC,EAAW,cAAe,EAAY,CACtC,EAAW,aAAc,EAAW,CACpC,EAAW,aAAc,EAAW,CACpC,EAAW,gBAAiB,EAAc,CAC1C,EAAW,sBAAuB,EAAoB,CACtD,EAAW,UAAW,EAAQ,CAC9B,EAAW,aAAc,EAAW,CAGhC,IAAa,IAAM,EAAW,WAAY,GAAG,CAC7C,IAAc,IAAM,EAAW,YAAa,GAAG,CAC/C,IAAmB,IAAM,EAAW,iBAAkB,GAAG,CAE7D,IAAM,EAAsB,CAAE,GAAG,EAAM,MAAO,EAAa,CAErD,EAA+C,EAAE,CAYvD,GAXI,IACE,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,SAG7D,OAAO,KAAK,EAAW,CAAC,OAAS,IACnC,EAAO,KAAO,GAIZ,OAAO,KAAK,EAAY,CAAC,SAAW,EAAG,CACzC,GAAM,CAAE,MAAO,EAAS,GAAG,GAAiB,EAC5C,OAAO,EAGT,OAAO,EA0BT,SAAgB,EAAa,EAAe,EAAmD,CAC7F,OAAO,EAAA,EAAc,EAAY,EAAc,EAAM,CAAE,EAAK,CAa9D,SAAgB,EAAe,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({DATALIST_SELECTOR:()=>r,DATALIST_TAG:()=>n,createDatalist:()=>a,enhanceDatalists:()=>o}),n=`datalist`,r=`datalist`;function i(e){if(!e)return;let{aria:t,...n}=e;if(!t)return n;let r={};return typeof t.label==`string`&&(r.label=t.label),typeof t.labelledby==`string`&&(r.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(r.hidden=t.hidden),Object.keys(r).length>0?{...n,aria:r}:n}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.DATALIST_SELECTOR=r,exports.DATALIST_TAG=n,exports.createDatalist=a,exports.enhanceDatalists=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=datalist.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datalist.cjs","names":[],"sources":["../../../../../src/elements/form/datalist/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Datalist element helpers.\n *\n * @remarks\n * The datalist element (`<datalist>`) contains a set of `<option>` elements that\n * represent permissible or recommended values for an associated form control\n * (most commonly an `<input>`), connected via the input's `list` attribute.\n *\n * Best-practice guidance:\n * - Pair a `<datalist>` with an `<input>` using a stable, unique `id` on the\n * datalist and a matching `list` attribute on the input.\n * - Use `<datalist>` for suggestions, not strict validation. If users must pick\n * from a fixed set, prefer `<select>`.\n * - Populate suggestions using descendant `<option>` elements, typically with\n * `value` attributes.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create `<datalist>` elements in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * Attributes:\n * - `<datalist>` supports global attributes only (no element-specific content\n * attributes).\n *\n * Security:\n * - Global attribute escape hatches are guarded by pkgn-sol's `dom.ts` helpers which\n * block inline event handler attributes (e.g. `onclick`) and raw `style`\n * attribute injection (use the `style` object field instead).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/datalist\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs (e.g. `lable`).\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for datalist.\n *\n * @category Constants\n */\nexport const DATALIST_TAG = 'datalist' as const;\n\n/**\n * A CSS selector targeting datalist elements.\n *\n * @category Constants\n */\nexport const DATALIST_SELECTOR = 'datalist';\n\n/**\n * Attribute bag for datalist creation/enhancement.\n *\n * @remarks\n * Datalist elements accept standard HTML global attributes.\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type DatalistAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n};\n\n/**\n * Normalize {@link DatalistAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The datalist attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: DatalistAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, ...rest } = attrs;\n\n if (!aria) return rest;\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n\n // Only attach `aria` if something was actually defined.\n const hasMapped = Object.keys(mappedAria).length > 0;\n\n return hasMapped ? { ...rest, aria: mappedAria } : rest;\n}\n\n/**\n * Create a datalist element with optional text content and global attributes.\n *\n * @remarks\n * While `<datalist>` is typically populated with `<option>` children, this helper\n * follows pkgn-sol's consistent \"optional text\" factory signature for non-void elements.\n *\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param text - Optional text content for the datalist (rare, but supported).\n * @param attrs - Optional attributes to apply.\n * @returns The created `<datalist>` element.\n *\n * @example\n * ```ts\n * import { createDatalist } from \"@lnpg/pkgn-sol/elements/form/datalist\";\n *\n * const dl = createDatalist(undefined, { id: \"city-list\" });\n * document.body.appendChild(dl);\n * ```\n *\n * @category DOM\n */\nexport function createDatalist(\n text?: string,\n attrs?: DatalistAttrs,\n): ElementOf<typeof DATALIST_TAG> {\n return createElement(DATALIST_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance datalist elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * Why does it exist?\n * - It establishes a stable integration pattern for frameworks (Vue/React/etc.)\n * - It allows future progressive enhancements without changing consumer code\n *\n * What it will never do:\n * - It will not inject styles (CSS remains the source of truth)\n * - It will not introduce framework-specific behavior\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceDatalists(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for datalist.\n void root;\n}\n"],"mappings":"kNA0Ea,EAAe,WAOf,EAAoB,WA4BjC,SAAS,EAAc,EAAgD,CACrE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,GAAG,GAAS,EAE1B,GAAI,CAAC,EAAM,OAAO,EAElB,IAAM,EAA+C,EAAE,CASvD,OAPI,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,QAG7C,OAAO,KAAK,EAAW,CAAC,OAAS,EAEhC,CAAE,GAAG,EAAM,KAAM,EAAY,CAAG,EA6BrD,SAAgB,EACd,EACA,EACgC,CAChC,OAAO,EAAA,EAAc,EAAc,EAAc,EAAM,CAAE,EAAK,CAqBhE,SAAgB,EAAiB,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({FIELDSET_SELECTOR:()=>r,FIELDSET_TAG:()=>n,createFieldset:()=>a,enhanceFieldsets:()=>o}),n=`fieldset`,r=`fieldset`;function i(e){if(!e)return;let{aria:t,disabled:n,form:r,name:i,...a}=e,o={...a.attrs??{}},s=(e,t)=>{t!==void 0&&(Object.prototype.hasOwnProperty.call(o,e)||(o[e]=t))};s(`form`,r),s(`name`,i),n===!0&&s(`disabled`,``);let c={};t&&(typeof t.label==`string`&&(c.label=t.label),typeof t.labelledby==`string`&&(c.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(c.hidden=t.hidden));let l=Object.keys(c).length>0,u=Object.keys(o).length>0,d={...a};return u&&(d.attrs=o),l&&(d.aria=c),d}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.FIELDSET_SELECTOR=r,exports.FIELDSET_TAG=n,exports.createFieldset=a,exports.enhanceFieldsets=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=fieldset.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldset.cjs","names":[],"sources":["../../../../../src/elements/form/fieldset/index.ts"],"sourcesContent":["/**\n * pkgn-sol Design Foundation: Fieldset element helpers.\n *\n * @remarks\n * The fieldset element (`<fieldset>`) groups related form controls, typically\n * with a `<legend>` that provides an accessible label for the group.\n *\n * Best-practice guidance:\n * - Use `<fieldset>` to group related controls (e.g. radio button sets).\n * - Prefer a meaningful `<legend>` as the first child to label the group.\n * - Do not use `<fieldset>` purely for layout; use CSS for visual grouping.\n *\n * Attribute behavior notes:\n * - When `disabled` is set on a `<fieldset>`, user agents disable descendant\n * form controls, except those that are descendants of the fieldset's first\n * `<legend>` child (if any). This is native platform behavior.\n *\n * This module provides small, framework-agnostic helpers so consumers can:\n * - create fieldsets in vanilla JS/TS without templates\n * - apply consistent global attributes safely\n * - use a stable \"enhancement\" hook if pkgn-sol ever needs runtime behavior\n *\n * This module has no side effects and does not mutate the DOM unless you call\n * its functions.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset\n * @see https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * @module\n * @category Elements\n */\n\nimport { createElement, type AttrValue, type ElementOf, type GlobalAttrs } from '../../../ts/dom';\n\n/**\n * Structured ARIA input supported by pkgn-sol element factories.\n *\n * @remarks\n * This is intentionally a small, typed subset that covers common cases and\n * prevents typo-based ARIA bugs.\n *\n * It is mapped into {@link GlobalAttrs.aria} for application by `dom.ts`.\n *\n * @category Attributes\n */\nexport type StructuredAria = {\n /**\n * Accessible label, mapped to `aria-label`.\n */\n label?: string;\n\n /**\n * ID reference to the labelling element(s), mapped to `aria-labelledby`.\n */\n labelledby?: string;\n\n /**\n * Decorative/hidden hint, mapped to `aria-hidden`.\n */\n hidden?: boolean;\n};\n\n/**\n * The semantic tag name for fieldset groups.\n *\n * @category Constants\n */\nexport const FIELDSET_TAG = 'fieldset' as const;\n\n/**\n * A CSS selector targeting fieldset elements.\n *\n * @category Constants\n */\nexport const FIELDSET_SELECTOR = 'fieldset';\n\n/**\n * Attribute bag for fieldset creation/enhancement.\n *\n * @remarks\n * Fieldset accepts standard HTML global attributes plus fieldset-specific\n * attributes (`disabled`, `form`, `name`).\n *\n * pkgn-sol also supports a structured ARIA input for common ARIA fields, which is\n * mapped into {@link GlobalAttrs.aria} without changing pkgn-sol's core DOM helpers.\n *\n * @category Attributes\n */\nexport type FieldsetAttrs = Omit<GlobalAttrs, 'aria'> & {\n /**\n * Structured ARIA fields mapped into `aria-*` attributes.\n */\n aria?: StructuredAria;\n\n /**\n * Disables descendant form controls (native platform behavior).\n *\n * @remarks\n * When set, controls inside the first `<legend>` (if present) are typically\n * excluded from disabling per spec/user agent behavior.\n */\n disabled?: boolean;\n\n /**\n * Associates the fieldset with a form element by ID, even if not a descendant.\n */\n form?: string;\n\n /**\n * Name of the fieldset (submitted/associated in form processing contexts).\n */\n name?: string;\n};\n\n/**\n * Normalize {@link FieldsetAttrs} into {@link GlobalAttrs} for `dom.ts`.\n *\n * @param attrs - The fieldset attributes.\n * @returns A {@link GlobalAttrs} object, or `undefined` if no attrs were provided.\n *\n * @category Internal\n */\nfunction toGlobalAttrs(attrs?: FieldsetAttrs): GlobalAttrs | undefined {\n if (!attrs) return undefined;\n\n const { aria, disabled, form, name, ...rest } = attrs;\n\n // Start with any caller-provided attrs escape hatch (still validated by dom.ts).\n const mergedAttrs: Record<string, AttrValue> = { ...(rest.attrs ?? {}) };\n\n const setIfUnset = (key: string, value: AttrValue | undefined): void => {\n if (value === undefined) return;\n if (Object.prototype.hasOwnProperty.call(mergedAttrs, key)) return;\n mergedAttrs[key] = value;\n };\n\n setIfUnset('form', form);\n setIfUnset('name', name);\n\n // Boolean attributes are represented by presence. We set empty-string when true.\n if (disabled === true) setIfUnset('disabled', '');\n\n const mappedAria: NonNullable<GlobalAttrs['aria']> = {};\n if (aria) {\n if (typeof aria.label === 'string') mappedAria.label = aria.label;\n if (typeof aria.labelledby === 'string') mappedAria.labelledby = aria.labelledby;\n if (typeof aria.hidden === 'boolean') mappedAria.hidden = aria.hidden;\n }\n\n const hasMappedAria = Object.keys(mappedAria).length > 0;\n const hasMergedAttrs = Object.keys(mergedAttrs).length > 0;\n\n const next: GlobalAttrs = { ...rest };\n if (hasMergedAttrs) next.attrs = mergedAttrs;\n if (hasMappedAria) next.aria = mappedAria;\n\n return next;\n}\n\n/**\n * Create a fieldset element with optional text content and attributes.\n *\n * @remarks\n * - Text content is assigned via `textContent` (never `innerHTML`).\n * - Global attributes are applied via pkgn-sol's shared DOM helper,\n * including security guards that block inline event handler attributes\n * (e.g. `onclick`) and raw `style` attribute strings.\n *\n * @param text - Optional text content for the fieldset (rare; most fieldsets contain child nodes).\n * @param attrs - Optional attributes to apply.\n * @returns The created `<fieldset>` element.\n *\n * @example\n * ```ts\n * import { createFieldset } from \"@lnpg/pkgn-sol/elements/form/fieldset\";\n *\n * const fs = createFieldset(undefined, { disabled: false });\n * // fs.appendChild(createLegend(\"Shipping address\"));\n * ```\n *\n * @category DOM\n */\nexport function createFieldset(\n text?: string,\n attrs?: FieldsetAttrs,\n): ElementOf<typeof FIELDSET_TAG> {\n return createElement(FIELDSET_TAG, toGlobalAttrs(attrs), text);\n}\n\n/**\n * Enhance fieldset elements within a given root.\n *\n * @remarks\n * This is intentionally a no-op in `0.1.0`.\n *\n * Why does it exist?\n * - It establishes a stable integration pattern for frameworks (Vue/React/etc.)\n * - It allows future progressive enhancements without changing consumer code\n *\n * What it will never do:\n * - It will not inject styles (CSS remains the source of truth)\n * - It will not introduce framework-specific behavior\n *\n * @param root - The node to search within. Defaults to `document`.\n *\n * @category Enhancement\n */\nexport function enhanceFieldsets(root: ParentNode = document): void {\n // v0.1.0: no runtime behavior for fieldset.\n void root;\n}\n"],"mappings":"kNAmEa,EAAe,WAOf,EAAoB,WAgDjC,SAAS,EAAc,EAAgD,CACrE,GAAI,CAAC,EAAO,OAEZ,GAAM,CAAE,OAAM,WAAU,OAAM,OAAM,GAAG,GAAS,EAG1C,EAAyC,CAAE,GAAI,EAAK,OAAS,EAAE,CAAG,CAElE,GAAc,EAAa,IAAuC,CAClE,IAAU,IAAA,KACV,OAAO,UAAU,eAAe,KAAK,EAAa,EAAI,GAC1D,EAAY,GAAO,KAGrB,EAAW,OAAQ,EAAK,CACxB,EAAW,OAAQ,EAAK,CAGpB,IAAa,IAAM,EAAW,WAAY,GAAG,CAEjD,IAAM,EAA+C,EAAE,CACnD,IACE,OAAO,EAAK,OAAU,WAAU,EAAW,MAAQ,EAAK,OACxD,OAAO,EAAK,YAAe,WAAU,EAAW,WAAa,EAAK,YAClE,OAAO,EAAK,QAAW,YAAW,EAAW,OAAS,EAAK,SAGjE,IAAM,EAAgB,OAAO,KAAK,EAAW,CAAC,OAAS,EACjD,EAAiB,OAAO,KAAK,EAAY,CAAC,OAAS,EAEnD,EAAoB,CAAE,GAAG,EAAM,CAIrC,OAHI,IAAgB,EAAK,MAAQ,GAC7B,IAAe,EAAK,KAAO,GAExB,EA0BT,SAAgB,EACd,EACA,EACgC,CAChC,OAAO,EAAA,EAAc,EAAc,EAAc,EAAM,CAAE,EAAK,CAqBhE,SAAgB,EAAiB,EAAmB,SAAgB"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../chunks/dom.cjs`);var t=e.i({FORM_SELECTOR:()=>r,FORM_TAG:()=>n,createForm:()=>a,enhanceForms:()=>o}),n=`form`,r=`form`;function i(e){if(!e)return;let{aria:t,action:n,method:r,enctype:i,acceptCharset:a,autocomplete:o,name:s,noValidate:c,target:l,rel:u,...d}=e,f={...d.attrs??{}},p=(e,t)=>{t!==void 0&&(Object.prototype.hasOwnProperty.call(f,e)||(f[e]=t))};p(`action`,n),p(`method`,r),p(`enctype`,i),p(`accept-charset`,a),p(`autocomplete`,o),p(`name`,s),p(`target`,l),p(`rel`,u),c===!0&&p(`novalidate`,``);let m={};t&&(typeof t.label==`string`&&(m.label=t.label),typeof t.labelledby==`string`&&(m.labelledby=t.labelledby),typeof t.hidden==`boolean`&&(m.hidden=t.hidden));let h=Object.keys(m).length>0,g=Object.keys(f).length>0,_={...d};return g&&(_.attrs=f),h&&(_.aria=m),_}function a(t,r){return e.n(n,i(r),t)}function o(e=document){}exports.FORM_SELECTOR=r,exports.FORM_TAG=n,exports.createForm=a,exports.enhanceForms=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
2
+ //# sourceMappingURL=form.cjs.map