@tabler/core 1.5.1 → 1.6.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 (967) hide show
  1. package/README.md +10 -1
  2. package/dist/css/tabler-flags.css +9 -1
  3. package/dist/css/tabler-flags.css.map +1 -1
  4. package/dist/css/tabler-flags.min.css +2 -2
  5. package/dist/css/tabler-flags.min.css.map +1 -1
  6. package/dist/css/tabler-flags.rtl.css +9 -1
  7. package/dist/css/tabler-flags.rtl.css.map +1 -1
  8. package/dist/css/tabler-flags.rtl.min.css +2 -2
  9. package/dist/css/tabler-flags.rtl.min.css.map +1 -1
  10. package/dist/css/tabler-marketing.css +78 -38
  11. package/dist/css/tabler-marketing.css.map +1 -1
  12. package/dist/css/tabler-marketing.min.css +2 -2
  13. package/dist/css/tabler-marketing.min.css.map +1 -1
  14. package/dist/css/tabler-marketing.rtl.css +78 -38
  15. package/dist/css/tabler-marketing.rtl.css.map +1 -1
  16. package/dist/css/tabler-marketing.rtl.min.css +2 -2
  17. package/dist/css/tabler-marketing.rtl.min.css.map +1 -1
  18. package/dist/css/tabler-payments.css +5 -1
  19. package/dist/css/tabler-payments.css.map +1 -1
  20. package/dist/css/tabler-payments.min.css +1 -1
  21. package/dist/css/tabler-payments.min.css.map +1 -1
  22. package/dist/css/tabler-payments.rtl.css +5 -1
  23. package/dist/css/tabler-payments.rtl.css.map +1 -1
  24. package/dist/css/tabler-payments.rtl.min.css +1 -1
  25. package/dist/css/tabler-payments.rtl.min.css.map +1 -1
  26. package/dist/css/tabler-props.css +207 -241
  27. package/dist/css/tabler-props.css.map +1 -1
  28. package/dist/css/tabler-props.min.css +2 -2
  29. package/dist/css/tabler-props.min.css.map +1 -1
  30. package/dist/css/tabler-props.rtl.css +207 -241
  31. package/dist/css/tabler-props.rtl.css.map +1 -1
  32. package/dist/css/tabler-props.rtl.min.css +2 -2
  33. package/dist/css/tabler-props.rtl.min.css.map +1 -1
  34. package/dist/css/tabler-socials.css +5 -1
  35. package/dist/css/tabler-socials.css.map +1 -1
  36. package/dist/css/tabler-socials.min.css +1 -1
  37. package/dist/css/tabler-socials.min.css.map +1 -1
  38. package/dist/css/tabler-socials.rtl.css +5 -1
  39. package/dist/css/tabler-socials.rtl.css.map +1 -1
  40. package/dist/css/tabler-socials.rtl.min.css +1 -1
  41. package/dist/css/tabler-socials.rtl.min.css.map +1 -1
  42. package/dist/css/tabler-themes.css +144 -94
  43. package/dist/css/tabler-themes.css.map +1 -1
  44. package/dist/css/tabler-themes.min.css +2 -2
  45. package/dist/css/tabler-themes.min.css.map +1 -1
  46. package/dist/css/tabler-themes.rtl.css +144 -94
  47. package/dist/css/tabler-themes.rtl.css.map +1 -1
  48. package/dist/css/tabler-themes.rtl.min.css +2 -2
  49. package/dist/css/tabler-themes.rtl.min.css.map +1 -1
  50. package/dist/css/tabler-vendors.css +203 -83
  51. package/dist/css/tabler-vendors.css.map +1 -1
  52. package/dist/css/tabler-vendors.min.css +2 -2
  53. package/dist/css/tabler-vendors.min.css.map +1 -1
  54. package/dist/css/tabler-vendors.rtl.css +203 -83
  55. package/dist/css/tabler-vendors.rtl.css.map +1 -1
  56. package/dist/css/tabler-vendors.rtl.min.css +2 -2
  57. package/dist/css/tabler-vendors.rtl.min.css.map +1 -1
  58. package/dist/css/tabler.css +4370 -5113
  59. package/dist/css/tabler.css.map +1 -1
  60. package/dist/css/tabler.min.css +2 -2
  61. package/dist/css/tabler.min.css.map +1 -1
  62. package/dist/css/tabler.rtl.css +4925 -5671
  63. package/dist/css/tabler.rtl.css.map +1 -1
  64. package/dist/css/tabler.rtl.min.css +2 -2
  65. package/dist/css/tabler.rtl.min.css.map +1 -1
  66. package/dist/img/flags/ad.svg +1 -1
  67. package/dist/img/flags/ae.svg +1 -1
  68. package/dist/img/flags/af.svg +1 -1
  69. package/dist/img/flags/afrun.svg +1 -1
  70. package/dist/img/flags/ag.svg +1 -1
  71. package/dist/img/flags/ai.svg +1 -1
  72. package/dist/img/flags/al.svg +1 -1
  73. package/dist/img/flags/am.svg +1 -1
  74. package/dist/img/flags/ao.svg +1 -1
  75. package/dist/img/flags/aq.svg +1 -1
  76. package/dist/img/flags/ar.svg +1 -1
  77. package/dist/img/flags/as.svg +1 -1
  78. package/dist/img/flags/at.svg +1 -1
  79. package/dist/img/flags/au.svg +1 -1
  80. package/dist/img/flags/aw.svg +1 -1
  81. package/dist/img/flags/ax.svg +1 -1
  82. package/dist/img/flags/az.svg +1 -1
  83. package/dist/img/flags/ba.svg +1 -1
  84. package/dist/img/flags/bb.svg +1 -1
  85. package/dist/img/flags/bd.svg +1 -1
  86. package/dist/img/flags/be.svg +1 -1
  87. package/dist/img/flags/bf.svg +1 -1
  88. package/dist/img/flags/bg.svg +1 -1
  89. package/dist/img/flags/bh.svg +1 -1
  90. package/dist/img/flags/bi.svg +1 -1
  91. package/dist/img/flags/bj.svg +1 -1
  92. package/dist/img/flags/bl.svg +1 -1
  93. package/dist/img/flags/bm.svg +1 -1
  94. package/dist/img/flags/bn.svg +1 -1
  95. package/dist/img/flags/bo.svg +1 -1
  96. package/dist/img/flags/bq-bo.svg +1 -1
  97. package/dist/img/flags/bq-sa.svg +1 -1
  98. package/dist/img/flags/bq-se.svg +1 -1
  99. package/dist/img/flags/br.svg +1 -1
  100. package/dist/img/flags/bs.svg +1 -1
  101. package/dist/img/flags/bt.svg +1 -1
  102. package/dist/img/flags/bv.svg +1 -1
  103. package/dist/img/flags/bw.svg +1 -1
  104. package/dist/img/flags/by.svg +1 -1
  105. package/dist/img/flags/bz.svg +1 -1
  106. package/dist/img/flags/ca.svg +1 -1
  107. package/dist/img/flags/cc.svg +1 -1
  108. package/dist/img/flags/cd.svg +1 -1
  109. package/dist/img/flags/cf.svg +1 -1
  110. package/dist/img/flags/cg.svg +1 -1
  111. package/dist/img/flags/ch.svg +1 -1
  112. package/dist/img/flags/ci.svg +1 -1
  113. package/dist/img/flags/ck.svg +1 -1
  114. package/dist/img/flags/cl.svg +1 -1
  115. package/dist/img/flags/cm.svg +1 -1
  116. package/dist/img/flags/cn.svg +1 -1
  117. package/dist/img/flags/co.svg +1 -1
  118. package/dist/img/flags/cr.svg +1 -1
  119. package/dist/img/flags/cu.svg +1 -1
  120. package/dist/img/flags/cv.svg +1 -1
  121. package/dist/img/flags/cw.svg +1 -1
  122. package/dist/img/flags/cx.svg +1 -1
  123. package/dist/img/flags/cy.svg +1 -1
  124. package/dist/img/flags/cz.svg +1 -1
  125. package/dist/img/flags/de.svg +1 -1
  126. package/dist/img/flags/dj.svg +1 -1
  127. package/dist/img/flags/dk.svg +1 -1
  128. package/dist/img/flags/dm.svg +1 -1
  129. package/dist/img/flags/do.svg +1 -1
  130. package/dist/img/flags/dz.svg +1 -1
  131. package/dist/img/flags/ec.svg +1 -1
  132. package/dist/img/flags/ee.svg +1 -1
  133. package/dist/img/flags/eg.svg +1 -1
  134. package/dist/img/flags/eh.svg +1 -1
  135. package/dist/img/flags/er.svg +1 -1
  136. package/dist/img/flags/es.svg +1 -1
  137. package/dist/img/flags/et.svg +1 -1
  138. package/dist/img/flags/eu.svg +1 -1
  139. package/dist/img/flags/fi.svg +1 -1
  140. package/dist/img/flags/fj.svg +1 -1
  141. package/dist/img/flags/fk.svg +1 -1
  142. package/dist/img/flags/fm.svg +1 -1
  143. package/dist/img/flags/fo.svg +1 -1
  144. package/dist/img/flags/fr.svg +1 -1
  145. package/dist/img/flags/ga.svg +1 -1
  146. package/dist/img/flags/gb-eng.svg +1 -1
  147. package/dist/img/flags/gb-nir.svg +1 -1
  148. package/dist/img/flags/gb-sct.svg +1 -1
  149. package/dist/img/flags/gb-wls.svg +1 -1
  150. package/dist/img/flags/gb.svg +1 -1
  151. package/dist/img/flags/gd.svg +1 -1
  152. package/dist/img/flags/ge.svg +1 -1
  153. package/dist/img/flags/gf.svg +1 -1
  154. package/dist/img/flags/gg.svg +1 -1
  155. package/dist/img/flags/gh.svg +1 -1
  156. package/dist/img/flags/gi.svg +1 -1
  157. package/dist/img/flags/gl.svg +1 -1
  158. package/dist/img/flags/gm.svg +1 -1
  159. package/dist/img/flags/gn.svg +1 -1
  160. package/dist/img/flags/gp.svg +1 -1
  161. package/dist/img/flags/gq.svg +1 -1
  162. package/dist/img/flags/gr.svg +1 -1
  163. package/dist/img/flags/gs.svg +1 -1
  164. package/dist/img/flags/gt.svg +1 -1
  165. package/dist/img/flags/gu.svg +1 -1
  166. package/dist/img/flags/gw.svg +1 -1
  167. package/dist/img/flags/gy.svg +1 -1
  168. package/dist/img/flags/hk.svg +1 -1
  169. package/dist/img/flags/hm.svg +1 -1
  170. package/dist/img/flags/hn.svg +1 -1
  171. package/dist/img/flags/hr.svg +1 -1
  172. package/dist/img/flags/ht.svg +1 -1
  173. package/dist/img/flags/hu.svg +1 -1
  174. package/dist/img/flags/id.svg +1 -1
  175. package/dist/img/flags/ie.svg +1 -1
  176. package/dist/img/flags/il.svg +1 -1
  177. package/dist/img/flags/im.svg +1 -1
  178. package/dist/img/flags/in.svg +1 -1
  179. package/dist/img/flags/io.svg +1 -1
  180. package/dist/img/flags/iq.svg +1 -1
  181. package/dist/img/flags/ir.svg +1 -1
  182. package/dist/img/flags/is.svg +1 -1
  183. package/dist/img/flags/it.svg +1 -1
  184. package/dist/img/flags/je.svg +1 -1
  185. package/dist/img/flags/jm.svg +1 -1
  186. package/dist/img/flags/jo.svg +1 -1
  187. package/dist/img/flags/jp.svg +1 -1
  188. package/dist/img/flags/ke.svg +1 -1
  189. package/dist/img/flags/kg.svg +1 -1
  190. package/dist/img/flags/kh.svg +1 -1
  191. package/dist/img/flags/ki.svg +1 -1
  192. package/dist/img/flags/km.svg +1 -1
  193. package/dist/img/flags/kn-sk.svg +1 -1
  194. package/dist/img/flags/kn.svg +1 -1
  195. package/dist/img/flags/kp.svg +1 -1
  196. package/dist/img/flags/kr.svg +1 -1
  197. package/dist/img/flags/kw.svg +1 -1
  198. package/dist/img/flags/ky.svg +1 -1
  199. package/dist/img/flags/kz.svg +1 -1
  200. package/dist/img/flags/la.svg +1 -1
  201. package/dist/img/flags/lb.svg +1 -1
  202. package/dist/img/flags/lc.svg +1 -1
  203. package/dist/img/flags/li.svg +1 -1
  204. package/dist/img/flags/lk.svg +1 -1
  205. package/dist/img/flags/lr.svg +1 -1
  206. package/dist/img/flags/ls.svg +1 -1
  207. package/dist/img/flags/lt.svg +1 -1
  208. package/dist/img/flags/lu.svg +1 -1
  209. package/dist/img/flags/lv.svg +1 -1
  210. package/dist/img/flags/ly.svg +1 -1
  211. package/dist/img/flags/ma.svg +1 -1
  212. package/dist/img/flags/mc.svg +1 -1
  213. package/dist/img/flags/md.svg +1 -1
  214. package/dist/img/flags/me.svg +1 -1
  215. package/dist/img/flags/mf.svg +1 -1
  216. package/dist/img/flags/mg.svg +1 -1
  217. package/dist/img/flags/mh.svg +1 -1
  218. package/dist/img/flags/mk.svg +1 -1
  219. package/dist/img/flags/ml.svg +1 -1
  220. package/dist/img/flags/mm.svg +1 -1
  221. package/dist/img/flags/mn.svg +1 -1
  222. package/dist/img/flags/mo.svg +1 -1
  223. package/dist/img/flags/mp.svg +1 -1
  224. package/dist/img/flags/mq.svg +1 -1
  225. package/dist/img/flags/mr.svg +1 -1
  226. package/dist/img/flags/ms.svg +1 -1
  227. package/dist/img/flags/mt.svg +1 -1
  228. package/dist/img/flags/mu.svg +1 -1
  229. package/dist/img/flags/mv.svg +1 -1
  230. package/dist/img/flags/mw.svg +1 -1
  231. package/dist/img/flags/mx.svg +1 -1
  232. package/dist/img/flags/my.svg +1 -1
  233. package/dist/img/flags/mz.svg +1 -1
  234. package/dist/img/flags/na.svg +1 -1
  235. package/dist/img/flags/nc.svg +1 -1
  236. package/dist/img/flags/ne.svg +1 -1
  237. package/dist/img/flags/nf.svg +1 -1
  238. package/dist/img/flags/ng.svg +1 -1
  239. package/dist/img/flags/ni.svg +1 -1
  240. package/dist/img/flags/nl.svg +1 -1
  241. package/dist/img/flags/no.svg +1 -1
  242. package/dist/img/flags/np.svg +1 -1
  243. package/dist/img/flags/nr.svg +1 -1
  244. package/dist/img/flags/nu.svg +1 -1
  245. package/dist/img/flags/nz.svg +1 -1
  246. package/dist/img/flags/om.svg +1 -1
  247. package/dist/img/flags/pa.svg +1 -1
  248. package/dist/img/flags/pe.svg +1 -1
  249. package/dist/img/flags/pf.svg +1 -1
  250. package/dist/img/flags/pg.svg +1 -1
  251. package/dist/img/flags/ph.svg +1 -1
  252. package/dist/img/flags/pk.svg +1 -1
  253. package/dist/img/flags/pl.svg +1 -1
  254. package/dist/img/flags/pm.svg +1 -1
  255. package/dist/img/flags/pn.svg +1 -1
  256. package/dist/img/flags/pr.svg +1 -1
  257. package/dist/img/flags/ps.svg +1 -1
  258. package/dist/img/flags/pt.svg +1 -1
  259. package/dist/img/flags/pw.svg +1 -1
  260. package/dist/img/flags/py.svg +1 -1
  261. package/dist/img/flags/qa.svg +1 -1
  262. package/dist/img/flags/rainbow.svg +1 -1
  263. package/dist/img/flags/re.svg +1 -1
  264. package/dist/img/flags/ro.svg +1 -1
  265. package/dist/img/flags/rs.svg +1 -1
  266. package/dist/img/flags/ru.svg +1 -1
  267. package/dist/img/flags/rw.svg +1 -1
  268. package/dist/img/flags/sa.svg +1 -1
  269. package/dist/img/flags/sb.svg +1 -1
  270. package/dist/img/flags/sc.svg +1 -1
  271. package/dist/img/flags/sd.svg +1 -1
  272. package/dist/img/flags/se.svg +1 -1
  273. package/dist/img/flags/sg.svg +1 -1
  274. package/dist/img/flags/sh.svg +1 -1
  275. package/dist/img/flags/si.svg +1 -1
  276. package/dist/img/flags/sj.svg +1 -1
  277. package/dist/img/flags/sk.svg +1 -1
  278. package/dist/img/flags/sl.svg +1 -1
  279. package/dist/img/flags/sm.svg +1 -1
  280. package/dist/img/flags/sn.svg +1 -1
  281. package/dist/img/flags/so.svg +1 -1
  282. package/dist/img/flags/sr.svg +1 -1
  283. package/dist/img/flags/ss.svg +1 -1
  284. package/dist/img/flags/st.svg +1 -1
  285. package/dist/img/flags/sv.svg +1 -1
  286. package/dist/img/flags/sx.svg +1 -1
  287. package/dist/img/flags/sy.svg +1 -1
  288. package/dist/img/flags/sz.svg +1 -1
  289. package/dist/img/flags/tc.svg +1 -1
  290. package/dist/img/flags/td.svg +1 -1
  291. package/dist/img/flags/tf.svg +1 -1
  292. package/dist/img/flags/tg.svg +1 -1
  293. package/dist/img/flags/th.svg +1 -1
  294. package/dist/img/flags/tj.svg +1 -1
  295. package/dist/img/flags/tk.svg +1 -1
  296. package/dist/img/flags/tl.svg +1 -1
  297. package/dist/img/flags/tm.svg +1 -1
  298. package/dist/img/flags/tn.svg +1 -1
  299. package/dist/img/flags/to.svg +1 -1
  300. package/dist/img/flags/tr.svg +1 -1
  301. package/dist/img/flags/tt.svg +1 -1
  302. package/dist/img/flags/tv.svg +1 -1
  303. package/dist/img/flags/tw.svg +1 -1
  304. package/dist/img/flags/tz.svg +1 -1
  305. package/dist/img/flags/ua.svg +1 -1
  306. package/dist/img/flags/ug.svg +1 -1
  307. package/dist/img/flags/um.svg +1 -1
  308. package/dist/img/flags/unasur.svg +1 -1
  309. package/dist/img/flags/us.svg +1 -1
  310. package/dist/img/flags/uy.svg +1 -1
  311. package/dist/img/flags/uz.svg +1 -1
  312. package/dist/img/flags/va.svg +1 -1
  313. package/dist/img/flags/vc.svg +1 -1
  314. package/dist/img/flags/ve.svg +1 -1
  315. package/dist/img/flags/vg.svg +1 -1
  316. package/dist/img/flags/vi.svg +1 -1
  317. package/dist/img/flags/vn.svg +1 -1
  318. package/dist/img/flags/vu.svg +1 -1
  319. package/dist/img/flags/wf.svg +1 -1
  320. package/dist/img/flags/ws.svg +1 -1
  321. package/dist/img/flags/ye.svg +1 -1
  322. package/dist/img/flags/yt.svg +1 -1
  323. package/dist/img/flags/za.svg +1 -1
  324. package/dist/img/flags/zm.svg +1 -1
  325. package/dist/img/flags/zw.svg +1 -1
  326. package/dist/img/payments/2c2p-dark.svg +1 -5
  327. package/dist/img/payments/2c2p.svg +1 -5
  328. package/dist/img/payments/2checkout-dark.svg +1 -4
  329. package/dist/img/payments/2checkout.svg +1 -4
  330. package/dist/img/payments/ach-transfer-dark.svg +1 -14
  331. package/dist/img/payments/ach-transfer.svg +1 -14
  332. package/dist/img/payments/adyen-dark.svg +1 -8
  333. package/dist/img/payments/adyen.svg +1 -8
  334. package/dist/img/payments/affirm-dark.svg +1 -9
  335. package/dist/img/payments/affirm.svg +1 -9
  336. package/dist/img/payments/afterpay-dark.svg +1 -13
  337. package/dist/img/payments/afterpay.svg +1 -13
  338. package/dist/img/payments/airtm-dark.svg +1 -4
  339. package/dist/img/payments/airtm.svg +1 -4
  340. package/dist/img/payments/airwallex-dark.svg +1 -11
  341. package/dist/img/payments/airwallex.svg +1 -11
  342. package/dist/img/payments/alipay-dark.svg +1 -12
  343. package/dist/img/payments/alipay-plus-dark.svg +1 -9
  344. package/dist/img/payments/alipay-plus.svg +1 -9
  345. package/dist/img/payments/alipay.svg +1 -12
  346. package/dist/img/payments/allegro-pay-dark.svg +1 -5
  347. package/dist/img/payments/allegro-pay.svg +1 -5
  348. package/dist/img/payments/amazon-dark.svg +1 -6
  349. package/dist/img/payments/amazon-pay-dark.svg +1 -7
  350. package/dist/img/payments/amazon-pay.svg +1 -7
  351. package/dist/img/payments/amazon.svg +1 -6
  352. package/dist/img/payments/americanexpress-dark.svg +1 -4
  353. package/dist/img/payments/americanexpress.svg +1 -4
  354. package/dist/img/payments/ant-group-dark.svg +1 -6
  355. package/dist/img/payments/ant-group.svg +1 -23
  356. package/dist/img/payments/applepay-dark.svg +1 -8
  357. package/dist/img/payments/applepay.svg +1 -8
  358. package/dist/img/payments/authorize-dark.svg +1 -17
  359. package/dist/img/payments/authorize.svg +1 -17
  360. package/dist/img/payments/autopay-dark.svg +1 -11
  361. package/dist/img/payments/autopay.svg +1 -11
  362. package/dist/img/payments/bancontact-dark.svg +1 -9
  363. package/dist/img/payments/bancontact.svg +1 -9
  364. package/dist/img/payments/bank-of-america-dark.svg +1 -10
  365. package/dist/img/payments/bank-of-america.svg +1 -10
  366. package/dist/img/payments/barclays-dark.svg +1 -11
  367. package/dist/img/payments/barclays.svg +1 -11
  368. package/dist/img/payments/bbva-dark.svg +1 -4
  369. package/dist/img/payments/bbva.svg +1 -4
  370. package/dist/img/payments/binance-dark.svg +1 -4
  371. package/dist/img/payments/binance-usd-dark.svg +1 -11
  372. package/dist/img/payments/binance-usd.svg +1 -11
  373. package/dist/img/payments/binance.svg +1 -4
  374. package/dist/img/payments/bitcoin-dark.svg +1 -13
  375. package/dist/img/payments/bitcoin.svg +1 -12
  376. package/dist/img/payments/bitpay-dark.svg +1 -4
  377. package/dist/img/payments/bitpay.svg +1 -4
  378. package/dist/img/payments/bkash-dark.svg +1 -16
  379. package/dist/img/payments/bkash.svg +1 -16
  380. package/dist/img/payments/blik-dark.svg +1 -5
  381. package/dist/img/payments/blik.svg +1 -12
  382. package/dist/img/payments/bnb-chain-dark.svg +1 -14
  383. package/dist/img/payments/bnb-chain.svg +1 -14
  384. package/dist/img/payments/bnp-paribas-dark.svg +1 -80
  385. package/dist/img/payments/bnp-paribas.svg +1 -80
  386. package/dist/img/payments/braintree-dark.svg +1 -6
  387. package/dist/img/payments/braintree.svg +1 -6
  388. package/dist/img/payments/brex-dark.svg +1 -4
  389. package/dist/img/payments/brex.svg +1 -4
  390. package/dist/img/payments/capital-one-dark.svg +1 -6
  391. package/dist/img/payments/capital-one.svg +1 -6
  392. package/dist/img/payments/cash-app-dark.svg +1 -8
  393. package/dist/img/payments/cash-app.svg +1 -8
  394. package/dist/img/payments/chase-dark.svg +1 -12
  395. package/dist/img/payments/chase.svg +1 -12
  396. package/dist/img/payments/checkout-com-dark.svg +1 -4
  397. package/dist/img/payments/checkout-com.svg +1 -4
  398. package/dist/img/payments/chime-dark.svg +1 -9
  399. package/dist/img/payments/chime.svg +1 -9
  400. package/dist/img/payments/china-construction-bank-dark.svg +1 -36
  401. package/dist/img/payments/china-construction-bank.svg +1 -36
  402. package/dist/img/payments/cirrus-dark.svg +1 -8
  403. package/dist/img/payments/cirrus.svg +1 -8
  404. package/dist/img/payments/citi-dark.svg +1 -8
  405. package/dist/img/payments/citi.svg +1 -8
  406. package/dist/img/payments/coinbase-dark.svg +1 -4
  407. package/dist/img/payments/coinbase.svg +1 -5
  408. package/dist/img/payments/coinkite-dark.svg +1 -6
  409. package/dist/img/payments/coinkite.svg +1 -6
  410. package/dist/img/payments/crypto-com-dark.svg +1 -8
  411. package/dist/img/payments/crypto-com.svg +1 -8
  412. package/dist/img/payments/deutsche-bank-dark.svg +1 -16
  413. package/dist/img/payments/deutsche-bank.svg +1 -16
  414. package/dist/img/payments/dinersclub-dark.svg +1 -7
  415. package/dist/img/payments/dinersclub.svg +1 -7
  416. package/dist/img/payments/directdebit-dark.svg +1 -4
  417. package/dist/img/payments/directdebit.svg +1 -4
  418. package/dist/img/payments/discover-dark.svg +1 -8
  419. package/dist/img/payments/discover.svg +1 -6
  420. package/dist/img/payments/dwolla-dark.svg +1 -5
  421. package/dist/img/payments/dwolla.svg +1 -5
  422. package/dist/img/payments/easypaisa-dark.svg +1 -14
  423. package/dist/img/payments/easypaisa.svg +1 -14
  424. package/dist/img/payments/ebay-dark.svg +1 -7
  425. package/dist/img/payments/ebay.svg +1 -7
  426. package/dist/img/payments/elo-dark.svg +1 -11
  427. package/dist/img/payments/elo.svg +1 -11
  428. package/dist/img/payments/epayco-dark.svg +1 -5
  429. package/dist/img/payments/epayco.svg +1 -5
  430. package/dist/img/payments/esewa-dark.svg +1 -11
  431. package/dist/img/payments/esewa.svg +1 -12
  432. package/dist/img/payments/ethereum-dark.svg +1 -13
  433. package/dist/img/payments/ethereum.svg +1 -18
  434. package/dist/img/payments/eway-dark.svg +1 -6
  435. package/dist/img/payments/eway.svg +1 -6
  436. package/dist/img/payments/fifth-third-bank-dark.svg +1 -7
  437. package/dist/img/payments/fifth-third-bank.svg +1 -7
  438. package/dist/img/payments/fiserv-dark.svg +1 -11
  439. package/dist/img/payments/fiserv.svg +1 -11
  440. package/dist/img/payments/flutterwave-dark.svg +1 -18
  441. package/dist/img/payments/flutterwave.svg +1 -18
  442. package/dist/img/payments/fonepay-dark.svg +1 -10
  443. package/dist/img/payments/fonepay.svg +1 -10
  444. package/dist/img/payments/gcash-dark.svg +1 -7
  445. package/dist/img/payments/gcash.svg +1 -7
  446. package/dist/img/payments/giropay-dark.svg +1 -13
  447. package/dist/img/payments/giropay.svg +1 -25
  448. package/dist/img/payments/goldman-sachs-dark.svg +1 -4
  449. package/dist/img/payments/goldman-sachs.svg +1 -4
  450. package/dist/img/payments/google-pay-dark.svg +1 -10
  451. package/dist/img/payments/google-pay.svg +1 -10
  452. package/dist/img/payments/googlewallet-dark.svg +1 -7
  453. package/dist/img/payments/googlewallet.svg +1 -7
  454. package/dist/img/payments/grabpay-dark.svg +1 -4
  455. package/dist/img/payments/grabpay.svg +1 -4
  456. package/dist/img/payments/hsbc-dark.svg +1 -12
  457. package/dist/img/payments/hsbc.svg +1 -12
  458. package/dist/img/payments/hubspot-dark.svg +1 -5
  459. package/dist/img/payments/hubspot.svg +1 -5
  460. package/dist/img/payments/huntington-bank-dark.svg +1 -5
  461. package/dist/img/payments/huntington-bank.svg +1 -5
  462. package/dist/img/payments/icbc-dark.svg +1 -8
  463. package/dist/img/payments/icbc.svg +1 -8
  464. package/dist/img/payments/ideal-dark.svg +1 -8
  465. package/dist/img/payments/ideal.svg +1 -7
  466. package/dist/img/payments/imepay-dark.svg +1 -11
  467. package/dist/img/payments/imepay.svg +1 -11
  468. package/dist/img/payments/imoje-dark.svg +1 -7
  469. package/dist/img/payments/imoje.svg +1 -8
  470. package/dist/img/payments/ing-dark.svg +1 -145
  471. package/dist/img/payments/ing.svg +1 -145
  472. package/dist/img/payments/ingenico-dark.svg +1 -4
  473. package/dist/img/payments/ingenico.svg +1 -4
  474. package/dist/img/payments/interac-dark.svg +1 -16
  475. package/dist/img/payments/interac.svg +1 -16
  476. package/dist/img/payments/jazzcash-dark.svg +1 -13
  477. package/dist/img/payments/jazzcash.svg +1 -13
  478. package/dist/img/payments/jcb-dark.svg +1 -8
  479. package/dist/img/payments/jcb.svg +1 -41
  480. package/dist/img/payments/khalti-dark.svg +1 -14
  481. package/dist/img/payments/khalti.svg +1 -14
  482. package/dist/img/payments/klarna-dark.svg +1 -11
  483. package/dist/img/payments/klarna.svg +1 -11
  484. package/dist/img/payments/kraken-dark.svg +1 -5
  485. package/dist/img/payments/kraken.svg +1 -5
  486. package/dist/img/payments/linepay-dark.svg +1 -10
  487. package/dist/img/payments/linepay.svg +1 -11
  488. package/dist/img/payments/litecoin-dark.svg +1 -14
  489. package/dist/img/payments/litecoin.svg +1 -14
  490. package/dist/img/payments/mada-dark.svg +1 -11
  491. package/dist/img/payments/mada.svg +1 -11
  492. package/dist/img/payments/maestro-dark.svg +1 -6
  493. package/dist/img/payments/maestro.svg +1 -6
  494. package/dist/img/payments/mastercard-dark.svg +1 -6
  495. package/dist/img/payments/mastercard.svg +1 -6
  496. package/dist/img/payments/mercado-pago-dark.svg +1 -9
  497. package/dist/img/payments/mercado-pago.svg +1 -9
  498. package/dist/img/payments/mercury-dark.svg +1 -4
  499. package/dist/img/payments/mercury.svg +1 -4
  500. package/dist/img/payments/meta-pay-dark.svg +1 -6
  501. package/dist/img/payments/meta-pay.svg +1 -16
  502. package/dist/img/payments/metamask-dark.svg +1 -40
  503. package/dist/img/payments/metamask.svg +1 -40
  504. package/dist/img/payments/mir-dark.svg +1 -4
  505. package/dist/img/payments/mir.svg +1 -11
  506. package/dist/img/payments/mitsubishi-ufj-dark.svg +1 -5
  507. package/dist/img/payments/mitsubishi-ufj.svg +1 -5
  508. package/dist/img/payments/mobilepay-dark.svg +1 -6
  509. package/dist/img/payments/mobilepay.svg +1 -6
  510. package/dist/img/payments/mollie-dark.svg +1 -4
  511. package/dist/img/payments/mollie.svg +1 -4
  512. package/dist/img/payments/monero-dark.svg +1 -5
  513. package/dist/img/payments/monero.svg +1 -5
  514. package/dist/img/payments/moneygram-dark.svg +1 -12
  515. package/dist/img/payments/moneygram.svg +1 -12
  516. package/dist/img/payments/mpesa-dark.svg +1 -5
  517. package/dist/img/payments/mpesa.svg +1 -5
  518. package/dist/img/payments/ncr-dark.svg +1 -9
  519. package/dist/img/payments/ncr.svg +1 -9
  520. package/dist/img/payments/neteller-dark.svg +1 -4
  521. package/dist/img/payments/neteller.svg +1 -4
  522. package/dist/img/payments/northone-dark.svg +1 -5
  523. package/dist/img/payments/northone.svg +1 -5
  524. package/dist/img/payments/nu-dark.svg +1 -5
  525. package/dist/img/payments/nu.svg +1 -5
  526. package/dist/img/payments/nuvei-dark.svg +1 -9
  527. package/dist/img/payments/nuvei.svg +1 -9
  528. package/dist/img/payments/opensea-dark.svg +1 -11
  529. package/dist/img/payments/opensea.svg +1 -11
  530. package/dist/img/payments/oxxo-dark.svg +1 -8
  531. package/dist/img/payments/oxxo.svg +1 -8
  532. package/dist/img/payments/paybox-dark.svg +1 -4
  533. package/dist/img/payments/paybox.svg +1 -4
  534. package/dist/img/payments/payconiq-dark.svg +1 -4
  535. package/dist/img/payments/payconiq.svg +1 -4
  536. package/dist/img/payments/payka-dark.svg +1 -18
  537. package/dist/img/payments/payka.svg +1 -12
  538. package/dist/img/payments/payline-dark.svg +1 -12
  539. package/dist/img/payments/payline.svg +1 -12
  540. package/dist/img/payments/paynow-dark.svg +1 -15
  541. package/dist/img/payments/paynow.svg +1 -15
  542. package/dist/img/payments/payone-dark.svg +1 -7
  543. package/dist/img/payments/payone.svg +1 -7
  544. package/dist/img/payments/payoneer-dark.svg +1 -4
  545. package/dist/img/payments/payoneer.svg +1 -4
  546. package/dist/img/payments/paypal-dark.svg +1 -8
  547. package/dist/img/payments/paypal.svg +1 -8
  548. package/dist/img/payments/paypay-dark.svg +1 -6
  549. package/dist/img/payments/paypay.svg +1 -6
  550. package/dist/img/payments/paypo-dark.svg +1 -11
  551. package/dist/img/payments/paypo.svg +1 -11
  552. package/dist/img/payments/paysafe-dark.svg +1 -6
  553. package/dist/img/payments/paysafe.svg +1 -6
  554. package/dist/img/payments/paysafecard-dark.svg +1 -4
  555. package/dist/img/payments/paysafecard.svg +1 -4
  556. package/dist/img/payments/paystack-dark.svg +1 -5
  557. package/dist/img/payments/paystack.svg +1 -5
  558. package/dist/img/payments/paytm-dark.svg +1 -8
  559. package/dist/img/payments/paytm.svg +1 -8
  560. package/dist/img/payments/payu-dark.svg +1 -4
  561. package/dist/img/payments/payu.svg +1 -4
  562. package/dist/img/payments/phonepe-dark.svg +1 -6
  563. package/dist/img/payments/phonepe.svg +1 -6
  564. package/dist/img/payments/pix-dark.svg +1 -6
  565. package/dist/img/payments/pix.svg +1 -6
  566. package/dist/img/payments/pnc-bank-dark.svg +1 -8
  567. package/dist/img/payments/pnc-bank.svg +1 -8
  568. package/dist/img/payments/poli-dark.svg +1 -8
  569. package/dist/img/payments/poli.svg +1 -8
  570. package/dist/img/payments/przelewy24-dark.svg +1 -18
  571. package/dist/img/payments/przelewy24.svg +1 -8
  572. package/dist/img/payments/rapyd-dark.svg +1 -8
  573. package/dist/img/payments/rapyd.svg +1 -8
  574. package/dist/img/payments/razorpay-dark.svg +1 -5
  575. package/dist/img/payments/razorpay.svg +1 -5
  576. package/dist/img/payments/revolut-pay-dark.svg +1 -8
  577. package/dist/img/payments/revolut-pay.svg +1 -8
  578. package/dist/img/payments/ripple-dark.svg +1 -5
  579. package/dist/img/payments/ripple.svg +1 -5
  580. package/dist/img/payments/rupay-dark.svg +1 -10
  581. package/dist/img/payments/rupay.svg +1 -10
  582. package/dist/img/payments/samsung-pay-dark.svg +1 -13
  583. package/dist/img/payments/samsung-pay.svg +1 -13
  584. package/dist/img/payments/santander-dark.svg +1 -4
  585. package/dist/img/payments/santander.svg +1 -4
  586. package/dist/img/payments/sepa-dark.svg +1 -5
  587. package/dist/img/payments/sepa.svg +1 -5
  588. package/dist/img/payments/shop-pay-dark.svg +1 -4
  589. package/dist/img/payments/shop-pay.svg +1 -4
  590. package/dist/img/payments/shopify-dark.svg +1 -6
  591. package/dist/img/payments/shopify.svg +1 -7
  592. package/dist/img/payments/skrill-dark.svg +1 -10
  593. package/dist/img/payments/skrill.svg +1 -10
  594. package/dist/img/payments/skycash-dark.svg +1 -10
  595. package/dist/img/payments/skycash.svg +1 -10
  596. package/dist/img/payments/sofort-dark.svg +1 -6
  597. package/dist/img/payments/sofort.svg +1 -6
  598. package/dist/img/payments/solana-dark.svg +1 -20
  599. package/dist/img/payments/solana.svg +1 -20
  600. package/dist/img/payments/spingo-dark.svg +1 -11
  601. package/dist/img/payments/spingo.svg +1 -11
  602. package/dist/img/payments/square-dark.svg +1 -4
  603. package/dist/img/payments/square.svg +1 -4
  604. package/dist/img/payments/stax-dark.svg +1 -5
  605. package/dist/img/payments/stax.svg +1 -5
  606. package/dist/img/payments/stcpay-dark.svg +1 -7
  607. package/dist/img/payments/stcpay.svg +1 -7
  608. package/dist/img/payments/stripe-dark.svg +1 -4
  609. package/dist/img/payments/stripe.svg +1 -4
  610. package/dist/img/payments/sumitomo-mitsui-dark.svg +1 -5
  611. package/dist/img/payments/sumitomo-mitsui.svg +1 -5
  612. package/dist/img/payments/swift-dark.svg +1 -4
  613. package/dist/img/payments/swift.svg +1 -4
  614. package/dist/img/payments/swish-dark.svg +1 -32
  615. package/dist/img/payments/swish.svg +1 -32
  616. package/dist/img/payments/synchrony-dark.svg +1 -5
  617. package/dist/img/payments/synchrony.svg +1 -5
  618. package/dist/img/payments/tether-dark.svg +1 -11
  619. package/dist/img/payments/tether.svg +1 -11
  620. package/dist/img/payments/tpay-dark.svg +1 -10
  621. package/dist/img/payments/tpay.svg +1 -4
  622. package/dist/img/payments/troy-dark.svg +1 -7
  623. package/dist/img/payments/troy.svg +1 -7
  624. package/dist/img/payments/true-usd-dark.svg +1 -5
  625. package/dist/img/payments/true-usd.svg +1 -7
  626. package/dist/img/payments/trustly-dark.svg +1 -11
  627. package/dist/img/payments/trustly.svg +1 -11
  628. package/dist/img/payments/twint-dark.svg +1 -29
  629. package/dist/img/payments/twint.svg +1 -29
  630. package/dist/img/payments/ubs-dark.svg +1 -5
  631. package/dist/img/payments/ubs.svg +1 -5
  632. package/dist/img/payments/unionpay-dark.svg +1 -6
  633. package/dist/img/payments/unionpay.svg +1 -7
  634. package/dist/img/payments/upi-dark.svg +1 -8
  635. package/dist/img/payments/upi.svg +1 -8
  636. package/dist/img/payments/us-bank-dark.svg +1 -13
  637. package/dist/img/payments/us-bank.svg +1 -13
  638. package/dist/img/payments/usdc-dark.svg +1 -4
  639. package/dist/img/payments/usdc.svg +1 -4
  640. package/dist/img/payments/venmo-dark.svg +1 -4
  641. package/dist/img/payments/venmo.svg +1 -4
  642. package/dist/img/payments/verifone-dark.svg +1 -5
  643. package/dist/img/payments/verifone.svg +1 -5
  644. package/dist/img/payments/vipps-dark.svg +1 -8
  645. package/dist/img/payments/vipps.svg +1 -8
  646. package/dist/img/payments/visa-dark.svg +1 -4
  647. package/dist/img/payments/visa.svg +1 -4
  648. package/dist/img/payments/we-chat-pay-dark.svg +1 -4
  649. package/dist/img/payments/we-chat-pay.svg +1 -4
  650. package/dist/img/payments/webmoney-dark.svg +1 -5
  651. package/dist/img/payments/webmoney.svg +1 -5
  652. package/dist/img/payments/wells-fargo-dark.svg +1 -4
  653. package/dist/img/payments/wells-fargo.svg +1 -4
  654. package/dist/img/payments/westernunion-dark.svg +1 -18
  655. package/dist/img/payments/westernunion.svg +1 -18
  656. package/dist/img/payments/wire-transfer-dark.svg +1 -32
  657. package/dist/img/payments/wire-transfer.svg +1 -32
  658. package/dist/img/payments/wise-dark.svg +1 -4
  659. package/dist/img/payments/wise.svg +1 -4
  660. package/dist/img/payments/worldpay-dark.svg +1 -4
  661. package/dist/img/payments/worldpay.svg +1 -5
  662. package/dist/img/payments/zelle-dark.svg +1 -9
  663. package/dist/img/payments/zelle.svg +1 -8
  664. package/dist/img/social/apple-gray.svg +1 -3
  665. package/dist/img/social/apple.svg +1 -3
  666. package/dist/img/social/discord-gray.svg +1 -3
  667. package/dist/img/social/discord.svg +1 -3
  668. package/dist/img/social/dribbble-gray.svg +1 -3
  669. package/dist/img/social/dribbble.svg +1 -4
  670. package/dist/img/social/facebook-gray.svg +1 -3
  671. package/dist/img/social/facebook.svg +1 -4
  672. package/dist/img/social/figma-gray.svg +1 -3
  673. package/dist/img/social/figma.svg +1 -7
  674. package/dist/img/social/github-gray.svg +1 -10
  675. package/dist/img/social/github.svg +1 -10
  676. package/dist/img/social/google-gray.svg +1 -3
  677. package/dist/img/social/google.svg +1 -6
  678. package/dist/img/social/instagram-gray.svg +1 -5
  679. package/dist/img/social/instagram.svg +1 -18
  680. package/dist/img/social/linkedin-gray.svg +1 -3
  681. package/dist/img/social/linkedin.svg +1 -3
  682. package/dist/img/social/medium-gray.svg +1 -5
  683. package/dist/img/social/medium.svg +1 -5
  684. package/dist/img/social/meta-gray.svg +1 -5
  685. package/dist/img/social/meta.svg +1 -17
  686. package/dist/img/social/metamask-gray.svg +1 -12
  687. package/dist/img/social/metamask.svg +1 -14
  688. package/dist/img/social/pinterest-gray.svg +1 -3
  689. package/dist/img/social/pinterest.svg +1 -4
  690. package/dist/img/social/reddit-gray.svg +1 -6
  691. package/dist/img/social/reddit.svg +1 -11
  692. package/dist/img/social/signal-gray.svg +1 -10
  693. package/dist/img/social/signal.svg +1 -10
  694. package/dist/img/social/skype-gray.svg +1 -3
  695. package/dist/img/social/skype.svg +1 -3
  696. package/dist/img/social/snapchat-gray.svg +1 -10
  697. package/dist/img/social/snapchat.svg +1 -11
  698. package/dist/img/social/spotify-gray.svg +1 -3
  699. package/dist/img/social/spotify.svg +1 -3
  700. package/dist/img/social/telegram-gray.svg +1 -3
  701. package/dist/img/social/telegram.svg +1 -10
  702. package/dist/img/social/tiktok-gray.svg +1 -3
  703. package/dist/img/social/tiktok.svg +1 -5
  704. package/dist/img/social/tumblr-gray.svg +1 -3
  705. package/dist/img/social/tumblr.svg +1 -3
  706. package/dist/img/social/twitch-gray.svg +1 -5
  707. package/dist/img/social/twitch.svg +1 -6
  708. package/dist/img/social/vk-gray.svg +1 -3
  709. package/dist/img/social/vk.svg +1 -4
  710. package/dist/img/social/x-gray.svg +1 -3
  711. package/dist/img/social/x.svg +1 -3
  712. package/dist/img/social/youtube-gray.svg +1 -3
  713. package/dist/img/social/youtube.svg +1 -11
  714. package/dist/js/tabler-theme.esm.js +26 -9
  715. package/dist/js/tabler-theme.esm.js.map +1 -1
  716. package/dist/js/tabler-theme.esm.min.js +2 -2
  717. package/dist/js/tabler-theme.esm.min.js.map +1 -1
  718. package/dist/js/tabler-theme.js +26 -9
  719. package/dist/js/tabler-theme.js.map +1 -1
  720. package/dist/js/tabler-theme.min.js +2 -2
  721. package/dist/js/tabler-theme.min.js.map +1 -1
  722. package/dist/js/tabler.esm.js +6683 -4069
  723. package/dist/js/tabler.esm.js.map +1 -1
  724. package/dist/js/tabler.esm.min.js +2 -2
  725. package/dist/js/tabler.esm.min.js.map +1 -1
  726. package/dist/js/tabler.js +6694 -4069
  727. package/dist/js/tabler.js.map +1 -1
  728. package/dist/js/tabler.min.js +2 -2
  729. package/dist/js/tabler.min.js.map +1 -1
  730. package/dist/libs/vanilla-calendar-pro/LICENSE +21 -0
  731. package/dist/libs/vanilla-calendar-pro/index.js +2 -0
  732. package/dist/types/src/autosize.d.ts +32 -1
  733. package/dist/types/src/bootstrap/alert.d.ts +2 -0
  734. package/dist/types/src/bootstrap/button.d.ts +3 -0
  735. package/dist/types/src/bootstrap/carousel.d.ts +16 -3
  736. package/dist/types/src/bootstrap/collapse.d.ts +13 -3
  737. package/dist/types/src/bootstrap/dom/event-handler.d.ts +7 -4
  738. package/dist/types/src/bootstrap/dropdown.d.ts +30 -7
  739. package/dist/types/src/bootstrap/modal.d.ts +12 -8
  740. package/dist/types/src/bootstrap/offcanvas.d.ts +12 -8
  741. package/dist/types/src/bootstrap/popover.d.ts +13 -9
  742. package/dist/types/src/bootstrap/scrollspy.d.ts +17 -3
  743. package/dist/types/src/bootstrap/tab.d.ts +2 -0
  744. package/dist/types/src/bootstrap/toast.d.ts +12 -3
  745. package/dist/types/src/bootstrap/tooltip.d.ts +57 -19
  746. package/dist/types/src/bootstrap/types.d.ts +25 -1
  747. package/dist/types/src/bootstrap/util/backdrop.d.ts +2 -2
  748. package/dist/types/src/bootstrap/util/component-functions.d.ts +22 -2
  749. package/dist/types/src/bootstrap/util/focustrap.d.ts +2 -2
  750. package/dist/types/src/bootstrap/util/index.d.ts +5 -1
  751. package/dist/types/src/bootstrap/util/swipe.d.ts +2 -2
  752. package/dist/types/src/bootstrap/util/template-factory.d.ts +2 -2
  753. package/dist/types/src/clipboard.d.ts +48 -0
  754. package/dist/types/src/confetti.d.ts +60 -0
  755. package/dist/types/src/countup.d.ts +66 -1
  756. package/dist/types/src/datepicker.d.ts +120 -0
  757. package/dist/types/src/deprecated.d.ts +11 -0
  758. package/dist/types/src/input-mask.d.ts +43 -1
  759. package/dist/types/src/otp-input.d.ts +75 -0
  760. package/dist/types/src/sortable.d.ts +41 -1
  761. package/dist/types/src/sparkline.d.ts +67 -0
  762. package/dist/types/src/strength.d.ts +53 -0
  763. package/dist/types/src/switch-icon.d.ts +32 -1
  764. package/dist/types/src/theme-config.d.ts +3 -1
  765. package/dist/types/tabler.d.ts +18 -1
  766. package/js/src/autosize.ts +141 -7
  767. package/js/src/bootstrap/alert.ts +20 -0
  768. package/js/src/bootstrap/base-component.ts +13 -3
  769. package/js/src/bootstrap/button.ts +16 -0
  770. package/js/src/bootstrap/carousel.ts +42 -7
  771. package/js/src/bootstrap/collapse.ts +38 -6
  772. package/js/src/bootstrap/dom/event-handler.ts +50 -16
  773. package/js/src/bootstrap/dom/manipulator.ts +1 -1
  774. package/js/src/bootstrap/dropdown.ts +64 -23
  775. package/js/src/bootstrap/modal.ts +39 -14
  776. package/js/src/bootstrap/offcanvas.ts +36 -11
  777. package/js/src/bootstrap/popover.ts +35 -9
  778. package/js/src/bootstrap/scrollspy.ts +38 -7
  779. package/js/src/bootstrap/tab.ts +20 -1
  780. package/js/src/bootstrap/toast.ts +31 -5
  781. package/js/src/bootstrap/tooltip.ts +109 -53
  782. package/js/src/bootstrap/types.ts +30 -1
  783. package/js/src/bootstrap/util/backdrop.ts +1 -1
  784. package/js/src/bootstrap/util/component-functions.ts +74 -5
  785. package/js/src/bootstrap/util/focustrap.ts +2 -2
  786. package/js/src/bootstrap/util/index.ts +59 -2
  787. package/js/src/bootstrap/util/swipe.ts +3 -3
  788. package/js/src/bootstrap/util/template-factory.ts +2 -2
  789. package/js/src/clipboard.ts +221 -0
  790. package/js/src/confetti.ts +474 -0
  791. package/js/src/countup.ts +353 -29
  792. package/js/src/datepicker.ts +791 -0
  793. package/js/src/deprecated.ts +28 -0
  794. package/js/src/dropdown.ts +12 -5
  795. package/js/src/global.d.ts +14 -13
  796. package/js/src/input-mask.ts +128 -8
  797. package/js/src/otp-input.ts +519 -0
  798. package/js/src/popover.ts +13 -7
  799. package/js/src/sidebar.ts +14 -6
  800. package/js/src/sortable.ts +120 -15
  801. package/js/src/sparkline.ts +618 -0
  802. package/js/src/strength.ts +290 -0
  803. package/js/src/switch-icon.ts +180 -9
  804. package/js/src/tab.ts +17 -7
  805. package/js/src/theme-config.ts +3 -1
  806. package/js/src/toast.ts +19 -11
  807. package/js/src/tooltip.ts +16 -7
  808. package/js/tabler-theme.ts +30 -8
  809. package/js/tabler.ts +21 -2
  810. package/libs.json +45 -109
  811. package/package.json +40 -29
  812. package/scss/_config.scss +1 -0
  813. package/scss/_core.scss +6 -0
  814. package/scss/_deprecated-props.scss +40 -0
  815. package/scss/_deprecated.scss +153 -0
  816. package/scss/_extends.scss +6 -1
  817. package/scss/_maps.scss +10 -11
  818. package/scss/_mixins.scss +1 -0
  819. package/scss/_props.scss +40 -6
  820. package/scss/_settings.scss +3 -1
  821. package/scss/_utilities-marketing.scss +1 -2
  822. package/scss/_utilities.scss +62 -24
  823. package/scss/_variables-dark.scss +31 -42
  824. package/scss/_variables-deprecated.scss +60 -0
  825. package/scss/_variables.scss +252 -189
  826. package/scss/bootstrap/_buttons.scss +6 -33
  827. package/scss/bootstrap/_carousel.scss +6 -7
  828. package/scss/bootstrap/_list-group.scss +28 -14
  829. package/scss/bootstrap/_nav.scss +2 -2
  830. package/scss/bootstrap/_navbar.scss +6 -7
  831. package/scss/bootstrap/_offcanvas.scss +2 -0
  832. package/scss/bootstrap/_pagination.scss +7 -3
  833. package/scss/bootstrap/_reboot.scss +3 -3
  834. package/scss/bootstrap/_root.scss +10 -33
  835. package/scss/bootstrap/_tables.scss +7 -2
  836. package/scss/bootstrap/forms/_floating-labels.scss +1 -1
  837. package/scss/bootstrap/forms/_form-check.scss +54 -42
  838. package/scss/bootstrap/forms/_form-control.scss +4 -8
  839. package/scss/bootstrap/forms/_form-range.scss +4 -2
  840. package/scss/bootstrap/forms/_form-select.scss +4 -7
  841. package/scss/helpers/_index.scss +11 -4
  842. package/scss/layout/_accessibility.scss +2 -1
  843. package/scss/layout/_core.scss +0 -8
  844. package/scss/layout/_navbar.scss +130 -46
  845. package/scss/layout/_page.scss +15 -2
  846. package/scss/layout/_root.scss +4 -3
  847. package/scss/marketing/_hero.scss +0 -11
  848. package/scss/mixins/_deprecated.scss +110 -0
  849. package/scss/mixins/_functions.scss +67 -113
  850. package/scss/mixins/_mixins.scss +41 -8
  851. package/scss/mixins/bootstrap/_caret.scss +7 -6
  852. package/scss/mixins/bootstrap/_color-mode.scss +6 -0
  853. package/scss/mixins/bootstrap/_forms.scss +10 -11
  854. package/scss/mixins/bootstrap/_gradients.scss +1 -1
  855. package/scss/mixins/bootstrap/_table-variants.scss +4 -5
  856. package/scss/tabler-props.scss +5 -0
  857. package/scss/tabler-themes.scss +67 -66
  858. package/scss/tabler-vendors.scss +3 -1
  859. package/scss/tabler.scss +2 -0
  860. package/scss/ui/_accordion.scss +24 -31
  861. package/scss/ui/_alerts.scss +29 -8
  862. package/scss/ui/_avatars.scss +3 -1
  863. package/scss/ui/_badges.scss +2 -0
  864. package/scss/ui/_breadcrumbs.scss +2 -0
  865. package/scss/ui/_buttons.scss +83 -58
  866. package/scss/ui/_calendars.scss +4 -5
  867. package/scss/ui/_cards.scss +46 -29
  868. package/scss/ui/_carousel.scss +1 -1
  869. package/scss/ui/_chat.scss +2 -0
  870. package/scss/ui/_close.scss +5 -2
  871. package/scss/ui/_datagrid.scss +2 -0
  872. package/scss/ui/_datepicker.scss +425 -0
  873. package/scss/ui/_dropdowns.scss +5 -1
  874. package/scss/ui/_empty.scss +2 -0
  875. package/scss/ui/_forms.scss +33 -47
  876. package/scss/ui/_icons.scss +2 -0
  877. package/scss/ui/_legend.scss +145 -2
  878. package/scss/ui/_lists.scss +3 -3
  879. package/scss/ui/_markdown.scss +1 -0
  880. package/scss/ui/_modals.scss +20 -1
  881. package/scss/ui/_nav.scss +3 -3
  882. package/scss/ui/_offcanvas.scss +47 -0
  883. package/scss/ui/_patterns.scss +39 -18
  884. package/scss/ui/_progress.scss +5 -2
  885. package/scss/ui/_ribbons.scss +6 -2
  886. package/scss/ui/_segmented.scss +1 -1
  887. package/scss/ui/_signal.scss +57 -0
  888. package/scss/ui/_sortable.scss +73 -0
  889. package/scss/ui/_sparkline.scss +73 -0
  890. package/scss/ui/_stars.scss +2 -0
  891. package/scss/ui/_status.scss +2 -2
  892. package/scss/ui/_steps.scss +2 -0
  893. package/scss/ui/_switch-icon.scss +67 -11
  894. package/scss/ui/_tables.scss +3 -3
  895. package/scss/ui/_tags.scss +2 -0
  896. package/scss/ui/_timeline.scss +2 -0
  897. package/scss/ui/_tracking.scss +2 -0
  898. package/scss/ui/_type.scss +12 -4
  899. package/scss/ui/forms/_form-check.scss +10 -2
  900. package/scss/ui/forms/_form-colorinput.scss +4 -3
  901. package/scss/ui/forms/_form-custom.scss +0 -13
  902. package/scss/ui/forms/_form-imagecheck.scss +4 -3
  903. package/scss/ui/forms/_form-otp.scss +171 -0
  904. package/scss/ui/forms/_form-selectgroup.scss +7 -7
  905. package/scss/ui/forms/_strength.scss +63 -0
  906. package/scss/ui/forms/_validation.scss +5 -0
  907. package/scss/utils/_background.scss +2 -2
  908. package/scss/utils/_colors.scss +17 -14
  909. package/scss/vendor/_apexcharts.scss +10 -1
  910. package/scss/vendor/_coloris.scss +10 -3
  911. package/scss/vendor/_fslightbox.scss +2 -2
  912. package/scss/vendor/_jsvectormap.scss +1 -1
  913. package/scss/vendor/_nouislider.scss +2 -1
  914. package/scss/vendor/_tom-select.scss +84 -7
  915. package/dist/types/src/tabler.d.ts +0 -3
  916. package/js/src/tabler.ts +0 -17
  917. package/js/tests/helpers/fixture.ts +0 -33
  918. package/js/tests/unit/alert.spec.ts +0 -176
  919. package/js/tests/unit/base-component.spec.ts +0 -166
  920. package/js/tests/unit/button.spec.ts +0 -167
  921. package/js/tests/unit/carousel.spec.ts +0 -546
  922. package/js/tests/unit/collapse.spec.ts +0 -791
  923. package/js/tests/unit/dom/data.spec.ts +0 -180
  924. package/js/tests/unit/dom/event-handler.spec.ts +0 -460
  925. package/js/tests/unit/dom/manipulator.spec.ts +0 -201
  926. package/js/tests/unit/dom/selector-engine.spec.ts +0 -300
  927. package/js/tests/unit/dropdown.spec.ts +0 -1095
  928. package/js/tests/unit/modal.spec.ts +0 -629
  929. package/js/tests/unit/offcanvas.spec.ts +0 -434
  930. package/js/tests/unit/popover.spec.ts +0 -253
  931. package/js/tests/unit/scrollspy.spec.ts +0 -634
  932. package/js/tests/unit/sidebar.spec.ts +0 -118
  933. package/js/tests/unit/tab.spec.ts +0 -775
  934. package/js/tests/unit/tabler-theme.spec.ts +0 -100
  935. package/js/tests/unit/toast.spec.ts +0 -514
  936. package/js/tests/unit/tooltip.spec.ts +0 -679
  937. package/js/tests/unit/util/backdrop.spec.ts +0 -213
  938. package/js/tests/unit/util/component-functions.spec.ts +0 -88
  939. package/js/tests/unit/util/config.spec.ts +0 -150
  940. package/js/tests/unit/util/focustrap.spec.ts +0 -232
  941. package/js/tests/unit/util/index.spec.ts +0 -478
  942. package/js/tests/unit/util/sanitizer.spec.ts +0 -118
  943. package/js/tests/unit/util/scrollbar.spec.ts +0 -202
  944. package/js/tests/unit/util/swipe.spec.ts +0 -319
  945. package/js/tests/unit/util/template-factory.spec.ts +0 -233
  946. package/scss/tests/_add-subtract.test.scss +0 -48
  947. package/scss/tests/_border-radius.test.scss +0 -23
  948. package/scss/tests/_box-shadow.test.scss +0 -71
  949. package/scss/tests/_breakpoints.test.scss +0 -50
  950. package/scss/tests/_cards.test.scss +0 -31
  951. package/scss/tests/_caret.test.scss +0 -115
  952. package/scss/tests/_color-contrast.test.scss +0 -24
  953. package/scss/tests/_color-mode.test.scss +0 -28
  954. package/scss/tests/_color.test.scss +0 -44
  955. package/scss/tests/_colors-misc.test.scss +0 -80
  956. package/scss/tests/_css-var.test.scss +0 -37
  957. package/scss/tests/_divide.test.scss +0 -45
  958. package/scss/tests/_escape-svg.test.scss +0 -18
  959. package/scss/tests/_generate-utility.test.scss +0 -245
  960. package/scss/tests/_grid.test.scss +0 -153
  961. package/scss/tests/_maps.test.scss +0 -76
  962. package/scss/tests/_media-breakpoint.test.scss +0 -202
  963. package/scss/tests/_mixins-bootstrap.test.scss +0 -55
  964. package/scss/tests/_mixins.test.scss +0 -208
  965. package/scss/tests/_rfs.test.scss +0 -30
  966. package/scss/tests/_str-replace.test.scss +0 -34
  967. package/scss/tests/_transition.test.scss +0 -43
