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,220 @@
1
+ 'use strict';
2
+
3
+ var TinyHtml = require('../TinyHtml.cjs');
4
+ var TinyHtmlTemplate = require('./TinyHtmlTemplate.cjs');
5
+
6
+ /**
7
+ * TinyHtmlAnchor is a helper class for managing <a> elements.
8
+ * It provides strongly-typed getters and setters for attributes like href,
9
+ * target, rel, hreflang, referrerpolicy, and more.
10
+ *
11
+ * @example
12
+ * const link = new TinyHtmlAnchor({
13
+ * href: 'https://example.com',
14
+ * label: 'Visit Example',
15
+ * target: '_blank',
16
+ * rel: 'noopener noreferrer'
17
+ * });
18
+ *
19
+ * @extends TinyHtmlTemplate<HTMLAnchorElement>
20
+ */
21
+ class TinyHtmlAnchor extends TinyHtmlTemplate {
22
+ /**
23
+ * Creates a new TinyHtmlAnchor instance.
24
+ * @param {Object} config - Configuration object.
25
+ * @param {string} config.href - Link URL (required).
26
+ * @param {string|Element|TinyHtml<any>} [config.label] - Link text or HTML.
27
+ * @param {string} [config.target] - Target attribute.
28
+ * @param {string} [config.rel] - Relationship of the linked resource.
29
+ * @param {string} [config.hreflang] - Language of the linked resource.
30
+ * @param {string|string[]} [config.ping] - URLs to send pings to.
31
+ * @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} [config.referrerpolicy] - Referrer policy.
32
+ * @param {string} [config.type] - MIME type of the linked resource.
33
+ * @param {boolean|string|string[]} [config.attributionsrc] - Enables Attribution Reporting.
34
+ * @param {string|boolean} [config.download] - Download filename (or boolean to enable).
35
+ * @param {boolean} [config.allowHtml=false] - Whether to allow HTML inside the link.
36
+ * @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes.
37
+ * @param {string} [config.mainClass=''] - Main CSS class.
38
+ * @throws {TypeError} If any attribute is invalid.
39
+ */
40
+ constructor({
41
+ href,
42
+ label,
43
+ target,
44
+ rel,
45
+ hreflang,
46
+ ping,
47
+ referrerpolicy,
48
+ type,
49
+ attributionsrc,
50
+ download,
51
+ allowHtml = false,
52
+ tags = [],
53
+ mainClass = '',
54
+ }) {
55
+ super(document.createElement('a'), tags, mainClass);
56
+
57
+ if (typeof href !== 'string' || !href.trim())
58
+ throw new TypeError('TinyHtmlAnchor: "href" must be a non-empty string.');
59
+ this.href = href;
60
+
61
+ if (target !== undefined) this.target = target;
62
+ if (rel !== undefined) this.rel = rel;
63
+ if (hreflang !== undefined) this.hreflang = hreflang;
64
+ if (ping !== undefined) this.ping = ping;
65
+ if (referrerpolicy !== undefined) this.referrerpolicy = referrerpolicy;
66
+ if (type !== undefined) this.type = type;
67
+ if (attributionsrc !== undefined) this.attributionsrc = attributionsrc;
68
+ if (download !== undefined) this.download = download;
69
+
70
+ if (typeof allowHtml !== 'boolean')
71
+ throw new TypeError('TinyHtmlAnchor: "allowHtml" must be a boolean.');
72
+
73
+ if (label !== undefined) this.setLabel(label, allowHtml);
74
+ }
75
+
76
+ /** @param {string} href */
77
+ set href(href) {
78
+ if (typeof href !== 'string' || !href.trim())
79
+ throw new TypeError('TinyHtmlAnchor: "href" must be a non-empty string.');
80
+ this.setAttr('href', href);
81
+ }
82
+ /** @returns {string|null} */
83
+ get href() {
84
+ return this.attrString('href');
85
+ }
86
+
87
+ /** @param {string} target */
88
+ set target(target) {
89
+ if (typeof target !== 'string')
90
+ throw new TypeError('TinyHtmlAnchor: "target" must be a string.');
91
+ this.setAttr('target', target);
92
+ }
93
+ /** @returns {string|null} */
94
+ get target() {
95
+ return this.attrString('target');
96
+ }
97
+
98
+ /** @param {string} rel */
99
+ set rel(rel) {
100
+ if (typeof rel !== 'string') throw new TypeError('TinyHtmlAnchor: "rel" must be a string.');
101
+ this.setAttr('rel', rel);
102
+ }
103
+ /** @returns {string|null} */
104
+ get rel() {
105
+ return this.attrString('rel');
106
+ }
107
+
108
+ /** @param {string} hreflang */
109
+ set hreflang(hreflang) {
110
+ if (typeof hreflang !== 'string')
111
+ throw new TypeError('TinyHtmlAnchor: "hreflang" must be a string.');
112
+ this.setAttr('hreflang', hreflang);
113
+ }
114
+ /** @returns {string|null} */
115
+ get hreflang() {
116
+ return this.attrString('hreflang');
117
+ }
118
+
119
+ /** @param {string|string[]} ping */
120
+ set ping(ping) {
121
+ if (Array.isArray(ping)) ping = ping.join(' ');
122
+ if (typeof ping !== 'string')
123
+ throw new TypeError('TinyHtmlAnchor: "ping" must be a string or string[].');
124
+ this.setAttr('ping', ping);
125
+ }
126
+ /** @returns {string|null} */
127
+ get ping() {
128
+ return this.attrString('ping');
129
+ }
130
+
131
+ /** @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} referrerpolicy */
132
+ set referrerpolicy(referrerpolicy) {
133
+ const valid = [
134
+ 'no-referrer',
135
+ 'no-referrer-when-downgrade',
136
+ 'origin',
137
+ 'origin-when-cross-origin',
138
+ 'same-origin',
139
+ 'strict-origin',
140
+ 'strict-origin-when-cross-origin',
141
+ 'unsafe-url',
142
+ ];
143
+ if (!valid.includes(referrerpolicy))
144
+ throw new TypeError(`TinyHtmlAnchor: "referrerpolicy" must be one of: ${valid.join(', ')}`);
145
+ this.setAttr('referrerpolicy', referrerpolicy);
146
+ }
147
+ /** @returns {string|null} */
148
+ get referrerpolicy() {
149
+ return this.attrString('referrerpolicy');
150
+ }
151
+
152
+ /** @param {string} type */
153
+ set type(type) {
154
+ if (typeof type !== 'string')
155
+ throw new TypeError('TinyHtmlAnchor: "type" must be a string (MIME type).');
156
+ this.setAttr('type', type);
157
+ }
158
+ /** @returns {string|null} */
159
+ get type() {
160
+ return this.attrString('type');
161
+ }
162
+
163
+ /** @param {boolean|string|string[]} attributionsrc */
164
+ set attributionsrc(attributionsrc) {
165
+ if (attributionsrc === true) {
166
+ this.addProp('attributionsrc');
167
+ } else if (typeof attributionsrc === 'string') {
168
+ this.setAttr('attributionsrc', attributionsrc);
169
+ } else if (Array.isArray(attributionsrc)) {
170
+ this.setAttr('attributionsrc', attributionsrc.join(' '));
171
+ } else {
172
+ throw new TypeError(
173
+ 'TinyHtmlAnchor: "attributionsrc" must be a boolean, string, or string[].',
174
+ );
175
+ }
176
+ }
177
+ /** @returns {string|null} */
178
+ get attributionsrc() {
179
+ return this.attrString('attributionsrc');
180
+ }
181
+
182
+ /** @param {string|boolean} download */
183
+ set download(download) {
184
+ if (typeof download !== 'string' && typeof download !== 'boolean')
185
+ throw new TypeError('TinyHtmlAnchor: "download" must be a string or boolean.');
186
+ if (typeof download === 'string') this.setAttr('download', download);
187
+ else if (download) this.addProp('download');
188
+ else this.removeProp('download');
189
+ }
190
+ /** @returns {string|boolean|null} */
191
+ get download() {
192
+ if (this.hasProp('download')) {
193
+ return true;
194
+ }
195
+ return this.attrString('download');
196
+ }
197
+
198
+ /**
199
+ * Updates the link label with text, HTML, or an element.
200
+ *
201
+ * @param {string|Element|TinyHtml<any>} label - The new label to set.
202
+ * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements instead of plain text.
203
+ * @returns {this}
204
+ */
205
+ setLabel(label, allowHtml = false) {
206
+ if (typeof label === 'string') {
207
+ if (!allowHtml) this.setText(label);
208
+ else this.setHtml(label);
209
+ } else if (label instanceof Element || label instanceof TinyHtml) {
210
+ if (!allowHtml)
211
+ throw new Error('setLabel: Passing an Element/TinyHtml requires allowHtml=true.');
212
+ this.empty().append(label);
213
+ } else {
214
+ throw new TypeError("setLabel: 'label' must be a string, Element, or TinyHtml instance.");
215
+ }
216
+ return this;
217
+ }
218
+ }
219
+
220
+ module.exports = TinyHtmlAnchor;
@@ -0,0 +1,98 @@
1
+ export default TinyHtmlAnchor;
2
+ /**
3
+ * TinyHtmlAnchor is a helper class for managing <a> elements.
4
+ * It provides strongly-typed getters and setters for attributes like href,
5
+ * target, rel, hreflang, referrerpolicy, and more.
6
+ *
7
+ * @example
8
+ * const link = new TinyHtmlAnchor({
9
+ * href: 'https://example.com',
10
+ * label: 'Visit Example',
11
+ * target: '_blank',
12
+ * rel: 'noopener noreferrer'
13
+ * });
14
+ *
15
+ * @extends TinyHtmlTemplate<HTMLAnchorElement>
16
+ */
17
+ declare class TinyHtmlAnchor extends TinyHtmlTemplate<HTMLAnchorElement> {
18
+ /**
19
+ * Creates a new TinyHtmlAnchor instance.
20
+ * @param {Object} config - Configuration object.
21
+ * @param {string} config.href - Link URL (required).
22
+ * @param {string|Element|TinyHtml<any>} [config.label] - Link text or HTML.
23
+ * @param {string} [config.target] - Target attribute.
24
+ * @param {string} [config.rel] - Relationship of the linked resource.
25
+ * @param {string} [config.hreflang] - Language of the linked resource.
26
+ * @param {string|string[]} [config.ping] - URLs to send pings to.
27
+ * @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} [config.referrerpolicy] - Referrer policy.
28
+ * @param {string} [config.type] - MIME type of the linked resource.
29
+ * @param {boolean|string|string[]} [config.attributionsrc] - Enables Attribution Reporting.
30
+ * @param {string|boolean} [config.download] - Download filename (or boolean to enable).
31
+ * @param {boolean} [config.allowHtml=false] - Whether to allow HTML inside the link.
32
+ * @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes.
33
+ * @param {string} [config.mainClass=''] - Main CSS class.
34
+ * @throws {TypeError} If any attribute is invalid.
35
+ */
36
+ constructor({ href, label, target, rel, hreflang, ping, referrerpolicy, type, attributionsrc, download, allowHtml, tags, mainClass, }: {
37
+ href: string;
38
+ label?: string | Element | TinyHtml<any> | undefined;
39
+ target?: string | undefined;
40
+ rel?: string | undefined;
41
+ hreflang?: string | undefined;
42
+ ping?: string | string[] | undefined;
43
+ referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
44
+ type?: string | undefined;
45
+ attributionsrc?: string | boolean | string[] | undefined;
46
+ download?: string | boolean | undefined;
47
+ allowHtml?: boolean | undefined;
48
+ tags?: string | string[] | Set<string> | undefined;
49
+ mainClass?: string | undefined;
50
+ });
51
+ /** @param {string} href */
52
+ set href(href: string);
53
+ /** @returns {string|null} */
54
+ get href(): string | null;
55
+ /** @param {string} target */
56
+ set target(target: string);
57
+ /** @returns {string|null} */
58
+ get target(): string | null;
59
+ /** @param {string} rel */
60
+ set rel(rel: string);
61
+ /** @returns {string|null} */
62
+ get rel(): string | null;
63
+ /** @param {string} hreflang */
64
+ set hreflang(hreflang: string);
65
+ /** @returns {string|null} */
66
+ get hreflang(): string | null;
67
+ /** @param {string|string[]} ping */
68
+ set ping(ping: string | string[]);
69
+ /** @returns {string|null} */
70
+ get ping(): string | null;
71
+ /** @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} referrerpolicy */
72
+ set referrerpolicy(referrerpolicy: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url");
73
+ /** @returns {string|null} */
74
+ get referrerpolicy(): string | null;
75
+ /** @param {string} type */
76
+ set type(type: string);
77
+ /** @returns {string|null} */
78
+ get type(): string | null;
79
+ /** @param {boolean|string|string[]} attributionsrc */
80
+ set attributionsrc(attributionsrc: boolean | string | string[]);
81
+ /** @returns {string|null} */
82
+ get attributionsrc(): string | null;
83
+ /** @param {string|boolean} download */
84
+ set download(download: string | boolean);
85
+ /** @returns {string|boolean|null} */
86
+ get download(): string | boolean | null;
87
+ /**
88
+ * Updates the link label with text, HTML, or an element.
89
+ *
90
+ * @param {string|Element|TinyHtml<any>} label - The new label to set.
91
+ * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements instead of plain text.
92
+ * @returns {this}
93
+ */
94
+ setLabel(label: string | Element | TinyHtml<any>, allowHtml?: boolean): this;
95
+ }
96
+ import TinyHtmlTemplate from './TinyHtmlTemplate.mjs';
97
+ import TinyHtml from '../TinyHtml.mjs';
98
+ //# sourceMappingURL=TinyHtmlAnchor.d.mts.map
@@ -0,0 +1,207 @@
1
+ import TinyHtml from '../TinyHtml.mjs';
2
+ import TinyHtmlTemplate from './TinyHtmlTemplate.mjs';
3
+ /**
4
+ * TinyHtmlAnchor is a helper class for managing <a> elements.
5
+ * It provides strongly-typed getters and setters for attributes like href,
6
+ * target, rel, hreflang, referrerpolicy, and more.
7
+ *
8
+ * @example
9
+ * const link = new TinyHtmlAnchor({
10
+ * href: 'https://example.com',
11
+ * label: 'Visit Example',
12
+ * target: '_blank',
13
+ * rel: 'noopener noreferrer'
14
+ * });
15
+ *
16
+ * @extends TinyHtmlTemplate<HTMLAnchorElement>
17
+ */
18
+ class TinyHtmlAnchor extends TinyHtmlTemplate {
19
+ /**
20
+ * Creates a new TinyHtmlAnchor instance.
21
+ * @param {Object} config - Configuration object.
22
+ * @param {string} config.href - Link URL (required).
23
+ * @param {string|Element|TinyHtml<any>} [config.label] - Link text or HTML.
24
+ * @param {string} [config.target] - Target attribute.
25
+ * @param {string} [config.rel] - Relationship of the linked resource.
26
+ * @param {string} [config.hreflang] - Language of the linked resource.
27
+ * @param {string|string[]} [config.ping] - URLs to send pings to.
28
+ * @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} [config.referrerpolicy] - Referrer policy.
29
+ * @param {string} [config.type] - MIME type of the linked resource.
30
+ * @param {boolean|string|string[]} [config.attributionsrc] - Enables Attribution Reporting.
31
+ * @param {string|boolean} [config.download] - Download filename (or boolean to enable).
32
+ * @param {boolean} [config.allowHtml=false] - Whether to allow HTML inside the link.
33
+ * @param {string|string[]|Set<string>} [config.tags=[]] - Initial CSS classes.
34
+ * @param {string} [config.mainClass=''] - Main CSS class.
35
+ * @throws {TypeError} If any attribute is invalid.
36
+ */
37
+ constructor({ href, label, target, rel, hreflang, ping, referrerpolicy, type, attributionsrc, download, allowHtml = false, tags = [], mainClass = '', }) {
38
+ super(document.createElement('a'), tags, mainClass);
39
+ if (typeof href !== 'string' || !href.trim())
40
+ throw new TypeError('TinyHtmlAnchor: "href" must be a non-empty string.');
41
+ this.href = href;
42
+ if (target !== undefined)
43
+ this.target = target;
44
+ if (rel !== undefined)
45
+ this.rel = rel;
46
+ if (hreflang !== undefined)
47
+ this.hreflang = hreflang;
48
+ if (ping !== undefined)
49
+ this.ping = ping;
50
+ if (referrerpolicy !== undefined)
51
+ this.referrerpolicy = referrerpolicy;
52
+ if (type !== undefined)
53
+ this.type = type;
54
+ if (attributionsrc !== undefined)
55
+ this.attributionsrc = attributionsrc;
56
+ if (download !== undefined)
57
+ this.download = download;
58
+ if (typeof allowHtml !== 'boolean')
59
+ throw new TypeError('TinyHtmlAnchor: "allowHtml" must be a boolean.');
60
+ if (label !== undefined)
61
+ this.setLabel(label, allowHtml);
62
+ }
63
+ /** @param {string} href */
64
+ set href(href) {
65
+ if (typeof href !== 'string' || !href.trim())
66
+ throw new TypeError('TinyHtmlAnchor: "href" must be a non-empty string.');
67
+ this.setAttr('href', href);
68
+ }
69
+ /** @returns {string|null} */
70
+ get href() {
71
+ return this.attrString('href');
72
+ }
73
+ /** @param {string} target */
74
+ set target(target) {
75
+ if (typeof target !== 'string')
76
+ throw new TypeError('TinyHtmlAnchor: "target" must be a string.');
77
+ this.setAttr('target', target);
78
+ }
79
+ /** @returns {string|null} */
80
+ get target() {
81
+ return this.attrString('target');
82
+ }
83
+ /** @param {string} rel */
84
+ set rel(rel) {
85
+ if (typeof rel !== 'string')
86
+ throw new TypeError('TinyHtmlAnchor: "rel" must be a string.');
87
+ this.setAttr('rel', rel);
88
+ }
89
+ /** @returns {string|null} */
90
+ get rel() {
91
+ return this.attrString('rel');
92
+ }
93
+ /** @param {string} hreflang */
94
+ set hreflang(hreflang) {
95
+ if (typeof hreflang !== 'string')
96
+ throw new TypeError('TinyHtmlAnchor: "hreflang" must be a string.');
97
+ this.setAttr('hreflang', hreflang);
98
+ }
99
+ /** @returns {string|null} */
100
+ get hreflang() {
101
+ return this.attrString('hreflang');
102
+ }
103
+ /** @param {string|string[]} ping */
104
+ set ping(ping) {
105
+ if (Array.isArray(ping))
106
+ ping = ping.join(' ');
107
+ if (typeof ping !== 'string')
108
+ throw new TypeError('TinyHtmlAnchor: "ping" must be a string or string[].');
109
+ this.setAttr('ping', ping);
110
+ }
111
+ /** @returns {string|null} */
112
+ get ping() {
113
+ return this.attrString('ping');
114
+ }
115
+ /** @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} referrerpolicy */
116
+ set referrerpolicy(referrerpolicy) {
117
+ const valid = [
118
+ 'no-referrer',
119
+ 'no-referrer-when-downgrade',
120
+ 'origin',
121
+ 'origin-when-cross-origin',
122
+ 'same-origin',
123
+ 'strict-origin',
124
+ 'strict-origin-when-cross-origin',
125
+ 'unsafe-url',
126
+ ];
127
+ if (!valid.includes(referrerpolicy))
128
+ throw new TypeError(`TinyHtmlAnchor: "referrerpolicy" must be one of: ${valid.join(', ')}`);
129
+ this.setAttr('referrerpolicy', referrerpolicy);
130
+ }
131
+ /** @returns {string|null} */
132
+ get referrerpolicy() {
133
+ return this.attrString('referrerpolicy');
134
+ }
135
+ /** @param {string} type */
136
+ set type(type) {
137
+ if (typeof type !== 'string')
138
+ throw new TypeError('TinyHtmlAnchor: "type" must be a string (MIME type).');
139
+ this.setAttr('type', type);
140
+ }
141
+ /** @returns {string|null} */
142
+ get type() {
143
+ return this.attrString('type');
144
+ }
145
+ /** @param {boolean|string|string[]} attributionsrc */
146
+ set attributionsrc(attributionsrc) {
147
+ if (attributionsrc === true) {
148
+ this.addProp('attributionsrc');
149
+ }
150
+ else if (typeof attributionsrc === 'string') {
151
+ this.setAttr('attributionsrc', attributionsrc);
152
+ }
153
+ else if (Array.isArray(attributionsrc)) {
154
+ this.setAttr('attributionsrc', attributionsrc.join(' '));
155
+ }
156
+ else {
157
+ throw new TypeError('TinyHtmlAnchor: "attributionsrc" must be a boolean, string, or string[].');
158
+ }
159
+ }
160
+ /** @returns {string|null} */
161
+ get attributionsrc() {
162
+ return this.attrString('attributionsrc');
163
+ }
164
+ /** @param {string|boolean} download */
165
+ set download(download) {
166
+ if (typeof download !== 'string' && typeof download !== 'boolean')
167
+ throw new TypeError('TinyHtmlAnchor: "download" must be a string or boolean.');
168
+ if (typeof download === 'string')
169
+ this.setAttr('download', download);
170
+ else if (download)
171
+ this.addProp('download');
172
+ else
173
+ this.removeProp('download');
174
+ }
175
+ /** @returns {string|boolean|null} */
176
+ get download() {
177
+ if (this.hasProp('download')) {
178
+ return true;
179
+ }
180
+ return this.attrString('download');
181
+ }
182
+ /**
183
+ * Updates the link label with text, HTML, or an element.
184
+ *
185
+ * @param {string|Element|TinyHtml<any>} label - The new label to set.
186
+ * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements instead of plain text.
187
+ * @returns {this}
188
+ */
189
+ setLabel(label, allowHtml = false) {
190
+ if (typeof label === 'string') {
191
+ if (!allowHtml)
192
+ this.setText(label);
193
+ else
194
+ this.setHtml(label);
195
+ }
196
+ else if (label instanceof Element || label instanceof TinyHtml) {
197
+ if (!allowHtml)
198
+ throw new Error('setLabel: Passing an Element/TinyHtml requires allowHtml=true.');
199
+ this.empty().append(label);
200
+ }
201
+ else {
202
+ throw new TypeError("setLabel: 'label' must be a string, Element, or TinyHtml instance.");
203
+ }
204
+ return this;
205
+ }
206
+ }
207
+ export default TinyHtmlAnchor;