@mhmo91/schmancy 0.2.162 → 0.2.165

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 (250) hide show
  1. package/dist/{animated-text-CSOz5SCF.cjs → animated-text-DykevNAQ.cjs} +2 -2
  2. package/dist/{animated-text-CSOz5SCF.cjs.map → animated-text-DykevNAQ.cjs.map} +1 -1
  3. package/dist/{animated-text-DUB2OEsp.js → animated-text-lA1qYOb3.js} +3 -3
  4. package/dist/{animated-text-DUB2OEsp.js.map → animated-text-lA1qYOb3.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-kK1WKJY2.cjs → area.component-DAzIOTvX.cjs} +2 -2
  9. package/dist/{area.component-kK1WKJY2.cjs.map → area.component-DAzIOTvX.cjs.map} +1 -1
  10. package/dist/{area.component-BWaTpFPB.js → area.component-DbLTnRuW.js} +6 -6
  11. package/dist/{area.component-BWaTpFPB.js.map → area.component-DbLTnRuW.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-BKPUk9e5.cjs → autocomplete-DB1BIFBS.cjs} +2 -2
  14. package/dist/{autocomplete-BKPUk9e5.cjs.map → autocomplete-DB1BIFBS.cjs.map} +1 -1
  15. package/dist/{autocomplete-Di9kiTER.js → autocomplete-VHq-wIav.js} +3 -3
  16. package/dist/{autocomplete-Di9kiTER.js.map → autocomplete-VHq-wIav.js.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/badge.cjs +1 -1
  20. package/dist/badge.js +1 -1
  21. package/dist/busy.cjs +1 -1
  22. package/dist/busy.js +1 -1
  23. package/dist/button.cjs +1 -1
  24. package/dist/button.js +1 -1
  25. package/dist/card.cjs +1 -1
  26. package/dist/card.js +1 -1
  27. package/dist/{checkbox-CwMYYFc5.cjs → checkbox-9PyWz5FJ.cjs} +2 -2
  28. package/dist/{checkbox-CwMYYFc5.cjs.map → checkbox-9PyWz5FJ.cjs.map} +1 -1
  29. package/dist/{checkbox-Dr_Nv_NO.js → checkbox-D2X1Yff3.js} +2 -2
  30. package/dist/{checkbox-Dr_Nv_NO.js.map → checkbox-D2X1Yff3.js.map} +1 -1
  31. package/dist/checkbox.cjs +1 -1
  32. package/dist/checkbox.js +1 -1
  33. package/dist/{chips-CMSDxpu9.cjs → chips-Bv2hdmMK.cjs} +2 -2
  34. package/dist/{chips-CMSDxpu9.cjs.map → chips-Bv2hdmMK.cjs.map} +1 -1
  35. package/dist/{chips-Dy8t83by.js → chips-pqAEZ-DH.js} +3 -3
  36. package/dist/{chips-Dy8t83by.js.map → chips-pqAEZ-DH.js.map} +1 -1
  37. package/dist/chips.cjs +1 -1
  38. package/dist/chips.js +1 -1
  39. package/dist/components.cjs +1 -1
  40. package/dist/components.js +1 -1
  41. package/dist/content-drawer.cjs +1 -1
  42. package/dist/content-drawer.js +1 -1
  43. package/dist/{date-range-BSRsyfMM.js → date-range-7_L_ECbS.js} +3 -3
  44. package/dist/{date-range-BSRsyfMM.js.map → date-range-7_L_ECbS.js.map} +1 -1
  45. package/dist/{date-range-B2cD9hQe.cjs → date-range-Dpvip0Kf.cjs} +2 -2
  46. package/dist/{date-range-B2cD9hQe.cjs.map → date-range-Dpvip0Kf.cjs.map} +1 -1
  47. package/dist/date-range.cjs +1 -1
  48. package/dist/date-range.js +1 -1
  49. package/dist/{delay-DUjqSk9U.cjs → delay-D0Np7OmS.cjs} +2 -2
  50. package/dist/{delay-DUjqSk9U.cjs.map → delay-D0Np7OmS.cjs.map} +1 -1
  51. package/dist/{delay-DN-mtGtE.js → delay-DiN5nFO-.js} +11 -11
  52. package/dist/{delay-DN-mtGtE.js.map → delay-DiN5nFO-.js.map} +1 -1
  53. package/dist/delay.cjs +1 -1
  54. package/dist/delay.js +1 -1
  55. package/dist/{divider-D-3b8xBH.cjs → divider-B56pVfQK.cjs} +2 -2
  56. package/dist/{divider-D-3b8xBH.cjs.map → divider-B56pVfQK.cjs.map} +1 -1
  57. package/dist/{divider-CwrrRepk.js → divider-BpVwalY9.js} +3 -3
  58. package/dist/{divider-CwrrRepk.js.map → divider-BpVwalY9.js.map} +1 -1
  59. package/dist/divider.cjs +1 -1
  60. package/dist/divider.js +1 -1
  61. package/dist/dropdown-content-Db639XJB.cjs +53 -0
  62. package/dist/dropdown-content-Db639XJB.cjs.map +1 -0
  63. package/dist/dropdown-content-aNqgmuB9.js +124 -0
  64. package/dist/dropdown-content-aNqgmuB9.js.map +1 -0
  65. package/dist/dropdown.cjs +2 -0
  66. package/dist/dropdown.cjs.map +1 -0
  67. package/dist/dropdown.js +6 -0
  68. package/dist/dropdown.js.map +1 -0
  69. package/dist/extra.cjs +1 -1
  70. package/dist/extra.js +1 -1
  71. package/dist/{flex-D4HMvbL2.js → flex-B2plWeGc.js} +2 -2
  72. package/dist/{flex-D4HMvbL2.js.map → flex-B2plWeGc.js.map} +1 -1
  73. package/dist/{flex-BJPUKHgq.cjs → flex-Crv0q1Ni.cjs} +2 -2
  74. package/dist/{flex-BJPUKHgq.cjs.map → flex-Crv0q1Ni.cjs.map} +1 -1
  75. package/dist/{form-D-CN4Npb.js → form-9Gu7_vfY.js} +2 -2
  76. package/dist/{form-D-CN4Npb.js.map → form-9Gu7_vfY.js.map} +1 -1
  77. package/dist/{form-CPm25cLE.cjs → form-DYaROiIF.cjs} +2 -2
  78. package/dist/{form-CPm25cLE.cjs.map → form-DYaROiIF.cjs.map} +1 -1
  79. package/dist/form.cjs +1 -1
  80. package/dist/form.js +1 -1
  81. package/dist/{icon-baMFKlix.js → icon-BWnY3Sgg.js} +3 -3
  82. package/dist/{icon-baMFKlix.js.map → icon-BWnY3Sgg.js.map} +1 -1
  83. package/dist/{icon-DUTbI5sF.cjs → icon-D5bKkv2u.cjs} +2 -2
  84. package/dist/{icon-DUTbI5sF.cjs.map → icon-D5bKkv2u.cjs.map} +1 -1
  85. package/dist/{icon-button-M79Lwelv.cjs → icon-button-DPm9yazs.cjs} +2 -2
  86. package/dist/{icon-button-M79Lwelv.cjs.map → icon-button-DPm9yazs.cjs.map} +1 -1
  87. package/dist/{icon-button-Dytz2u7f.js → icon-button-iP7bvDh9.js} +3 -3
  88. package/dist/{icon-button-Dytz2u7f.js.map → icon-button-iP7bvDh9.js.map} +1 -1
  89. package/dist/icons.cjs +1 -1
  90. package/dist/icons.js +1 -1
  91. package/dist/index.cjs +1 -1
  92. package/dist/index.js +49 -46
  93. package/dist/index.js.map +1 -1
  94. package/dist/{input-D390Osy4.js → input-Ca6zzXC1.js} +2 -2
  95. package/dist/{input-D390Osy4.js.map → input-Ca6zzXC1.js.map} +1 -1
  96. package/dist/{input-C2wFU_S6.cjs → input-DxJNIkJF.cjs} +2 -2
  97. package/dist/{input-C2wFU_S6.cjs.map → input-DxJNIkJF.cjs.map} +1 -1
  98. package/dist/input.cjs +1 -1
  99. package/dist/input.js +1 -1
  100. package/dist/layout.cjs +1 -1
  101. package/dist/layout.js +1 -1
  102. package/dist/{list-Bn-B6Pbl.cjs → list-BSiDxGZM.cjs} +2 -2
  103. package/dist/{list-Bn-B6Pbl.cjs.map → list-BSiDxGZM.cjs.map} +1 -1
  104. package/dist/{list-BJFvg0LF.js → list-D35IuiWE.js} +2 -2
  105. package/dist/{list-BJFvg0LF.js.map → list-D35IuiWE.js.map} +1 -1
  106. package/dist/list.cjs +1 -1
  107. package/dist/list.js +1 -1
  108. package/dist/{litElement.mixin-CwAqMl79.cjs → litElement.mixin-BDAc5mMz.cjs} +2 -2
  109. package/dist/{litElement.mixin-CwAqMl79.cjs.map → litElement.mixin-BDAc5mMz.cjs.map} +1 -1
  110. package/dist/{litElement.mixin-CRbxrdrS.js → litElement.mixin-DamySMT5.js} +2 -2
  111. package/dist/{litElement.mixin-CRbxrdrS.js.map → litElement.mixin-DamySMT5.js.map} +1 -1
  112. package/dist/{menu-5krKi7zq.js → menu-BvEZcVjD.js} +3 -3
  113. package/dist/{menu-5krKi7zq.js.map → menu-BvEZcVjD.js.map} +1 -1
  114. package/dist/{menu-D6SHzgaV.cjs → menu-DO4J9xKl.cjs} +2 -2
  115. package/dist/{menu-D6SHzgaV.cjs.map → menu-DO4J9xKl.cjs.map} +1 -1
  116. package/dist/menu.cjs +1 -1
  117. package/dist/menu.js +1 -1
  118. package/dist/nav-drawer.cjs +1 -1
  119. package/dist/nav-drawer.js +1 -1
  120. package/dist/{notification-service-DA3l75i3.js → notification-service-5KQWCCvu.js} +3 -3
  121. package/dist/{notification-service-DA3l75i3.js.map → notification-service-5KQWCCvu.js.map} +1 -1
  122. package/dist/{notification-service-BFfFPd1Q.cjs → notification-service-BFepRkx9.cjs} +2 -2
  123. package/dist/{notification-service-BFfFPd1Q.cjs.map → notification-service-BFepRkx9.cjs.map} +1 -1
  124. package/dist/notification.cjs +1 -1
  125. package/dist/notification.js +1 -1
  126. package/dist/{option-BAMNOMye.js → option-DG1Ko33C.js} +2 -2
  127. package/dist/{option-BAMNOMye.js.map → option-DG1Ko33C.js.map} +1 -1
  128. package/dist/{option-DBh0pEws.cjs → option-DzxWSiKo.cjs} +2 -2
  129. package/dist/{option-DBh0pEws.cjs.map → option-DzxWSiKo.cjs.map} +1 -1
  130. package/dist/option.cjs +1 -1
  131. package/dist/option.js +1 -1
  132. package/dist/{payment-card-form-CklVDo7L.cjs → payment-card-form-DxD9nGB0.cjs} +2 -2
  133. package/dist/{payment-card-form-CklVDo7L.cjs.map → payment-card-form-DxD9nGB0.cjs.map} +1 -1
  134. package/dist/{payment-card-form-CNWsIJhu.js → payment-card-form-qTHGWvQQ.js} +3 -3
  135. package/dist/{payment-card-form-CNWsIJhu.js.map → payment-card-form-qTHGWvQQ.js.map} +1 -1
  136. package/dist/{radio-group-CRXQ4ajE.js → radio-group-S32ENLKc.js} +2 -2
  137. package/dist/{radio-group-CRXQ4ajE.js.map → radio-group-S32ENLKc.js.map} +1 -1
  138. package/dist/{radio-group-8d4MJqaa.cjs → radio-group-ujiKRIzu.cjs} +2 -2
  139. package/dist/{radio-group-8d4MJqaa.cjs.map → radio-group-ujiKRIzu.cjs.map} +1 -1
  140. package/dist/radio-group.cjs +1 -1
  141. package/dist/radio-group.js +1 -1
  142. package/dist/{schmancy-steps-container-KinQK3rz.cjs → schmancy-steps-container-C0r65UXb.cjs} +2 -2
  143. package/dist/{schmancy-steps-container-KinQK3rz.cjs.map → schmancy-steps-container-C0r65UXb.cjs.map} +1 -1
  144. package/dist/{schmancy-steps-container-DzeJED2U.js → schmancy-steps-container-C2bF45xo.js} +2 -2
  145. package/dist/{schmancy-steps-container-DzeJED2U.js.map → schmancy-steps-container-C2bF45xo.js.map} +1 -1
  146. package/dist/{select-DlblA74_.cjs → select-8C2C6mqT.cjs} +2 -2
  147. package/dist/{select-DlblA74_.cjs.map → select-8C2C6mqT.cjs.map} +1 -1
  148. package/dist/{select-dxNE4mnd.js → select-OC2POpYJ.js} +3 -3
  149. package/dist/{select-dxNE4mnd.js.map → select-OC2POpYJ.js.map} +1 -1
  150. package/dist/select.cjs +1 -1
  151. package/dist/select.js +1 -1
  152. package/dist/{sheet-D2sUghqi.cjs → sheet-5NN9kqLw.cjs} +2 -2
  153. package/dist/{sheet-D2sUghqi.cjs.map → sheet-5NN9kqLw.cjs.map} +1 -1
  154. package/dist/{sheet-BmIoE7Ej.js → sheet-K0eVqQGM.js} +12 -12
  155. package/dist/{sheet-BmIoE7Ej.js.map → sheet-K0eVqQGM.js.map} +1 -1
  156. package/dist/sheet.cjs +1 -1
  157. package/dist/sheet.js +1 -1
  158. package/dist/{slider-DCysIErg.js → slider-pthecQmM.js} +3 -3
  159. package/dist/{slider-DCysIErg.js.map → slider-pthecQmM.js.map} +1 -1
  160. package/dist/{slider-VShAooYp.cjs → slider-zbnPbKrH.cjs} +2 -2
  161. package/dist/{slider-VShAooYp.cjs.map → slider-zbnPbKrH.cjs.map} +1 -1
  162. package/dist/slider.cjs +1 -1
  163. package/dist/slider.js +1 -1
  164. package/dist/{spinner-UC31R_xS.js → spinner-BA-AdJft.js} +3 -3
  165. package/dist/{spinner-UC31R_xS.js.map → spinner-BA-AdJft.js.map} +1 -1
  166. package/dist/{spinner-Dv-uGeoR.cjs → spinner-DJUPKRaj.cjs} +2 -2
  167. package/dist/{spinner-Dv-uGeoR.cjs.map → spinner-DJUPKRaj.cjs.map} +1 -1
  168. package/dist/steps.cjs +1 -1
  169. package/dist/steps.js +1 -1
  170. package/dist/{surface-ClnnQP3o.cjs → surface-B0EP0wlI.cjs} +2 -2
  171. package/dist/{surface-ClnnQP3o.cjs.map → surface-B0EP0wlI.cjs.map} +1 -1
  172. package/dist/{surface-B3v9NfAj.js → surface-MaIcngHu.js} +2 -2
  173. package/dist/{surface-B3v9NfAj.js.map → surface-MaIcngHu.js.map} +1 -1
  174. package/dist/surface.cjs +1 -1
  175. package/dist/surface.js +1 -1
  176. package/dist/{table-CWDtSTrW.cjs → table-DSg5xpqj.cjs} +2 -2
  177. package/dist/{table-CWDtSTrW.cjs.map → table-DSg5xpqj.cjs.map} +1 -1
  178. package/dist/{table-BZ4h621V.js → table-y955qHc7.js} +2 -2
  179. package/dist/{table-BZ4h621V.js.map → table-y955qHc7.js.map} +1 -1
  180. package/dist/table.cjs +1 -1
  181. package/dist/table.js +1 -1
  182. package/dist/{tabs-group-WJjM75TT.js → tabs-group-CDVLZfL5.js} +2 -2
  183. package/dist/{tabs-group-WJjM75TT.js.map → tabs-group-CDVLZfL5.js.map} +1 -1
  184. package/dist/{tabs-group-Bb4uOpJc.cjs → tabs-group-Dd-mfajz.cjs} +2 -2
  185. package/dist/{tabs-group-Bb4uOpJc.cjs.map → tabs-group-Dd-mfajz.cjs.map} +1 -1
  186. package/dist/tabs.cjs +1 -1
  187. package/dist/tabs.js +1 -1
  188. package/dist/tailwind.mixin-CAvg5VIG.cjs +2 -0
  189. package/dist/{tailwind.mixin-DLuYz9Iz.cjs.map → tailwind.mixin-CAvg5VIG.cjs.map} +1 -1
  190. package/dist/tailwind.mixin-CgdpQXVy.js +43 -0
  191. package/dist/{tailwind.mixin-B_hJc1PP.js.map → tailwind.mixin-CgdpQXVy.js.map} +1 -1
  192. package/dist/teleport.cjs +1 -1
  193. package/dist/{teleport.component-DSs12GIK.js → teleport.component-BQoWidXp.js} +43 -42
  194. package/dist/{teleport.component-DSs12GIK.js.map → teleport.component-BQoWidXp.js.map} +1 -1
  195. package/dist/{teleport.component-CNVTORt3.cjs → teleport.component-BYnumidn.cjs} +2 -2
  196. package/dist/{teleport.component-CNVTORt3.cjs.map → teleport.component-BYnumidn.cjs.map} +1 -1
  197. package/dist/teleport.js +1 -1
  198. package/dist/{textarea-B5V4jvIX.js → textarea-CCD5vT2R.js} +2 -2
  199. package/dist/{textarea-B5V4jvIX.js.map → textarea-CCD5vT2R.js.map} +1 -1
  200. package/dist/{textarea-B3_G9W-u.cjs → textarea-znssoPdJ.cjs} +2 -2
  201. package/dist/{textarea-B3_G9W-u.cjs.map → textarea-znssoPdJ.cjs.map} +1 -1
  202. package/dist/textarea.cjs +1 -1
  203. package/dist/textarea.js +1 -1
  204. package/dist/{theme-button-C6pyxtwQ.cjs → theme-button-BMe6kTMr.cjs} +2 -2
  205. package/dist/{theme-button-C6pyxtwQ.cjs.map → theme-button-BMe6kTMr.cjs.map} +1 -1
  206. package/dist/{theme-button-D-ojrnYh.js → theme-button-ByhGFrM6.js} +2 -2
  207. package/dist/{theme-button-D-ojrnYh.js.map → theme-button-ByhGFrM6.js.map} +1 -1
  208. package/dist/theme-button.cjs +1 -1
  209. package/dist/theme-button.js +1 -1
  210. package/dist/theme.cjs +1 -1
  211. package/dist/{theme.component-B6Hvc574.js → theme.component-BLmnJdq6.js} +2 -2
  212. package/dist/{theme.component-B6Hvc574.js.map → theme.component-BLmnJdq6.js.map} +1 -1
  213. package/dist/{theme.component-DR4uOck9.cjs → theme.component-CJDShQ7P.cjs} +2 -2
  214. package/dist/{theme.component-DR4uOck9.cjs.map → theme.component-CJDShQ7P.cjs.map} +1 -1
  215. package/dist/theme.js +1 -1
  216. package/dist/{timezone-vGpDPCRT.cjs → timezone-BxvSIDGa.cjs} +2 -2
  217. package/dist/{timezone-vGpDPCRT.cjs.map → timezone-BxvSIDGa.cjs.map} +1 -1
  218. package/dist/{timezone-CyDIsW4A.js → timezone-DKHJwBwL.js} +3 -3
  219. package/dist/{timezone-CyDIsW4A.js.map → timezone-DKHJwBwL.js.map} +1 -1
  220. package/dist/{tooltip-BJ_lQc8I.cjs → tooltip-BU1ScbI9.cjs} +2 -2
  221. package/dist/{tooltip-BJ_lQc8I.cjs.map → tooltip-BU1ScbI9.cjs.map} +1 -1
  222. package/dist/{tooltip-Ck-JUG_m.js → tooltip-DLLzuUKg.js} +2 -2
  223. package/dist/{tooltip-Ck-JUG_m.js.map → tooltip-DLLzuUKg.js.map} +1 -1
  224. package/dist/tooltip.cjs +1 -1
  225. package/dist/tooltip.js +1 -1
  226. package/dist/{tree-plC4VSNF.cjs → tree-DJ0dLSbg.cjs} +2 -2
  227. package/dist/{tree-plC4VSNF.cjs.map → tree-DJ0dLSbg.cjs.map} +1 -1
  228. package/dist/{tree-BE0sci4r.js → tree-Dxc1tbC8.js} +2 -2
  229. package/dist/{tree-BE0sci4r.js.map → tree-Dxc1tbC8.js.map} +1 -1
  230. package/dist/tree.cjs +1 -1
  231. package/dist/tree.js +1 -1
  232. package/dist/{typewriter-CFULjoNm.js → typewriter-BhxAnEeh.js} +11 -11
  233. package/dist/{typewriter-CFULjoNm.js.map → typewriter-BhxAnEeh.js.map} +1 -1
  234. package/dist/{typewriter-CwrZhpWq.cjs → typewriter-a5uyOTf4.cjs} +2 -2
  235. package/dist/{typewriter-CwrZhpWq.cjs.map → typewriter-a5uyOTf4.cjs.map} +1 -1
  236. package/dist/typewriter.cjs +1 -1
  237. package/dist/typewriter.js +1 -1
  238. package/dist/{typography-CRoZbt0O.cjs → typography-BbsRPqla.cjs} +2 -2
  239. package/dist/{typography-CRoZbt0O.cjs.map → typography-BbsRPqla.cjs.map} +1 -1
  240. package/dist/{typography-BB5uUnkZ.js → typography-agkJjhZH.js} +2 -2
  241. package/dist/{typography-BB5uUnkZ.js.map → typography-agkJjhZH.js.map} +1 -1
  242. package/dist/typography.cjs +1 -1
  243. package/dist/typography.js +1 -1
  244. package/package.json +1 -1
  245. package/types/src/dropdown/dropdown-component.d.ts +52 -0
  246. package/types/src/dropdown/dropdown-content.d.ts +32 -0
  247. package/types/src/dropdown/index.d.ts +2 -0
  248. package/types/src/index.d.ts +1 -0
  249. package/dist/tailwind.mixin-B_hJc1PP.js +0 -43
  250. package/dist/tailwind.mixin-DLuYz9Iz.cjs +0 -2
@@ -1,4 +1,4 @@
1
- "use strict";const c=require("@floating-ui/dom"),s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("./tailwind.mixin-DLuYz9Iz.cjs"),d=require("lit"),e=require("lit/decorators.js");var u=Object.defineProperty,m=Object.getOwnPropertyDescriptor,i=(t,n,a,r)=>{for(var h,o=r>1?void 0:r?m(n,a):n,p=t.length-1;p>=0;p--)(h=t[p])&&(o=(r?h(n,a,o):h(o))||o);return r&&o&&u(n,a,o),o};exports.SchmancyTooltip=class extends l.TailwindElement(){constructor(){super(...arguments),this.placement="top",this.distance=8,this.showDelay=300,this.hideDelay=100,this.open=!1,this.disabled=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-live","polite")}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.cleanupPositioner)==null||t.call(this),this.showTimeoutId&&clearTimeout(this.showTimeoutId),this.hideTimeoutId&&clearTimeout(this.hideTimeoutId)}async updatePosition(){var h,o;if(!this.triggerContainer||!this.tooltip)return;const{x:t,y:n,placement:a,middlewareData:r}=await c.computePosition(this.triggerContainer,this.tooltip,{placement:this.placement,middleware:[c.offset(this.distance),c.flip(),c.shift({padding:8})]});if(Object.assign(this.tooltip.style,{left:`${t}px`,top:`${n}px`}),this.arrow){const p={top:"bottom",right:"left",bottom:"top",left:"right"}[a.split("-")[0]];p&&Object.assign(this.arrow.style,{left:((h=r.arrow)==null?void 0:h.x)!=null?`${r.arrow.x}px`:"",top:((o=r.arrow)==null?void 0:o.y)!=null?`${r.arrow.y}px`:"",right:"",bottom:"",[p]:"-4px"})}}firstUpdated(){this.triggerContainer&&(s.merge(s.fromEvent(this.triggerContainer,"mouseenter"),s.fromEvent(this.triggerContainer,"focus")).pipe(s.takeUntil(this.disconnecting)).subscribe(()=>{this.disabled||this.scheduleShow()}),s.merge(s.fromEvent(this.triggerContainer,"mouseleave"),s.fromEvent(this.triggerContainer,"blur")).pipe(s.takeUntil(this.disconnecting)).subscribe(()=>{this.disabled||this.scheduleHide()}),s.fromEvent(window,"keydown").pipe(s.takeUntil(this.disconnecting)).subscribe(t=>{t.key==="Escape"&&this.open&&this.hide()}))}scheduleShow(){this.hideTimeoutId&&(clearTimeout(this.hideTimeoutId),this.hideTimeoutId=void 0),this.open||(this.showTimeoutId=window.setTimeout(()=>{this.show()},this.showDelay))}scheduleHide(){this.showTimeoutId&&(clearTimeout(this.showTimeoutId),this.showTimeoutId=void 0),this.open&&(this.hideTimeoutId=window.setTimeout(()=>{this.hide()},this.hideDelay))}show(){this.disabled||this.open||(this.open=!0,this.cleanupPositioner=c.autoUpdate(this.triggerContainer,this.tooltip,()=>this.updatePosition()),this.dispatchEvent(new CustomEvent("schmancy-tooltip-show",{bubbles:!0,composed:!0})))}hide(){this.open&&(this.open=!1,this.cleanupPositioner&&(this.cleanupPositioner(),this.cleanupPositioner=void 0),this.dispatchEvent(new CustomEvent("schmancy-tooltip-hide",{bubbles:!0,composed:!0})))}render(){const t={"absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md":!0,"max-w-xs opacity-0 invisible scale-95 transition-all duration-150":!0,"opacity-100 visible scale-100":this.open};return d.html`
1
+ "use strict";const c=require("@floating-ui/dom"),s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("./tailwind.mixin-CAvg5VIG.cjs"),d=require("lit"),e=require("lit/decorators.js");var u=Object.defineProperty,m=Object.getOwnPropertyDescriptor,i=(t,n,a,r)=>{for(var h,o=r>1?void 0:r?m(n,a):n,p=t.length-1;p>=0;p--)(h=t[p])&&(o=(r?h(n,a,o):h(o))||o);return r&&o&&u(n,a,o),o};exports.SchmancyTooltip=class extends l.TailwindElement(){constructor(){super(...arguments),this.placement="top",this.distance=8,this.showDelay=300,this.hideDelay=100,this.open=!1,this.disabled=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-live","polite")}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.cleanupPositioner)==null||t.call(this),this.showTimeoutId&&clearTimeout(this.showTimeoutId),this.hideTimeoutId&&clearTimeout(this.hideTimeoutId)}async updatePosition(){var h,o;if(!this.triggerContainer||!this.tooltip)return;const{x:t,y:n,placement:a,middlewareData:r}=await c.computePosition(this.triggerContainer,this.tooltip,{placement:this.placement,middleware:[c.offset(this.distance),c.flip(),c.shift({padding:8})]});if(Object.assign(this.tooltip.style,{left:`${t}px`,top:`${n}px`}),this.arrow){const p={top:"bottom",right:"left",bottom:"top",left:"right"}[a.split("-")[0]];p&&Object.assign(this.arrow.style,{left:((h=r.arrow)==null?void 0:h.x)!=null?`${r.arrow.x}px`:"",top:((o=r.arrow)==null?void 0:o.y)!=null?`${r.arrow.y}px`:"",right:"",bottom:"",[p]:"-4px"})}}firstUpdated(){this.triggerContainer&&(s.merge(s.fromEvent(this.triggerContainer,"mouseenter"),s.fromEvent(this.triggerContainer,"focus")).pipe(s.takeUntil(this.disconnecting)).subscribe(()=>{this.disabled||this.scheduleShow()}),s.merge(s.fromEvent(this.triggerContainer,"mouseleave"),s.fromEvent(this.triggerContainer,"blur")).pipe(s.takeUntil(this.disconnecting)).subscribe(()=>{this.disabled||this.scheduleHide()}),s.fromEvent(window,"keydown").pipe(s.takeUntil(this.disconnecting)).subscribe(t=>{t.key==="Escape"&&this.open&&this.hide()}))}scheduleShow(){this.hideTimeoutId&&(clearTimeout(this.hideTimeoutId),this.hideTimeoutId=void 0),this.open||(this.showTimeoutId=window.setTimeout(()=>{this.show()},this.showDelay))}scheduleHide(){this.showTimeoutId&&(clearTimeout(this.showTimeoutId),this.showTimeoutId=void 0),this.open&&(this.hideTimeoutId=window.setTimeout(()=>{this.hide()},this.hideDelay))}show(){this.disabled||this.open||(this.open=!0,this.cleanupPositioner=c.autoUpdate(this.triggerContainer,this.tooltip,()=>this.updatePosition()),this.dispatchEvent(new CustomEvent("schmancy-tooltip-show",{bubbles:!0,composed:!0})))}hide(){this.open&&(this.open=!1,this.cleanupPositioner&&(this.cleanupPositioner(),this.cleanupPositioner=void 0),this.dispatchEvent(new CustomEvent("schmancy-tooltip-hide",{bubbles:!0,composed:!0})))}render(){const t={"absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md":!0,"max-w-xs opacity-0 invisible scale-95 transition-all duration-150":!0,"opacity-100 visible scale-100":this.open};return d.html`
2
2
  <div id="trigger-container" class="inline-block" aria-describedby="tooltip">
3
3
  <slot></slot>
4
4
  </div>
@@ -7,4 +7,4 @@
7
7
  <slot name="content"></slot>
8
8
  </div>
9
9
  `}},i([e.property({type:String})],exports.SchmancyTooltip.prototype,"placement",2),i([e.property({type:Number})],exports.SchmancyTooltip.prototype,"distance",2),i([e.property({type:Number})],exports.SchmancyTooltip.prototype,"showDelay",2),i([e.property({type:Number})],exports.SchmancyTooltip.prototype,"hideDelay",2),i([e.property({type:Boolean,reflect:!0})],exports.SchmancyTooltip.prototype,"open",2),i([e.property({type:Boolean,reflect:!0})],exports.SchmancyTooltip.prototype,"disabled",2),i([e.query("#tooltip")],exports.SchmancyTooltip.prototype,"tooltip",2),i([e.query("#trigger-container")],exports.SchmancyTooltip.prototype,"triggerContainer",2),i([e.query("#arrow")],exports.SchmancyTooltip.prototype,"arrow",2),i([e.queryAssignedElements({flatten:!0})],exports.SchmancyTooltip.prototype,"triggerElements",2),exports.SchmancyTooltip=i([e.customElement("schmancy-tooltip")],exports.SchmancyTooltip);
10
- //# sourceMappingURL=tooltip-BJ_lQc8I.cjs.map
10
+ //# sourceMappingURL=tooltip-BU1ScbI9.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-BJ_lQc8I.cjs","sources":["../src/tooltip/tooltip.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil } from 'rxjs'\n\n/**\n * @element schmancy-tooltip\n * A tooltip component that displays additional information when hovering or focusing an element.\n *\n * @slot - The default slot for the trigger element\n * @slot content - The content to display in the tooltip\n *\n * @csspart tooltip - The tooltip container element\n * @csspart arrow - The tooltip arrow element\n *\n * @example\n * <schmancy-tooltip>\n * <div slot=\"content\">Tooltip content here</div>\n * <schmancy-button>Hover me</schmancy-button>\n * </schmancy-tooltip>\n */\n@customElement('schmancy-tooltip')\nexport class SchmancyTooltip extends TailwindElement() {\n\t/**\n\t * The placement of the tooltip relative to the trigger element\n\t * @attr\n\t */\n\t@property({ type: String })\n\tplacement: 'top' | 'right' | 'bottom' | 'left' = 'top'\n\n\t/**\n\t * The offset distance from the trigger element in pixels\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t/**\n\t * The delay before showing the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tshowDelay = 300\n\n\t/**\n\t * The delay before hiding the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\thideDelay = 100\n\n\t/**\n\t * Whether the tooltip should be shown\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Whether to disable the tooltip\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false\n\n\t@query('#tooltip') tooltip!: HTMLElement\n\t@query('#trigger-container') triggerContainer!: HTMLElement\n\t@query('#arrow') arrow!: HTMLElement\n\n\t@queryAssignedElements({ flatten: true })\n\ttriggerElements!: HTMLElement[]\n\n\tprivate cleanupPositioner?: () => void\n\tprivate showTimeoutId?: number\n\tprivate hideTimeoutId?: number\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setAttribute('aria-live', 'polite')\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\t\tif (this.showTimeoutId) clearTimeout(this.showTimeoutId)\n\t\tif (this.hideTimeoutId) clearTimeout(this.hideTimeoutId)\n\t}\n\n\tprivate async updatePosition() {\n\t\tif (!this.triggerContainer || !this.tooltip) return\n\n\t\tconst { x, y, placement, middlewareData } = await computePosition(this.triggerContainer, this.tooltip, {\n\t\t\tplacement: this.placement,\n\t\t\tmiddleware: [offset(this.distance), flip(), shift({ padding: 8 })],\n\t\t})\n\n\t\t// Position tooltip\n\t\tObject.assign(this.tooltip.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t})\n\n\t\t// Position arrow if it exists\n\t\tif (this.arrow) {\n\t\t\tconst staticSide = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tright: 'left',\n\t\t\t\tbottom: 'top',\n\t\t\t\tleft: 'right',\n\t\t\t}[placement.split('-')[0]]\n\n\t\t\tif (staticSide) {\n\t\t\t\tObject.assign(this.arrow.style, {\n\t\t\t\t\tleft: middlewareData.arrow?.x != null ? `${middlewareData.arrow.x}px` : '',\n\t\t\t\t\ttop: middlewareData.arrow?.y != null ? `${middlewareData.arrow.y}px` : '',\n\t\t\t\t\tright: '',\n\t\t\t\t\tbottom: '',\n\t\t\t\t\t[staticSide]: '-4px',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup the auto-updating position and trigger events\n\t */\n\tfirstUpdated() {\n\t\t// The trigger container holds all the slotted trigger elements\n\t\tif (!this.triggerContainer) return\n\n\t\t// Setup event listeners for the trigger container\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseenter'), fromEvent(this.triggerContainer, 'focus'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleShow()\n\t\t\t})\n\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseleave'), fromEvent(this.triggerContainer, 'blur'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleHide()\n\t\t\t})\n\n\t\t// Add key event listener for escape key\n\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tif (event.key === 'Escape' && this.open) {\n\t\t\t\t\tthis.hide()\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\t/**\n\t * Schedule showing the tooltip with the configured delay\n\t */\n\tprivate scheduleShow() {\n\t\tif (this.hideTimeoutId) {\n\t\t\tclearTimeout(this.hideTimeoutId)\n\t\t\tthis.hideTimeoutId = undefined\n\t\t}\n\n\t\tif (!this.open) {\n\t\t\tthis.showTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.show()\n\t\t\t}, this.showDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Schedule hiding the tooltip with the configured delay\n\t */\n\tprivate scheduleHide() {\n\t\tif (this.showTimeoutId) {\n\t\t\tclearTimeout(this.showTimeoutId)\n\t\t\tthis.showTimeoutId = undefined\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tthis.hideTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.hide()\n\t\t\t}, this.hideDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Show the tooltip\n\t */\n\tpublic show() {\n\t\tif (this.disabled || this.open) return\n\n\t\tthis.open = true\n\n\t\t// Position the tooltip\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.tooltip, () => this.updatePosition())\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-show', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Hide the tooltip\n\t */\n\tpublic hide() {\n\t\tif (!this.open) return\n\n\t\tthis.open = false\n\n\t\t// Cleanup the positioner\n\t\tif (this.cleanupPositioner) {\n\t\t\tthis.cleanupPositioner()\n\t\t\tthis.cleanupPositioner = undefined\n\t\t}\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-hide', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst tooltipClasses = {\n\t\t\t'absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md': true,\n\t\t\t'max-w-xs opacity-0 invisible scale-95 transition-all duration-150': true,\n\t\t\t'opacity-100 visible scale-100': this.open,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div id=\"trigger-container\" class=\"inline-block\" aria-describedby=\"tooltip\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div id=\"tooltip\" part=\"tooltip\" role=\"tooltip\" class=\"${this.classMap(tooltipClasses)}\">\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tooltip': SchmancyTooltip\n\t}\n}\n"],"names":["SchmancyTooltip","TailwindElement","super","arguments","this","placement","distance","showDelay","hideDelay","open","disabled","connectedCallback","setAttribute","disconnectedCallback","cleanupPositioner","showTimeoutId","clearTimeout","hideTimeoutId","updatePosition","triggerContainer","tooltip","x","y","middlewareData","computePosition","middleware","offset","flip","shift","padding","Object","assign","style","left","top","arrow","staticSide","right","bottom","split","firstUpdated","merge","fromEvent","pipe","takeUntil","disconnecting","subscribe","scheduleShow","scheduleHide","window","event","key","hide","setTimeout","show","autoUpdate","dispatchEvent","CustomEvent","bubbles","composed","render","tooltipClasses","html","classMap","__decorateClass","property","type","String","prototype","Number","Boolean","reflect","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip-BU1ScbI9.cjs","sources":["../src/tooltip/tooltip.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil } from 'rxjs'\n\n/**\n * @element schmancy-tooltip\n * A tooltip component that displays additional information when hovering or focusing an element.\n *\n * @slot - The default slot for the trigger element\n * @slot content - The content to display in the tooltip\n *\n * @csspart tooltip - The tooltip container element\n * @csspart arrow - The tooltip arrow element\n *\n * @example\n * <schmancy-tooltip>\n * <div slot=\"content\">Tooltip content here</div>\n * <schmancy-button>Hover me</schmancy-button>\n * </schmancy-tooltip>\n */\n@customElement('schmancy-tooltip')\nexport class SchmancyTooltip extends TailwindElement() {\n\t/**\n\t * The placement of the tooltip relative to the trigger element\n\t * @attr\n\t */\n\t@property({ type: String })\n\tplacement: 'top' | 'right' | 'bottom' | 'left' = 'top'\n\n\t/**\n\t * The offset distance from the trigger element in pixels\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t/**\n\t * The delay before showing the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tshowDelay = 300\n\n\t/**\n\t * The delay before hiding the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\thideDelay = 100\n\n\t/**\n\t * Whether the tooltip should be shown\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Whether to disable the tooltip\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false\n\n\t@query('#tooltip') tooltip!: HTMLElement\n\t@query('#trigger-container') triggerContainer!: HTMLElement\n\t@query('#arrow') arrow!: HTMLElement\n\n\t@queryAssignedElements({ flatten: true })\n\ttriggerElements!: HTMLElement[]\n\n\tprivate cleanupPositioner?: () => void\n\tprivate showTimeoutId?: number\n\tprivate hideTimeoutId?: number\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setAttribute('aria-live', 'polite')\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\t\tif (this.showTimeoutId) clearTimeout(this.showTimeoutId)\n\t\tif (this.hideTimeoutId) clearTimeout(this.hideTimeoutId)\n\t}\n\n\tprivate async updatePosition() {\n\t\tif (!this.triggerContainer || !this.tooltip) return\n\n\t\tconst { x, y, placement, middlewareData } = await computePosition(this.triggerContainer, this.tooltip, {\n\t\t\tplacement: this.placement,\n\t\t\tmiddleware: [offset(this.distance), flip(), shift({ padding: 8 })],\n\t\t})\n\n\t\t// Position tooltip\n\t\tObject.assign(this.tooltip.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t})\n\n\t\t// Position arrow if it exists\n\t\tif (this.arrow) {\n\t\t\tconst staticSide = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tright: 'left',\n\t\t\t\tbottom: 'top',\n\t\t\t\tleft: 'right',\n\t\t\t}[placement.split('-')[0]]\n\n\t\t\tif (staticSide) {\n\t\t\t\tObject.assign(this.arrow.style, {\n\t\t\t\t\tleft: middlewareData.arrow?.x != null ? `${middlewareData.arrow.x}px` : '',\n\t\t\t\t\ttop: middlewareData.arrow?.y != null ? `${middlewareData.arrow.y}px` : '',\n\t\t\t\t\tright: '',\n\t\t\t\t\tbottom: '',\n\t\t\t\t\t[staticSide]: '-4px',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup the auto-updating position and trigger events\n\t */\n\tfirstUpdated() {\n\t\t// The trigger container holds all the slotted trigger elements\n\t\tif (!this.triggerContainer) return\n\n\t\t// Setup event listeners for the trigger container\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseenter'), fromEvent(this.triggerContainer, 'focus'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleShow()\n\t\t\t})\n\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseleave'), fromEvent(this.triggerContainer, 'blur'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleHide()\n\t\t\t})\n\n\t\t// Add key event listener for escape key\n\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tif (event.key === 'Escape' && this.open) {\n\t\t\t\t\tthis.hide()\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\t/**\n\t * Schedule showing the tooltip with the configured delay\n\t */\n\tprivate scheduleShow() {\n\t\tif (this.hideTimeoutId) {\n\t\t\tclearTimeout(this.hideTimeoutId)\n\t\t\tthis.hideTimeoutId = undefined\n\t\t}\n\n\t\tif (!this.open) {\n\t\t\tthis.showTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.show()\n\t\t\t}, this.showDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Schedule hiding the tooltip with the configured delay\n\t */\n\tprivate scheduleHide() {\n\t\tif (this.showTimeoutId) {\n\t\t\tclearTimeout(this.showTimeoutId)\n\t\t\tthis.showTimeoutId = undefined\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tthis.hideTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.hide()\n\t\t\t}, this.hideDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Show the tooltip\n\t */\n\tpublic show() {\n\t\tif (this.disabled || this.open) return\n\n\t\tthis.open = true\n\n\t\t// Position the tooltip\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.tooltip, () => this.updatePosition())\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-show', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Hide the tooltip\n\t */\n\tpublic hide() {\n\t\tif (!this.open) return\n\n\t\tthis.open = false\n\n\t\t// Cleanup the positioner\n\t\tif (this.cleanupPositioner) {\n\t\t\tthis.cleanupPositioner()\n\t\t\tthis.cleanupPositioner = undefined\n\t\t}\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-hide', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst tooltipClasses = {\n\t\t\t'absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md': true,\n\t\t\t'max-w-xs opacity-0 invisible scale-95 transition-all duration-150': true,\n\t\t\t'opacity-100 visible scale-100': this.open,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div id=\"trigger-container\" class=\"inline-block\" aria-describedby=\"tooltip\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div id=\"tooltip\" part=\"tooltip\" role=\"tooltip\" class=\"${this.classMap(tooltipClasses)}\">\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tooltip': SchmancyTooltip\n\t}\n}\n"],"names":["SchmancyTooltip","TailwindElement","super","arguments","this","placement","distance","showDelay","hideDelay","open","disabled","connectedCallback","setAttribute","disconnectedCallback","cleanupPositioner","showTimeoutId","clearTimeout","hideTimeoutId","updatePosition","triggerContainer","tooltip","x","y","middlewareData","computePosition","middleware","offset","flip","shift","padding","Object","assign","style","left","top","arrow","staticSide","right","bottom","split","firstUpdated","merge","fromEvent","pipe","takeUntil","disconnecting","subscribe","scheduleShow","scheduleHide","window","event","key","hide","setTimeout","show","autoUpdate","dispatchEvent","CustomEvent","bubbles","composed","render","tooltipClasses","html","classMap","__decorateClass","property","type","String","prototype","Number","Boolean","reflect","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { computePosition as u, offset as b, flip as g, shift as y, autoUpdate as
2
2
  import { merge as m, fromEvent as l, takeUntil as d } from "rxjs";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
- import { T as f } from "./tailwind.mixin-B_hJc1PP.js";
5
+ import { T as f } from "./tailwind.mixin-CgdpQXVy.js";
6
6
  import { html as v } from "lit";
7
7
  import { property as p, query as c, queryAssignedElements as T, customElement as C } from "lit/decorators.js";
8
8
  var x = Object.defineProperty, I = Object.getOwnPropertyDescriptor, i = (e, r, h, s) => {
@@ -71,4 +71,4 @@ i([p({ type: String })], t.prototype, "placement", 2), i([p({ type: Number })],
71
71
  export {
72
72
  t as S
73
73
  };
74
- //# sourceMappingURL=tooltip-Ck-JUG_m.js.map
74
+ //# sourceMappingURL=tooltip-DLLzuUKg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-Ck-JUG_m.js","sources":["../src/tooltip/tooltip.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil } from 'rxjs'\n\n/**\n * @element schmancy-tooltip\n * A tooltip component that displays additional information when hovering or focusing an element.\n *\n * @slot - The default slot for the trigger element\n * @slot content - The content to display in the tooltip\n *\n * @csspart tooltip - The tooltip container element\n * @csspart arrow - The tooltip arrow element\n *\n * @example\n * <schmancy-tooltip>\n * <div slot=\"content\">Tooltip content here</div>\n * <schmancy-button>Hover me</schmancy-button>\n * </schmancy-tooltip>\n */\n@customElement('schmancy-tooltip')\nexport class SchmancyTooltip extends TailwindElement() {\n\t/**\n\t * The placement of the tooltip relative to the trigger element\n\t * @attr\n\t */\n\t@property({ type: String })\n\tplacement: 'top' | 'right' | 'bottom' | 'left' = 'top'\n\n\t/**\n\t * The offset distance from the trigger element in pixels\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t/**\n\t * The delay before showing the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tshowDelay = 300\n\n\t/**\n\t * The delay before hiding the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\thideDelay = 100\n\n\t/**\n\t * Whether the tooltip should be shown\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Whether to disable the tooltip\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false\n\n\t@query('#tooltip') tooltip!: HTMLElement\n\t@query('#trigger-container') triggerContainer!: HTMLElement\n\t@query('#arrow') arrow!: HTMLElement\n\n\t@queryAssignedElements({ flatten: true })\n\ttriggerElements!: HTMLElement[]\n\n\tprivate cleanupPositioner?: () => void\n\tprivate showTimeoutId?: number\n\tprivate hideTimeoutId?: number\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setAttribute('aria-live', 'polite')\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\t\tif (this.showTimeoutId) clearTimeout(this.showTimeoutId)\n\t\tif (this.hideTimeoutId) clearTimeout(this.hideTimeoutId)\n\t}\n\n\tprivate async updatePosition() {\n\t\tif (!this.triggerContainer || !this.tooltip) return\n\n\t\tconst { x, y, placement, middlewareData } = await computePosition(this.triggerContainer, this.tooltip, {\n\t\t\tplacement: this.placement,\n\t\t\tmiddleware: [offset(this.distance), flip(), shift({ padding: 8 })],\n\t\t})\n\n\t\t// Position tooltip\n\t\tObject.assign(this.tooltip.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t})\n\n\t\t// Position arrow if it exists\n\t\tif (this.arrow) {\n\t\t\tconst staticSide = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tright: 'left',\n\t\t\t\tbottom: 'top',\n\t\t\t\tleft: 'right',\n\t\t\t}[placement.split('-')[0]]\n\n\t\t\tif (staticSide) {\n\t\t\t\tObject.assign(this.arrow.style, {\n\t\t\t\t\tleft: middlewareData.arrow?.x != null ? `${middlewareData.arrow.x}px` : '',\n\t\t\t\t\ttop: middlewareData.arrow?.y != null ? `${middlewareData.arrow.y}px` : '',\n\t\t\t\t\tright: '',\n\t\t\t\t\tbottom: '',\n\t\t\t\t\t[staticSide]: '-4px',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup the auto-updating position and trigger events\n\t */\n\tfirstUpdated() {\n\t\t// The trigger container holds all the slotted trigger elements\n\t\tif (!this.triggerContainer) return\n\n\t\t// Setup event listeners for the trigger container\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseenter'), fromEvent(this.triggerContainer, 'focus'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleShow()\n\t\t\t})\n\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseleave'), fromEvent(this.triggerContainer, 'blur'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleHide()\n\t\t\t})\n\n\t\t// Add key event listener for escape key\n\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tif (event.key === 'Escape' && this.open) {\n\t\t\t\t\tthis.hide()\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\t/**\n\t * Schedule showing the tooltip with the configured delay\n\t */\n\tprivate scheduleShow() {\n\t\tif (this.hideTimeoutId) {\n\t\t\tclearTimeout(this.hideTimeoutId)\n\t\t\tthis.hideTimeoutId = undefined\n\t\t}\n\n\t\tif (!this.open) {\n\t\t\tthis.showTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.show()\n\t\t\t}, this.showDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Schedule hiding the tooltip with the configured delay\n\t */\n\tprivate scheduleHide() {\n\t\tif (this.showTimeoutId) {\n\t\t\tclearTimeout(this.showTimeoutId)\n\t\t\tthis.showTimeoutId = undefined\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tthis.hideTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.hide()\n\t\t\t}, this.hideDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Show the tooltip\n\t */\n\tpublic show() {\n\t\tif (this.disabled || this.open) return\n\n\t\tthis.open = true\n\n\t\t// Position the tooltip\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.tooltip, () => this.updatePosition())\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-show', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Hide the tooltip\n\t */\n\tpublic hide() {\n\t\tif (!this.open) return\n\n\t\tthis.open = false\n\n\t\t// Cleanup the positioner\n\t\tif (this.cleanupPositioner) {\n\t\t\tthis.cleanupPositioner()\n\t\t\tthis.cleanupPositioner = undefined\n\t\t}\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-hide', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst tooltipClasses = {\n\t\t\t'absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md': true,\n\t\t\t'max-w-xs opacity-0 invisible scale-95 transition-all duration-150': true,\n\t\t\t'opacity-100 visible scale-100': this.open,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div id=\"trigger-container\" class=\"inline-block\" aria-describedby=\"tooltip\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div id=\"tooltip\" part=\"tooltip\" role=\"tooltip\" class=\"${this.classMap(tooltipClasses)}\">\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tooltip': SchmancyTooltip\n\t}\n}\n"],"names":["SchmancyTooltip","TailwindElement","super","arguments","this","placement","distance","showDelay","hideDelay","open","disabled","connectedCallback","setAttribute","disconnectedCallback","cleanupPositioner","showTimeoutId","clearTimeout","hideTimeoutId","updatePosition","triggerContainer","tooltip","x","y","middlewareData","computePosition","middleware","offset","flip","shift","padding","Object","assign","style","left","top","arrow","staticSide","right","bottom","split","merge","fromEvent","pipe","takeUntil","disconnecting","subscribe","scheduleShow","scheduleHide","window","event","key","hide","setTimeout","show","autoUpdate","dispatchEvent","CustomEvent","bubbles","composed","render","tooltipClasses","html","classMap","__decorateClass","property","type","String","prototype","Number","Boolean","reflect","query","queryAssignedElements","flatten","customElement"],"mappings":";;;;;;;;;;;AAuBa,IAAAA,IAAN,cAA8BC,EAAAA,EAAAA;AAAAA,EAA9B,cAAAC;AAAAA,UAAAA,GAAAC,YAM2CC,KAAAC,YAAA,OAOtCD,KAAAE,WAAA,GAOCF,KAAAG,YAAA,KAOAH,KAAAI,YAAA,KAOLJ,KAAAK,OAAA,IAOIL,KAAAM,WAAAA;AAAAA,EAAA;AAAA,EAaX,oBACCR;AAAAA,UAAMS,qBACDP,KAAAQ,aAAa,aAAa,QAAQ;AAAA,EAAA;AAAA,EAGxC,uBACCV;;AAAAA,UAAMW,yBACNT,IAAAA,KAAKU,sBAALV,QAAAA,EAAAA,YACIA,KAAKW,iBAA4BC,aAAAZ,KAAKW,aACtCX,GAAAA,KAAKa,iBAA4BD,aAAAZ,KAAKa,aAAAA;AAAAA,EAAa;AAAA,EAGxD,MAAcC,iBAAAA;;AACb,SAAKd,KAAKe,oBAAAA,CAAqBf,KAAKgB,QAAS;AAEvC,UAAAC,EAAAA,GAAEA,GAAGC,GAAAA,GAAAjB,WAAGA,GAAWkB,gBAAAA,EAAyBC,IAAAA,MAAAA,EAAgBpB,KAAKe,kBAAkBf,KAAKgB,SAAS,EACtGf,WAAWD,KAAKC,WAChBoB,YAAY,CAACC,EAAOtB,KAAKE,QAAAA,GAAWqB,KAAQC,EAAM,EAAEC,SAAS,EAU9D,CAAA,CAAA,EAAA,CAAA;AAAA,QANOC,OAAAC,OAAO3B,KAAKgB,QAAQY,OAAO,EACjCC,MAAM,GAAGZ,CAAAA,MACTa,KAAK,GAAGZ,CAILlB,KAAAA,CAAAA,GAAAA,KAAK+B,OAAO;AACf,YAAMC,IAAa,EAClBF,KAAK,UACLG,OAAO,QACPC,QAAQ,OACRL,MAAM,QAAA,EACL5B,EAAUkC,MAAM,GAAA,EAAK;AAEnBH,MAAAA,KACIN,OAAAC,OAAO3B,KAAK+B,MAAMH,OAAO,EAC/BC,QAAMV,IAAAA,EAAeY,UAAfZ,gBAAAA,EAAsBF,MAAK,OAAO,GAAGE,EAAeY,MAAMd,QAAQ,IACxEa,OAAKX,IAAAA,EAAeY,UAAfZ,gBAAAA,EAAsBD,MAAK,OAAO,GAAGC,EAAeY,MAAMb,CAAQ,OAAA,IACvEe,OAAO,IACPC,QAAQ,IACRF,CAACA,CAAa,GAAA,OAAA,CAAA;AAAA,IAEhB;AAAA,EACD;AAAA,EAMD;AAEMhC,SAAKe,qBAGVqB,EAAMC,EAAUrC,KAAKe,kBAAkB,YAAA,GAAesB,EAAUrC,KAAKe,kBAAkB,OACrFuB,CAAAA,EAAAA,KAAKC,EAAUvC,KAAKwC,aAAAA,CAAAA,EACpBC,UAAU,MACNzC;AAAAA,WAAKM,YACTN,KAAK0C,aAAa;AAAA,IAAA,CAAA,GAGpBN,EAAMC,EAAUrC,KAAKe,kBAAkB,YAAesB,GAAAA,EAAUrC,KAAKe,kBAAkB,MAAA,CAAA,EACrFuB,KAAKC,EAAUvC,KAAKwC,gBACpBC,UAAU,MAAA;AACNzC,WAAKM,YACTN,KAAK2C;IAAa,CAIKN,GAAAA,EAAAO,QAAQ,SAAA,EAC/BN,KAAKC,EAAUvC,KAAKwC,aACpBC,CAAAA,EAAAA,UAAmBI,CAAAA;AACD,MAAdA,EAAMC,QAAQ,YAAY9C,KAAKK,QAClCL,KAAK+C,KAAAA;AAAAA,IAAK,CAEX;AAAA,EAAA;AAAA,EAMK,eACH/C;AAAAA,SAAKa,kBACRD,aAAaZ,KAAKa,gBAClBb,KAAKa,gBAAAA,SAGDb,KAAKK,SACJL,KAAAW,gBAAgBiC,OAAOI,WAAW;AACtChD,WAAKiD,KAAAA;AAAAA,IAAK,GACRjD,KAAKG,SAAAA;AAAAA,EACT;AAAA,EAMO,eAAAwC;AACH3C,SAAKW,kBACRC,aAAaZ,KAAKW,aAClBX,GAAAA,KAAKW,yBAGFX,KAAKK,SACHL,KAAAa,gBAAgB+B,OAAOI,WAAW,MACtChD;AAAAA,WAAK+C;IAAK,GACR/C,KAAKI;EACT;AAAA,EAMM,OACFJ;AAAAA,SAAKM,YAAYN,KAAKK,SAE1BL,KAAKK,OAAAA,IAGAL,KAAAU,oBAAoBwC,EAAWlD,KAAKe,kBAAkBf,KAAKgB,SAAS,MAAMhB,KAAKc,mBAG/Ed,KAAAmD,cACJ,IAAIC,YAAY,yBAAyB,EACxCC,SAAS,IACTC,UAAU,GAAA,CAAA,CAAA;AAAA,EAEZ;AAAA,EAMM;AACDtD,SAAKK,SAEVL,KAAKK,OAAO,IAGRL,KAAKU,sBACRV,KAAKU,kBACLV,GAAAA,KAAKU,oBAAoB,SAIrBV,KAAAmD,cACJ,IAAIC,YAAY,yBAAyB,EACxCC,aACAC,UAAAA,GAEF,CAAA,CAAA;AAAA,EAAA;AAAA,EAGD,SAAAC;AACC,UAAMC,IAAiB,EACtB,6EACA,qEAAA,IACA,iCAAiCxD,KAAKK,KAGhC;AAAA,WAAAoD;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,4DAKmDzD,KAAK0D,SAASF,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAe;AAtNxFG;AAAAA,EAAA,CADCC,EAAS,EAAEC,MAAMC,OALNlE,CAAAA,CAAAA,GAAAA,EAMZmE,WAAA,aAAA,CAOAJ,GAAAA,EAAA,CADCC,EAAS,EAAEC,MAAMG,OAZNpE,CAAAA,CAAAA,GAAAA,EAaZmE,WAAA,YAAA,CAAA,GAOAJ,EAAA,CADCC,EAAS,EAAEC,MAAMG,OAnBNpE,CAAAA,CAAAA,GAAAA,EAoBZmE,WAAA,aAAA,CAAA,GAOAJ,EAAA,CADCC,EAAS,EAAEC,MAAMG,OA1BNpE,CAAAA,CAAAA,GAAAA,EA2BZmE,WAAA,aAAA,CAAA,GAOAJ,EAAA,CADCC,EAAS,EAAEC,MAAMI,SAASC,SAAAA,GAjCftE,CAAAA,CAAAA,GAAAA,EAkCZmE,WAAA,QAAA,IAOAJ,EAAA,CADCC,EAAS,EAAEC,MAAMI,SAASC,SAAS,GAAA,CAAA,CAAA,GAxCxBtE,EAyCZmE,WAAA,YAAA,CAAA,GAEmBJ,EAAA,CAAlBQ,EAAM,UA3CKvE,CAAAA,GAAAA,EA2COmE,WAAA,WAAA,IACUJ,EAAA,CAA5BQ,EAAM,oBAAA,CAAA,GA5CKvE,EA4CiBmE,WAAA,oBAAA,CACZJ,GAAAA,EAAA,CAAhBQ,EAAM,QAAA,CAAA,GA7CKvE,EA6CKmE,WAAA,SAAA,CAGjBJ,GAAAA,EAAA,CADCS,EAAsB,EAAEC,SAAS,GAAA,CAAA,CAAA,GA/CtBzE,EAgDZmE,WAAA,mBAAA,CAAA,GAhDYnE,IAAN+D,EAAA,CADNW,EAAc,kBAAA,CAAA,GACF1E;"}
1
+ {"version":3,"file":"tooltip-DLLzuUKg.js","sources":["../src/tooltip/tooltip.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { fromEvent, merge, takeUntil } from 'rxjs'\n\n/**\n * @element schmancy-tooltip\n * A tooltip component that displays additional information when hovering or focusing an element.\n *\n * @slot - The default slot for the trigger element\n * @slot content - The content to display in the tooltip\n *\n * @csspart tooltip - The tooltip container element\n * @csspart arrow - The tooltip arrow element\n *\n * @example\n * <schmancy-tooltip>\n * <div slot=\"content\">Tooltip content here</div>\n * <schmancy-button>Hover me</schmancy-button>\n * </schmancy-tooltip>\n */\n@customElement('schmancy-tooltip')\nexport class SchmancyTooltip extends TailwindElement() {\n\t/**\n\t * The placement of the tooltip relative to the trigger element\n\t * @attr\n\t */\n\t@property({ type: String })\n\tplacement: 'top' | 'right' | 'bottom' | 'left' = 'top'\n\n\t/**\n\t * The offset distance from the trigger element in pixels\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tdistance = 8\n\n\t/**\n\t * The delay before showing the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tshowDelay = 300\n\n\t/**\n\t * The delay before hiding the tooltip in milliseconds\n\t * @attr\n\t */\n\t@property({ type: Number })\n\thideDelay = 100\n\n\t/**\n\t * Whether the tooltip should be shown\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\topen = false\n\n\t/**\n\t * Whether to disable the tooltip\n\t * @attr\n\t */\n\t@property({ type: Boolean, reflect: true })\n\tdisabled = false\n\n\t@query('#tooltip') tooltip!: HTMLElement\n\t@query('#trigger-container') triggerContainer!: HTMLElement\n\t@query('#arrow') arrow!: HTMLElement\n\n\t@queryAssignedElements({ flatten: true })\n\ttriggerElements!: HTMLElement[]\n\n\tprivate cleanupPositioner?: () => void\n\tprivate showTimeoutId?: number\n\tprivate hideTimeoutId?: number\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setAttribute('aria-live', 'polite')\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.cleanupPositioner?.()\n\t\tif (this.showTimeoutId) clearTimeout(this.showTimeoutId)\n\t\tif (this.hideTimeoutId) clearTimeout(this.hideTimeoutId)\n\t}\n\n\tprivate async updatePosition() {\n\t\tif (!this.triggerContainer || !this.tooltip) return\n\n\t\tconst { x, y, placement, middlewareData } = await computePosition(this.triggerContainer, this.tooltip, {\n\t\t\tplacement: this.placement,\n\t\t\tmiddleware: [offset(this.distance), flip(), shift({ padding: 8 })],\n\t\t})\n\n\t\t// Position tooltip\n\t\tObject.assign(this.tooltip.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t})\n\n\t\t// Position arrow if it exists\n\t\tif (this.arrow) {\n\t\t\tconst staticSide = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tright: 'left',\n\t\t\t\tbottom: 'top',\n\t\t\t\tleft: 'right',\n\t\t\t}[placement.split('-')[0]]\n\n\t\t\tif (staticSide) {\n\t\t\t\tObject.assign(this.arrow.style, {\n\t\t\t\t\tleft: middlewareData.arrow?.x != null ? `${middlewareData.arrow.x}px` : '',\n\t\t\t\t\ttop: middlewareData.arrow?.y != null ? `${middlewareData.arrow.y}px` : '',\n\t\t\t\t\tright: '',\n\t\t\t\t\tbottom: '',\n\t\t\t\t\t[staticSide]: '-4px',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setup the auto-updating position and trigger events\n\t */\n\tfirstUpdated() {\n\t\t// The trigger container holds all the slotted trigger elements\n\t\tif (!this.triggerContainer) return\n\n\t\t// Setup event listeners for the trigger container\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseenter'), fromEvent(this.triggerContainer, 'focus'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleShow()\n\t\t\t})\n\n\t\tmerge(fromEvent(this.triggerContainer, 'mouseleave'), fromEvent(this.triggerContainer, 'blur'))\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.disabled) return\n\t\t\t\tthis.scheduleHide()\n\t\t\t})\n\n\t\t// Add key event listener for escape key\n\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tif (event.key === 'Escape' && this.open) {\n\t\t\t\t\tthis.hide()\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\t/**\n\t * Schedule showing the tooltip with the configured delay\n\t */\n\tprivate scheduleShow() {\n\t\tif (this.hideTimeoutId) {\n\t\t\tclearTimeout(this.hideTimeoutId)\n\t\t\tthis.hideTimeoutId = undefined\n\t\t}\n\n\t\tif (!this.open) {\n\t\t\tthis.showTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.show()\n\t\t\t}, this.showDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Schedule hiding the tooltip with the configured delay\n\t */\n\tprivate scheduleHide() {\n\t\tif (this.showTimeoutId) {\n\t\t\tclearTimeout(this.showTimeoutId)\n\t\t\tthis.showTimeoutId = undefined\n\t\t}\n\n\t\tif (this.open) {\n\t\t\tthis.hideTimeoutId = window.setTimeout(() => {\n\t\t\t\tthis.hide()\n\t\t\t}, this.hideDelay)\n\t\t}\n\t}\n\n\t/**\n\t * Show the tooltip\n\t */\n\tpublic show() {\n\t\tif (this.disabled || this.open) return\n\n\t\tthis.open = true\n\n\t\t// Position the tooltip\n\t\tthis.cleanupPositioner = autoUpdate(this.triggerContainer, this.tooltip, () => this.updatePosition())\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-show', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\t/**\n\t * Hide the tooltip\n\t */\n\tpublic hide() {\n\t\tif (!this.open) return\n\n\t\tthis.open = false\n\n\t\t// Cleanup the positioner\n\t\tif (this.cleanupPositioner) {\n\t\t\tthis.cleanupPositioner()\n\t\t\tthis.cleanupPositioner = undefined\n\t\t}\n\n\t\t// Dispatch custom event\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('schmancy-tooltip-hide', {\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\trender() {\n\t\tconst tooltipClasses = {\n\t\t\t'absolute z-50 bg-surface-highest text-surface-on rounded-md shadow-md': true,\n\t\t\t'max-w-xs opacity-0 invisible scale-95 transition-all duration-150': true,\n\t\t\t'opacity-100 visible scale-100': this.open,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div id=\"trigger-container\" class=\"inline-block\" aria-describedby=\"tooltip\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div id=\"tooltip\" part=\"tooltip\" role=\"tooltip\" class=\"${this.classMap(tooltipClasses)}\">\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tooltip': SchmancyTooltip\n\t}\n}\n"],"names":["SchmancyTooltip","TailwindElement","super","arguments","this","placement","distance","showDelay","hideDelay","open","disabled","connectedCallback","setAttribute","disconnectedCallback","cleanupPositioner","showTimeoutId","clearTimeout","hideTimeoutId","updatePosition","triggerContainer","tooltip","x","y","middlewareData","computePosition","middleware","offset","flip","shift","padding","Object","assign","style","left","top","arrow","staticSide","right","bottom","split","merge","fromEvent","pipe","takeUntil","disconnecting","subscribe","scheduleShow","scheduleHide","window","event","key","hide","setTimeout","show","autoUpdate","dispatchEvent","CustomEvent","bubbles","composed","render","tooltipClasses","html","classMap","__decorateClass","property","type","String","prototype","Number","Boolean","reflect","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
package/dist/tooltip.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tooltip-BJ_lQc8I.cjs");Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>e.SchmancyTooltip});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tooltip-BU1ScbI9.cjs");Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>e.SchmancyTooltip});
2
2
  //# sourceMappingURL=tooltip.cjs.map
package/dist/tooltip.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as c } from "./tooltip-Ck-JUG_m.js";
1
+ import { S as c } from "./tooltip-DLLzuUKg.js";
2
2
  export {
3
3
  c as SchmancyTooltip
4
4
  };
@@ -1,4 +1,4 @@
1
- "use strict";const t=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-DLuYz9Iz.cjs"),p=require("lit"),c=require("lit/decorators.js");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,l=(n,r,o,i)=>{for(var s,e=i>1?void 0:i?g(r,o):r,a=n.length-1;a>=0;a--)(s=n[a])&&(e=(i?s(r,o,e):s(e))||e);return i&&e&&u(r,o,e),e};exports.SchmancyTree=class extends d.TailwindElement(p.css`
1
+ "use strict";const t=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-CAvg5VIG.cjs"),p=require("lit"),c=require("lit/decorators.js");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,l=(n,r,o,i)=>{for(var s,e=i>1?void 0:i?g(r,o):r,a=n.length-1;a>=0;a--)(s=n[a])&&(e=(i?s(r,o,e):s(e))||e);return i&&e&&u(r,o,e),e};exports.SchmancyTree=class extends d.TailwindElement(p.css`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -24,4 +24,4 @@
24
24
  <!-- The default slot: tree children -->
25
25
  <slot></slot>
26
26
  `}},l([c.property({type:Boolean})],exports.SchmancyTree.prototype,"open",2),l([c.query("#toggler")],exports.SchmancyTree.prototype,"toggler",2),l([c.query('slot:not([name="root"])')],exports.SchmancyTree.prototype,"defaultSlot",2),l([c.query("#chevron")],exports.SchmancyTree.prototype,"chevron",2),exports.SchmancyTree=l([c.customElement("schmancy-tree")],exports.SchmancyTree);
27
- //# sourceMappingURL=tree-plC4VSNF.cjs.map
27
+ //# sourceMappingURL=tree-DJ0dLSbg.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-plC4VSNF.cjs","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","firstUpdated","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":"oZAWaA,QAAAA,aAAN,cAA2BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,CAAA,CAAA,cAAAC,MAAAC,GAAAA,SAAAA,EAiB8BC,KAAAC,KAAA,EAAA,CAQpC,cAAAC,CAEMF,KAAKC,OACTD,KAAKG,YAAYC,OAAS,IAI3B,MAAMC,EAAeC,EAAAA,UAAsBN,KAAKO,QAAS,OAASC,EAAAA,KACjEC,EAAAA,UAAUT,KAAKU,eACfC,MAASC,IACRA,EAAEC,eAAAA,EACFD,EAAEE,gBACGd,EAAAA,KAAAe,cAAc,IAAIC,YAAY,SAAU,CAAEC,QAAAA,GAAeC,SAAU,EAAA,CAAA,CAAA,CAAO,CAK3EC,CAAAA,EAAAA,EAAgBb,EAAAA,UAAsBN,KAAKoB,QAAS,OAEpDC,EAAAA,QAAAhB,EAAcc,CAAAA,EAClBX,KACAc,EAAAA,UAAU,KAGH,MAAAC,EAAUvB,KAAKC,KAAO,IAAM,EAC5BuB,EAAQxB,KAAKC,KAAO,EAAI,IACxBwB,EAAmBzB,KAAKoB,QAAQM,QACrC,CAAC,CAAEC,UAAW,UAAUJ,SAAiB,CAAEI,UAAW,UAAUH,CAChE,MAAA,CAAA,EAAA,CACCI,SAAU,IACVC,OAAQ,UACRC,KAAM,UAAA,CAAA,EAKH9B,KAAKC,OAETD,KAAKG,YAAYC,OAAAA,IAGZ,MAAA2B,EAAc/B,KAAKC,KAAO,EAAI,EAC9B+B,EAAYhC,KAAKC,KAAO,EAAI,EAE5BgC,EAAgBjC,KAAKG,YAAYuB,QAAQ,CAAC,CAAEQ,QAASH,CAAAA,EAAe,CAAEG,QAASF,CAAAA,CAAAA,EAAc,CAClGJ,SAAU,IACVC,OAAQ,WACRC,KAAM,aAcA,OAVPG,EAAcE,SAAW,IACpBnC,CAAAA,KAAKC,KACRD,KAAKG,YAAYC,WAEZJ,KAAAG,YAAYiC,MAAMC,OAAS,OAC3BrC,KAAAG,YAAYiC,MAAMF,QAAU,IAAA,EAK5BI,EAAAA,IAAIhC,YAAUmB,EAAkB,QAAWnB,EAAAA,EAAAA,UAAU2B,EAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAAA,UAAUT,KAAKU,aAAAA,CAAAA,CAChB,GAEDC,EAAAA,IAAI,KAEEX,KAAAC,KAAAA,CAAQD,KAAKC,IAAA,CAAA,EAEnBQ,EAAAA,UAAUT,KAAKU,gBAEf6B,UAAU,CAAA,CAGb,QACQ,CAAA,OAAAC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD5B,GAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAiB,CA1F9D2B,EAAAA,EAAA,CAA5BC,WAAS,CAAEC,KAAMC,OAAAA,CAAAA,CAAAA,EAjBNjD,qBAiBiBkD,UAAA,OAAA,GAEVJ,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAnBKnD,qBAmBOkD,UAAA,UAAA,CAAA,EACeJ,EAAA,CAAjCK,EAAAA,MAAM,yBAAA,CAAA,EApBKnD,qBAoBsBkD,UAAA,cAAA,CAGfJ,EAAAA,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAvBKnD,qBAuBOkD,UAAA,UAAA,CAAA,EAvBPlD,QAANA,aAAA8C,EAAA,CADNM,EAAAA,cAAc,eAAA,CAAA,EACFpD"}
1
+ {"version":3,"file":"tree-DJ0dLSbg.cjs","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","firstUpdated","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":"oZAWaA,QAAAA,aAAN,cAA2BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,CAAA,CAAA,cAAAC,MAAAC,GAAAA,SAAAA,EAiB8BC,KAAAC,KAAA,EAAA,CAQpC,cAAAC,CAEMF,KAAKC,OACTD,KAAKG,YAAYC,OAAS,IAI3B,MAAMC,EAAeC,EAAAA,UAAsBN,KAAKO,QAAS,OAASC,EAAAA,KACjEC,EAAAA,UAAUT,KAAKU,eACfC,MAASC,IACRA,EAAEC,eAAAA,EACFD,EAAEE,gBACGd,EAAAA,KAAAe,cAAc,IAAIC,YAAY,SAAU,CAAEC,QAAAA,GAAeC,SAAU,EAAA,CAAA,CAAA,CAAO,CAK3EC,CAAAA,EAAAA,EAAgBb,EAAAA,UAAsBN,KAAKoB,QAAS,OAEpDC,EAAAA,QAAAhB,EAAcc,CAAAA,EAClBX,KACAc,EAAAA,UAAU,KAGH,MAAAC,EAAUvB,KAAKC,KAAO,IAAM,EAC5BuB,EAAQxB,KAAKC,KAAO,EAAI,IACxBwB,EAAmBzB,KAAKoB,QAAQM,QACrC,CAAC,CAAEC,UAAW,UAAUJ,SAAiB,CAAEI,UAAW,UAAUH,CAChE,MAAA,CAAA,EAAA,CACCI,SAAU,IACVC,OAAQ,UACRC,KAAM,UAAA,CAAA,EAKH9B,KAAKC,OAETD,KAAKG,YAAYC,OAAAA,IAGZ,MAAA2B,EAAc/B,KAAKC,KAAO,EAAI,EAC9B+B,EAAYhC,KAAKC,KAAO,EAAI,EAE5BgC,EAAgBjC,KAAKG,YAAYuB,QAAQ,CAAC,CAAEQ,QAASH,CAAAA,EAAe,CAAEG,QAASF,CAAAA,CAAAA,EAAc,CAClGJ,SAAU,IACVC,OAAQ,WACRC,KAAM,aAcA,OAVPG,EAAcE,SAAW,IACpBnC,CAAAA,KAAKC,KACRD,KAAKG,YAAYC,WAEZJ,KAAAG,YAAYiC,MAAMC,OAAS,OAC3BrC,KAAAG,YAAYiC,MAAMF,QAAU,IAAA,EAK5BI,EAAAA,IAAIhC,YAAUmB,EAAkB,QAAWnB,EAAAA,EAAAA,UAAU2B,EAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAAA,UAAUT,KAAKU,aAAAA,CAAAA,CAChB,GAEDC,EAAAA,IAAI,KAEEX,KAAAC,KAAAA,CAAQD,KAAKC,IAAA,CAAA,EAEnBQ,EAAAA,UAAUT,KAAKU,gBAEf6B,UAAU,CAAA,CAGb,QACQ,CAAA,OAAAC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD5B,GAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAiB,CA1F9D2B,EAAAA,EAAA,CAA5BC,WAAS,CAAEC,KAAMC,OAAAA,CAAAA,CAAAA,EAjBNjD,qBAiBiBkD,UAAA,OAAA,GAEVJ,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAnBKnD,qBAmBOkD,UAAA,UAAA,CAAA,EACeJ,EAAA,CAAjCK,EAAAA,MAAM,yBAAA,CAAA,EApBKnD,qBAoBsBkD,UAAA,cAAA,CAGfJ,EAAAA,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAvBKnD,qBAuBOkD,UAAA,UAAA,CAAA,EAvBPlD,QAANA,aAAA8C,EAAA,CADNM,EAAAA,cAAc,eAAA,CAAA,EACFpD"}
@@ -1,7 +1,7 @@
1
1
  import { fromEvent as p, takeUntil as c, tap as g, merge as m, switchMap as f, zip as u } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { T as y } from "./tailwind.mixin-B_hJc1PP.js";
4
+ import { T as y } from "./tailwind.mixin-CgdpQXVy.js";
5
5
  import { css as v, html as b } from "lit";
6
6
  import { property as S, query as h, customElement as w } from "lit/decorators.js";
7
7
  var k = Object.defineProperty, j = Object.getOwnPropertyDescriptor, l = (e, s, o, i) => {
@@ -61,4 +61,4 @@ l([S({ type: Boolean })], n.prototype, "open", 2), l([h("#toggler")], n.prototyp
61
61
  export {
62
62
  n as S
63
63
  };
64
- //# sourceMappingURL=tree-BE0sci4r.js.map
64
+ //# sourceMappingURL=tree-Dxc1tbC8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-BE0sci4r.js","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","render","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":";;;;;;;;;;AAWa,IAAAA,IAAN,cAA2BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,EAAA;AAAA,EAAA;AAAAC,UAAAC,GAAAA,SAAAA,GAiB8BC,KAAAC,OAAAA;AAAAA,EAAA;AAAA,EAQpC,eAEMD;AAAAA,SAAKC,SACTD,KAAKE,YAAYC;AAIlB,UAAMC,IAAeC,EAAsBL,KAAKM,SAAS,OAAA,EAASC,KACjEC,EAAUR,KAAKS,aACfC,GAAAA,EAASC,CAAAA;AACRA,MAAAA,EAAEC,eAAAA,GACFD,EAAEE,gBAAAA,GACGb,KAAAc,cAAc,IAAIC,YAAY,UAAU,EAAEC,aAAeC,UAAAA,GAAiB,CAAA,CAAA;AAAA,IAAA,CAAA,CAAA,GAK3EC,IAAgBb,EAAsBL,KAAKmB,SAAS,OAAA;AAEpDC,IAAAA,EAAAhB,GAAcc,CAAAA,EAClBX,KACAc,EAAU;AAGH,YAAAC,IAAUtB,KAAKC,OAAO,MAAM,GAC5BsB,IAAQvB,KAAKC,OAAO,IAAI,KACxBuB,IAAmBxB,KAAKmB,QAAQM,QACrC,CAAC,EAAEC,WAAW,UAAUJ,CAAiB,OAAA,GAAA,EAAEI,WAAW,UAAUH,CAAAA,OAAAA,CAAAA,GAChE,EACCI,UAAU,KACVC,QAAQ,WACRC,MAAM,WAKH7B,CAAAA;AAAAA,WAAKC,SAETD,KAAKE,YAAYC,SAAS;AAGrB,YAAA2B,IAAc9B,KAAKC,OAAO,IAAI,GAC9B8B,IAAY/B,KAAKC,OAAO,IAAI,GAE5B+B,IAAgBhC,KAAKE,YAAYuB,QAAQ,CAAC,EAAEQ,SAASH,EAAAA,GAAe,EAAEG,SAASF,EAAAA,CAAAA,GAAc,EAClGJ,UAAU,KACVC,QAAQ,YACRC,MAAM,WAcA,CAAA;AAAA,aAVPG,EAAcE,WAAW,MAAA;AACpBlC,aAAKC,OACRD,KAAKE,YAAYC,SAAAA,MAEZH,KAAAE,YAAYiC,MAAMC,SAAS,QAC3BpC,KAAAE,YAAYiC,MAAMF,UAAU;AAAA,MAAA,GAK5BI,EAAIhC,EAAUmB,GAAkB,QAAA,GAAWnB,EAAU2B,GAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAUR,KAAKS,aAChB,CAAA;AAAA,IAAA,CAAA,GAEDC,EAAI,MAEEV;AAAAA,WAAAC,QAAQD,KAAKC;AAAAA,IAAA,CAEnBO,GAAAA,EAAUR,KAAKS,aAEf6B,CAAAA,EAAAA,UAAAA;AAAAA,EAAU;AAAA,EAGb,SAAAC;AACQ,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD7B,CAAAA,MAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAiB;AAAA;AA1F9D4B,EAAA,CAA5BC,EAAS,EAAEC,MAAMC,aAjBNjD,EAiBiBkD,WAAA,QAAA,CAAA,GAEVJ,EAAA,CAAlBK,EAAM,cAnBKnD,EAmBOkD,WAAA,WAAA,CACeJ,GAAAA,EAAA,CAAjCK,EAAM,6BApBKnD,EAoBsBkD,WAAA,eAAA,CAGfJ,GAAAA,EAAA,CAAlBK,EAAM,UAAA,CAAA,GAvBKnD,EAuBOkD,WAAA,WAAA,CAvBPlD,GAAAA,IAAN8C,EAAA,CADNM,EAAc,mBACFpD;"}
1
+ {"version":3,"file":"tree-Dxc1tbC8.js","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","render","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":";;;;;;;;;;AAWa,IAAAA,IAAN,cAA2BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,EAAA;AAAA,EAAA;AAAAC,UAAAC,GAAAA,SAAAA,GAiB8BC,KAAAC,OAAAA;AAAAA,EAAA;AAAA,EAQpC,eAEMD;AAAAA,SAAKC,SACTD,KAAKE,YAAYC;AAIlB,UAAMC,IAAeC,EAAsBL,KAAKM,SAAS,OAAA,EAASC,KACjEC,EAAUR,KAAKS,aACfC,GAAAA,EAASC,CAAAA;AACRA,MAAAA,EAAEC,eAAAA,GACFD,EAAEE,gBAAAA,GACGb,KAAAc,cAAc,IAAIC,YAAY,UAAU,EAAEC,aAAeC,UAAAA,GAAiB,CAAA,CAAA;AAAA,IAAA,CAAA,CAAA,GAK3EC,IAAgBb,EAAsBL,KAAKmB,SAAS,OAAA;AAEpDC,IAAAA,EAAAhB,GAAcc,CAAAA,EAClBX,KACAc,EAAU;AAGH,YAAAC,IAAUtB,KAAKC,OAAO,MAAM,GAC5BsB,IAAQvB,KAAKC,OAAO,IAAI,KACxBuB,IAAmBxB,KAAKmB,QAAQM,QACrC,CAAC,EAAEC,WAAW,UAAUJ,CAAiB,OAAA,GAAA,EAAEI,WAAW,UAAUH,CAAAA,OAAAA,CAAAA,GAChE,EACCI,UAAU,KACVC,QAAQ,WACRC,MAAM,WAKH7B,CAAAA;AAAAA,WAAKC,SAETD,KAAKE,YAAYC,SAAS;AAGrB,YAAA2B,IAAc9B,KAAKC,OAAO,IAAI,GAC9B8B,IAAY/B,KAAKC,OAAO,IAAI,GAE5B+B,IAAgBhC,KAAKE,YAAYuB,QAAQ,CAAC,EAAEQ,SAASH,EAAAA,GAAe,EAAEG,SAASF,EAAAA,CAAAA,GAAc,EAClGJ,UAAU,KACVC,QAAQ,YACRC,MAAM,WAcA,CAAA;AAAA,aAVPG,EAAcE,WAAW,MAAA;AACpBlC,aAAKC,OACRD,KAAKE,YAAYC,SAAAA,MAEZH,KAAAE,YAAYiC,MAAMC,SAAS,QAC3BpC,KAAAE,YAAYiC,MAAMF,UAAU;AAAA,MAAA,GAK5BI,EAAIhC,EAAUmB,GAAkB,QAAA,GAAWnB,EAAU2B,GAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAUR,KAAKS,aAChB,CAAA;AAAA,IAAA,CAAA,GAEDC,EAAI,MAEEV;AAAAA,WAAAC,QAAQD,KAAKC;AAAAA,IAAA,CAEnBO,GAAAA,EAAUR,KAAKS,aAEf6B,CAAAA,EAAAA,UAAAA;AAAAA,EAAU;AAAA,EAGb,SAAAC;AACQ,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD7B,CAAAA,MAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAiB;AAAA;AA1F9D4B,EAAA,CAA5BC,EAAS,EAAEC,MAAMC,aAjBNjD,EAiBiBkD,WAAA,QAAA,CAAA,GAEVJ,EAAA,CAAlBK,EAAM,cAnBKnD,EAmBOkD,WAAA,WAAA,CACeJ,GAAAA,EAAA,CAAjCK,EAAM,6BApBKnD,EAoBsBkD,WAAA,eAAA,CAGfJ,GAAAA,EAAA,CAAlBK,EAAM,UAAA,CAAA,GAvBKnD,EAuBOkD,WAAA,WAAA,CAvBPlD,GAAAA,IAAN8C,EAAA,CADNM,EAAc,mBACFpD;"}
package/dist/tree.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tree-plC4VSNF.cjs");Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>e.SchmancyTree});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tree-DJ0dLSbg.cjs");Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>e.SchmancyTree});
2
2
  //# sourceMappingURL=tree.cjs.map
package/dist/tree.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as a } from "./tree-BE0sci4r.js";
1
+ import { S as a } from "./tree-Dxc1tbC8.js";
2
2
  export {
3
3
  a as SchmancyTree
4
4
  };
@@ -10,9 +10,9 @@ import { c as qt } from "./consume-B05Dd6qy.js";
10
10
  import "rxjs";
11
11
  import "lit/directives/class-map.js";
12
12
  import "lit/directives/style-map.js";
13
- import { $ as xt } from "./litElement.mixin-CRbxrdrS.js";
14
- import "./tailwind.mixin-B_hJc1PP.js";
15
- import { h as Lt, d as Dt } from "./delay-DN-mtGtE.js";
13
+ import { $ as xt } from "./litElement.mixin-DamySMT5.js";
14
+ import "./tailwind.mixin-CgdpQXVy.js";
15
+ import { h as Lt, d as Dt } from "./delay-DiN5nFO-.js";
16
16
  import { i as Mt } from "./intersection-CJxzz8c-.js";
17
17
  import { css as kt, html as At } from "lit";
18
18
  import { property as T, query as _t, queryAssignedNodes as $t, queryAssignedElements as Ot, customElement as Ht } from "lit/decorators.js";
@@ -99,7 +99,7 @@ const $ = (s) => "value" in s;
99
99
  let S = (s) => typeof s == "function" ? s() : s, Q = (s, t = document, e = !1) => t["querySelector" + (e ? "All" : "")](s);
100
100
  const N = (s, t) => Object.assign({}, s, t);
101
101
  let Kt = { "font-family": "", "font-weight": "", "font-size": "", "font-style": "", "line-height": "", color: "", transform: "translateX(-.125em)" };
102
- var i, It, q, U, Ct, V, X, J, H, w, vt, x, L, Tt, B, Pt, St, W, R, D, z, C, M, k, G, I;
102
+ var i, It, q, U, Ct, V, J, X, H, w, vt, x, L, Tt, B, Pt, St, W, R, D, z, C, M, k, G, I;
103
103
  class Qt {
104
104
  constructor(t, e = {}) {
105
105
  K(this, i);
@@ -154,7 +154,7 @@ class Qt {
154
154
  }([{ delay: this.opts.startDelay }]), p(this, B).call(this, e), this.cursor = a(this, i, St).call(this), this.element.dataset.typeitId = this.id, ot(zt), this.opts.strings.length && a(this, i, Tt).call(this);
155
155
  }
156
156
  go() {
157
- return this.statuses.started ? this : (a(this, i, J).call(this), this.opts.waitUntilVisible ? (t = this.element, e = a(this, i, q).bind(this), new IntersectionObserver((r, n) => {
157
+ return this.statuses.started ? this : (a(this, i, X).call(this), this.opts.waitUntilVisible ? (t = this.element, e = a(this, i, q).bind(this), new IntersectionObserver((r, n) => {
158
158
  r.forEach((o) => {
159
159
  o.isIntersecting && (e(), n.unobserve(t));
160
160
  });
@@ -204,7 +204,7 @@ class Qt {
204
204
  this.statuses.frozen = !0;
205
205
  }
206
206
  flush(t = null) {
207
- return this.flushCallback = t || this.flushCallback, this.statuses.firing || (a(this, i, J).call(this), a(this, i, q).call(this, !1).then(() => {
207
+ return this.flushCallback = t || this.flushCallback, this.statuses.firing || (a(this, i, X).call(this), a(this, i, q).call(this, !1).then(() => {
208
208
  if (this.queue.getPendingQueueItems().length > 0) return this.flush();
209
209
  this.flushCallback(), this.flushCallback = null;
210
210
  })), this;
@@ -247,7 +247,7 @@ i = new WeakSet(), It = async function() {
247
247
  if (!t) return this.statuses.firing = !1, this;
248
248
  if (this.statuses.completed = !0, this.statuses.firing = !1, await this.opts.afterComplete(this), !this.opts.loop) throw "";
249
249
  let n = this.opts.loopDelay;
250
- a(this, i, X).call(this, async () => {
250
+ a(this, i, J).call(this, async () => {
251
251
  await a(this, i, Ct).call(this, n[0]), a(this, i, q).call(this);
252
252
  }, n[1]);
253
253
  } catch {
@@ -266,8 +266,8 @@ i = new WeakSet(), It = async function() {
266
266
  for (let n = 0; n < r.length; n++) await a(this, i, V).call(this, n, r);
267
267
  this.queue.reset(), this.queue.set(0, { delay: t });
268
268
  }, V = function(t, e) {
269
- return jt({ index: t, queueItems: e, wait: a(this, i, X).bind(this), cursor: this.cursor, cursorOptions: this.opts.cursor });
270
- }, X = async function(t, e, r = !1) {
269
+ return jt({ index: t, queueItems: e, wait: a(this, i, J).bind(this), cursor: this.cursor, cursorOptions: this.opts.cursor });
270
+ }, J = async function(t, e, r = !1) {
271
271
  this.statuses.frozen && await new Promise((n) => {
272
272
  this.unfreeze = () => {
273
273
  this.statuses.frozen = !1, n();
@@ -277,7 +277,7 @@ i = new WeakSet(), It = async function() {
277
277
  await n(), l();
278
278
  }, o || 0));
279
279
  }))(t, e, this.timeouts), r || await this.opts.afterStep(this);
280
- }, J = async function() {
280
+ }, X = async function() {
281
281
  if (!a(this, i, H).call(this) && this.cursor && this.element.appendChild(this.cursor), p(this, i, G)) {
282
282
  ((n, o) => {
283
283
  let h = `[${yt}='${n}'] .${v}`, l = getComputedStyle(o), u = Object.entries(Kt).reduce((d, [c, y]) => `${d} ${c}: var(--ti-cursor-${c}, ${y || l[c]});`, "");
@@ -433,4 +433,4 @@ g([T({ type: Number })], f.prototype, "speed", 2), g([qt({ context: Dt, subscrib
433
433
  export {
434
434
  f as T
435
435
  };
436
- //# sourceMappingURL=typewriter-CFULjoNm.js.map
436
+ //# sourceMappingURL=typewriter-BhxAnEeh.js.map