@@ -1,201 +0,0 @@
1
- import { describe, it, expect, beforeAll, beforeEach, afterEach } from 'vitest'
2
- import Manipulator from '../../../src/bootstrap/dom/manipulator'
3
- import { clearFixture, getFixture } from '../../helpers/fixture'
4
-
5
- describe('Manipulator', () => {
6
- let fixtureEl: HTMLElement
7
- let div: HTMLElement
8
-
9
- beforeAll(() => {
10
- fixtureEl = getFixture()
11
- })
12
-
13
- beforeEach(() => {
14
- fixtureEl.innerHTML = '<div></div>'
15
- div = fixtureEl.querySelector('div')!
16
- })
17
-
18
- afterEach(() => {
19
- clearFixture()
20
- })
21
-
22
- describe('setDataAttribute', () => {
23
- it('should set a data-tblr-* attribute', () => {
24
- Manipulator.setDataAttribute(div, 'key', 'value')
25
-
26
- expect(div.getAttribute('data-tblr-key')).toBe('value')
27
- })
28
-
29
- it('should convert camelCase keys to kebab-case', () => {
30
- Manipulator.setDataAttribute(div, 'testKey', '123')
31
-
32
- expect(div.getAttribute('data-tblr-test-key')).toBe('123')
33
- })
34
-
35
- it('should overwrite existing value', () => {
36
- Manipulator.setDataAttribute(div, 'key', 'old')
37
- Manipulator.setDataAttribute(div, 'key', 'new')
38
-
39
- expect(div.getAttribute('data-tblr-key')).toBe('new')
40
- })
41
- })
42
-
43
- describe('removeDataAttribute', () => {
44
- it('should remove data-tblr-* attribute', () => {
45
- div.setAttribute('data-tblr-key', 'value')
46
- Manipulator.removeDataAttribute(div, 'key')
47
-
48
- expect(div.getAttribute('data-tblr-key')).toBeNull()
49
- })
50
-
51
- it('should remove data-bs-* attribute', () => {
52
- div.setAttribute('data-bs-key', 'value')
53
- Manipulator.removeDataAttribute(div, 'key')
54
-
55
- expect(div.getAttribute('data-bs-key')).toBeNull()
56
- })
57
-
58
- it('should remove both prefixes at once', () => {
59
- div.setAttribute('data-tblr-key', 'a')
60
- div.setAttribute('data-bs-key', 'b')
61
- Manipulator.removeDataAttribute(div, 'key')
62
-
63
- expect(div.getAttribute('data-tblr-key')).toBeNull()
64
- expect(div.getAttribute('data-bs-key')).toBeNull()
65
- })
66
-
67
- it('should handle camelCase keys', () => {
68
- div.setAttribute('data-tblr-some-thing', 'x')
69
- Manipulator.removeDataAttribute(div, 'someThing')
70
-
71
- expect(div.getAttribute('data-tblr-some-thing')).toBeNull()
72
- })
73
- })
74
-
75
- describe('getDataAttribute', () => {
76
- it('should prioritize data-tblr-* over data-bs-*', () => {
77
- div.setAttribute('data-tblr-key', 'tblr-value')
78
- div.setAttribute('data-bs-key', 'bs-value')
79
-
80
- expect(Manipulator.getDataAttribute(div, 'key')).toBe('tblr-value')
81
- })
82
-
83
- it('should fall back to data-bs-* if data-tblr-* is absent', () => {
84
- div.setAttribute('data-bs-key', 'bs-value')
85
-
86
- expect(Manipulator.getDataAttribute(div, 'key')).toBe('bs-value')
87
- })
88
-
89
- it('should return null if neither prefix exists', () => {
90
- expect(Manipulator.getDataAttribute(div, 'missing')).toBeNull()
91
- })
92
-
93
- it('should normalize "true" to boolean true', () => {
94
- div.setAttribute('data-tblr-flag', 'true')
95
-
96
- expect(Manipulator.getDataAttribute(div, 'flag')).toBe(true)
97
- })
98
-
99
- it('should normalize "false" to boolean false', () => {
100
- div.setAttribute('data-tblr-flag', 'false')
101
-
102
- expect(Manipulator.getDataAttribute(div, 'flag')).toBe(false)
103
- })
104
-
105
- it('should normalize numeric strings to numbers', () => {
106
- div.setAttribute('data-tblr-count', '42')
107
-
108
- expect(Manipulator.getDataAttribute(div, 'count')).toBe(42)
109
- })
110
-
111
- it('should normalize "null" to null', () => {
112
- div.setAttribute('data-tblr-val', 'null')
113
-
114
- expect(Manipulator.getDataAttribute(div, 'val')).toBeNull()
115
- })
116
-
117
- it('should normalize empty string to null', () => {
118
- div.setAttribute('data-tblr-val', '')
119
-
120
- expect(Manipulator.getDataAttribute(div, 'val')).toBeNull()
121
- })
122
-
123
- it('should parse JSON-encoded values', () => {
124
- div.setAttribute('data-tblr-obj', '{"a":1}')
125
-
126
- expect(Manipulator.getDataAttribute(div, 'obj')).toEqual({ a: 1 })
127
- })
128
-
129
- it('should return raw string for non-parseable values', () => {
130
- div.setAttribute('data-tblr-val', 'hello world')
131
-
132
- expect(Manipulator.getDataAttribute(div, 'val')).toBe('hello world')
133
- })
134
-
135
- it('should handle camelCase key lookup', () => {
136
- div.setAttribute('data-tblr-my-key', 'yes')
137
-
138
- expect(Manipulator.getDataAttribute(div, 'myKey')).toBe('yes')
139
- })
140
- })
141
-
142
- describe('getDataAttributes', () => {
143
- it('should return empty object for null element', () => {
144
- expect(Manipulator.getDataAttributes(null)).toEqual({})
145
- })
146
-
147
- it('should return empty object when no data attributes exist', () => {
148
- expect(Manipulator.getDataAttributes(div)).toEqual({})
149
- })
150
-
151
- it('should collect data-tblr-* attributes', () => {
152
- div.setAttribute('data-tblr-name', 'test')
153
- div.setAttribute('data-tblr-count', '5')
154
-
155
- const attrs = Manipulator.getDataAttributes(div)
156
-
157
- expect(attrs.name).toBe('test')
158
- expect(attrs.count).toBe(5)
159
- })
160
-
161
- it('should collect data-bs-* attributes', () => {
162
- div.setAttribute('data-bs-toggle', 'modal')
163
-
164
- const attrs = Manipulator.getDataAttributes(div)
165
-
166
- expect(attrs.toggle).toBe('modal')
167
- })
168
-
169
- it('should prioritize tblr over bs for the same key', () => {
170
- div.setAttribute('data-tblr-key', 'tblr')
171
- div.setAttribute('data-bs-key', 'bs')
172
-
173
- const attrs = Manipulator.getDataAttributes(div)
174
-
175
- expect(attrs.key).toBe('tblr')
176
- })
177
-
178
- it('should exclude *Config attributes', () => {
179
- div.setAttribute('data-tblr-config', '{}')
180
- div.setAttribute('data-bs-config', '{}')
181
- div.setAttribute('data-tblr-name', 'hello')
182
-
183
- const attrs = Manipulator.getDataAttributes(div)
184
-
185
- expect(attrs.name).toBe('hello')
186
- expect('config' in attrs).toBe(false)
187
- })
188
-
189
- it('should normalize all values', () => {
190
- div.setAttribute('data-tblr-flag', 'true')
191
- div.setAttribute('data-tblr-num', '10')
192
- div.setAttribute('data-tblr-nil', 'null')
193
-
194
- const attrs = Manipulator.getDataAttributes(div)
195
-
196
- expect(attrs.flag).toBe(true)
197
- expect(attrs.num).toBe(10)
198
- expect(attrs.nil).toBeNull()
199
- })
200
- })
201
- })
@@ -1,300 +0,0 @@
1
- import { describe, it, expect, beforeAll, beforeEach, afterEach, vi } from 'vitest'
2
- import SelectorEngine from '../../../src/bootstrap/dom/selector-engine'
3
- import { clearFixture, getFixture } from '../../helpers/fixture'
4
-
5
- vi.mock('../../../src/bootstrap/util/index', async (importOriginal) => {
6
- const actual = await importOriginal<typeof import('../../../src/bootstrap/util/index')>()
7
- return {
8
- ...actual,
9
- isVisible: () => true,
10
- }
11
- })
12
-
13
- describe('SelectorEngine', () => {
14
- let fixtureEl: HTMLElement
15
-
16
- beforeAll(() => {
17
- fixtureEl = getFixture()
18
- })
19
-
20
- afterEach(() => {
21
- clearFixture()
22
- })
23
-
24
- describe('find', () => {
25
- beforeEach(() => {
26
- fixtureEl.innerHTML = '<div><span class="a"></span><span class="b"></span></div>'
27
- })
28
-
29
- it('should return an array of matched elements', () => {
30
- const result = SelectorEngine.find('span', fixtureEl)
31
-
32
- expect(result).toHaveLength(2)
33
- expect(result[0].classList.contains('a')).toBe(true)
34
- expect(result[1].classList.contains('b')).toBe(true)
35
- })
36
-
37
- it('should return an empty array when nothing matches', () => {
38
- expect(SelectorEngine.find('.missing', fixtureEl)).toEqual([])
39
- })
40
-
41
- it('should default to document.documentElement', () => {
42
- const result = SelectorEngine.find(`#${fixtureEl.id} span`)
43
-
44
- expect(result).toHaveLength(2)
45
- })
46
- })
47
-
48
- describe('findOne', () => {
49
- beforeEach(() => {
50
- fixtureEl.innerHTML = '<div><span class="first"></span><span class="second"></span></div>'
51
- })
52
-
53
- it('should return the first matched element', () => {
54
- const result = SelectorEngine.findOne('span', fixtureEl)
55
-
56
- expect(result).not.toBeNull()
57
- expect(result!.classList.contains('first')).toBe(true)
58
- })
59
-
60
- it('should return null when nothing matches', () => {
61
- expect(SelectorEngine.findOne('.missing', fixtureEl)).toBeNull()
62
- })
63
- })
64
-
65
- describe('children', () => {
66
- beforeEach(() => {
67
- fixtureEl.innerHTML = '<div><span class="match"></span><p></p><span class="match"></span></div>'
68
- })
69
-
70
- it('should return only direct children matching the selector', () => {
71
- const parent = fixtureEl.querySelector('div')!
72
- const result = SelectorEngine.children(parent, 'span')
73
-
74
- expect(result).toHaveLength(2)
75
- result.forEach((el) => expect(el.tagName).toBe('SPAN'))
76
- })
77
-
78
- it('should return an empty array when no children match', () => {
79
- const parent = fixtureEl.querySelector('div')!
80
-
81
- expect(SelectorEngine.children(parent, 'button')).toEqual([])
82
- })
83
- })
84
-
85
- describe('parents', () => {
86
- beforeEach(() => {
87
- fixtureEl.innerHTML = '<div class="outer"><div class="inner"><span id="target"></span></div></div>'
88
- })
89
-
90
- it('should return all ancestor elements matching the selector', () => {
91
- const target = fixtureEl.querySelector('#target')!
92
- const result = SelectorEngine.parents(target as HTMLElement, 'div')
93
-
94
- expect(result.length).toBeGreaterThanOrEqual(2)
95
- expect(result[0].classList.contains('inner')).toBe(true)
96
- expect(result[1].classList.contains('outer')).toBe(true)
97
- })
98
-
99
- it('should return an empty array when no ancestors match', () => {
100
- const target = fixtureEl.querySelector('#target')!
101
-
102
- expect(SelectorEngine.parents(target as HTMLElement, 'table')).toEqual([])
103
- })
104
- })
105
-
106
- describe('prev', () => {
107
- beforeEach(() => {
108
- fixtureEl.innerHTML = '<div><span class="a"></span><p class="b"></p><span class="c"></span></div>'
109
- })
110
-
111
- it('should return the previous sibling matching the selector', () => {
112
- const el = fixtureEl.querySelector('.c')! as HTMLElement
113
- const result = SelectorEngine.prev(el, 'span')
114
-
115
- expect(result).toHaveLength(1)
116
- expect(result[0].classList.contains('a')).toBe(true)
117
- })
118
-
119
- it('should return an empty array if no previous sibling matches', () => {
120
- const el = fixtureEl.querySelector('.a')! as HTMLElement
121
-
122
- expect(SelectorEngine.prev(el, 'button')).toEqual([])
123
- })
124
-
125
- it('should skip non-matching siblings', () => {
126
- const el = fixtureEl.querySelector('.c')! as HTMLElement
127
- const result = SelectorEngine.prev(el, 'p')
128
-
129
- expect(result).toHaveLength(1)
130
- expect(result[0].classList.contains('b')).toBe(true)
131
- })
132
- })
133
-
134
- describe('next', () => {
135
- beforeEach(() => {
136
- fixtureEl.innerHTML = '<div><span class="a"></span><p class="b"></p><span class="c"></span></div>'
137
- })
138
-
139
- it('should return the next sibling matching the selector', () => {
140
- const el = fixtureEl.querySelector('.a')! as HTMLElement
141
- const result = SelectorEngine.next(el, 'span')
142
-
143
- expect(result).toHaveLength(1)
144
- expect(result[0].classList.contains('c')).toBe(true)
145
- })
146
-
147
- it('should return an empty array if no next sibling matches', () => {
148
- const el = fixtureEl.querySelector('.c')! as HTMLElement
149
-
150
- expect(SelectorEngine.next(el, 'button')).toEqual([])
151
- })
152
-
153
- it('should skip non-matching siblings', () => {
154
- const el = fixtureEl.querySelector('.a')! as HTMLElement
155
- const result = SelectorEngine.next(el, 'p')
156
-
157
- expect(result).toHaveLength(1)
158
- expect(result[0].classList.contains('b')).toBe(true)
159
- })
160
- })
161
-
162
- describe('focusableChildren', () => {
163
- it('should return focusable children', () => {
164
- fixtureEl.innerHTML = '<div><button>OK</button><input type="text"><span>text</span></div>'
165
- const parent = fixtureEl.querySelector('div')!
166
-
167
- const result = SelectorEngine.focusableChildren(parent)
168
-
169
- expect(result.length).toBeGreaterThanOrEqual(1)
170
- const tags = result.map((el) => el.tagName)
171
- expect(tags).toContain('BUTTON')
172
- expect(tags).toContain('INPUT')
173
- expect(tags).not.toContain('SPAN')
174
- })
175
-
176
- it('should exclude disabled elements', () => {
177
- fixtureEl.innerHTML = '<div><button disabled>No</button><button>Yes</button></div>'
178
- const parent = fixtureEl.querySelector('div')!
179
-
180
- const result = SelectorEngine.focusableChildren(parent)
181
- const texts = result.map((el) => el.textContent)
182
-
183
- expect(texts).toContain('Yes')
184
- expect(texts).not.toContain('No')
185
- })
186
-
187
- it('should exclude elements with negative tabindex', () => {
188
- fixtureEl.innerHTML = '<div><button tabindex="-1">Hidden</button><button>Visible</button></div>'
189
- const parent = fixtureEl.querySelector('div')!
190
-
191
- const result = SelectorEngine.focusableChildren(parent)
192
- const texts = result.map((el) => el.textContent)
193
-
194
- expect(texts).toContain('Visible')
195
- expect(texts).not.toContain('Hidden')
196
- })
197
- })
198
-
199
- describe('getSelector / getSelectorFromElement / getElementFromSelector', () => {
200
- it('should resolve data-tblr-target', () => {
201
- fixtureEl.innerHTML = '<div id="target"></div><a data-tblr-target="#target"></a>'
202
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
203
-
204
- expect(SelectorEngine.getElementFromSelector(trigger)).toBe(fixtureEl.querySelector('#target'))
205
- })
206
-
207
- it('should resolve data-bs-target as fallback', () => {
208
- fixtureEl.innerHTML = '<div id="target"></div><a data-bs-target="#target"></a>'
209
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
210
-
211
- expect(SelectorEngine.getElementFromSelector(trigger)).toBe(fixtureEl.querySelector('#target'))
212
- })
213
-
214
- it('should prioritize data-tblr-target over data-bs-target', () => {
215
- fixtureEl.innerHTML = '<div id="tblr"></div><div id="bs"></div><a data-tblr-target="#tblr" data-bs-target="#bs"></a>'
216
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
217
-
218
- expect(SelectorEngine.getElementFromSelector(trigger)!.id).toBe('tblr')
219
- })
220
-
221
- it('should resolve href as fallback', () => {
222
- fixtureEl.innerHTML = '<div id="target"></div><a href="#target"></a>'
223
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
224
-
225
- expect(SelectorEngine.getElementFromSelector(trigger)).toBe(fixtureEl.querySelector('#target'))
226
- })
227
-
228
- it('should return null when no selector can be resolved', () => {
229
- fixtureEl.innerHTML = '<a></a>'
230
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
231
-
232
- expect(SelectorEngine.getElementFromSelector(trigger)).toBeNull()
233
- })
234
-
235
- it('should return null for href without hash or dot', () => {
236
- fixtureEl.innerHTML = '<a href="https://example.com"></a>'
237
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
238
-
239
- expect(SelectorEngine.getElementFromSelector(trigger)).toBeNull()
240
- })
241
-
242
- it('should return null for href="#"', () => {
243
- fixtureEl.innerHTML = '<a href="#"></a>'
244
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
245
-
246
- expect(SelectorEngine.getElementFromSelector(trigger)).toBeNull()
247
- })
248
-
249
- it('should extract hash from full URL href', () => {
250
- fixtureEl.innerHTML = '<div id="section"></div><a href="http://example.com/page#section"></a>'
251
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
252
-
253
- expect(SelectorEngine.getElementFromSelector(trigger)).toBe(fixtureEl.querySelector('#section'))
254
- })
255
-
256
- it('should resolve class-based href selectors', () => {
257
- fixtureEl.innerHTML = '<div class="target"></div><a href=".target"></a>'
258
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
259
-
260
- expect(SelectorEngine.getElementFromSelector(trigger)).toBe(fixtureEl.querySelector('.target'))
261
- })
262
-
263
- it('getSelectorFromElement should return selector string when element exists', () => {
264
- fixtureEl.innerHTML = '<div id="target"></div><a data-tblr-target="#target"></a>'
265
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
266
-
267
- expect(SelectorEngine.getSelectorFromElement(trigger)).toBe('#target')
268
- })
269
-
270
- it('getSelectorFromElement should return null when target element does not exist', () => {
271
- fixtureEl.innerHTML = '<a data-tblr-target="#nonexistent"></a>'
272
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
273
-
274
- expect(SelectorEngine.getSelectorFromElement(trigger)).toBeNull()
275
- })
276
-
277
- it('getSelectorFromElement should return null when no selector', () => {
278
- fixtureEl.innerHTML = '<a></a>'
279
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
280
-
281
- expect(SelectorEngine.getSelectorFromElement(trigger)).toBeNull()
282
- })
283
- })
284
-
285
- describe('getMultipleElementsFromSelector', () => {
286
- it('should return all matching elements', () => {
287
- fixtureEl.innerHTML = '<div class="item"></div><div class="item"></div><a data-tblr-target=".item"></a>'
288
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
289
-
290
- expect(SelectorEngine.getMultipleElementsFromSelector(trigger)).toHaveLength(2)
291
- })
292
-
293
- it('should return an empty array when no selector', () => {
294
- fixtureEl.innerHTML = '<a></a>'
295
- const trigger = fixtureEl.querySelector('a')! as HTMLElement
296
-
297
- expect(SelectorEngine.getMultipleElementsFromSelector(trigger)).toEqual([])
298
- })
299
- })
300
- })