tiny-essentials 1.24.0 → 1.24.2

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 (445) hide show
  1. package/.github/workflows/node.js.yml +2 -2
  2. package/README.md +6 -2
  3. package/changelog/1/24/1.md +14 -0
  4. package/changelog/1/24/2.md +21 -0
  5. package/dist/v1/TinyBasicsEs.min.js +1 -1
  6. package/dist/v1/TinyDragger.min.js +1 -1
  7. package/dist/v1/TinyEssentials.min.js +1 -1
  8. package/dist/v1/TinyHtml.min.js +1 -1
  9. package/dist/v1/TinySmartScroller.min.js +1 -1
  10. package/dist/v1/TinyUploadClicker.min.js +1 -1
  11. package/dist/v1/basics/array.cjs +28 -0
  12. package/dist/v1/basics/array.d.mts +16 -0
  13. package/dist/v1/basics/array.mjs +27 -0
  14. package/dist/v1/basics/index.cjs +2 -4
  15. package/dist/v1/basics/index.d.mts +2 -2
  16. package/dist/v1/basics/index.mjs +2 -4
  17. package/dist/v1/basics/text.cjs +33 -0
  18. package/dist/v1/basics/text.d.mts +15 -0
  19. package/dist/v1/basics/text.mjs +28 -0
  20. package/dist/v1/build/TinyLevelUp.cjs +2 -2
  21. package/dist/v1/build/TinyLevelUp.d.mts +1 -1
  22. package/dist/v1/build/TinyLevelUp.mjs +1 -1
  23. package/dist/v1/index.cjs +4 -6
  24. package/dist/v1/index.d.mts +3 -3
  25. package/dist/v1/index.mjs +7 -6
  26. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.cjs +220 -0
  27. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.d.mts +98 -0
  28. package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.mjs +207 -0
  29. package/dist/v1/libs/TinyHtml/TinyHtmlButton.cjs +317 -0
  30. package/dist/v1/libs/TinyHtml/TinyHtmlButton.d.mts +150 -0
  31. package/dist/v1/libs/TinyHtml/TinyHtmlButton.mjs +290 -0
  32. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.cjs +48 -0
  33. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.d.mts +36 -0
  34. package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.mjs +44 -0
  35. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.cjs +102 -0
  36. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.d.mts +65 -0
  37. package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.mjs +91 -0
  38. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.cjs +80 -0
  39. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.d.mts +57 -0
  40. package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.mjs +75 -0
  41. package/dist/v1/libs/TinyHtml/TinyHtmlForm.cjs +244 -0
  42. package/dist/v1/libs/TinyHtml/TinyHtmlForm.d.mts +129 -0
  43. package/dist/v1/libs/TinyHtml/TinyHtmlForm.mjs +228 -0
  44. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.cjs +38 -0
  45. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.d.mts +24 -0
  46. package/dist/v1/libs/TinyHtml/TinyHtmlIcon.mjs +33 -0
  47. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.cjs +222 -0
  48. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.d.mts +108 -0
  49. package/dist/v1/libs/TinyHtml/TinyHtmlIframe.mjs +212 -0
  50. package/dist/v1/libs/TinyHtml/TinyHtmlImage.cjs +286 -0
  51. package/dist/v1/libs/TinyHtml/TinyHtmlImage.d.mts +125 -0
  52. package/dist/v1/libs/TinyHtml/TinyHtmlImage.mjs +250 -0
  53. package/dist/v1/libs/TinyHtml/TinyHtmlInput.cjs +154 -0
  54. package/dist/v1/libs/TinyHtml/TinyHtmlInput.d.mts +76 -0
  55. package/dist/v1/libs/TinyHtml/TinyHtmlInput.mjs +134 -0
  56. package/dist/v1/libs/TinyHtml/TinyHtmlLink.cjs +282 -0
  57. package/dist/v1/libs/TinyHtml/TinyHtmlLink.d.mts +128 -0
  58. package/dist/v1/libs/TinyHtml/TinyHtmlLink.mjs +264 -0
  59. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.cjs +358 -0
  60. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.d.mts +168 -0
  61. package/dist/v1/libs/TinyHtml/TinyHtmlMedia.mjs +308 -0
  62. package/dist/v1/libs/TinyHtml/TinyHtmlScript.cjs +226 -0
  63. package/dist/v1/libs/TinyHtml/TinyHtmlScript.d.mts +99 -0
  64. package/dist/v1/libs/TinyHtml/TinyHtmlScript.mjs +209 -0
  65. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.cjs +267 -0
  66. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.d.mts +146 -0
  67. package/dist/v1/libs/TinyHtml/TinyHtmlSelect.mjs +251 -0
  68. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.cjs +110 -0
  69. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.d.mts +57 -0
  70. package/dist/v1/libs/TinyHtml/TinyHtmlStyle.mjs +108 -0
  71. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.cjs +209 -0
  72. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.d.mts +101 -0
  73. package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.mjs +189 -0
  74. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.cjs +331 -0
  75. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.d.mts +139 -0
  76. package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.mjs +299 -0
  77. package/dist/v1/libs/TinyHtml/index.cjs +202 -0
  78. package/dist/v1/libs/TinyHtml/index.d.mts +82 -0
  79. package/dist/v1/libs/TinyHtml/index.mjs +185 -0
  80. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.cjs +121 -0
  81. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.d.mts +67 -0
  82. package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.mjs +99 -0
  83. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.cjs +109 -0
  84. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.d.mts +63 -0
  85. package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.mjs +92 -0
  86. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.cjs +101 -0
  87. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.d.mts +54 -0
  88. package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.mjs +82 -0
  89. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.cjs +181 -0
  90. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.d.mts +97 -0
  91. package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.mjs +160 -0
  92. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.cjs +90 -0
  93. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.d.mts +54 -0
  94. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.mjs +69 -0
  95. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.cjs +59 -0
  96. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.d.mts +43 -0
  97. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.mjs +45 -0
  98. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.cjs +141 -0
  99. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.d.mts +74 -0
  100. package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.mjs +114 -0
  101. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.cjs +103 -0
  102. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.d.mts +61 -0
  103. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.mjs +85 -0
  104. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.cjs +115 -0
  105. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.d.mts +56 -0
  106. package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.mjs +94 -0
  107. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.cjs +172 -0
  108. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.d.mts +74 -0
  109. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.mjs +140 -0
  110. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.cjs +145 -0
  111. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.d.mts +77 -0
  112. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.mjs +121 -0
  113. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.cjs +146 -0
  114. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.d.mts +74 -0
  115. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.mjs +120 -0
  116. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.cjs +151 -0
  117. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.d.mts +75 -0
  118. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.mjs +128 -0
  119. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.cjs +150 -0
  120. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.d.mts +74 -0
  121. package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.mjs +122 -0
  122. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.cjs +134 -0
  123. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.d.mts +74 -0
  124. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.mjs +110 -0
  125. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.cjs +133 -0
  126. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.d.mts +75 -0
  127. package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.mjs +111 -0
  128. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.cjs +179 -0
  129. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.d.mts +87 -0
  130. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.mjs +151 -0
  131. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.cjs +126 -0
  132. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.d.mts +70 -0
  133. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.mjs +104 -0
  134. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.cjs +177 -0
  135. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.d.mts +91 -0
  136. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.mjs +153 -0
  137. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.cjs +170 -0
  138. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.d.mts +91 -0
  139. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.mjs +143 -0
  140. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.cjs +173 -0
  141. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.d.mts +89 -0
  142. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.mjs +150 -0
  143. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.cjs +166 -0
  144. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.d.mts +81 -0
  145. package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.mjs +142 -0
  146. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.cjs +135 -0
  147. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.d.mts +47 -0
  148. package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.mjs +122 -0
  149. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.cjs +100 -0
  150. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.d.mts +62 -0
  151. package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.mjs +94 -0
  152. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.cjs +159 -0
  153. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.d.mts +77 -0
  154. package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.mjs +136 -0
  155. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.cjs +193 -0
  156. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.d.mts +91 -0
  157. package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.mjs +167 -0
  158. package/dist/v1/libs/TinyHtml.cjs +260 -3
  159. package/dist/v1/libs/TinyHtml.d.mts +196 -5
  160. package/dist/v1/libs/TinyHtml.mjs +238 -3
  161. package/dist/{legacy/libs/userLevel.d.mts → v1/libs/TinyLevelUp.d.mts} +1 -1
  162. package/docs/v1/Exports.md +133 -0
  163. package/docs/v1/README.md +2 -0
  164. package/docs/v1/libs/TinyHtml.md +4 -4
  165. package/package.json +41 -46
  166. package/dist/_virtual/_commonjsHelpers.cjs +0 -7
  167. package/dist/_virtual/common.cjs +0 -5
  168. package/dist/_virtual/index.cjs +0 -9
  169. package/dist/_virtual/index2.cjs +0 -5
  170. package/dist/_virtual/trace.cjs +0 -5
  171. package/dist/legacy/crypto/decrypt.cjs +0 -59
  172. package/dist/legacy/crypto/decrypt.d.mts +0 -20
  173. package/dist/legacy/crypto/decrypt.mjs +0 -49
  174. package/dist/legacy/crypto/default.cjs +0 -23
  175. package/dist/legacy/crypto/default.d.mts +0 -36
  176. package/dist/legacy/crypto/default.mjs +0 -19
  177. package/dist/legacy/crypto/encrypt.cjs +0 -55
  178. package/dist/legacy/crypto/encrypt.d.mts +0 -21
  179. package/dist/legacy/crypto/encrypt.mjs +0 -47
  180. package/dist/legacy/crypto/index.cjs +0 -11
  181. package/dist/legacy/crypto/index.d.mts +0 -5
  182. package/dist/legacy/crypto/index.mjs +0 -6
  183. package/dist/legacy/firebase/cookieSession.cjs +0 -123
  184. package/dist/legacy/firebase/cookieSession.d.mts +0 -57
  185. package/dist/legacy/firebase/cookieSession.mjs +0 -115
  186. package/dist/legacy/firebase/database/index.cjs +0 -14
  187. package/dist/legacy/firebase/database/index.d.mts +0 -8
  188. package/dist/legacy/firebase/database/index.mjs +0 -8
  189. package/dist/legacy/firebase/database/presence.cjs +0 -137
  190. package/dist/legacy/firebase/database/presence.d.mts +0 -13
  191. package/dist/legacy/firebase/database/presence.mjs +0 -115
  192. package/dist/legacy/firebase/database/saveAsync.cjs +0 -149
  193. package/dist/legacy/firebase/database/saveAsync.d.mts +0 -55
  194. package/dist/legacy/firebase/database/saveAsync.mjs +0 -148
  195. package/dist/legacy/firebase/databaseEscape.cjs +0 -45
  196. package/dist/legacy/firebase/databaseEscape.d.mts +0 -12
  197. package/dist/legacy/firebase/databaseEscape.mjs +0 -38
  198. package/dist/legacy/firebase/databaseLogger.cjs +0 -261
  199. package/dist/legacy/firebase/databaseLogger.d.mts +0 -8
  200. package/dist/legacy/firebase/databaseLogger.mjs +0 -235
  201. package/dist/legacy/firebase/discord/api/addGuildMember.cjs +0 -74
  202. package/dist/legacy/firebase/discord/api/addGuildMember.d.mts +0 -39
  203. package/dist/legacy/firebase/discord/api/addGuildMember.mjs +0 -65
  204. package/dist/legacy/firebase/discord/api/getGuildWidget.cjs +0 -50
  205. package/dist/legacy/firebase/discord/api/getGuildWidget.d.mts +0 -18
  206. package/dist/legacy/firebase/discord/api/getGuildWidget.mjs +0 -44
  207. package/dist/legacy/firebase/discord/api/getToken.cjs +0 -70
  208. package/dist/legacy/firebase/discord/api/getToken.d.mts +0 -36
  209. package/dist/legacy/firebase/discord/api/getToken.mjs +0 -64
  210. package/dist/legacy/firebase/discord/api/getUser.cjs +0 -61
  211. package/dist/legacy/firebase/discord/api/getUser.d.mts +0 -28
  212. package/dist/legacy/firebase/discord/api/getUser.mjs +0 -55
  213. package/dist/legacy/firebase/discord/api/getUserConnections.cjs +0 -60
  214. package/dist/legacy/firebase/discord/api/getUserConnections.d.mts +0 -27
  215. package/dist/legacy/firebase/discord/api/getUserConnections.mjs +0 -54
  216. package/dist/legacy/firebase/discord/api/getUserGuilds.cjs +0 -59
  217. package/dist/legacy/firebase/discord/api/getUserGuilds.d.mts +0 -26
  218. package/dist/legacy/firebase/discord/api/getUserGuilds.mjs +0 -53
  219. package/dist/legacy/firebase/discord/api/index.cjs +0 -27
  220. package/dist/legacy/firebase/discord/api/index.d.mts +0 -20
  221. package/dist/legacy/firebase/discord/api/index.mjs +0 -21
  222. package/dist/legacy/firebase/discord/api/refreshToken.cjs +0 -80
  223. package/dist/legacy/firebase/discord/api/refreshToken.d.mts +0 -46
  224. package/dist/legacy/firebase/discord/api/refreshToken.mjs +0 -74
  225. package/dist/legacy/firebase/discord/api/revokeToken.cjs +0 -64
  226. package/dist/legacy/firebase/discord/api/revokeToken.d.mts +0 -30
  227. package/dist/legacy/firebase/discord/api/revokeToken.mjs +0 -59
  228. package/dist/legacy/firebase/discord/config.cjs +0 -23
  229. package/dist/legacy/firebase/discord/config.d.mts +0 -28
  230. package/dist/legacy/firebase/discord/config.mjs +0 -18
  231. package/dist/legacy/firebase/discord/firebase_redirect/index.cjs +0 -14
  232. package/dist/legacy/firebase/discord/firebase_redirect/index.d.mts +0 -8
  233. package/dist/legacy/firebase/discord/firebase_redirect/index.mjs +0 -8
  234. package/dist/legacy/firebase/discord/firebase_redirect/login.cjs +0 -112
  235. package/dist/legacy/firebase/discord/firebase_redirect/login.d.mts +0 -5
  236. package/dist/legacy/firebase/discord/firebase_redirect/login.mjs +0 -108
  237. package/dist/legacy/firebase/discord/firebase_redirect/logout.cjs +0 -102
  238. package/dist/legacy/firebase/discord/firebase_redirect/logout.d.mts +0 -5
  239. package/dist/legacy/firebase/discord/firebase_redirect/logout.mjs +0 -98
  240. package/dist/legacy/firebase/discord/get/authURLGenerator.cjs +0 -79
  241. package/dist/legacy/firebase/discord/get/authURLGenerator.d.mts +0 -24
  242. package/dist/legacy/firebase/discord/get/authURLGenerator.mjs +0 -68
  243. package/dist/legacy/firebase/discord/get/cookie-session.cjs +0 -35
  244. package/dist/legacy/firebase/discord/get/cookie-session.d.mts +0 -21
  245. package/dist/legacy/firebase/discord/get/cookie-session.mjs +0 -29
  246. package/dist/legacy/firebase/discord/get/credentials.cjs +0 -26
  247. package/dist/legacy/firebase/discord/get/credentials.d.mts +0 -20
  248. package/dist/legacy/firebase/discord/get/credentials.mjs +0 -21
  249. package/dist/legacy/firebase/discord/get/errorValidator.cjs +0 -63
  250. package/dist/legacy/firebase/discord/get/errorValidator.d.mts +0 -29
  251. package/dist/legacy/firebase/discord/get/errorValidator.mjs +0 -56
  252. package/dist/legacy/firebase/discord/get/index.cjs +0 -20
  253. package/dist/legacy/firebase/discord/get/index.d.mts +0 -14
  254. package/dist/legacy/firebase/discord/get/index.mjs +0 -14
  255. package/dist/legacy/firebase/discord/get/randomAvatar.cjs +0 -40
  256. package/dist/legacy/firebase/discord/get/randomAvatar.d.mts +0 -23
  257. package/dist/legacy/firebase/discord/get/randomAvatar.mjs +0 -31
  258. package/dist/legacy/firebase/discord/http/index.cjs +0 -18
  259. package/dist/legacy/firebase/discord/http/index.d.mts +0 -12
  260. package/dist/legacy/firebase/discord/http/index.mjs +0 -12
  261. package/dist/legacy/firebase/discord/http/login.cjs +0 -130
  262. package/dist/legacy/firebase/discord/http/login.d.mts +0 -22
  263. package/dist/legacy/firebase/discord/http/login.mjs +0 -124
  264. package/dist/legacy/firebase/discord/http/logout.cjs +0 -158
  265. package/dist/legacy/firebase/discord/http/logout.d.mts +0 -23
  266. package/dist/legacy/firebase/discord/http/logout.mjs +0 -144
  267. package/dist/legacy/firebase/discord/http/redirect.cjs +0 -191
  268. package/dist/legacy/firebase/discord/http/redirect.d.mts +0 -25
  269. package/dist/legacy/firebase/discord/http/redirect.mjs +0 -179
  270. package/dist/legacy/firebase/discord/http/refreshToken.cjs +0 -136
  271. package/dist/legacy/firebase/discord/http/refreshToken.d.mts +0 -25
  272. package/dist/legacy/firebase/discord/http/refreshToken.mjs +0 -122
  273. package/dist/legacy/firebase/discord/index.cjs +0 -22
  274. package/dist/legacy/firebase/discord/index.d.mts +0 -16
  275. package/dist/legacy/firebase/discord/index.mjs +0 -16
  276. package/dist/legacy/firebase/discord/template/cookie-session.cjs +0 -1433
  277. package/dist/legacy/firebase/discord/template/cookie-session.d.mts +0 -23
  278. package/dist/legacy/firebase/discord/template/cookie-session.mjs +0 -1160
  279. package/dist/legacy/firebase/domainRedirect.cjs +0 -37
  280. package/dist/legacy/firebase/domainRedirect.d.mts +0 -13
  281. package/dist/legacy/firebase/domainRedirect.mjs +0 -28
  282. package/dist/legacy/firebase/escape.cjs +0 -77
  283. package/dist/legacy/firebase/escape.d.mts +0 -18
  284. package/dist/legacy/firebase/escape.mjs +0 -59
  285. package/dist/legacy/firebase/getDBAsync.cjs +0 -35
  286. package/dist/legacy/firebase/getDBAsync.d.mts +0 -11
  287. package/dist/legacy/firebase/getDBAsync.mjs +0 -27
  288. package/dist/legacy/firebase/getDBData.cjs +0 -24
  289. package/dist/legacy/firebase/getDBData.d.mts +0 -2
  290. package/dist/legacy/firebase/getDBData.mjs +0 -18
  291. package/dist/legacy/firebase/getDBValue.cjs +0 -19
  292. package/dist/legacy/firebase/getDBValue.d.mts +0 -10
  293. package/dist/legacy/firebase/getDBValue.mjs +0 -15
  294. package/dist/legacy/firebase/index.cjs +0 -264
  295. package/dist/legacy/firebase/index.d.mts +0 -52
  296. package/dist/legacy/firebase/index.mjs +0 -235
  297. package/dist/legacy/firebase/isEmulator.cjs +0 -16
  298. package/dist/legacy/firebase/isEmulator.d.mts +0 -9
  299. package/dist/legacy/firebase/isEmulator.mjs +0 -11
  300. package/dist/legacy/firebase/logger.cjs +0 -140
  301. package/dist/legacy/firebase/logger.d.mts +0 -8
  302. package/dist/legacy/firebase/logger.mjs +0 -126
  303. package/dist/legacy/firebase/mySQL.cjs +0 -30
  304. package/dist/legacy/firebase/mySQL.d.mts +0 -11
  305. package/dist/legacy/firebase/mySQL.mjs +0 -23
  306. package/dist/legacy/firebase/mysqlConnector/create.cjs +0 -121
  307. package/dist/legacy/firebase/mysqlConnector/create.d.mts +0 -37
  308. package/dist/legacy/firebase/mysqlConnector/create.mjs +0 -110
  309. package/dist/legacy/firebase/mysqlConnector/index.cjs +0 -26
  310. package/dist/legacy/firebase/mysqlConnector/index.d.mts +0 -12
  311. package/dist/legacy/firebase/mysqlConnector/index.mjs +0 -17
  312. package/dist/legacy/firebase/mysqlConnector/nextPrev.cjs +0 -77
  313. package/dist/legacy/firebase/mysqlConnector/nextPrev.d.mts +0 -32
  314. package/dist/legacy/firebase/mysqlConnector/nextPrev.mjs +0 -64
  315. package/dist/legacy/firebase/mysqlConnector/pagination.cjs +0 -93
  316. package/dist/legacy/firebase/mysqlConnector/pagination.d.mts +0 -34
  317. package/dist/legacy/firebase/mysqlConnector/pagination.mjs +0 -88
  318. package/dist/legacy/firebase/mysqlConnector/sameUser.cjs +0 -31
  319. package/dist/legacy/firebase/mysqlConnector/sameUser.d.mts +0 -13
  320. package/dist/legacy/firebase/mysqlConnector/sameUser.mjs +0 -24
  321. package/dist/legacy/firebase/transactionDBAsync.cjs +0 -35
  322. package/dist/legacy/firebase/transactionDBAsync.d.mts +0 -12
  323. package/dist/legacy/firebase/transactionDBAsync.mjs +0 -28
  324. package/dist/legacy/get/countObj.cjs +0 -7
  325. package/dist/legacy/get/countObj.d.mts +0 -3
  326. package/dist/legacy/get/countObj.mjs +0 -2
  327. package/dist/legacy/get/decimalColor.cjs +0 -63
  328. package/dist/legacy/get/decimalColor.d.mts +0 -14
  329. package/dist/legacy/get/decimalColor.mjs +0 -56
  330. package/dist/legacy/get/objType.cjs +0 -7
  331. package/dist/legacy/get/objType.d.mts +0 -3
  332. package/dist/legacy/get/objType.mjs +0 -2
  333. package/dist/legacy/get/pagination.cjs +0 -109
  334. package/dist/legacy/get/pagination.d.mts +0 -44
  335. package/dist/legacy/get/pagination.mjs +0 -100
  336. package/dist/legacy/get/queryUrlByName.cjs +0 -32
  337. package/dist/legacy/get/queryUrlByName.d.mts +0 -22
  338. package/dist/legacy/get/queryUrlByName.mjs +0 -29
  339. package/dist/legacy/get/queryUrlJSON.cjs +0 -57
  340. package/dist/legacy/get/queryUrlJSON.d.mts +0 -25
  341. package/dist/legacy/get/queryUrlJSON.mjs +0 -59
  342. package/dist/legacy/get/super_string_filter.cjs +0 -109
  343. package/dist/legacy/get/super_string_filter.d.mts +0 -27
  344. package/dist/legacy/get/super_string_filter.mjs +0 -95
  345. package/dist/legacy/get/versionCheck.cjs +0 -50
  346. package/dist/legacy/get/versionCheck.d.mts +0 -29
  347. package/dist/legacy/get/versionCheck.mjs +0 -40
  348. package/dist/legacy/http/HTTP-1.0.cjs +0 -153
  349. package/dist/legacy/http/HTTP-1.0.d.mts +0 -9
  350. package/dist/legacy/http/HTTP-1.0.mjs +0 -138
  351. package/dist/legacy/http/auth.cjs +0 -71
  352. package/dist/legacy/http/auth.d.mts +0 -43
  353. package/dist/legacy/http/auth.mjs +0 -64
  354. package/dist/legacy/http/check_domain.cjs +0 -103
  355. package/dist/legacy/http/check_domain.d.mts +0 -13
  356. package/dist/legacy/http/check_domain.mjs +0 -98
  357. package/dist/legacy/http/csrfTokenAnalyze.cjs +0 -50
  358. package/dist/legacy/http/csrfTokenAnalyze.d.mts +0 -23
  359. package/dist/legacy/http/csrfTokenAnalyze.mjs +0 -45
  360. package/dist/legacy/http/domainValidator.cjs +0 -106
  361. package/dist/legacy/http/domainValidator.d.mts +0 -41
  362. package/dist/legacy/http/domainValidator.mjs +0 -89
  363. package/dist/legacy/http/errorsCallback.cjs +0 -64
  364. package/dist/legacy/http/errorsCallback.d.mts +0 -41
  365. package/dist/legacy/http/errorsCallback.mjs +0 -58
  366. package/dist/legacy/http/fetch/json.cjs +0 -50
  367. package/dist/legacy/http/fetch/json.d.mts +0 -24
  368. package/dist/legacy/http/fetch/json.mjs +0 -43
  369. package/dist/legacy/http/fetch/text.cjs +0 -49
  370. package/dist/legacy/http/fetch/text.d.mts +0 -23
  371. package/dist/legacy/http/fetch/text.mjs +0 -42
  372. package/dist/legacy/http/fileCache.cjs +0 -80
  373. package/dist/legacy/http/fileCache.d.mts +0 -37
  374. package/dist/legacy/http/fileCache.mjs +0 -71
  375. package/dist/legacy/http/getDomainURL.cjs +0 -60
  376. package/dist/legacy/http/getDomainURL.d.mts +0 -20
  377. package/dist/legacy/http/getDomainURL.mjs +0 -55
  378. package/dist/legacy/http/userIP.cjs +0 -65
  379. package/dist/legacy/http/userIP.d.mts +0 -27
  380. package/dist/legacy/http/userIP.mjs +0 -53
  381. package/dist/legacy/index.cjs +0 -125
  382. package/dist/legacy/index.d.mts +0 -89
  383. package/dist/legacy/index.mjs +0 -93
  384. package/dist/legacy/libs/arraySortPositions.cjs +0 -30
  385. package/dist/legacy/libs/arraySortPositions.d.mts +0 -17
  386. package/dist/legacy/libs/arraySortPositions.mjs +0 -27
  387. package/dist/legacy/libs/capitalize.cjs +0 -22
  388. package/dist/legacy/libs/capitalize.d.mts +0 -15
  389. package/dist/legacy/libs/capitalize.mjs +0 -18
  390. package/dist/legacy/libs/convertBytes.cjs +0 -66
  391. package/dist/legacy/libs/convertBytes.d.mts +0 -18
  392. package/dist/legacy/libs/convertBytes.mjs +0 -57
  393. package/dist/legacy/libs/custom_module_loader.cjs +0 -91
  394. package/dist/legacy/libs/custom_module_loader.d.mts +0 -6
  395. package/dist/legacy/libs/custom_module_loader.mjs +0 -87
  396. package/dist/legacy/libs/dice.cjs +0 -37
  397. package/dist/legacy/libs/dice.d.mts +0 -6
  398. package/dist/legacy/libs/dice.mjs +0 -33
  399. package/dist/legacy/libs/markdown.cjs +0 -97
  400. package/dist/legacy/libs/markdown.d.mts +0 -12
  401. package/dist/legacy/libs/markdown.mjs +0 -90
  402. package/dist/legacy/libs/percentage.cjs +0 -23
  403. package/dist/legacy/libs/percentage.d.mts +0 -5
  404. package/dist/legacy/libs/percentage.mjs +0 -20
  405. package/dist/legacy/libs/regex/getLetter.cjs +0 -24
  406. package/dist/legacy/libs/regex/getLetter.d.mts +0 -15
  407. package/dist/legacy/libs/regex/getLetter.mjs +0 -21
  408. package/dist/legacy/libs/replaceAsync.cjs +0 -35
  409. package/dist/legacy/libs/replaceAsync.d.mts +0 -16
  410. package/dist/legacy/libs/replaceAsync.mjs +0 -28
  411. package/dist/legacy/libs/rule3.cjs +0 -59
  412. package/dist/legacy/libs/rule3.d.mts +0 -6
  413. package/dist/legacy/libs/rule3.mjs +0 -55
  414. package/dist/legacy/momentjs/getAge.cjs +0 -29
  415. package/dist/legacy/momentjs/getAge.d.mts +0 -11
  416. package/dist/legacy/momentjs/getAge.mjs +0 -23
  417. package/dist/legacy/momentjs/index.cjs +0 -9
  418. package/dist/legacy/momentjs/index.d.mts +0 -4
  419. package/dist/legacy/momentjs/index.mjs +0 -3
  420. package/dist/legacy/momentjs/timeDuration.cjs +0 -31
  421. package/dist/legacy/momentjs/timeDuration.d.mts +0 -12
  422. package/dist/legacy/momentjs/timeDuration.mjs +0 -25
  423. package/dist/legacy/socket.io/antiFlood/index.cjs +0 -9
  424. package/dist/legacy/socket.io/antiFlood/index.d.mts +0 -4
  425. package/dist/legacy/socket.io/antiFlood/index.mjs +0 -3
  426. package/dist/legacy/socket.io/antiFlood/install.cjs +0 -34
  427. package/dist/legacy/socket.io/antiFlood/install.d.mts +0 -16
  428. package/dist/legacy/socket.io/antiFlood/install.mjs +0 -29
  429. package/dist/legacy/socket.io/antiFlood/verify.cjs +0 -95
  430. package/dist/legacy/socket.io/antiFlood/verify.d.mts +0 -20
  431. package/dist/legacy/socket.io/antiFlood/verify.mjs +0 -79
  432. package/dist/legacy/socket.io/cookie-session.cjs +0 -27
  433. package/dist/legacy/socket.io/cookie-session.d.mts +0 -11
  434. package/dist/legacy/socket.io/cookie-session.mjs +0 -22
  435. package/dist/legacy/socket.io/discord.cjs +0 -62
  436. package/dist/legacy/socket.io/discord.d.mts +0 -12
  437. package/dist/legacy/socket.io/discord.mjs +0 -53
  438. package/dist/legacy/socket.io/index.cjs +0 -13
  439. package/dist/legacy/socket.io/index.d.mts +0 -10
  440. package/dist/legacy/socket.io/index.mjs +0 -9
  441. package/dist/node_modules/firebase-functions/lib/common/trace.cjs +0 -81
  442. package/dist/node_modules/firebase-functions/lib/logger/common.cjs +0 -57
  443. package/dist/node_modules/firebase-functions/lib/logger/index.cjs +0 -159
  444. /package/dist/{legacy/libs/userLevel.cjs → v1/libs/TinyLevelUp.cjs} +0 -0
  445. /package/dist/{legacy/libs/userLevel.mjs → v1/libs/TinyLevelUp.mjs} +0 -0
