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,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;