tiny-essentials 1.23.2 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/.github/workflows/node.js.yml +2 -2
  2. package/README.md +6 -2
  3. package/changelog/1/23/2.md +2 -0
  4. package/changelog/1/24/0.md +10 -0
  5. package/changelog/1/24/1.md +12 -0
  6. package/dist/v1/TinyBasicsEs.min.js +1 -1
  7. package/dist/v1/TinyColorValidator.min.js +1 -0
  8. package/dist/v1/TinyDragger.min.js +1 -1
  9. package/dist/v1/TinyEssentials.min.js +1 -1
  10. package/dist/v1/TinyHtml.min.js +1 -1
  11. package/dist/v1/TinySmartScroller.min.js +1 -1
  12. package/dist/v1/TinyUploadClicker.min.js +1 -1
  13. package/dist/v1/basics/array.cjs +28 -0
  14. package/dist/v1/basics/array.d.mts +16 -0
  15. package/dist/v1/basics/array.mjs +27 -0
  16. package/dist/v1/basics/index.cjs +2 -4
  17. package/dist/v1/basics/index.d.mts +2 -2
  18. package/dist/v1/basics/index.mjs +2 -4
  19. package/dist/v1/basics/text.cjs +33 -0
  20. package/dist/v1/basics/text.d.mts +15 -0
  21. package/dist/v1/basics/text.mjs +28 -0
  22. package/dist/v1/build/TinyColorValidator.cjs +7 -0
  23. package/dist/v1/build/TinyColorValidator.d.mts +3 -0
  24. package/dist/v1/build/TinyColorValidator.mjs +2 -0
  25. package/dist/v1/build/TinyLevelUp.cjs +2 -2
  26. package/dist/v1/build/TinyLevelUp.d.mts +1 -1
  27. package/dist/v1/build/TinyLevelUp.mjs +1 -1
  28. package/dist/v1/index.cjs +6 -6
  29. package/dist/v1/index.d.mts +5 -4
  30. package/dist/v1/index.mjs +8 -6
  31. package/dist/v1/libs/TinyColorValidator.cjs +907 -0
  32. package/dist/v1/libs/TinyColorValidator.d.mts +452 -0
  33. package/dist/v1/libs/TinyColorValidator.mjs +853 -0
  34. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.cjs +220 -0
  35. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.d.mts +98 -0
  36. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.mjs +207 -0
  37. package/dist/v1/libs/TinyHtml/TinyHtmlButton.cjs +317 -0
  38. package/dist/v1/libs/TinyHtml/TinyHtmlButton.d.mts +150 -0
  39. package/dist/v1/libs/TinyHtml/TinyHtmlButton.mjs +290 -0
  40. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.cjs +48 -0
  41. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.d.mts +36 -0
  42. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.mjs +44 -0
  43. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.cjs +102 -0
  44. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.d.mts +65 -0
  45. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.mjs +91 -0
  46. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.cjs +80 -0
  47. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.d.mts +57 -0
  48. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.mjs +75 -0
  49. package/dist/v1/libs/TinyHtml/TinyHtmlForm.cjs +244 -0
  50. package/dist/v1/libs/TinyHtml/TinyHtmlForm.d.mts +129 -0
  51. package/dist/v1/libs/TinyHtml/TinyHtmlForm.mjs +228 -0
  52. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.cjs +38 -0
  53. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.d.mts +24 -0
  54. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.mjs +33 -0
  55. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.cjs +222 -0
  56. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.d.mts +108 -0
  57. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.mjs +212 -0
  58. package/dist/v1/libs/TinyHtml/TinyHtmlImage.cjs +286 -0
  59. package/dist/v1/libs/TinyHtml/TinyHtmlImage.d.mts +125 -0
  60. package/dist/v1/libs/TinyHtml/TinyHtmlImage.mjs +250 -0
  61. package/dist/v1/libs/TinyHtml/TinyHtmlInput.cjs +154 -0
  62. package/dist/v1/libs/TinyHtml/TinyHtmlInput.d.mts +76 -0
  63. package/dist/v1/libs/TinyHtml/TinyHtmlInput.mjs +134 -0
  64. package/dist/v1/libs/TinyHtml/TinyHtmlLink.cjs +282 -0
  65. package/dist/v1/libs/TinyHtml/TinyHtmlLink.d.mts +128 -0
  66. package/dist/v1/libs/TinyHtml/TinyHtmlLink.mjs +264 -0
  67. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.cjs +358 -0
  68. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.d.mts +168 -0
  69. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.mjs +308 -0
  70. package/dist/v1/libs/TinyHtml/TinyHtmlScript.cjs +226 -0
  71. package/dist/v1/libs/TinyHtml/TinyHtmlScript.d.mts +99 -0
  72. package/dist/v1/libs/TinyHtml/TinyHtmlScript.mjs +209 -0
  73. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.cjs +267 -0
  74. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.d.mts +146 -0
  75. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.mjs +251 -0
  76. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.cjs +110 -0
  77. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.d.mts +57 -0
  78. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.mjs +108 -0
  79. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.cjs +209 -0
  80. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.d.mts +101 -0
  81. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.mjs +189 -0
  82. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.cjs +331 -0
  83. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.d.mts +139 -0
  84. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.mjs +299 -0
  85. package/dist/v1/libs/TinyHtml/index.cjs +202 -0
  86. package/dist/v1/libs/TinyHtml/index.d.mts +82 -0
  87. package/dist/v1/libs/TinyHtml/index.mjs +185 -0
  88. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.cjs +121 -0
  89. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.d.mts +67 -0
  90. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.mjs +99 -0
  91. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.cjs +109 -0
  92. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.d.mts +63 -0
  93. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.mjs +92 -0
  94. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.cjs +101 -0
  95. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.d.mts +54 -0
  96. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.mjs +82 -0
  97. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.cjs +181 -0
  98. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.d.mts +97 -0
  99. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.mjs +160 -0
  100. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.cjs +90 -0
  101. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.d.mts +54 -0
  102. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.mjs +69 -0
  103. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.cjs +59 -0
  104. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.d.mts +43 -0
  105. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.mjs +45 -0
  106. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.cjs +141 -0
  107. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.d.mts +74 -0
  108. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.mjs +114 -0
  109. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.cjs +103 -0
  110. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.d.mts +61 -0
  111. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.mjs +85 -0
  112. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.cjs +115 -0
  113. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.d.mts +56 -0
  114. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.mjs +94 -0
  115. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.cjs +172 -0
  116. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.d.mts +74 -0
  117. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.mjs +140 -0
  118. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.cjs +145 -0
  119. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.d.mts +77 -0
  120. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.mjs +121 -0
  121. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.cjs +146 -0
  122. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.d.mts +74 -0
  123. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.mjs +120 -0
  124. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.cjs +151 -0
  125. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.d.mts +75 -0
  126. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.mjs +128 -0
  127. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.cjs +150 -0
  128. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.d.mts +74 -0
  129. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.mjs +122 -0
  130. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.cjs +134 -0
  131. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.d.mts +74 -0
  132. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.mjs +110 -0
  133. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.cjs +133 -0
  134. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.d.mts +75 -0
  135. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.mjs +111 -0
  136. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.cjs +179 -0
  137. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.d.mts +87 -0
  138. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.mjs +151 -0
  139. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.cjs +126 -0
  140. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.d.mts +70 -0
  141. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.mjs +104 -0
  142. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.cjs +177 -0
  143. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.d.mts +91 -0
  144. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.mjs +153 -0
  145. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.cjs +170 -0
  146. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.d.mts +91 -0
  147. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.mjs +143 -0
  148. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.cjs +173 -0
  149. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.d.mts +89 -0
  150. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.mjs +150 -0
  151. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.cjs +166 -0
  152. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.d.mts +81 -0
  153. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.mjs +142 -0
  154. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.cjs +135 -0
  155. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.d.mts +47 -0
  156. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.mjs +122 -0
  157. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.cjs +100 -0
  158. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.d.mts +62 -0
  159. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.mjs +94 -0
  160. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.cjs +159 -0
  161. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.d.mts +77 -0
  162. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.mjs +136 -0
  163. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.cjs +193 -0
  164. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.d.mts +91 -0
  165. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.mjs +167 -0
  166. package/dist/v1/libs/TinyHtml.cjs +260 -3
  167. package/dist/v1/libs/TinyHtml.d.mts +196 -5
  168. package/dist/v1/libs/TinyHtml.mjs +238 -3
  169. package/dist/{legacy/libs/userLevel.d.mts → v1/libs/TinyLevelUp.d.mts} +1 -1
  170. package/dist/v1/libs/TinyUploadClicker.cjs +1 -0
  171. package/docs/v1/README.md +1 -0
  172. package/docs/v1/libs/TinyColorValidator.md +532 -0
  173. package/docs/v1/libs/TinyHtml.md +4 -4
  174. package/package.json +15 -24
  175. package/dist/_virtual/_commonjsHelpers.cjs +0 -7
  176. package/dist/_virtual/common.cjs +0 -5
  177. package/dist/_virtual/index.cjs +0 -9
  178. package/dist/_virtual/index2.cjs +0 -5
  179. package/dist/_virtual/trace.cjs +0 -5
  180. package/dist/legacy/crypto/decrypt.cjs +0 -59
  181. package/dist/legacy/crypto/decrypt.d.mts +0 -20
  182. package/dist/legacy/crypto/decrypt.mjs +0 -49
  183. package/dist/legacy/crypto/default.cjs +0 -23
  184. package/dist/legacy/crypto/default.d.mts +0 -36
  185. package/dist/legacy/crypto/default.mjs +0 -19
  186. package/dist/legacy/crypto/encrypt.cjs +0 -55
  187. package/dist/legacy/crypto/encrypt.d.mts +0 -21
  188. package/dist/legacy/crypto/encrypt.mjs +0 -47
  189. package/dist/legacy/crypto/index.cjs +0 -11
  190. package/dist/legacy/crypto/index.d.mts +0 -5
  191. package/dist/legacy/crypto/index.mjs +0 -6
  192. package/dist/legacy/firebase/cookieSession.cjs +0 -123
  193. package/dist/legacy/firebase/cookieSession.d.mts +0 -57
  194. package/dist/legacy/firebase/cookieSession.mjs +0 -115
  195. package/dist/legacy/firebase/database/index.cjs +0 -14
  196. package/dist/legacy/firebase/database/index.d.mts +0 -8
  197. package/dist/legacy/firebase/database/index.mjs +0 -8
  198. package/dist/legacy/firebase/database/presence.cjs +0 -137
  199. package/dist/legacy/firebase/database/presence.d.mts +0 -13
  200. package/dist/legacy/firebase/database/presence.mjs +0 -115
  201. package/dist/legacy/firebase/database/saveAsync.cjs +0 -149
  202. package/dist/legacy/firebase/database/saveAsync.d.mts +0 -55
  203. package/dist/legacy/firebase/database/saveAsync.mjs +0 -148
  204. package/dist/legacy/firebase/databaseEscape.cjs +0 -45
  205. package/dist/legacy/firebase/databaseEscape.d.mts +0 -12
  206. package/dist/legacy/firebase/databaseEscape.mjs +0 -38
  207. package/dist/legacy/firebase/databaseLogger.cjs +0 -261
  208. package/dist/legacy/firebase/databaseLogger.d.mts +0 -8
  209. package/dist/legacy/firebase/databaseLogger.mjs +0 -235
  210. package/dist/legacy/firebase/discord/api/addGuildMember.cjs +0 -74
  211. package/dist/legacy/firebase/discord/api/addGuildMember.d.mts +0 -39
  212. package/dist/legacy/firebase/discord/api/addGuildMember.mjs +0 -65
  213. package/dist/legacy/firebase/discord/api/getGuildWidget.cjs +0 -50
  214. package/dist/legacy/firebase/discord/api/getGuildWidget.d.mts +0 -18
  215. package/dist/legacy/firebase/discord/api/getGuildWidget.mjs +0 -44
  216. package/dist/legacy/firebase/discord/api/getToken.cjs +0 -70
  217. package/dist/legacy/firebase/discord/api/getToken.d.mts +0 -36
  218. package/dist/legacy/firebase/discord/api/getToken.mjs +0 -64
  219. package/dist/legacy/firebase/discord/api/getUser.cjs +0 -61
  220. package/dist/legacy/firebase/discord/api/getUser.d.mts +0 -28
  221. package/dist/legacy/firebase/discord/api/getUser.mjs +0 -55
  222. package/dist/legacy/firebase/discord/api/getUserConnections.cjs +0 -60
  223. package/dist/legacy/firebase/discord/api/getUserConnections.d.mts +0 -27
  224. package/dist/legacy/firebase/discord/api/getUserConnections.mjs +0 -54
  225. package/dist/legacy/firebase/discord/api/getUserGuilds.cjs +0 -59
  226. package/dist/legacy/firebase/discord/api/getUserGuilds.d.mts +0 -26
  227. package/dist/legacy/firebase/discord/api/getUserGuilds.mjs +0 -53
  228. package/dist/legacy/firebase/discord/api/index.cjs +0 -27
  229. package/dist/legacy/firebase/discord/api/index.d.mts +0 -20
  230. package/dist/legacy/firebase/discord/api/index.mjs +0 -21
  231. package/dist/legacy/firebase/discord/api/refreshToken.cjs +0 -80
  232. package/dist/legacy/firebase/discord/api/refreshToken.d.mts +0 -46
  233. package/dist/legacy/firebase/discord/api/refreshToken.mjs +0 -74
  234. package/dist/legacy/firebase/discord/api/revokeToken.cjs +0 -64
  235. package/dist/legacy/firebase/discord/api/revokeToken.d.mts +0 -30
  236. package/dist/legacy/firebase/discord/api/revokeToken.mjs +0 -59
  237. package/dist/legacy/firebase/discord/config.cjs +0 -23
  238. package/dist/legacy/firebase/discord/config.d.mts +0 -28
  239. package/dist/legacy/firebase/discord/config.mjs +0 -18
  240. package/dist/legacy/firebase/discord/firebase_redirect/index.cjs +0 -14
  241. package/dist/legacy/firebase/discord/firebase_redirect/index.d.mts +0 -8
  242. package/dist/legacy/firebase/discord/firebase_redirect/index.mjs +0 -8
  243. package/dist/legacy/firebase/discord/firebase_redirect/login.cjs +0 -112
  244. package/dist/legacy/firebase/discord/firebase_redirect/login.d.mts +0 -5
  245. package/dist/legacy/firebase/discord/firebase_redirect/login.mjs +0 -108
  246. package/dist/legacy/firebase/discord/firebase_redirect/logout.cjs +0 -102
  247. package/dist/legacy/firebase/discord/firebase_redirect/logout.d.mts +0 -5
  248. package/dist/legacy/firebase/discord/firebase_redirect/logout.mjs +0 -98
  249. package/dist/legacy/firebase/discord/get/authURLGenerator.cjs +0 -79
  250. package/dist/legacy/firebase/discord/get/authURLGenerator.d.mts +0 -24
  251. package/dist/legacy/firebase/discord/get/authURLGenerator.mjs +0 -68
  252. package/dist/legacy/firebase/discord/get/cookie-session.cjs +0 -35
  253. package/dist/legacy/firebase/discord/get/cookie-session.d.mts +0 -21
  254. package/dist/legacy/firebase/discord/get/cookie-session.mjs +0 -29
  255. package/dist/legacy/firebase/discord/get/credentials.cjs +0 -26
  256. package/dist/legacy/firebase/discord/get/credentials.d.mts +0 -20
  257. package/dist/legacy/firebase/discord/get/credentials.mjs +0 -21
  258. package/dist/legacy/firebase/discord/get/errorValidator.cjs +0 -63
  259. package/dist/legacy/firebase/discord/get/errorValidator.d.mts +0 -29
  260. package/dist/legacy/firebase/discord/get/errorValidator.mjs +0 -56
  261. package/dist/legacy/firebase/discord/get/index.cjs +0 -20
  262. package/dist/legacy/firebase/discord/get/index.d.mts +0 -14
  263. package/dist/legacy/firebase/discord/get/index.mjs +0 -14
  264. package/dist/legacy/firebase/discord/get/randomAvatar.cjs +0 -40
  265. package/dist/legacy/firebase/discord/get/randomAvatar.d.mts +0 -23
  266. package/dist/legacy/firebase/discord/get/randomAvatar.mjs +0 -31
  267. package/dist/legacy/firebase/discord/http/index.cjs +0 -18
  268. package/dist/legacy/firebase/discord/http/index.d.mts +0 -12
  269. package/dist/legacy/firebase/discord/http/index.mjs +0 -12
  270. package/dist/legacy/firebase/discord/http/login.cjs +0 -130
  271. package/dist/legacy/firebase/discord/http/login.d.mts +0 -22
  272. package/dist/legacy/firebase/discord/http/login.mjs +0 -124
  273. package/dist/legacy/firebase/discord/http/logout.cjs +0 -158
  274. package/dist/legacy/firebase/discord/http/logout.d.mts +0 -23
  275. package/dist/legacy/firebase/discord/http/logout.mjs +0 -144
  276. package/dist/legacy/firebase/discord/http/redirect.cjs +0 -191
  277. package/dist/legacy/firebase/discord/http/redirect.d.mts +0 -25
  278. package/dist/legacy/firebase/discord/http/redirect.mjs +0 -179
  279. package/dist/legacy/firebase/discord/http/refreshToken.cjs +0 -136
  280. package/dist/legacy/firebase/discord/http/refreshToken.d.mts +0 -25
  281. package/dist/legacy/firebase/discord/http/refreshToken.mjs +0 -122
  282. package/dist/legacy/firebase/discord/index.cjs +0 -22
  283. package/dist/legacy/firebase/discord/index.d.mts +0 -16
  284. package/dist/legacy/firebase/discord/index.mjs +0 -16
  285. package/dist/legacy/firebase/discord/template/cookie-session.cjs +0 -1433
  286. package/dist/legacy/firebase/discord/template/cookie-session.d.mts +0 -23
  287. package/dist/legacy/firebase/discord/template/cookie-session.mjs +0 -1160
  288. package/dist/legacy/firebase/domainRedirect.cjs +0 -37
  289. package/dist/legacy/firebase/domainRedirect.d.mts +0 -13
  290. package/dist/legacy/firebase/domainRedirect.mjs +0 -28
  291. package/dist/legacy/firebase/escape.cjs +0 -77
  292. package/dist/legacy/firebase/escape.d.mts +0 -18
  293. package/dist/legacy/firebase/escape.mjs +0 -59
  294. package/dist/legacy/firebase/getDBAsync.cjs +0 -35
  295. package/dist/legacy/firebase/getDBAsync.d.mts +0 -11
  296. package/dist/legacy/firebase/getDBAsync.mjs +0 -27
  297. package/dist/legacy/firebase/getDBData.cjs +0 -24
  298. package/dist/legacy/firebase/getDBData.d.mts +0 -2
  299. package/dist/legacy/firebase/getDBData.mjs +0 -18
  300. package/dist/legacy/firebase/getDBValue.cjs +0 -19
  301. package/dist/legacy/firebase/getDBValue.d.mts +0 -10
  302. package/dist/legacy/firebase/getDBValue.mjs +0 -15
  303. package/dist/legacy/firebase/index.cjs +0 -264
  304. package/dist/legacy/firebase/index.d.mts +0 -52
  305. package/dist/legacy/firebase/index.mjs +0 -235
  306. package/dist/legacy/firebase/isEmulator.cjs +0 -16
  307. package/dist/legacy/firebase/isEmulator.d.mts +0 -9
  308. package/dist/legacy/firebase/isEmulator.mjs +0 -11
  309. package/dist/legacy/firebase/logger.cjs +0 -140
  310. package/dist/legacy/firebase/logger.d.mts +0 -8
  311. package/dist/legacy/firebase/logger.mjs +0 -126
  312. package/dist/legacy/firebase/mySQL.cjs +0 -30
  313. package/dist/legacy/firebase/mySQL.d.mts +0 -11
  314. package/dist/legacy/firebase/mySQL.mjs +0 -23
  315. package/dist/legacy/firebase/mysqlConnector/create.cjs +0 -121
  316. package/dist/legacy/firebase/mysqlConnector/create.d.mts +0 -37
  317. package/dist/legacy/firebase/mysqlConnector/create.mjs +0 -110
  318. package/dist/legacy/firebase/mysqlConnector/index.cjs +0 -26
  319. package/dist/legacy/firebase/mysqlConnector/index.d.mts +0 -12
  320. package/dist/legacy/firebase/mysqlConnector/index.mjs +0 -17
  321. package/dist/legacy/firebase/mysqlConnector/nextPrev.cjs +0 -77
  322. package/dist/legacy/firebase/mysqlConnector/nextPrev.d.mts +0 -32
  323. package/dist/legacy/firebase/mysqlConnector/nextPrev.mjs +0 -64
  324. package/dist/legacy/firebase/mysqlConnector/pagination.cjs +0 -93
  325. package/dist/legacy/firebase/mysqlConnector/pagination.d.mts +0 -34
  326. package/dist/legacy/firebase/mysqlConnector/pagination.mjs +0 -88
  327. package/dist/legacy/firebase/mysqlConnector/sameUser.cjs +0 -31
  328. package/dist/legacy/firebase/mysqlConnector/sameUser.d.mts +0 -13
  329. package/dist/legacy/firebase/mysqlConnector/sameUser.mjs +0 -24
  330. package/dist/legacy/firebase/transactionDBAsync.cjs +0 -35
  331. package/dist/legacy/firebase/transactionDBAsync.d.mts +0 -12
  332. package/dist/legacy/firebase/transactionDBAsync.mjs +0 -28
  333. package/dist/legacy/get/countObj.cjs +0 -7
  334. package/dist/legacy/get/countObj.d.mts +0 -3
  335. package/dist/legacy/get/countObj.mjs +0 -2
  336. package/dist/legacy/get/decimalColor.cjs +0 -63
  337. package/dist/legacy/get/decimalColor.d.mts +0 -14
  338. package/dist/legacy/get/decimalColor.mjs +0 -56
  339. package/dist/legacy/get/objType.cjs +0 -7
  340. package/dist/legacy/get/objType.d.mts +0 -3
  341. package/dist/legacy/get/objType.mjs +0 -2
  342. package/dist/legacy/get/pagination.cjs +0 -109
  343. package/dist/legacy/get/pagination.d.mts +0 -44
  344. package/dist/legacy/get/pagination.mjs +0 -100
  345. package/dist/legacy/get/queryUrlByName.cjs +0 -32
  346. package/dist/legacy/get/queryUrlByName.d.mts +0 -22
  347. package/dist/legacy/get/queryUrlByName.mjs +0 -29
  348. package/dist/legacy/get/queryUrlJSON.cjs +0 -57
  349. package/dist/legacy/get/queryUrlJSON.d.mts +0 -25
  350. package/dist/legacy/get/queryUrlJSON.mjs +0 -59
  351. package/dist/legacy/get/super_string_filter.cjs +0 -109
  352. package/dist/legacy/get/super_string_filter.d.mts +0 -27
  353. package/dist/legacy/get/super_string_filter.mjs +0 -95
  354. package/dist/legacy/get/versionCheck.cjs +0 -50
  355. package/dist/legacy/get/versionCheck.d.mts +0 -29
  356. package/dist/legacy/get/versionCheck.mjs +0 -40
  357. package/dist/legacy/http/HTTP-1.0.cjs +0 -153
  358. package/dist/legacy/http/HTTP-1.0.d.mts +0 -9
  359. package/dist/legacy/http/HTTP-1.0.mjs +0 -138
  360. package/dist/legacy/http/auth.cjs +0 -71
  361. package/dist/legacy/http/auth.d.mts +0 -43
  362. package/dist/legacy/http/auth.mjs +0 -64
  363. package/dist/legacy/http/check_domain.cjs +0 -103
  364. package/dist/legacy/http/check_domain.d.mts +0 -13
  365. package/dist/legacy/http/check_domain.mjs +0 -98
  366. package/dist/legacy/http/csrfTokenAnalyze.cjs +0 -50
  367. package/dist/legacy/http/csrfTokenAnalyze.d.mts +0 -23
  368. package/dist/legacy/http/csrfTokenAnalyze.mjs +0 -45
  369. package/dist/legacy/http/domainValidator.cjs +0 -106
  370. package/dist/legacy/http/domainValidator.d.mts +0 -41
  371. package/dist/legacy/http/domainValidator.mjs +0 -89
  372. package/dist/legacy/http/errorsCallback.cjs +0 -64
  373. package/dist/legacy/http/errorsCallback.d.mts +0 -41
  374. package/dist/legacy/http/errorsCallback.mjs +0 -58
  375. package/dist/legacy/http/fetch/json.cjs +0 -50
  376. package/dist/legacy/http/fetch/json.d.mts +0 -24
  377. package/dist/legacy/http/fetch/json.mjs +0 -43
  378. package/dist/legacy/http/fetch/text.cjs +0 -49
  379. package/dist/legacy/http/fetch/text.d.mts +0 -23
  380. package/dist/legacy/http/fetch/text.mjs +0 -42
  381. package/dist/legacy/http/fileCache.cjs +0 -80
  382. package/dist/legacy/http/fileCache.d.mts +0 -37
  383. package/dist/legacy/http/fileCache.mjs +0 -71
  384. package/dist/legacy/http/getDomainURL.cjs +0 -60
  385. package/dist/legacy/http/getDomainURL.d.mts +0 -20
  386. package/dist/legacy/http/getDomainURL.mjs +0 -55
  387. package/dist/legacy/http/userIP.cjs +0 -65
  388. package/dist/legacy/http/userIP.d.mts +0 -27
  389. package/dist/legacy/http/userIP.mjs +0 -53
  390. package/dist/legacy/index.cjs +0 -125
  391. package/dist/legacy/index.d.mts +0 -89
  392. package/dist/legacy/index.mjs +0 -93
  393. package/dist/legacy/libs/arraySortPositions.cjs +0 -30
  394. package/dist/legacy/libs/arraySortPositions.d.mts +0 -17
  395. package/dist/legacy/libs/arraySortPositions.mjs +0 -27
  396. package/dist/legacy/libs/capitalize.cjs +0 -22
  397. package/dist/legacy/libs/capitalize.d.mts +0 -15
  398. package/dist/legacy/libs/capitalize.mjs +0 -18
  399. package/dist/legacy/libs/convertBytes.cjs +0 -66
  400. package/dist/legacy/libs/convertBytes.d.mts +0 -18
  401. package/dist/legacy/libs/convertBytes.mjs +0 -57
  402. package/dist/legacy/libs/custom_module_loader.cjs +0 -91
  403. package/dist/legacy/libs/custom_module_loader.d.mts +0 -6
  404. package/dist/legacy/libs/custom_module_loader.mjs +0 -87
  405. package/dist/legacy/libs/dice.cjs +0 -37
  406. package/dist/legacy/libs/dice.d.mts +0 -6
  407. package/dist/legacy/libs/dice.mjs +0 -33
  408. package/dist/legacy/libs/markdown.cjs +0 -97
  409. package/dist/legacy/libs/markdown.d.mts +0 -12
  410. package/dist/legacy/libs/markdown.mjs +0 -90
  411. package/dist/legacy/libs/percentage.cjs +0 -23
  412. package/dist/legacy/libs/percentage.d.mts +0 -5
  413. package/dist/legacy/libs/percentage.mjs +0 -20
  414. package/dist/legacy/libs/regex/getLetter.cjs +0 -24
  415. package/dist/legacy/libs/regex/getLetter.d.mts +0 -15
  416. package/dist/legacy/libs/regex/getLetter.mjs +0 -21
  417. package/dist/legacy/libs/replaceAsync.cjs +0 -35
  418. package/dist/legacy/libs/replaceAsync.d.mts +0 -16
  419. package/dist/legacy/libs/replaceAsync.mjs +0 -28
  420. package/dist/legacy/libs/rule3.cjs +0 -59
  421. package/dist/legacy/libs/rule3.d.mts +0 -6
  422. package/dist/legacy/libs/rule3.mjs +0 -55
  423. package/dist/legacy/momentjs/getAge.cjs +0 -29
  424. package/dist/legacy/momentjs/getAge.d.mts +0 -11
  425. package/dist/legacy/momentjs/getAge.mjs +0 -23
  426. package/dist/legacy/momentjs/index.cjs +0 -9
  427. package/dist/legacy/momentjs/index.d.mts +0 -4
  428. package/dist/legacy/momentjs/index.mjs +0 -3
  429. package/dist/legacy/momentjs/timeDuration.cjs +0 -31
  430. package/dist/legacy/momentjs/timeDuration.d.mts +0 -12
  431. package/dist/legacy/momentjs/timeDuration.mjs +0 -25
  432. package/dist/legacy/socket.io/antiFlood/index.cjs +0 -9
  433. package/dist/legacy/socket.io/antiFlood/index.d.mts +0 -4
  434. package/dist/legacy/socket.io/antiFlood/index.mjs +0 -3
  435. package/dist/legacy/socket.io/antiFlood/install.cjs +0 -34
  436. package/dist/legacy/socket.io/antiFlood/install.d.mts +0 -16
  437. package/dist/legacy/socket.io/antiFlood/install.mjs +0 -29
  438. package/dist/legacy/socket.io/antiFlood/verify.cjs +0 -95
  439. package/dist/legacy/socket.io/antiFlood/verify.d.mts +0 -20
  440. package/dist/legacy/socket.io/antiFlood/verify.mjs +0 -79
  441. package/dist/legacy/socket.io/cookie-session.cjs +0 -27
  442. package/dist/legacy/socket.io/cookie-session.d.mts +0 -11
  443. package/dist/legacy/socket.io/cookie-session.mjs +0 -22
  444. package/dist/legacy/socket.io/discord.cjs +0 -62
  445. package/dist/legacy/socket.io/discord.d.mts +0 -12
  446. package/dist/legacy/socket.io/discord.mjs +0 -53
  447. package/dist/legacy/socket.io/index.cjs +0 -13
  448. package/dist/legacy/socket.io/index.d.mts +0 -10
  449. package/dist/legacy/socket.io/index.mjs +0 -9
  450. package/dist/node_modules/firebase-functions/lib/common/trace.cjs +0 -81
  451. package/dist/node_modules/firebase-functions/lib/logger/common.cjs +0 -57
  452. package/dist/node_modules/firebase-functions/lib/logger/index.cjs +0 -159
  453. /package/dist/{legacy/libs/userLevel.cjs → v1/libs/TinyLevelUp.cjs} +0 -0
  454. /package/dist/{legacy/libs/userLevel.mjs → v1/libs/TinyLevelUp.mjs} +0 -0