@@ -0,0 +1,209 @@
1
+ 'use strict';
2
+
3
+ var TinyHtml = require('../TinyHtml.cjs');
4
+
5
+ /**
6
+ * @typedef {string|string[]|Set<string>} ClassSetter
7
+ * Represents a set of CSS classes that can be applied to an element.
8
+ * - Can be a single class name string.
9
+ * - Can be an array of class name strings.
10
+ * - Can be a Set of class name strings.
11
+ */
12
+
13
+ /**
14
+ * TinyHtmlTemplate is a base helper class that extends TinyHtml and is designed
15
+ * to simplify the creation of reusable HTML element templates.
16
+ *
17
+ * It is primarily intended as a foundation for specialized UI components
18
+ * where consistent structure and styling are needed, similar in spirit to how React
19
+ * components abstract HTML into reusable elements.
20
+ *
21
+ * As a result, TinyHtmlTemplate provides a small-scale, component-like
22
+ * abstraction for HTML elements, serving as a lightweight building block
23
+ * for higher-level UI helpers.
24
+ *
25
+ * @template {Element} TinyHtmlT
26
+ * @extends TinyHtml<TinyHtmlT>
27
+ */
28
+ class TinyHtmlTemplate extends TinyHtml {
29
+ /** @type {Set<string>} */
30
+ #classes = new Set();
31
+
32
+ /** @type {Set<string>} */
33
+ #mainClass = new Set();
34
+
35
+ /** @returns {TinyHtmlT} */
36
+ get el() {
37
+ // @ts-ignore
38
+ return this.get(0);
39
+ }
40
+
41
+ /**
42
+ * Updates the element's `className` attribute by combining
43
+ * the current set of classes with the main class.
44
+ */
45
+ #setClassString() {
46
+ const classes =
47
+ `${Array.from(this.#classes).join(' ')} ${Array.from(this.#mainClass).join(' ')}`.trim();
48
+ if (!classes) {
49
+ this.removeAttr('className');
50
+ return;
51
+ }
52
+ this.setAttr('className', classes);
53
+ }
54
+
55
+ /**
56
+ * Ensures a given value is a valid ClassSetter.
57
+ * @param {ClassSetter} value
58
+ * @returns {Set<string>}
59
+ */
60
+ static #normalizeClasses(value) {
61
+ if (typeof value === 'string') {
62
+ return new Set(value.trim().split(/\s+/).filter(Boolean));
63
+ }
64
+ if (Array.isArray(value) || value instanceof Set) {
65
+ for (const v of value) {
66
+ if (typeof v !== 'string') {
67
+ throw new TypeError(`Class names must be strings. Got: ${typeof v}`);
68
+ }
69
+ }
70
+ return new Set(value);
71
+ }
72
+ throw new TypeError(
73
+ `Invalid ClassSetter. Expected string | string[] | Set<string>, got ${typeof value}`,
74
+ );
75
+ }
76
+
77
+ /**
78
+ * Returns the combined list of all classes (regular + main).
79
+ * @returns {string[]}
80
+ */
81
+ get fullClass() {
82
+ return [...Array.from(this.#classes), ...Array.from(this.#mainClass)];
83
+ }
84
+
85
+ /**
86
+ * Gets the current list of CSS classes applied to this element.
87
+ * @returns {string[]}
88
+ */
89
+ get classes() {
90
+ return [...Array.from(this.#classes)];
91
+ }
92
+
93
+ /**
94
+ * Sets the list of CSS classes applied to this element.
95
+ * Automatically updates the element's `className` attribute.
96
+ * @param {ClassSetter} value
97
+ */
98
+ set classes(value) {
99
+ this.#classes = TinyHtmlTemplate.#normalizeClasses(value);
100
+ this.#setClassString();
101
+ }
102
+
103
+ /**
104
+ * Gets the main CSS class applied to this element.
105
+ * This class is always present in addition to the regular classes.
106
+ * @returns {string[]}
107
+ */
108
+ get mainClass() {
109
+ return [...Array.from(this.#mainClass)];
110
+ }
111
+
112
+ /**
113
+ * Sets the main CSS class applied to this element.
114
+ * Automatically updates the element's `className` attribute.
115
+ * @param {ClassSetter} value
116
+ */
117
+ set mainClass(value) {
118
+ this.#mainClass = TinyHtmlTemplate.#normalizeClasses(value);
119
+ this.#setClassString();
120
+ }
121
+
122
+ /**
123
+ * Creates a new TinyHtmlTemplate instance.
124
+ * @param {TinyHtmlT} tag - The HTML tag name to create (e.g., 'div', 'span').
125
+ * @param {ClassSetter} [tags=[]] - Initial CSS classes to apply.
126
+ * @param {ClassSetter} [mainClass=[]] - Main CSS classes to apply.
127
+ */
128
+ constructor(tag, tags = [], mainClass = []) {
129
+ super(tag);
130
+ this.mainClass = mainClass;
131
+ this.classes = tags;
132
+ }
133
+
134
+ /**
135
+ * Add one or more CSS classes to the element.
136
+ * @param {...string|string[]} tags
137
+ * @returns {this}
138
+ */
139
+ // @ts-ignore
140
+ addClass(...tags) {
141
+ for (const tag of tags.flat()) {
142
+ if (typeof tag !== 'string')
143
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
144
+ this.#classes.add(tag);
145
+ }
146
+ this.#setClassString();
147
+ return this;
148
+ }
149
+
150
+ /**
151
+ * Remove one or more CSS classes from the element.
152
+ * @param {...string|string[]} tags
153
+ * @returns {this}
154
+ */
155
+ // @ts-ignore
156
+ removeClass(...tags) {
157
+ for (const tag of tags.flat()) {
158
+ if (typeof tag !== 'string')
159
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
160
+ this.#classes.delete(tag);
161
+ }
162
+ this.#setClassString();
163
+ return this;
164
+ }
165
+
166
+ /**
167
+ * Toggles the presence of a given CSS class on the element.
168
+ * @param {string} tag - The class name to toggle.
169
+ * @returns {this}
170
+ */
171
+ // @ts-ignore
172
+ toggleClass(tag) {
173
+ if (typeof tag !== 'string')
174
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
175
+ if (this.#classes.has(tag)) return this.removeClass(tag);
176
+ else return this.addClass(tag);
177
+ }
178
+
179
+ /**
180
+ * Replaces an existing CSS class with a new one.
181
+ * Behaves like DOMTokenList.replace:
182
+ * - Only replaces if oldClass exists.
183
+ * - Returns true if replacement occurred, false otherwise.
184
+ * @param {string} oldClass - The class to replace.
185
+ * @param {string} newClass - The new class to add.
186
+ * @returns {boolean} True if the replacement occurred, false otherwise.
187
+ */
188
+ replaceClass(oldClass, newClass) {
189
+ if (typeof oldClass !== 'string' || typeof newClass !== 'string')
190
+ throw new TypeError('Both oldClass and newClass must be strings.');
191
+ if (!this.#classes.has(oldClass)) return false;
192
+ this.#classes.delete(oldClass);
193
+ this.#classes.add(newClass);
194
+ this.#setClassString();
195
+ return true;
196
+ }
197
+
198
+ /**
199
+ * Clears all CSS classes from the element.
200
+ * @returns {this}
201
+ */
202
+ resetClasses() {
203
+ this.#classes.clear();
204
+ this.removeAttr('className');
205
+ return this;
206
+ }
207
+ }
208
+
209
+ module.exports = TinyHtmlTemplate;
@@ -0,0 +1,101 @@
1
+ export default TinyHtmlTemplate;
2
+ /**
3
+ * Represents a set of CSS classes that can be applied to an element.
4
+ * - Can be a single class name string.
5
+ * - Can be an array of class name strings.
6
+ * - Can be a Set of class name strings.
7
+ */
8
+ export type ClassSetter = string | string[] | Set<string>;
9
+ /**
10
+ * @typedef {string|string[]|Set<string>} ClassSetter
11
+ * Represents a set of CSS classes that can be applied to an element.
12
+ * - Can be a single class name string.
13
+ * - Can be an array of class name strings.
14
+ * - Can be a Set of class name strings.
15
+ */
16
+ /**
17
+ * TinyHtmlTemplate is a base helper class that extends TinyHtml and is designed
18
+ * to simplify the creation of reusable HTML element templates.
19
+ *
20
+ * It is primarily intended as a foundation for specialized UI components
21
+ * where consistent structure and styling are needed, similar in spirit to how React
22
+ * components abstract HTML into reusable elements.
23
+ *
24
+ * As a result, TinyHtmlTemplate provides a small-scale, component-like
25
+ * abstraction for HTML elements, serving as a lightweight building block
26
+ * for higher-level UI helpers.
27
+ *
28
+ * @template {Element} TinyHtmlT
29
+ * @extends TinyHtml<TinyHtmlT>
30
+ */
31
+ declare class TinyHtmlTemplate<TinyHtmlT extends Element> extends TinyHtml<TinyHtmlT> {
32
+ /**
33
+ * Ensures a given value is a valid ClassSetter.
34
+ * @param {ClassSetter} value
35
+ * @returns {Set<string>}
36
+ */
37
+ static "__#37@#normalizeClasses"(value: ClassSetter): Set<string>;
38
+ /**
39
+ * Creates a new TinyHtmlTemplate instance.
40
+ * @param {TinyHtmlT} tag - The HTML tag name to create (e.g., 'div', 'span').
41
+ * @param {ClassSetter} [tags=[]] - Initial CSS classes to apply.
42
+ * @param {ClassSetter} [mainClass=[]] - Main CSS classes to apply.
43
+ */
44
+ constructor(tag: TinyHtmlT, tags?: ClassSetter, mainClass?: ClassSetter);
45
+ /** @returns {TinyHtmlT} */
46
+ get el(): TinyHtmlT;
47
+ /**
48
+ * Returns the combined list of all classes (regular + main).
49
+ * @returns {string[]}
50
+ */
51
+ get fullClass(): string[];
52
+ /**
53
+ * Sets the list of CSS classes applied to this element.
54
+ * Automatically updates the element's `className` attribute.
55
+ * @param {ClassSetter} value
56
+ */
57
+ set classes(value: ClassSetter);
58
+ /**
59
+ * Gets the current list of CSS classes applied to this element.
60
+ * @returns {string[]}
61
+ */
62
+ get classes(): string[];
63
+ /**
64
+ * Sets the main CSS class applied to this element.
65
+ * Automatically updates the element's `className` attribute.
66
+ * @param {ClassSetter} value
67
+ */
68
+ set mainClass(value: ClassSetter);
69
+ /**
70
+ * Gets the main CSS class applied to this element.
71
+ * This class is always present in addition to the regular classes.
72
+ * @returns {string[]}
73
+ */
74
+ get mainClass(): string[];
75
+ /**
76
+ * Add one or more CSS classes to the element.
77
+ * @param {...string|string[]} tags
78
+ * @returns {this}
79
+ */
80
+ addClass(...tags: (string | string[])[]): this;
81
+ /**
82
+ * Remove one or more CSS classes from the element.
83
+ * @param {...string|string[]} tags
84
+ * @returns {this}
85
+ */
86
+ removeClass(...tags: (string | string[])[]): this;
87
+ /**
88
+ * Toggles the presence of a given CSS class on the element.
89
+ * @param {string} tag - The class name to toggle.
90
+ * @returns {this}
91
+ */
92
+ toggleClass(tag: string): this;
93
+ /**
94
+ * Clears all CSS classes from the element.
95
+ * @returns {this}
96
+ */
97
+ resetClasses(): this;
98
+ #private;
99
+ }
100
+ import TinyHtml from '../TinyHtml.mjs';
101
+ //# sourceMappingURL=TinyHtmlTemplate.d.mts.map
@@ -0,0 +1,189 @@
1
+ import TinyHtml from '../TinyHtml.mjs';
2
+ /**
3
+ * @typedef {string|string[]|Set<string>} ClassSetter
4
+ * Represents a set of CSS classes that can be applied to an element.
5
+ * - Can be a single class name string.
6
+ * - Can be an array of class name strings.
7
+ * - Can be a Set of class name strings.
8
+ */
9
+ /**
10
+ * TinyHtmlTemplate is a base helper class that extends TinyHtml and is designed
11
+ * to simplify the creation of reusable HTML element templates.
12
+ *
13
+ * It is primarily intended as a foundation for specialized UI components
14
+ * where consistent structure and styling are needed, similar in spirit to how React
15
+ * components abstract HTML into reusable elements.
16
+ *
17
+ * As a result, TinyHtmlTemplate provides a small-scale, component-like
18
+ * abstraction for HTML elements, serving as a lightweight building block
19
+ * for higher-level UI helpers.
20
+ *
21
+ * @template {Element} TinyHtmlT
22
+ * @extends TinyHtml<TinyHtmlT>
23
+ */
24
+ class TinyHtmlTemplate extends TinyHtml {
25
+ /** @type {Set<string>} */
26
+ #classes = new Set();
27
+ /** @type {Set<string>} */
28
+ #mainClass = new Set();
29
+ /** @returns {TinyHtmlT} */
30
+ get el() {
31
+ // @ts-ignore
32
+ return this.get(0);
33
+ }
34
+ /**
35
+ * Updates the element's `className` attribute by combining
36
+ * the current set of classes with the main class.
37
+ */
38
+ #setClassString() {
39
+ const classes = `${Array.from(this.#classes).join(' ')} ${Array.from(this.#mainClass).join(' ')}`.trim();
40
+ if (!classes) {
41
+ this.removeAttr('className');
42
+ return;
43
+ }
44
+ this.setAttr('className', classes);
45
+ }
46
+ /**
47
+ * Ensures a given value is a valid ClassSetter.
48
+ * @param {ClassSetter} value
49
+ * @returns {Set<string>}
50
+ */
51
+ static #normalizeClasses(value) {
52
+ if (typeof value === 'string') {
53
+ return new Set(value.trim().split(/\s+/).filter(Boolean));
54
+ }
55
+ if (Array.isArray(value) || value instanceof Set) {
56
+ for (const v of value) {
57
+ if (typeof v !== 'string') {
58
+ throw new TypeError(`Class names must be strings. Got: ${typeof v}`);
59
+ }
60
+ }
61
+ return new Set(value);
62
+ }
63
+ throw new TypeError(`Invalid ClassSetter. Expected string | string[] | Set<string>, got ${typeof value}`);
64
+ }
65
+ /**
66
+ * Returns the combined list of all classes (regular + main).
67
+ * @returns {string[]}
68
+ */
69
+ get fullClass() {
70
+ return [...Array.from(this.#classes), ...Array.from(this.#mainClass)];
71
+ }
72
+ /**
73
+ * Gets the current list of CSS classes applied to this element.
74
+ * @returns {string[]}
75
+ */
76
+ get classes() {
77
+ return [...Array.from(this.#classes)];
78
+ }
79
+ /**
80
+ * Sets the list of CSS classes applied to this element.
81
+ * Automatically updates the element's `className` attribute.
82
+ * @param {ClassSetter} value
83
+ */
84
+ set classes(value) {
85
+ this.#classes = TinyHtmlTemplate.#normalizeClasses(value);
86
+ this.#setClassString();
87
+ }
88
+ /**
89
+ * Gets the main CSS class applied to this element.
90
+ * This class is always present in addition to the regular classes.
91
+ * @returns {string[]}
92
+ */
93
+ get mainClass() {
94
+ return [...Array.from(this.#mainClass)];
95
+ }
96
+ /**
97
+ * Sets the main CSS class applied to this element.
98
+ * Automatically updates the element's `className` attribute.
99
+ * @param {ClassSetter} value
100
+ */
101
+ set mainClass(value) {
102
+ this.#mainClass = TinyHtmlTemplate.#normalizeClasses(value);
103
+ this.#setClassString();
104
+ }
105
+ /**
106
+ * Creates a new TinyHtmlTemplate instance.
107
+ * @param {TinyHtmlT} tag - The HTML tag name to create (e.g., 'div', 'span').
108
+ * @param {ClassSetter} [tags=[]] - Initial CSS classes to apply.
109
+ * @param {ClassSetter} [mainClass=[]] - Main CSS classes to apply.
110
+ */
111
+ constructor(tag, tags = [], mainClass = []) {
112
+ super(tag);
113
+ this.mainClass = mainClass;
114
+ this.classes = tags;
115
+ }
116
+ /**
117
+ * Add one or more CSS classes to the element.
118
+ * @param {...string|string[]} tags
119
+ * @returns {this}
120
+ */
121
+ // @ts-ignore
122
+ addClass(...tags) {
123
+ for (const tag of tags.flat()) {
124
+ if (typeof tag !== 'string')
125
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
126
+ this.#classes.add(tag);
127
+ }
128
+ this.#setClassString();
129
+ return this;
130
+ }
131
+ /**
132
+ * Remove one or more CSS classes from the element.
133
+ * @param {...string|string[]} tags
134
+ * @returns {this}
135
+ */
136
+ // @ts-ignore
137
+ removeClass(...tags) {
138
+ for (const tag of tags.flat()) {
139
+ if (typeof tag !== 'string')
140
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
141
+ this.#classes.delete(tag);
142
+ }
143
+ this.#setClassString();
144
+ return this;
145
+ }
146
+ /**
147
+ * Toggles the presence of a given CSS class on the element.
148
+ * @param {string} tag - The class name to toggle.
149
+ * @returns {this}
150
+ */
151
+ // @ts-ignore
152
+ toggleClass(tag) {
153
+ if (typeof tag !== 'string')
154
+ throw new TypeError(`Class name must be a string. Got: ${typeof tag}`);
155
+ if (this.#classes.has(tag))
156
+ return this.removeClass(tag);
157
+ else
158
+ return this.addClass(tag);
159
+ }
160
+ /**
161
+ * Replaces an existing CSS class with a new one.
162
+ * Behaves like DOMTokenList.replace:
163
+ * - Only replaces if oldClass exists.
164
+ * - Returns true if replacement occurred, false otherwise.
165
+ * @param {string} oldClass - The class to replace.
166
+ * @param {string} newClass - The new class to add.
167
+ * @returns {boolean} True if the replacement occurred, false otherwise.
168
+ */
169
+ replaceClass(oldClass, newClass) {
170
+ if (typeof oldClass !== 'string' || typeof newClass !== 'string')
171
+ throw new TypeError('Both oldClass and newClass must be strings.');
172
+ if (!this.#classes.has(oldClass))
173
+ return false;
174
+ this.#classes.delete(oldClass);
175
+ this.#classes.add(newClass);
176
+ this.#setClassString();
177
+ return true;
178
+ }
179
+ /**
180
+ * Clears all CSS classes from the element.
181
+ * @returns {this}
182
+ */
183
+ resetClasses() {
184
+ this.#classes.clear();
185
+ this.removeAttr('className');
186
+ return this;
187
+ }
188
+ }
189
+ export default TinyHtmlTemplate;