@@ -0,0 +1,317 @@
1
+ 'use strict';
2
+
3
+ var TinyHtml = require('../TinyHtml.cjs');
4
+ var TinyHtmlTemplate = require('./TinyHtmlTemplate.cjs');
5
+
6
+ /**
7
+ * TinyHtmlButton is a helper class for <button> elements with full attribute support and validation.
8
+ * It extends TinyHtmlTemplate for direct DOM manipulation.
9
+ *
10
+ * Supported attributes:
11
+ * - autofocus
12
+ * - command, commandfor
13
+ * - disabled
14
+ * - form, formaction, formenctype, formmethod, formnovalidate, formtarget
15
+ * - name
16
+ * - popovertarget, popovertargetaction
17
+ * - type (button|submit|reset)
18
+ * - value
19
+ *
20
+ * @extends TinyHtmlTemplate<HTMLButtonElement>
21
+ */
22
+ class TinyHtmlButton extends TinyHtmlTemplate {
23
+ /**
24
+ * Creates a new TinyHtmlButton instance.
25
+ *
26
+ * @param {Object} config - Configuration object for the button.
27
+ * @param {string|Element|TinyHtml<any>} config.label - The text/HTML/element to place inside the button.
28
+ * If a non-string Element/TinyHtml is provided, `allowHtml` must be true.
29
+ * @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes to apply.
30
+ * @param {boolean} [config.allowHtml=false] - Whether to allow HTML or DOM nodes as label.
31
+ * @param {'button'|'submit'|'reset'} [config.type='button'] - Button type. Allowed values: "button", "submit", "reset".
32
+ * @param {boolean} [config.autofocus=false] - Whether the button should autofocus on load.
33
+ * @param {'show-modal'|'close'|'request-close'|'show-popover'|'hide-popover'|'toggle-popover'} [config.command] - Command action (built-ins: "show-modal","close","request-close","show-popover","hide-popover","toggle-popover")
34
+ * or a custom command which MUST start with `--` (two hyphens).
35
+ * @param {string} [config.commandfor] - ID of the element controlled by the command. Must be a non-empty string.
36
+ * @param {boolean} [config.disabled=false] - Whether the button is disabled.
37
+ * @param {string} [config.form] - ID of the associated <form>. Must be a non-empty string if provided.
38
+ * @param {string} [config.formaction] - URL that overrides the form action when this button is used to submit.
39
+ * @param {'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain'} [config.formenctype]
40
+ * - Encoding type used when the button submits the form.
41
+ * @param {'get'|'post'|'dialog'} [config.formmethod] - HTTP method used for this button submission.
42
+ * @param {boolean} [config.formnovalidate=false] - If true, disables validation when this button submits.
43
+ * @param {'_self'|'_blank'|'_parent'|'_top'|'_unfencedTop'} [config.formtarget] - Target browsing context for this button's submission (keywords or name).
44
+ * @param {string} [config.name] - Button name (sent with value when submitting).
45
+ * @param {string} [config.popovertarget] - ID of the popover to control (non-empty string).
46
+ * @param {'show'|'hide'|'toggle'} [config.popovertargetaction] - Action for popovertarget.
47
+ * @param {string} [config.value] - Value submitted with the form when this button is used.
48
+ * @param {string} [config.mainClass=''] - Main CSS class to append to the element.
49
+ *
50
+ * @throws {TypeError} If `label` is not a string, Element, or TinyHtml instance.
51
+ * @throws {Error} If an Element/TinyHtml `label` is passed but `allowHtml` is false.
52
+ * @throws {TypeError} If `type` is not one of "button", "submit", "reset".
53
+ * @throws {TypeError} If `allowHtml` is not a boolean.
54
+ * @throws {TypeError} If `autofocus`, `disabled` or `formnovalidate` are not booleans.
55
+ * @throws {TypeError} If `command` is not a valid builtin command nor a custom `--*` token.
56
+ * @throws {TypeError} If `commandfor`, `form`, `formaction`, `name`, `popovertarget`, or `value` are not strings.
57
+ * @throws {TypeError} If `formenctype` is not one of the allowed encodings.
58
+ * @throws {TypeError} If `formmethod` is not one of 'get','post','dialog'.
59
+ * @throws {TypeError} If `formtarget` is not a valid keyword or browsing context name.
60
+ */
61
+ constructor({
62
+ label,
63
+ tags = [],
64
+ allowHtml = false,
65
+ type = 'button',
66
+ autofocus = false,
67
+ command,
68
+ commandfor,
69
+ disabled = false,
70
+ form,
71
+ formaction,
72
+ formenctype,
73
+ formmethod,
74
+ formnovalidate = false,
75
+ formtarget,
76
+ name,
77
+ popovertarget,
78
+ popovertargetaction,
79
+ value,
80
+ mainClass = '',
81
+ }) {
82
+ super(document.createElement('button'), tags, mainClass);
83
+
84
+ if (label === undefined || label === null)
85
+ throw new TypeError('TinyHtmlButton: "label" is required.');
86
+ this.setLabel(label, allowHtml);
87
+
88
+ this.type = type;
89
+ this.autofocus = autofocus;
90
+ this.disabled = disabled;
91
+ this.formnovalidate = formnovalidate;
92
+
93
+ if (command !== undefined) this.command = command;
94
+ if (commandfor !== undefined) this.commandfor = commandfor;
95
+ if (form !== undefined) this.form = form;
96
+ if (formaction !== undefined) this.formaction = formaction;
97
+ if (formenctype !== undefined) this.formenctype = formenctype;
98
+ if (formmethod !== undefined) this.formmethod = formmethod;
99
+ if (formtarget !== undefined) this.formtarget = formtarget;
100
+ if (name !== undefined) this.name = name;
101
+ if (popovertarget !== undefined) this.popovertarget = popovertarget;
102
+ if (popovertargetaction !== undefined) this.popovertargetaction = popovertargetaction;
103
+ if (value !== undefined) this.value = value;
104
+ }
105
+
106
+ /**
107
+ * Updates the button label with text, HTML, or an element.
108
+ *
109
+ * @param {string|Element|TinyHtml<any>} label - The new label.
110
+ * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements.
111
+ * @returns {this}
112
+ * @throws {TypeError} If the label is invalid.
113
+ * @throws {Error} If DOM/HTML is passed but allowHtml=false.
114
+ */
115
+ setLabel(label, allowHtml = false) {
116
+ if (typeof label === 'string') {
117
+ if (!allowHtml) this.setText(label);
118
+ else this.setHtml(label);
119
+ } else if (label instanceof Element || label instanceof TinyHtml) {
120
+ if (!allowHtml)
121
+ throw new Error('setLabel: Passing an Element/TinyHtml requires allowHtml=true.');
122
+ this.empty().append(label);
123
+ } else {
124
+ throw new TypeError("setLabel: 'label' must be a string, Element, or TinyHtml instance.");
125
+ }
126
+ return this;
127
+ }
128
+
129
+ // --- Getters & Setters ---
130
+
131
+ /** @returns {string|null} */
132
+ get type() {
133
+ return this.attrString('type');
134
+ }
135
+ /** @param {'button'|'submit'|'reset'} val */
136
+ set type(val) {
137
+ const allowed = ['button', 'submit', 'reset'];
138
+ if (typeof val !== 'string' || !allowed.includes(val))
139
+ throw new TypeError(`TinyHtmlButton.type must be one of: ${allowed.join(', ')}`);
140
+ this.setAttr('type', val);
141
+ }
142
+
143
+ /** @returns {boolean} */
144
+ get disabled() {
145
+ return this.hasProp('disabled');
146
+ }
147
+ /** @param {boolean} state */
148
+ set disabled(state) {
149
+ if (typeof state !== 'boolean') throw new TypeError('TinyHtmlButton.disabled must be boolean.');
150
+ if (state) this.addProp('disabled');
151
+ else this.removeProp('disabled');
152
+ }
153
+
154
+ /** @returns {boolean} */
155
+ get autofocus() {
156
+ return this.hasProp('autofocus');
157
+ }
158
+ /** @param {boolean} state */
159
+ set autofocus(state) {
160
+ if (typeof state !== 'boolean')
161
+ throw new TypeError('TinyHtmlButton.autofocus must be boolean.');
162
+ if (state) this.addProp('autofocus');
163
+ else this.removeProp('autofocus');
164
+ }
165
+
166
+ /** @returns {boolean} */
167
+ get formnovalidate() {
168
+ return this.hasProp('formnovalidate');
169
+ }
170
+ /** @param {boolean} state */
171
+ set formnovalidate(state) {
172
+ if (typeof state !== 'boolean')
173
+ throw new TypeError('TinyHtmlButton.formnovalidate must be boolean.');
174
+ if (state) this.addProp('formnovalidate');
175
+ else this.removeProp('formnovalidate');
176
+ }
177
+
178
+ /** @returns {string|null} */
179
+ get command() {
180
+ return this.attrString('command');
181
+ }
182
+ /** @param {'show-modal'|'close'|'request-close'|'show-popover'|'hide-popover'|'toggle-popover'} cmd */
183
+ set command(cmd) {
184
+ const builtins = [
185
+ 'show-modal',
186
+ 'close',
187
+ 'request-close',
188
+ 'show-popover',
189
+ 'hide-popover',
190
+ 'toggle-popover',
191
+ ];
192
+ if (typeof cmd !== 'string' || (!builtins.includes(cmd) && !cmd.startsWith('--')))
193
+ throw new TypeError(
194
+ 'TinyHtmlButton.command must be a built-in or custom string starting with "--".',
195
+ );
196
+ this.setAttr('command', cmd);
197
+ }
198
+
199
+ /** @returns {string|null} */
200
+ get commandfor() {
201
+ return this.attrString('commandfor');
202
+ }
203
+ /** @param {string} val */
204
+ set commandfor(val) {
205
+ if (typeof val !== 'string' || !val.trim())
206
+ throw new TypeError('TinyHtmlButton.commandfor must be a non-empty string.');
207
+ this.setAttr('commandfor', val);
208
+ }
209
+
210
+ /** @returns {string|null} */
211
+ get form() {
212
+ return this.attrString('form');
213
+ }
214
+ /** @param {string} val */
215
+ set form(val) {
216
+ if (typeof val !== 'string' || !val.trim())
217
+ throw new TypeError('TinyHtmlButton.form must be a non-empty string.');
218
+ this.setAttr('form', val);
219
+ }
220
+
221
+ /** @returns {string|null} */
222
+ get formaction() {
223
+ return this.attrString('formaction');
224
+ }
225
+ /** @param {string} val */
226
+ set formaction(val) {
227
+ if (typeof val !== 'string' || !val.trim())
228
+ throw new TypeError('TinyHtmlButton.formaction must be a non-empty string.');
229
+ this.setAttr('formaction', val);
230
+ }
231
+
232
+ /** @returns {string|null} */
233
+ get formenctype() {
234
+ return this.attrString('formenctype');
235
+ }
236
+ /** @param {'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain'} val */
237
+ set formenctype(val) {
238
+ const valid = ['application/x-www-form-urlencoded', 'multipart/form-data', 'text/plain'];
239
+ if (!valid.includes(val))
240
+ throw new TypeError(`TinyHtmlButton.formenctype must be one of: ${valid.join(', ')}`);
241
+ this.setAttr('formenctype', val);
242
+ }
243
+
244
+ /** @returns {string|null} */
245
+ get formmethod() {
246
+ return this.attrString('formmethod');
247
+ }
248
+ /** @param {'get'|'post'|'dialog'} val */
249
+ set formmethod(val) {
250
+ const valid = ['get', 'post', 'dialog'];
251
+ if (typeof val !== 'string' || !valid.includes(val.toLowerCase()))
252
+ throw new TypeError(`TinyHtmlButton.formmethod must be one of: ${valid.join(', ')}`);
253
+ this.setAttr('formmethod', val.toLowerCase());
254
+ }
255
+
256
+ /** @returns {string|null} */
257
+ get formtarget() {
258
+ return this.attrString('formtarget');
259
+ }
260
+ /** @param {'_self'|'_blank'|'_parent'|'_top'|'_unfencedTop'} val */
261
+ set formtarget(val) {
262
+ const validTargets = ['_self', '_blank', '_parent', '_top', '_unfencedTop'];
263
+ const validName = /^[a-zA-Z_][\w-]*$/;
264
+ if (typeof val !== 'string' || (!validTargets.includes(val) && !validName.test(val)))
265
+ throw new TypeError(
266
+ `TinyHtmlButton.formtarget must be a keyword (${validTargets.join(', ')}) or valid name.`,
267
+ );
268
+ this.setAttr('formtarget', val);
269
+ }
270
+
271
+ /** @returns {string|null} */
272
+ get name() {
273
+ return this.attr('name');
274
+ }
275
+ /** @param {string} val */
276
+ set name(val) {
277
+ if (typeof val !== 'string' || !val.trim())
278
+ throw new TypeError('TinyHtmlButton.name must be a non-empty string.');
279
+ this.setAttr('name', val);
280
+ }
281
+
282
+ /** @returns {string|null} */
283
+ get popovertarget() {
284
+ return this.attr('popovertarget');
285
+ }
286
+ /** @param {string} val */
287
+ set popovertarget(val) {
288
+ if (typeof val !== 'string' || !val.trim())
289
+ throw new TypeError('TinyHtmlButton.popovertarget must be a non-empty string.');
290
+ this.setAttr('popovertarget', val);
291
+ }
292
+
293
+ /** @returns {string|null} */
294
+ get popovertargetaction() {
295
+ return this.attrString('popovertargetaction');
296
+ }
297
+ /** @param {'show'|'hide'|'toggle'} val */
298
+ set popovertargetaction(val) {
299
+ const allowed = ['show', 'hide', 'toggle'];
300
+ if (typeof val !== 'string' || !allowed.includes(val))
301
+ throw new TypeError(
302
+ `TinyHtmlButton.popovertargetaction must be one of: ${allowed.join(', ')}`,
303
+ );
304
+ this.setAttr('popovertargetaction', val);
305
+ }
306
+
307
+ /** @returns {string|null} */
308
+ get value() {
309
+ return this.attr('value');
310
+ }
311
+ set value(val) {
312
+ if (typeof val !== 'string') throw new TypeError('TinyHtmlButton.value must be a string.');
313
+ this.setAttr('value', val);
314
+ }
315
+ }
316
+
317
+ module.exports = TinyHtmlButton;
@@ -0,0 +1,150 @@
1
+ export default TinyHtmlButton;
2
+ /**
3
+ * TinyHtmlButton is a helper class for <button> elements with full attribute support and validation.
4
+ * It extends TinyHtmlTemplate for direct DOM manipulation.
5
+ *
6
+ * Supported attributes:
7
+ * - autofocus
8
+ * - command, commandfor
9
+ * - disabled
10
+ * - form, formaction, formenctype, formmethod, formnovalidate, formtarget
11
+ * - name
12
+ * - popovertarget, popovertargetaction
13
+ * - type (button|submit|reset)
14
+ * - value
15
+ *
16
+ * @extends TinyHtmlTemplate<HTMLButtonElement>
17
+ */
18
+ declare class TinyHtmlButton extends TinyHtmlTemplate<HTMLButtonElement> {
19
+ /**
20
+ * Creates a new TinyHtmlButton instance.
21
+ *
22
+ * @param {Object} config - Configuration object for the button.
23
+ * @param {string|Element|TinyHtml<any>} config.label - The text/HTML/element to place inside the button.
24
+ * If a non-string Element/TinyHtml is provided, `allowHtml` must be true.
25
+ * @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes to apply.
26
+ * @param {boolean} [config.allowHtml=false] - Whether to allow HTML or DOM nodes as label.
27
+ * @param {'button'|'submit'|'reset'} [config.type='button'] - Button type. Allowed values: "button", "submit", "reset".
28
+ * @param {boolean} [config.autofocus=false] - Whether the button should autofocus on load.
29
+ * @param {'show-modal'|'close'|'request-close'|'show-popover'|'hide-popover'|'toggle-popover'} [config.command] - Command action (built-ins: "show-modal","close","request-close","show-popover","hide-popover","toggle-popover")
30
+ * or a custom command which MUST start with `--` (two hyphens).
31
+ * @param {string} [config.commandfor] - ID of the element controlled by the command. Must be a non-empty string.
32
+ * @param {boolean} [config.disabled=false] - Whether the button is disabled.
33
+ * @param {string} [config.form] - ID of the associated <form>. Must be a non-empty string if provided.
34
+ * @param {string} [config.formaction] - URL that overrides the form action when this button is used to submit.
35
+ * @param {'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain'} [config.formenctype]
36
+ * - Encoding type used when the button submits the form.
37
+ * @param {'get'|'post'|'dialog'} [config.formmethod] - HTTP method used for this button submission.
38
+ * @param {boolean} [config.formnovalidate=false] - If true, disables validation when this button submits.
39
+ * @param {'_self'|'_blank'|'_parent'|'_top'|'_unfencedTop'} [config.formtarget] - Target browsing context for this button's submission (keywords or name).
40
+ * @param {string} [config.name] - Button name (sent with value when submitting).
41
+ * @param {string} [config.popovertarget] - ID of the popover to control (non-empty string).
42
+ * @param {'show'|'hide'|'toggle'} [config.popovertargetaction] - Action for popovertarget.
43
+ * @param {string} [config.value] - Value submitted with the form when this button is used.
44
+ * @param {string} [config.mainClass=''] - Main CSS class to append to the element.
45
+ *
46
+ * @throws {TypeError} If `label` is not a string, Element, or TinyHtml instance.
47
+ * @throws {Error} If an Element/TinyHtml `label` is passed but `allowHtml` is false.
48
+ * @throws {TypeError} If `type` is not one of "button", "submit", "reset".
49
+ * @throws {TypeError} If `allowHtml` is not a boolean.
50
+ * @throws {TypeError} If `autofocus`, `disabled` or `formnovalidate` are not booleans.
51
+ * @throws {TypeError} If `command` is not a valid builtin command nor a custom `--*` token.
52
+ * @throws {TypeError} If `commandfor`, `form`, `formaction`, `name`, `popovertarget`, or `value` are not strings.
53
+ * @throws {TypeError} If `formenctype` is not one of the allowed encodings.
54
+ * @throws {TypeError} If `formmethod` is not one of 'get','post','dialog'.
55
+ * @throws {TypeError} If `formtarget` is not a valid keyword or browsing context name.
56
+ */
57
+ constructor({ label, tags, allowHtml, type, autofocus, command, commandfor, disabled, form, formaction, formenctype, formmethod, formnovalidate, formtarget, name, popovertarget, popovertargetaction, value, mainClass, }: {
58
+ label: string | Element | TinyHtml<any>;
59
+ tags?: string | string[] | Set<string> | undefined;
60
+ allowHtml?: boolean | undefined;
61
+ type?: "button" | "reset" | "submit" | undefined;
62
+ autofocus?: boolean | undefined;
63
+ command?: "close" | "show-modal" | "request-close" | "show-popover" | "hide-popover" | "toggle-popover" | undefined;
64
+ commandfor?: string | undefined;
65
+ disabled?: boolean | undefined;
66
+ form?: string | undefined;
67
+ formaction?: string | undefined;
68
+ formenctype?: "text/plain" | "application/x-www-form-urlencoded" | "multipart/form-data" | undefined;
69
+ formmethod?: "dialog" | "get" | "post" | undefined;
70
+ formnovalidate?: boolean | undefined;
71
+ formtarget?: "_blank" | "_self" | "_parent" | "_top" | "_unfencedTop" | undefined;
72
+ name?: string | undefined;
73
+ popovertarget?: string | undefined;
74
+ popovertargetaction?: "hide" | "show" | "toggle" | undefined;
75
+ value?: string | undefined;
76
+ mainClass?: string | undefined;
77
+ });
78
+ /** @param {'button'|'submit'|'reset'} val */
79
+ set type(val: "button" | "submit" | "reset");
80
+ /** @returns {string|null} */
81
+ get type(): string | null;
82
+ /** @param {boolean} state */
83
+ set autofocus(state: boolean);
84
+ /** @returns {boolean} */
85
+ get autofocus(): boolean;
86
+ /** @param {boolean} state */
87
+ set disabled(state: boolean);
88
+ /** @returns {boolean} */
89
+ get disabled(): boolean;
90
+ /** @param {boolean} state */
91
+ set formnovalidate(state: boolean);
92
+ /** @returns {boolean} */
93
+ get formnovalidate(): boolean;
94
+ /** @param {'show-modal'|'close'|'request-close'|'show-popover'|'hide-popover'|'toggle-popover'} cmd */
95
+ set command(cmd: "show-modal" | "close" | "request-close" | "show-popover" | "hide-popover" | "toggle-popover");
96
+ /** @returns {string|null} */
97
+ get command(): string | null;
98
+ /** @param {string} val */
99
+ set commandfor(val: string);
100
+ /** @returns {string|null} */
101
+ get commandfor(): string | null;
102
+ /** @param {string} val */
103
+ set form(val: string);
104
+ /** @returns {string|null} */
105
+ get form(): string | null;
106
+ /** @param {string} val */
107
+ set formaction(val: string);
108
+ /** @returns {string|null} */
109
+ get formaction(): string | null;
110
+ /** @param {'application/x-www-form-urlencoded'|'multipart/form-data'|'text/plain'} val */
111
+ set formenctype(val: "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain");
112
+ /** @returns {string|null} */
113
+ get formenctype(): string | null;
114
+ /** @param {'get'|'post'|'dialog'} val */
115
+ set formmethod(val: "get" | "post" | "dialog");
116
+ /** @returns {string|null} */
117
+ get formmethod(): string | null;
118
+ /** @param {'_self'|'_blank'|'_parent'|'_top'|'_unfencedTop'} val */
119
+ set formtarget(val: "_self" | "_blank" | "_parent" | "_top" | "_unfencedTop");
120
+ /** @returns {string|null} */
121
+ get formtarget(): string | null;
122
+ /** @param {string} val */
123
+ set name(val: string);
124
+ /** @returns {string|null} */
125
+ get name(): string | null;
126
+ /** @param {string} val */
127
+ set popovertarget(val: string);
128
+ /** @returns {string|null} */
129
+ get popovertarget(): string | null;
130
+ /** @param {'show'|'hide'|'toggle'} val */
131
+ set popovertargetaction(val: "show" | "hide" | "toggle");
132
+ /** @returns {string|null} */
133
+ get popovertargetaction(): string | null;
134
+ set value(val: string | null);
135
+ /** @returns {string|null} */
136
+ get value(): string | null;
137
+ /**
138
+ * Updates the button label with text, HTML, or an element.
139
+ *
140
+ * @param {string|Element|TinyHtml<any>} label - The new label.
141
+ * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements.
142
+ * @returns {this}
143
+ * @throws {TypeError} If the label is invalid.
144
+ * @throws {Error} If DOM/HTML is passed but allowHtml=false.
145
+ */
146
+ setLabel(label: string | Element | TinyHtml<any>, allowHtml?: boolean): this;
147
+ }
148
+ import TinyHtmlTemplate from './TinyHtmlTemplate.mjs';
149
+ import TinyHtml from '../TinyHtml.mjs';
150
+ //# sourceMappingURL=TinyHtmlButton.d.mts.map