@mhmo91/schmancy 0.9.6 → 0.9.8

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 (329) hide show
  1. package/dist/{area-BARjKpE9.js → area-B7dO3iQk.js} +1 -1
  2. package/dist/{area-BARjKpE9.js.map → area-B7dO3iQk.js.map} +1 -1
  3. package/dist/{area-D9b9dHQr.cjs → area-BO1pgdqV.cjs} +1 -1
  4. package/dist/{area-D9b9dHQr.cjs.map → area-BO1pgdqV.cjs.map} +1 -1
  5. package/dist/area.cjs +1 -1
  6. package/dist/area.js +1 -1
  7. package/dist/{autocomplete-AI2CCJmK.cjs → autocomplete-C5zoEBRG.cjs} +1 -1
  8. package/dist/{autocomplete-AI2CCJmK.cjs.map → autocomplete-C5zoEBRG.cjs.map} +1 -1
  9. package/dist/{autocomplete-DOimwVMP.js → autocomplete-DDi9TXif.js} +2 -2
  10. package/dist/{autocomplete-DOimwVMP.js.map → autocomplete-DDi9TXif.js.map} +1 -1
  11. package/dist/autocomplete.cjs +1 -1
  12. package/dist/autocomplete.js +1 -1
  13. package/dist/badge.cjs +1 -1
  14. package/dist/badge.js +1 -1
  15. package/dist/{boat-Bk4u-LzT.cjs → boat-C79wzYg9.cjs} +1 -1
  16. package/dist/{boat-Bk4u-LzT.cjs.map → boat-C79wzYg9.cjs.map} +1 -1
  17. package/dist/{boat-DrghVeWK.js → boat-i8DrhLYx.js} +1 -1
  18. package/dist/{boat-DrghVeWK.js.map → boat-i8DrhLYx.js.map} +1 -1
  19. package/dist/boat.cjs +1 -1
  20. package/dist/boat.js +1 -1
  21. package/dist/breadcrumb.cjs +1 -1
  22. package/dist/breadcrumb.js +1 -1
  23. package/dist/{busy-BmFfwyz_.js → busy--fpj3der.js} +1 -1
  24. package/dist/{busy-BmFfwyz_.js.map → busy--fpj3der.js.map} +1 -1
  25. package/dist/{busy-c_q_F8O0.cjs → busy-M-hbbgXX.cjs} +1 -1
  26. package/dist/{busy-c_q_F8O0.cjs.map → busy-M-hbbgXX.cjs.map} +1 -1
  27. package/dist/busy.cjs +1 -1
  28. package/dist/busy.js +1 -1
  29. package/dist/button.cjs +1 -1
  30. package/dist/button.js +1 -1
  31. package/dist/{card-C_E944_Z.cjs → card-CU_ua_iC.cjs} +1 -1
  32. package/dist/{card-C_E944_Z.cjs.map → card-CU_ua_iC.cjs.map} +1 -1
  33. package/dist/{card-BADJHUMA.js → card-fR0jl5bl.js} +1 -1
  34. package/dist/{card-BADJHUMA.js.map → card-fR0jl5bl.js.map} +1 -1
  35. package/dist/card.cjs +1 -1
  36. package/dist/card.js +1 -1
  37. package/dist/charts.cjs +1 -1
  38. package/dist/charts.js +1 -1
  39. package/dist/{checkbox-ZqDoCagB.cjs → checkbox-B_1r4sSi.cjs} +1 -1
  40. package/dist/{checkbox-ZqDoCagB.cjs.map → checkbox-B_1r4sSi.cjs.map} +1 -1
  41. package/dist/{checkbox-D7rvCrGk.js → checkbox-DhGwxLUA.js} +1 -1
  42. package/dist/{checkbox-D7rvCrGk.js.map → checkbox-DhGwxLUA.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/{chips-vdzIsesI.js → chips-6oL8s3aa.js} +3 -3
  46. package/dist/{chips-vdzIsesI.js.map → chips-6oL8s3aa.js.map} +1 -1
  47. package/dist/{chips-Cux635Qs.cjs → chips-CPwBTyPc.cjs} +1 -1
  48. package/dist/{chips-Cux635Qs.cjs.map → chips-CPwBTyPc.cjs.map} +1 -1
  49. package/dist/chips.cjs +1 -1
  50. package/dist/chips.js +2 -2
  51. package/dist/{code-highlight-D6yruol6.js → code-highlight-boHQWw3m.js} +1 -1
  52. package/dist/{code-highlight-D6yruol6.js.map → code-highlight-boHQWw3m.js.map} +1 -1
  53. package/dist/{code-highlight-C9lKek2p.cjs → code-highlight-q_CYpZwM.cjs} +1 -1
  54. package/dist/{code-highlight-C9lKek2p.cjs.map → code-highlight-q_CYpZwM.cjs.map} +1 -1
  55. package/dist/code-highlight.cjs +1 -1
  56. package/dist/code-highlight.js +1 -1
  57. package/dist/{components-DSvPKR9Q.js → components-CP0GAP1f.js} +1 -1
  58. package/dist/{components-DSvPKR9Q.js.map → components-CP0GAP1f.js.map} +1 -1
  59. package/dist/{components-ByRyEzz5.cjs → components-DctF7iZf.cjs} +1 -1
  60. package/dist/{components-ByRyEzz5.cjs.map → components-DctF7iZf.cjs.map} +1 -1
  61. package/dist/components.cjs +1 -1
  62. package/dist/components.js +1 -1
  63. package/dist/connectivity.cjs +1 -1
  64. package/dist/connectivity.js +1 -1
  65. package/dist/content-drawer.cjs +1 -1
  66. package/dist/content-drawer.js +1 -1
  67. package/dist/{date-range-DJsavigf.cjs → date-range-7tEEsDtV.cjs} +1 -1
  68. package/dist/{date-range-DJsavigf.cjs.map → date-range-7tEEsDtV.cjs.map} +1 -1
  69. package/dist/{date-range-tEX2Jx2j.js → date-range-BNs88xLm.js} +2 -2
  70. package/dist/{date-range-tEX2Jx2j.js.map → date-range-BNs88xLm.js.map} +1 -1
  71. package/dist/date-range.cjs +1 -1
  72. package/dist/date-range.js +1 -1
  73. package/dist/{delay-BvVdfhAR.cjs → delay-CLJt5qW-.cjs} +2 -2
  74. package/dist/{delay-BvVdfhAR.cjs.map → delay-CLJt5qW-.cjs.map} +1 -1
  75. package/dist/{delay-CZw37zps.js → delay-COZ8rqRd.js} +3 -3
  76. package/dist/{delay-CZw37zps.js.map → delay-COZ8rqRd.js.map} +1 -1
  77. package/dist/delay.cjs +1 -1
  78. package/dist/delay.js +1 -1
  79. package/dist/{details-Bhz8_whd.cjs → details-BPV8itUf.cjs} +1 -1
  80. package/dist/{details-Bhz8_whd.cjs.map → details-BPV8itUf.cjs.map} +1 -1
  81. package/dist/{details-D7VTnLOh.js → details-DkFwn_vQ.js} +1 -1
  82. package/dist/{details-D7VTnLOh.js.map → details-DkFwn_vQ.js.map} +1 -1
  83. package/dist/details.cjs +1 -1
  84. package/dist/details.js +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-S0bHwCCS.cjs → divider-CvPXQI-l.cjs} +1 -1
  88. package/dist/{divider-S0bHwCCS.cjs.map → divider-CvPXQI-l.cjs.map} +1 -1
  89. package/dist/{divider-zS232JDr.js → divider-DIrCxVmp.js} +1 -1
  90. package/dist/{divider-zS232JDr.js.map → divider-DIrCxVmp.js.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/dropdown.cjs +1 -1
  94. package/dist/dropdown.js +2 -2
  95. package/dist/{expand-Dr7TFXpl.cjs → expand-BRRNL58x.cjs} +1 -1
  96. package/dist/{expand-Dr7TFXpl.cjs.map → expand-BRRNL58x.cjs.map} +1 -1
  97. package/dist/{expand-BXt9SqAF.js → expand-Bi1crOOq.js} +2 -2
  98. package/dist/{expand-BXt9SqAF.js.map → expand-Bi1crOOq.js.map} +1 -1
  99. package/dist/expand.cjs +1 -1
  100. package/dist/expand.js +1 -1
  101. package/dist/{extra-BmZTXAp0.cjs → extra-CKwEMtT6.cjs} +1 -1
  102. package/dist/{extra-BmZTXAp0.cjs.map → extra-CKwEMtT6.cjs.map} +1 -1
  103. package/dist/{extra-COYhsOyZ.js → extra-Ds5LPr-k.js} +1 -1
  104. package/dist/{extra-COYhsOyZ.js.map → extra-Ds5LPr-k.js.map} +1 -1
  105. package/dist/extra.cjs +1 -1
  106. package/dist/extra.js +1 -1
  107. package/dist/{float-DCXafWh6.js → float-ByMCGgya.js} +1 -1
  108. package/dist/{float-DCXafWh6.js.map → float-ByMCGgya.js.map} +1 -1
  109. package/dist/{float-CSRW-Rrd.cjs → float-DJ3lbO3d.cjs} +1 -1
  110. package/dist/{float-CSRW-Rrd.cjs.map → float-DJ3lbO3d.cjs.map} +1 -1
  111. package/dist/float.cjs +1 -1
  112. package/dist/float.js +1 -1
  113. package/dist/{icons-BbaI9Zf-.js → icons-ChMKOSdK.js} +1 -1
  114. package/dist/{icons-BbaI9Zf-.js.map → icons-ChMKOSdK.js.map} +1 -1
  115. package/dist/{icons-DPUeLS_Y.cjs → icons-MgnlVoKr.cjs} +1 -1
  116. package/dist/{icons-DPUeLS_Y.cjs.map → icons-MgnlVoKr.cjs.map} +1 -1
  117. package/dist/icons.cjs +1 -1
  118. package/dist/icons.js +1 -1
  119. package/dist/{iframe-Ct50FYXq.cjs → iframe-C3mPpxWx.cjs} +1 -1
  120. package/dist/{iframe-Ct50FYXq.cjs.map → iframe-C3mPpxWx.cjs.map} +1 -1
  121. package/dist/{iframe-CEDOvkql.js → iframe-DdOaufbd.js} +1 -1
  122. package/dist/{iframe-CEDOvkql.js.map → iframe-DdOaufbd.js.map} +1 -1
  123. package/dist/iframe.cjs +1 -1
  124. package/dist/iframe.js +1 -1
  125. package/dist/index.cjs +1 -1
  126. package/dist/index.js +31 -31
  127. package/dist/{input-chip-BhjGVpc3.cjs → input-chip-Cof2Ui_y.cjs} +1 -1
  128. package/dist/{input-chip-BhjGVpc3.cjs.map → input-chip-Cof2Ui_y.cjs.map} +1 -1
  129. package/dist/{input-chip-CI4__N8w.js → input-chip-DKfmywnj.js} +1 -1
  130. package/dist/{input-chip-CI4__N8w.js.map → input-chip-DKfmywnj.js.map} +1 -1
  131. package/dist/json.cjs +1 -1
  132. package/dist/json.js +2 -2
  133. package/dist/kbd.cjs +1 -1
  134. package/dist/kbd.js +1 -1
  135. package/dist/{layout-uAQpJN31.js → layout-ChgTE8pM.js} +2 -2
  136. package/dist/{layout-uAQpJN31.js.map → layout-ChgTE8pM.js.map} +1 -1
  137. package/dist/{layout-D7xOqMkJ.cjs → layout-DYa9sgiB.cjs} +1 -1
  138. package/dist/{layout-D7xOqMkJ.cjs.map → layout-DYa9sgiB.cjs.map} +1 -1
  139. package/dist/layout.cjs +1 -1
  140. package/dist/layout.js +2 -2
  141. package/dist/{lightbox-cXRnvHMN.cjs → lightbox-C4EsSbSe.cjs} +2 -2
  142. package/dist/{lightbox-cXRnvHMN.cjs.map → lightbox-C4EsSbSe.cjs.map} +1 -1
  143. package/dist/{lightbox-C0OEHns9.js → lightbox-D3qrClhy.js} +2 -2
  144. package/dist/{lightbox-C0OEHns9.js.map → lightbox-D3qrClhy.js.map} +1 -1
  145. package/dist/lightbox.cjs +1 -1
  146. package/dist/lightbox.js +1 -1
  147. package/dist/{list-CmJ5h35b.cjs → list-BIZgIR4b.cjs} +2 -2
  148. package/dist/{list-CmJ5h35b.cjs.map → list-BIZgIR4b.cjs.map} +1 -1
  149. package/dist/{list-d1mHar5p.js → list-D3Qn7ipV.js} +2 -2
  150. package/dist/{list-d1mHar5p.js.map → list-D3Qn7ipV.js.map} +1 -1
  151. package/dist/list.cjs +1 -1
  152. package/dist/list.js +1 -1
  153. package/dist/{litElement.mixin-CncaUoxz.js → litElement.mixin-8Ow4xwZs.js} +1 -1
  154. package/dist/{litElement.mixin-CncaUoxz.js.map → litElement.mixin-8Ow4xwZs.js.map} +1 -1
  155. package/dist/litElement.mixin-DE2UvM55.cjs +1 -0
  156. package/dist/{litElement.mixin-Bj2q1yPw.cjs.map → litElement.mixin-DE2UvM55.cjs.map} +1 -1
  157. package/dist/{mailbox-BmChskZc.cjs → mailbox-B1YmDL3b.cjs} +1 -1
  158. package/dist/{mailbox-BmChskZc.cjs.map → mailbox-B1YmDL3b.cjs.map} +1 -1
  159. package/dist/{mailbox-C4-E93be.js → mailbox-Bw9UiZST.js} +4 -4
  160. package/dist/{mailbox-C4-E93be.js.map → mailbox-Bw9UiZST.js.map} +1 -1
  161. package/dist/mailbox.cjs +1 -1
  162. package/dist/mailbox.js +1 -1
  163. package/dist/{map-DYEvlNl0.cjs → map-nnA6w4z7.cjs} +1 -1
  164. package/dist/{map-DYEvlNl0.cjs.map → map-nnA6w4z7.cjs.map} +1 -1
  165. package/dist/{map-DHyYLhvy.js → map-rMQpUHI6.js} +1 -1
  166. package/dist/{map-DHyYLhvy.js.map → map-rMQpUHI6.js.map} +1 -1
  167. package/dist/map.cjs +1 -1
  168. package/dist/map.js +1 -1
  169. package/dist/{menu-BlPTI6H9.cjs → menu-Br1KFAad.cjs} +1 -1
  170. package/dist/{menu-BlPTI6H9.cjs.map → menu-Br1KFAad.cjs.map} +1 -1
  171. package/dist/{menu-DFDBADp4.js → menu-cAVmaxrl.js} +1 -1
  172. package/dist/{menu-DFDBADp4.js.map → menu-cAVmaxrl.js.map} +1 -1
  173. package/dist/menu.cjs +1 -1
  174. package/dist/menu.js +1 -1
  175. package/dist/mixins.cjs +1 -1
  176. package/dist/mixins.cjs.map +1 -1
  177. package/dist/mixins.js +18 -18
  178. package/dist/mixins.js.map +1 -1
  179. package/dist/nav-drawer.cjs +1 -1
  180. package/dist/nav-drawer.js +1 -1
  181. package/dist/navigation-bar.cjs +1 -1
  182. package/dist/navigation-bar.js +1 -1
  183. package/dist/navigation-rail.cjs +1 -1
  184. package/dist/navigation-rail.js +1 -1
  185. package/dist/{notification-DGpv8g2H.js → notification-BLpGe-wh.js} +2 -2
  186. package/dist/{notification-DGpv8g2H.js.map → notification-BLpGe-wh.js.map} +1 -1
  187. package/dist/{notification-DKVWYhqs.cjs → notification-BkheXqRD.cjs} +1 -1
  188. package/dist/{notification-DKVWYhqs.cjs.map → notification-BkheXqRD.cjs.map} +1 -1
  189. package/dist/notification.cjs +1 -1
  190. package/dist/notification.js +1 -1
  191. package/dist/{option-LtSDy2xf.cjs → option-BZFwr2I3.cjs} +1 -1
  192. package/dist/{option-LtSDy2xf.cjs.map → option-BZFwr2I3.cjs.map} +1 -1
  193. package/dist/{option-BD2eh458.js → option-CK1PZE3k.js} +1 -1
  194. package/dist/{option-BD2eh458.js.map → option-CK1PZE3k.js.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/page.cjs +1 -1
  198. package/dist/page.js +2 -2
  199. package/dist/{progress-B5ChDPbB.cjs → progress-157sda_G.cjs} +1 -1
  200. package/dist/{progress-B5ChDPbB.cjs.map → progress-157sda_G.cjs.map} +1 -1
  201. package/dist/{progress-CE1Pk2hi.js → progress-BSK1MBi6.js} +1 -1
  202. package/dist/{progress-CE1Pk2hi.js.map → progress-BSK1MBi6.js.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{provide-jn1Fj1vv.js → provide-BX1YYYHU.js} +1 -1
  206. package/dist/{provide-jn1Fj1vv.js.map → provide-BX1YYYHU.js.map} +1 -1
  207. package/dist/{provide-BZ9lq_Be.cjs → provide-NUGEUOHp.cjs} +1 -1
  208. package/dist/{provide-BZ9lq_Be.cjs.map → provide-NUGEUOHp.cjs.map} +1 -1
  209. package/dist/qr-scanner.cjs +1 -1
  210. package/dist/qr-scanner.js +1 -1
  211. package/dist/{radio-group-CyRHgIF3.js → radio-group-9VA-wY8o.js} +1 -1
  212. package/dist/{radio-group-CyRHgIF3.js.map → radio-group-9VA-wY8o.js.map} +1 -1
  213. package/dist/{radio-group-Cd9pZ2MR.cjs → radio-group-DIuyW_zT.cjs} +1 -1
  214. package/dist/{radio-group-Cd9pZ2MR.cjs.map → radio-group-DIuyW_zT.cjs.map} +1 -1
  215. package/dist/radio-group.cjs +1 -1
  216. package/dist/radio-group.js +1 -1
  217. package/dist/range.cjs +1 -1
  218. package/dist/range.js +1 -1
  219. package/dist/{scroll-DoliwpRu.js → scroll-BgIiwCLp.js} +1 -1
  220. package/dist/{scroll-DoliwpRu.js.map → scroll-BgIiwCLp.js.map} +1 -1
  221. package/dist/{scroll-C_iNOi7E.cjs → scroll-av3Fhnz1.cjs} +1 -1
  222. package/dist/{scroll-C_iNOi7E.cjs.map → scroll-av3Fhnz1.cjs.map} +1 -1
  223. package/dist/{select-_vHPXi30.js → select-CWsa-TPR.js} +1 -1
  224. package/dist/{select-_vHPXi30.js.map → select-CWsa-TPR.js.map} +1 -1
  225. package/dist/{select-CWWuZ2iJ.cjs → select-zUX2du9q.cjs} +1 -1
  226. package/dist/{select-CWWuZ2iJ.cjs.map → select-zUX2du9q.cjs.map} +1 -1
  227. package/dist/select.cjs +1 -1
  228. package/dist/select.js +1 -1
  229. package/dist/{sheet-r0oEYIdi.cjs → sheet-BPIUTIWk.cjs} +1 -1
  230. package/dist/{sheet-r0oEYIdi.cjs.map → sheet-BPIUTIWk.cjs.map} +1 -1
  231. package/dist/{sheet-i1KtxGIj.js → sheet-d74jGRIZ.js} +3 -3
  232. package/dist/{sheet-i1KtxGIj.js.map → sheet-d74jGRIZ.js.map} +1 -1
  233. package/dist/sheet.cjs +1 -1
  234. package/dist/sheet.js +2 -2
  235. package/dist/{sheet.service-Cr13Oo6G.cjs → sheet.service-B9o9wHcT.cjs} +1 -1
  236. package/dist/{sheet.service-Cr13Oo6G.cjs.map → sheet.service-B9o9wHcT.cjs.map} +1 -1
  237. package/dist/{sheet.service-DUO5_kmI.js → sheet.service-BV04hex5.js} +1 -1
  238. package/dist/{sheet.service-DUO5_kmI.js.map → sheet.service-BV04hex5.js.map} +1 -1
  239. package/dist/skeleton.cjs +1 -1
  240. package/dist/skeleton.js +1 -1
  241. package/dist/slider.cjs +1 -1
  242. package/dist/slider.js +1 -1
  243. package/dist/{splash-screen-CquyPP1C.cjs → splash-screen-DWEuDl82.cjs} +1 -1
  244. package/dist/{splash-screen-CquyPP1C.cjs.map → splash-screen-DWEuDl82.cjs.map} +1 -1
  245. package/dist/{splash-screen-CvucPkpD.js → splash-screen-pL-0E3Qf.js} +1 -1
  246. package/dist/{splash-screen-CvucPkpD.js.map → splash-screen-pL-0E3Qf.js.map} +1 -1
  247. package/dist/splash-screen.cjs +1 -1
  248. package/dist/splash-screen.js +1 -1
  249. package/dist/{src-Bemk2C2P.cjs → src-BOQLhS_P.cjs} +6 -6
  250. package/dist/{src-Bemk2C2P.cjs.map → src-BOQLhS_P.cjs.map} +1 -1
  251. package/dist/{src-f5a3W9Mj.js → src-D23NBj1v.js} +40 -40
  252. package/dist/{src-f5a3W9Mj.js.map → src-D23NBj1v.js.map} +1 -1
  253. package/dist/steps.cjs +2 -2
  254. package/dist/steps.js +3 -3
  255. package/dist/{surface-CDufon40.cjs → surface-C_5i3jWp.cjs} +1 -1
  256. package/dist/{surface-CDufon40.cjs.map → surface-C_5i3jWp.cjs.map} +1 -1
  257. package/dist/{surface-CkEYJCae.js → surface-DBAbNfJd.js} +2 -2
  258. package/dist/{surface-CkEYJCae.js.map → surface-DBAbNfJd.js.map} +1 -1
  259. package/dist/surface.cjs +1 -1
  260. package/dist/surface.js +1 -1
  261. package/dist/switch.cjs +1 -1
  262. package/dist/switch.js +1 -1
  263. package/dist/{table-DWc1mkpj.cjs → table-CRZe8D5I.cjs} +1 -1
  264. package/dist/{table-DWc1mkpj.cjs.map → table-CRZe8D5I.cjs.map} +1 -1
  265. package/dist/{table-P6VGG7NK.js → table-pcTVURal.js} +1 -1
  266. package/dist/{table-P6VGG7NK.js.map → table-pcTVURal.js.map} +1 -1
  267. package/dist/table.cjs +1 -1
  268. package/dist/table.js +1 -1
  269. package/dist/{tabs-CjGjGrqY.js → tabs-DajjPImp.js} +2 -2
  270. package/dist/{tabs-CjGjGrqY.js.map → tabs-DajjPImp.js.map} +1 -1
  271. package/dist/{tabs-DGJEKuhC.cjs → tabs-vgQHudFo.cjs} +1 -1
  272. package/dist/{tabs-DGJEKuhC.cjs.map → tabs-vgQHudFo.cjs.map} +1 -1
  273. package/dist/tabs.cjs +1 -1
  274. package/dist/tabs.js +1 -1
  275. package/dist/{tailwind.mixin-Cpa-VnnX.cjs → tailwind.mixin-B9BI55A6.cjs} +1 -1
  276. package/dist/{tailwind.mixin-Cpa-VnnX.cjs.map → tailwind.mixin-B9BI55A6.cjs.map} +1 -1
  277. package/dist/{tailwind.mixin-DufHBjmb.js → tailwind.mixin-CZ3HjYZA.js} +23 -4
  278. package/dist/{tailwind.mixin-DufHBjmb.js.map → tailwind.mixin-CZ3HjYZA.js.map} +1 -1
  279. package/dist/teleport.cjs +1 -1
  280. package/dist/teleport.js +1 -1
  281. package/dist/{textarea-DZT_Ofp5.js → textarea-CkqzzIHS.js} +1 -1
  282. package/dist/{textarea-DZT_Ofp5.js.map → textarea-CkqzzIHS.js.map} +1 -1
  283. package/dist/{textarea-jmTOXrzl.cjs → textarea-DTw-PvJx.cjs} +1 -1
  284. package/dist/{textarea-jmTOXrzl.cjs.map → textarea-DTw-PvJx.cjs.map} +1 -1
  285. package/dist/textarea.cjs +1 -1
  286. package/dist/textarea.js +1 -1
  287. package/dist/{theme-CCKqaksQ.cjs → theme-BnOBTUu_.cjs} +2 -2
  288. package/dist/{theme-CCKqaksQ.cjs.map → theme-BnOBTUu_.cjs.map} +1 -1
  289. package/dist/{theme-CEc32pAv.js → theme-DO3BzTr2.js} +3 -3
  290. package/dist/{theme-CEc32pAv.js.map → theme-DO3BzTr2.js.map} +1 -1
  291. package/dist/{theme-button-BsJcv-Zv.cjs → theme-button-CnC3Ed_i.cjs} +1 -1
  292. package/dist/{theme-button-BsJcv-Zv.cjs.map → theme-button-CnC3Ed_i.cjs.map} +1 -1
  293. package/dist/{theme-button-dOiAvdKU.js → theme-button-DYP56JjA.js} +1 -1
  294. package/dist/{theme-button-dOiAvdKU.js.map → theme-button-DYP56JjA.js.map} +1 -1
  295. package/dist/theme-button.cjs +1 -1
  296. package/dist/theme-button.js +1 -1
  297. package/dist/theme.cjs +1 -1
  298. package/dist/theme.js +2 -2
  299. package/dist/tree.cjs +1 -1
  300. package/dist/tree.js +1 -1
  301. package/dist/{typewriter-vOQ3bDLb.js → typewriter-BfMcG1Ij.js} +3 -3
  302. package/dist/{typewriter-vOQ3bDLb.js.map → typewriter-BfMcG1Ij.js.map} +1 -1
  303. package/dist/{typewriter-ByIL2Mh-.cjs → typewriter-Bh1kC8iS.cjs} +2 -2
  304. package/dist/{typewriter-ByIL2Mh-.cjs.map → typewriter-Bh1kC8iS.cjs.map} +1 -1
  305. package/dist/typewriter.cjs +1 -1
  306. package/dist/typewriter.js +1 -1
  307. package/dist/typography.cjs +1 -1
  308. package/dist/typography.js +1 -1
  309. package/dist/visually-hidden.cjs +1 -1
  310. package/dist/visually-hidden.js +1 -1
  311. package/dist/{window-WnAihpsA.js → window-CDauTHQp.js} +1 -1
  312. package/dist/{window-WnAihpsA.js.map → window-CDauTHQp.js.map} +1 -1
  313. package/dist/{window-BS7ZQjgH.cjs → window-CXyGM5J0.cjs} +1 -1
  314. package/dist/{window-BS7ZQjgH.cjs.map → window-CXyGM5J0.cjs.map} +1 -1
  315. package/dist/window.cjs +1 -1
  316. package/dist/window.js +1 -1
  317. package/package.json +6 -3
  318. package/types/mixins/tailwind.mixin.d.ts +15 -0
  319. package/dist/litElement.mixin-Bj2q1yPw.cjs +0 -1
  320. package/mixins/baseElement.ts +0 -190
  321. package/mixins/constructor.ts +0 -3
  322. package/mixins/discovery.service.ts +0 -221
  323. package/mixins/formField.mixin.ts +0 -255
  324. package/mixins/index.ts +0 -7
  325. package/mixins/litElement.mixin.ts +0 -15
  326. package/mixins/scss.d.ts +0 -21
  327. package/mixins/surface.mixin.ts +0 -93
  328. package/mixins/tailwind.css +0 -560
  329. package/mixins/tailwind.mixin.ts +0 -30
@@ -1 +1 @@
1
- {"version":3,"file":"delay-CZw37zps.js","names":["o","s","t","i"],"sources":["../node_modules/@lit-labs/motion/animate-controller.js","../node_modules/@lit-labs/motion/animate.js","../node_modules/@lit-labs/motion/position.js","../src/delay/delay.ts"],"sourcesContent":["const i=new WeakMap;class t{constructor(t,s){this.startPaused=!1,this.disabled=!1,this.clients=new Set,this.pendingComplete=!1,this.host=t,this.defaultOptions=s.defaultOptions||{},this.startPaused=!!s.startPaused,this.disabled=!!s.disabled,this.onComplete=s.onComplete,i.set(this.host,this)}async add(i){this.clients.add(i),this.startPaused&&i.webAnimation?.pause(),this.pendingComplete=!0,await i.finished,this.pendingComplete&&!this.isAnimating&&(this.pendingComplete=!1,this.onComplete?.())}remove(i){this.clients.delete(i)}pause(){this.clients.forEach(i=>i.webAnimation?.pause())}play(){this.clients.forEach(i=>i.webAnimation?.play())}cancel(){this.clients.forEach(i=>i.webAnimation?.cancel()),this.clients.clear()}finish(){this.clients.forEach(i=>i.webAnimation?.finish()),this.clients.clear()}togglePlay(){this.isPlaying?this.pause():this.play()}get isAnimating(){return this.clients.size>0}get isPlaying(){return Array.from(this.clients).some(i=>\"running\"===i.webAnimation?.playState)}async finished(){await Promise.all(Array.from(this.clients).map(i=>i.finished))}}export{t as AnimateController,i as controllerMap};\n//# sourceMappingURL=animate-controller.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as e}from\"lit/async-directive.js\";import{controllerMap as h}from\"./animate-controller.js\";export{AnimateController}from\"./animate-controller.js\";let o=0;const r=new Map,n=new WeakSet,a=()=>new Promise(t=>requestAnimationFrame(t)),c=[{transform:\"translateY(100%) scale(0)\",opacity:0}],l=[{transform:\"translateY(-100%) scale(0)\",opacity:0}],d=[{transform:\"translateX(-100%) scale(0)\",opacity:0}],u=[{transform:\"translateX(100%) scale(0)\",opacity:0}],m=[{}],f=[{opacity:0}],p=f,v=[{opacity:0},{opacity:1}],y=[{opacity:0},{opacity:.25,offset:.75},{opacity:1}],g=(t,i)=>{const s=t-i;return 0===s?void 0:s},w=(t,i)=>{const s=t/i;return 1===s?void 0:s},N={left:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateX(${s}px)`}},top:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateY(${s}px)`}},width:(t,i)=>{let s;0===i&&(i=1,s={width:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleX(${e})`}},height:(t,i)=>{let s;0===i&&(i=1,s={height:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleY(${e})`}}},A={duration:333,easing:\"ease-in-out\"},b=[\"left\",\"top\",\"width\",\"height\",\"opacity\",\"color\",\"background\"],j=new WeakMap;class x extends e{constructor(t){if(super(t),this.t=!1,this.i=null,this.o=null,this.h=!0,this.shouldLog=!1,t.type===s.CHILD)throw Error(\"The `animate` directive must be used in attribute position.\");this.createFinished()}createFinished(){this.resolveFinished?.(),this.finished=new Promise(t=>{this.l=t})}async resolveFinished(){this.l?.(),this.l=void 0}render(i){return t}getController(){return h.get(this.u)}isDisabled(){return this.options.disabled||this.getController()?.disabled}update(t,[i]){const s=void 0===this.u;return s&&(this.u=t.options?.host,this.u.addController(this),this.u.updateComplete.then(t=>this.t=!0),this.element=t.element,j.set(this.element,this)),this.optionsOrCallback=i,(s||\"function\"!=typeof i)&&this.m(i),this.render(i)}m(t){t=t??{};const i=this.getController();void 0!==i&&((t={...i.defaultOptions,...t}).keyframeOptions={...i.defaultOptions.keyframeOptions,...t.keyframeOptions}),t.properties??=b,this.options=t}p(){const t={},i=this.element.getBoundingClientRect(),s=getComputedStyle(this.element);return this.options.properties.forEach(e=>{const h=i[e]??(N[e]?void 0:s[e]),o=Number(h);t[e]=isNaN(o)?h+\"\":o}),t}v(){let t,i=!0;return this.options.guard&&(t=this.options.guard(),i=((t,i)=>{if(Array.isArray(t)){if(Array.isArray(i)&&i.length===t.length&&t.every((t,s)=>t===i[s]))return!1}else if(i===t)return!1;return!0})(t,this._)),this.h=this.t&&!this.isDisabled()&&!this.isAnimating()&&i&&this.element.isConnected,this.h&&(this._=Array.isArray(t)?Array.from(t):t),this.h}hostUpdate(){\"function\"==typeof this.optionsOrCallback&&this.m(this.optionsOrCallback()),this.v()&&(this.A=this.p(),this.i=this.i??this.element.parentNode,this.o=this.element.nextSibling)}async hostUpdated(){if(!this.h||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await a;const i=this.P(),s=this.V(this.options.keyframeOptions,i),e=this.p();if(void 0!==this.A){const{from:s,to:h}=this.O(this.A,e,i);this.log(\"measured\",[this.A,e,s,h]),t=this.calculateKeyframes(s,h)}else{const s=r.get(this.options.inId);if(s){r.delete(this.options.inId);const{from:h,to:n}=this.O(s,e,i);t=this.calculateKeyframes(h,n),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,o++,t.forEach(t=>t.zIndex=o)}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,s)}resetStyles(){void 0!==this.j&&(this.element.setAttribute(\"style\",this.j??\"\"),this.j=void 0)}commitStyles(){this.j=this.element.getAttribute(\"style\"),this.webAnimation?.commitStyles(),this.webAnimation?.cancel()}reconnected(){}async disconnected(){if(!this.h)return;if(void 0!==this.options.id&&r.set(this.options.id,this.A),void 0===this.options.out)return;if(this.prepare(),await a(),this.i?.isConnected){const t=this.o&&this.o.parentNode===this.i?this.o:null;if(this.i.insertBefore(this.element,t),this.options.stabilizeOut){const t=this.p();this.log(\"stabilizing out\");const i=this.A.left-t.left,s=this.A.top-t.top;!(\"static\"===getComputedStyle(this.element).position)||0===i&&0===s||(this.element.style.position=\"relative\"),0!==i&&(this.element.style.left=i+\"px\"),0!==s&&(this.element.style.top=s+\"px\")}}const t=this.V(this.options.keyframeOptions);await this.animate(this.options.out,t),this.element.remove()}prepare(){this.createFinished()}start(){this.options.onStart?.(this)}didFinish(t){t&&this.options.onComplete?.(this),this.A=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}P(){const t=[];for(let i=this.element.parentNode;i;i=i?.parentNode){const s=j.get(i);s&&!s.isDisabled()&&s&&t.push(s)}return t}get isHostRendered(){const t=n.has(this.u);return t||this.u.updateComplete.then(()=>{n.add(this.u)}),t}V(t,i=this.P()){const s={...A};return i.forEach(t=>Object.assign(s,t.options.keyframeOptions)),Object.assign(s,t),s}O(t,i,s){t={...t},i={...i};const e=s.map(t=>t.animatingProperties).filter(t=>void 0!==t);let h=1,o=1;return e.length>0&&(e.forEach(t=>{t.width&&(h/=t.width),t.height&&(o/=t.height)}),void 0!==t.left&&void 0!==i.left&&(t.left=h*t.left,i.left=h*i.left),void 0!==t.top&&void 0!==i.top&&(t.top=o*t.top,i.top=o*i.top)),{from:t,to:i}}calculateKeyframes(t,i,s=!1){const e={},h={};let o=!1;const r={};for(const s in i){const n=t[s],a=i[s];if(s in N){const t=N[s];if(void 0===n||void 0===a)continue;const i=t(n,a);void 0!==i.transform&&(r[s]=i.value,o=!0,e.transform=`${e.transform??\"\"} ${i.transform}`,void 0!==i.overrideFrom&&Object.assign(e,i.overrideFrom))}else n!==a&&void 0!==n&&void 0!==a&&(o=!0,e[s]=n,h[s]=a)}return e.transformOrigin=h.transformOrigin=s?\"center center\":\"top left\",this.animatingProperties=r,o?[e,h]:void 0}async animate(t,i=this.options.keyframeOptions){this.start(),this.frames=t;let s=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log(\"modified frames\",t)),void 0!==t)){this.log(\"animate\",[t,i]),s=!0,this.webAnimation=this.element.animate(t,i);const e=this.getController();e?.add(this);try{await this.webAnimation.finished}catch(t){}e?.remove(this)}return this.didFinish(s),s}isAnimating(){return\"running\"===this.webAnimation?.playState||this.webAnimation?.pending}log(t,i){this.shouldLog&&!this.isDisabled()&&console.log(t,this.options.id,i)}}const F=i(x);export{x as Animate,F as animate,a as animationFrame,b as defaultCssProperties,A as defaultKeyframeOptions,p as fade,v as fadeIn,y as fadeInSlow,f as fadeOut,l as flyAbove,c as flyBelow,d as flyLeft,u as flyRight,m as none,N as transformProps};\n//# sourceMappingURL=animate.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as o}from\"lit/async-directive.js\";const r=[\"top\",\"right\",\"bottom\",\"left\"];class e extends o{constructor(t){if(super(t),t.type!==s.ELEMENT)throw Error(\"The `position` directive must be used in attribute position.\")}render(i,s){return t}update(t,[i,s]){return void 0===this.u&&(this.u=t.options?.host,this.u.addController(this)),this.C=t.element,this.N=i,this.S=s??[\"left\",\"top\",\"width\",\"height\"],this.render(i,s)}hostUpdated(){this.F()}F(){const t=\"function\"==typeof this.N?this.N():this.N?.value,i=t.offsetParent;if(void 0===t||!i)return;const s=t.getBoundingClientRect(),o=i.getBoundingClientRect();this.S?.forEach(t=>{const i=r.includes(t)?s[t]-o[t]:s[t];this.C.style[t]=i+\"px\"})}}const h=i(e);export{e as Position,h as position};\n//# sourceMappingURL=position.js.map\n","import { animate, fadeIn, flyAbove, flyBelow } from '@lit-labs/motion'\nimport { consume, createContext, provide } from '@lit/context'\nimport { $LitElement } from '@mixins/litElement.mixin'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { timer } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nexport const delayContext = createContext<number>('delay-context')\n\n@customElement('schmancy-delay')\nexport class SchmancyDelay extends $LitElement() {\n\t@property({ type: Number, reflect: true }) delay = 0 // Delay in milliseconds\n\t@property({ type: String }) motion = 'flyBelow' // Motion type (default: flyBelow)\n\t@state() private rendered = false // Tracks if the content is rendered\n\t@consume({ context: delayContext, subscribe: true }) parentDelay = 0 // Consumes the parent's delay value\n\t@provide({ context: delayContext }) effectiveDelay = 0 // Provides the effective delay to children\n\n\t@property({ type: Boolean }) once? = true // Only render once per session\n\n\tprivate sessionKey = '' // Unique session key\n\tprivate mutationObserver?: MutationObserver\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tassignedElements: HTMLElement[]\n\tfirstUpdated() {\n\t\tthis.observeSlotChanges()\n\t\tthis.updateRenderState()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.mutationObserver?.disconnect() // Clean up the observer\n\t}\n\n\tprivate observeSlotChanges() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\tif (!slot) return\n\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\t// Update session key when children change\n\t\t\tthis.sessionKey = this.generateSessionKey()\n\t\t})\n\n\t\tthis.mutationObserver.observe(slot, { childList: true, subtree: true })\n\t}\n\n\tprivate getTotalSiblingDelay(element: HTMLElement | null): number {\n\t\tif (!element || !(element instanceof HTMLElement)) return 0\n\n\t\tlet totalDelay = 0\n\t\tlet sibling = element.previousElementSibling // Start with the previous sibling\n\n\t\twhile (sibling) {\n\t\t\t// Check if the sibling is a `schmancy-delay` and add its delay\n\t\t\tif (sibling instanceof SchmancyDelay) {\n\t\t\t\ttotalDelay += sibling.delay\n\t\t\t}\n\t\t\t// Move to the previous sibling\n\t\t\tsibling = sibling.previousElementSibling\n\t\t}\n\n\t\t// Traverse up the tree and repeat for the parent node\n\t\tif (element.parentElement) {\n\t\t\ttotalDelay += this.getTotalSiblingDelay(element.parentElement)\n\t\t}\n\n\t\treturn totalDelay\n\t}\n\n\tprivate updateRenderState() {\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.rendered = true\n\t\t\treturn\n\t\t}\n\n\t\t// Calculate the effective delay (parent + self + all preceding siblings)\n\t\tconst siblingDelay = this.getTotalSiblingDelay(this)\n\t\tthis.effectiveDelay = this.delay + this.parentDelay + siblingDelay\n\n\t\t// Start the delay timer\n\t\ttimer(this.effectiveDelay)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.rendered = true // Render content after delay\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this.assignedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\n\tprivate get motionLit(): any {\n\t\treturn this.motion === 'flyBelow' ? flyBelow : this.motion === 'flyAbove' ? flyAbove : fadeIn\n\t}\n\n\trender() {\n\t\treturn cache(\n\t\t\tthis.rendered\n\t\t\t\t? html`<div\n\t\t\t\t\t\t${animate({\n\t\t\t\t\t\t\tin: this.motionLit, // Use the provided motion type\n\t\t\t\t\t\t\tkeyframeOptions: { duration: 300, easing: 'ease-out' },\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>`\n\t\t\t\t: html`\n\t\t\t\t\t\t<section style=\"display: none;\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</section>\n\t\t\t\t\t`,\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-delay': SchmancyDelay\n\t}\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"delay-COZ8rqRd.js","names":["o","s","t","i"],"sources":["../node_modules/@lit-labs/motion/animate-controller.js","../node_modules/@lit-labs/motion/animate.js","../node_modules/@lit-labs/motion/position.js","../src/delay/delay.ts"],"sourcesContent":["const i=new WeakMap;class t{constructor(t,s){this.startPaused=!1,this.disabled=!1,this.clients=new Set,this.pendingComplete=!1,this.host=t,this.defaultOptions=s.defaultOptions||{},this.startPaused=!!s.startPaused,this.disabled=!!s.disabled,this.onComplete=s.onComplete,i.set(this.host,this)}async add(i){this.clients.add(i),this.startPaused&&i.webAnimation?.pause(),this.pendingComplete=!0,await i.finished,this.pendingComplete&&!this.isAnimating&&(this.pendingComplete=!1,this.onComplete?.())}remove(i){this.clients.delete(i)}pause(){this.clients.forEach(i=>i.webAnimation?.pause())}play(){this.clients.forEach(i=>i.webAnimation?.play())}cancel(){this.clients.forEach(i=>i.webAnimation?.cancel()),this.clients.clear()}finish(){this.clients.forEach(i=>i.webAnimation?.finish()),this.clients.clear()}togglePlay(){this.isPlaying?this.pause():this.play()}get isAnimating(){return this.clients.size>0}get isPlaying(){return Array.from(this.clients).some(i=>\"running\"===i.webAnimation?.playState)}async finished(){await Promise.all(Array.from(this.clients).map(i=>i.finished))}}export{t as AnimateController,i as controllerMap};\n//# sourceMappingURL=animate-controller.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as e}from\"lit/async-directive.js\";import{controllerMap as h}from\"./animate-controller.js\";export{AnimateController}from\"./animate-controller.js\";let o=0;const r=new Map,n=new WeakSet,a=()=>new Promise(t=>requestAnimationFrame(t)),c=[{transform:\"translateY(100%) scale(0)\",opacity:0}],l=[{transform:\"translateY(-100%) scale(0)\",opacity:0}],d=[{transform:\"translateX(-100%) scale(0)\",opacity:0}],u=[{transform:\"translateX(100%) scale(0)\",opacity:0}],m=[{}],f=[{opacity:0}],p=f,v=[{opacity:0},{opacity:1}],y=[{opacity:0},{opacity:.25,offset:.75},{opacity:1}],g=(t,i)=>{const s=t-i;return 0===s?void 0:s},w=(t,i)=>{const s=t/i;return 1===s?void 0:s},N={left:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateX(${s}px)`}},top:(t,i)=>{const s=g(t,i);return{value:s,transform:null==s||isNaN(s)?void 0:`translateY(${s}px)`}},width:(t,i)=>{let s;0===i&&(i=1,s={width:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleX(${e})`}},height:(t,i)=>{let s;0===i&&(i=1,s={height:\"1px\"});const e=w(t,i);return{value:e,overrideFrom:s,transform:null==e||isNaN(e)?void 0:`scaleY(${e})`}}},A={duration:333,easing:\"ease-in-out\"},b=[\"left\",\"top\",\"width\",\"height\",\"opacity\",\"color\",\"background\"],j=new WeakMap;class x extends e{constructor(t){if(super(t),this.t=!1,this.i=null,this.o=null,this.h=!0,this.shouldLog=!1,t.type===s.CHILD)throw Error(\"The `animate` directive must be used in attribute position.\");this.createFinished()}createFinished(){this.resolveFinished?.(),this.finished=new Promise(t=>{this.l=t})}async resolveFinished(){this.l?.(),this.l=void 0}render(i){return t}getController(){return h.get(this.u)}isDisabled(){return this.options.disabled||this.getController()?.disabled}update(t,[i]){const s=void 0===this.u;return s&&(this.u=t.options?.host,this.u.addController(this),this.u.updateComplete.then(t=>this.t=!0),this.element=t.element,j.set(this.element,this)),this.optionsOrCallback=i,(s||\"function\"!=typeof i)&&this.m(i),this.render(i)}m(t){t=t??{};const i=this.getController();void 0!==i&&((t={...i.defaultOptions,...t}).keyframeOptions={...i.defaultOptions.keyframeOptions,...t.keyframeOptions}),t.properties??=b,this.options=t}p(){const t={},i=this.element.getBoundingClientRect(),s=getComputedStyle(this.element);return this.options.properties.forEach(e=>{const h=i[e]??(N[e]?void 0:s[e]),o=Number(h);t[e]=isNaN(o)?h+\"\":o}),t}v(){let t,i=!0;return this.options.guard&&(t=this.options.guard(),i=((t,i)=>{if(Array.isArray(t)){if(Array.isArray(i)&&i.length===t.length&&t.every((t,s)=>t===i[s]))return!1}else if(i===t)return!1;return!0})(t,this._)),this.h=this.t&&!this.isDisabled()&&!this.isAnimating()&&i&&this.element.isConnected,this.h&&(this._=Array.isArray(t)?Array.from(t):t),this.h}hostUpdate(){\"function\"==typeof this.optionsOrCallback&&this.m(this.optionsOrCallback()),this.v()&&(this.A=this.p(),this.i=this.i??this.element.parentNode,this.o=this.element.nextSibling)}async hostUpdated(){if(!this.h||!this.element.isConnected||this.options.skipInitial&&!this.isHostRendered)return;let t;this.prepare(),await a;const i=this.P(),s=this.V(this.options.keyframeOptions,i),e=this.p();if(void 0!==this.A){const{from:s,to:h}=this.O(this.A,e,i);this.log(\"measured\",[this.A,e,s,h]),t=this.calculateKeyframes(s,h)}else{const s=r.get(this.options.inId);if(s){r.delete(this.options.inId);const{from:h,to:n}=this.O(s,e,i);t=this.calculateKeyframes(h,n),t=this.options.in?[{...this.options.in[0],...t[0]},...this.options.in.slice(1),t[1]]:t,o++,t.forEach(t=>t.zIndex=o)}else this.options.in&&(t=[...this.options.in,{}])}this.animate(t,s)}resetStyles(){void 0!==this.j&&(this.element.setAttribute(\"style\",this.j??\"\"),this.j=void 0)}commitStyles(){this.j=this.element.getAttribute(\"style\"),this.webAnimation?.commitStyles(),this.webAnimation?.cancel()}reconnected(){}async disconnected(){if(!this.h)return;if(void 0!==this.options.id&&r.set(this.options.id,this.A),void 0===this.options.out)return;if(this.prepare(),await a(),this.i?.isConnected){const t=this.o&&this.o.parentNode===this.i?this.o:null;if(this.i.insertBefore(this.element,t),this.options.stabilizeOut){const t=this.p();this.log(\"stabilizing out\");const i=this.A.left-t.left,s=this.A.top-t.top;!(\"static\"===getComputedStyle(this.element).position)||0===i&&0===s||(this.element.style.position=\"relative\"),0!==i&&(this.element.style.left=i+\"px\"),0!==s&&(this.element.style.top=s+\"px\")}}const t=this.V(this.options.keyframeOptions);await this.animate(this.options.out,t),this.element.remove()}prepare(){this.createFinished()}start(){this.options.onStart?.(this)}didFinish(t){t&&this.options.onComplete?.(this),this.A=void 0,this.animatingProperties=void 0,this.frames=void 0,this.resolveFinished()}P(){const t=[];for(let i=this.element.parentNode;i;i=i?.parentNode){const s=j.get(i);s&&!s.isDisabled()&&s&&t.push(s)}return t}get isHostRendered(){const t=n.has(this.u);return t||this.u.updateComplete.then(()=>{n.add(this.u)}),t}V(t,i=this.P()){const s={...A};return i.forEach(t=>Object.assign(s,t.options.keyframeOptions)),Object.assign(s,t),s}O(t,i,s){t={...t},i={...i};const e=s.map(t=>t.animatingProperties).filter(t=>void 0!==t);let h=1,o=1;return e.length>0&&(e.forEach(t=>{t.width&&(h/=t.width),t.height&&(o/=t.height)}),void 0!==t.left&&void 0!==i.left&&(t.left=h*t.left,i.left=h*i.left),void 0!==t.top&&void 0!==i.top&&(t.top=o*t.top,i.top=o*i.top)),{from:t,to:i}}calculateKeyframes(t,i,s=!1){const e={},h={};let o=!1;const r={};for(const s in i){const n=t[s],a=i[s];if(s in N){const t=N[s];if(void 0===n||void 0===a)continue;const i=t(n,a);void 0!==i.transform&&(r[s]=i.value,o=!0,e.transform=`${e.transform??\"\"} ${i.transform}`,void 0!==i.overrideFrom&&Object.assign(e,i.overrideFrom))}else n!==a&&void 0!==n&&void 0!==a&&(o=!0,e[s]=n,h[s]=a)}return e.transformOrigin=h.transformOrigin=s?\"center center\":\"top left\",this.animatingProperties=r,o?[e,h]:void 0}async animate(t,i=this.options.keyframeOptions){this.start(),this.frames=t;let s=!1;if(!this.isAnimating()&&!this.isDisabled()&&(this.options.onFrames&&(this.frames=t=this.options.onFrames(this),this.log(\"modified frames\",t)),void 0!==t)){this.log(\"animate\",[t,i]),s=!0,this.webAnimation=this.element.animate(t,i);const e=this.getController();e?.add(this);try{await this.webAnimation.finished}catch(t){}e?.remove(this)}return this.didFinish(s),s}isAnimating(){return\"running\"===this.webAnimation?.playState||this.webAnimation?.pending}log(t,i){this.shouldLog&&!this.isDisabled()&&console.log(t,this.options.id,i)}}const F=i(x);export{x as Animate,F as animate,a as animationFrame,b as defaultCssProperties,A as defaultKeyframeOptions,p as fade,v as fadeIn,y as fadeInSlow,f as fadeOut,l as flyAbove,c as flyBelow,d as flyLeft,u as flyRight,m as none,N as transformProps};\n//# sourceMappingURL=animate.js.map\n","import{nothing as t}from\"lit/html.js\";import{directive as i,PartType as s}from\"lit/directive.js\";import{AsyncDirective as o}from\"lit/async-directive.js\";const r=[\"top\",\"right\",\"bottom\",\"left\"];class e extends o{constructor(t){if(super(t),t.type!==s.ELEMENT)throw Error(\"The `position` directive must be used in attribute position.\")}render(i,s){return t}update(t,[i,s]){return void 0===this.u&&(this.u=t.options?.host,this.u.addController(this)),this.C=t.element,this.N=i,this.S=s??[\"left\",\"top\",\"width\",\"height\"],this.render(i,s)}hostUpdated(){this.F()}F(){const t=\"function\"==typeof this.N?this.N():this.N?.value,i=t.offsetParent;if(void 0===t||!i)return;const s=t.getBoundingClientRect(),o=i.getBoundingClientRect();this.S?.forEach(t=>{const i=r.includes(t)?s[t]-o[t]:s[t];this.C.style[t]=i+\"px\"})}}const h=i(e);export{e as Position,h as position};\n//# sourceMappingURL=position.js.map\n","import { animate, fadeIn, flyAbove, flyBelow } from '@lit-labs/motion'\nimport { consume, createContext, provide } from '@lit/context'\nimport { $LitElement } from '@mixins/litElement.mixin'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { timer } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nexport const delayContext = createContext<number>('delay-context')\n\n@customElement('schmancy-delay')\nexport class SchmancyDelay extends $LitElement() {\n\t@property({ type: Number, reflect: true }) delay = 0 // Delay in milliseconds\n\t@property({ type: String }) motion = 'flyBelow' // Motion type (default: flyBelow)\n\t@state() private rendered = false // Tracks if the content is rendered\n\t@consume({ context: delayContext, subscribe: true }) parentDelay = 0 // Consumes the parent's delay value\n\t@provide({ context: delayContext }) effectiveDelay = 0 // Provides the effective delay to children\n\n\t@property({ type: Boolean }) once? = true // Only render once per session\n\n\tprivate sessionKey = '' // Unique session key\n\tprivate mutationObserver?: MutationObserver\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tassignedElements: HTMLElement[]\n\tfirstUpdated() {\n\t\tthis.observeSlotChanges()\n\t\tthis.updateRenderState()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.mutationObserver?.disconnect() // Clean up the observer\n\t}\n\n\tprivate observeSlotChanges() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot')\n\t\tif (!slot) return\n\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\t// Update session key when children change\n\t\t\tthis.sessionKey = this.generateSessionKey()\n\t\t})\n\n\t\tthis.mutationObserver.observe(slot, { childList: true, subtree: true })\n\t}\n\n\tprivate getTotalSiblingDelay(element: HTMLElement | null): number {\n\t\tif (!element || !(element instanceof HTMLElement)) return 0\n\n\t\tlet totalDelay = 0\n\t\tlet sibling = element.previousElementSibling // Start with the previous sibling\n\n\t\twhile (sibling) {\n\t\t\t// Check if the sibling is a `schmancy-delay` and add its delay\n\t\t\tif (sibling instanceof SchmancyDelay) {\n\t\t\t\ttotalDelay += sibling.delay\n\t\t\t}\n\t\t\t// Move to the previous sibling\n\t\t\tsibling = sibling.previousElementSibling\n\t\t}\n\n\t\t// Traverse up the tree and repeat for the parent node\n\t\tif (element.parentElement) {\n\t\t\ttotalDelay += this.getTotalSiblingDelay(element.parentElement)\n\t\t}\n\n\t\treturn totalDelay\n\t}\n\n\tprivate updateRenderState() {\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.rendered = true\n\t\t\treturn\n\t\t}\n\n\t\t// Calculate the effective delay (parent + self + all preceding siblings)\n\t\tconst siblingDelay = this.getTotalSiblingDelay(this)\n\t\tthis.effectiveDelay = this.delay + this.parentDelay + siblingDelay\n\n\t\t// Start the delay timer\n\t\ttimer(this.effectiveDelay)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.rendered = true // Render content after delay\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this.assignedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\n\tprivate get motionLit(): any {\n\t\treturn this.motion === 'flyBelow' ? flyBelow : this.motion === 'flyAbove' ? flyAbove : fadeIn\n\t}\n\n\trender() {\n\t\treturn cache(\n\t\t\tthis.rendered\n\t\t\t\t? html`<div\n\t\t\t\t\t\t${animate({\n\t\t\t\t\t\t\tin: this.motionLit, // Use the provided motion type\n\t\t\t\t\t\t\tkeyframeOptions: { duration: 300, easing: 'ease-out' },\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>`\n\t\t\t\t: html`\n\t\t\t\t\t\t<section style=\"display: none;\">\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</section>\n\t\t\t\t\t`,\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-delay': SchmancyDelay\n\t}\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
package/dist/delay.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./delay-BvVdfhAR.cjs`);Object.defineProperty(exports,`SchmancyDelay`,{enumerable:!0,get:function(){return e.t}}),exports.delayContext=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./delay-CLJt5qW-.cjs`);Object.defineProperty(exports,`SchmancyDelay`,{enumerable:!0,get:function(){return e.t}}),exports.delayContext=e.n;
package/dist/delay.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./delay-CZw37zps.js";
1
+ import { n as e, t } from "./delay-COZ8rqRd.js";
2
2
  export { t as SchmancyDelay, e as delayContext };
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Cpa-VnnX.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./surface.mixin-CSKqQH-0.cjs`);require(`./mixins.cjs`);const r=require(`./animation-Bcwh107v.cjs`),i=require(`./reduced-motion-DR32yKEO.cjs`),a=require(`./cursor-glow-82y5h3E4.cjs`),o=require(`./magnetic-aBBnj_vk.cjs`);let s=require(`rxjs`),c=require(`rxjs/operators`),l=require(`lit/decorators.js`),u=require(`lit`),d=require(`lit/directives/ref.js`);var f=class extends n.t(e.t(u.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-B9BI55A6.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./surface.mixin-CSKqQH-0.cjs`);require(`./mixins.cjs`);const r=require(`./animation-Bcwh107v.cjs`),i=require(`./reduced-motion-DR32yKEO.cjs`),a=require(`./cursor-glow-82y5h3E4.cjs`),o=require(`./magnetic-aBBnj_vk.cjs`);let s=require(`rxjs`),c=require(`rxjs/operators`),l=require(`lit/decorators.js`),u=require(`lit`),d=require(`lit/directives/ref.js`);var f=class extends n.t(e.t(u.css`
2
2
  :host {
3
3
  display: block;
4
4
  transition: box-shadow 400ms cubic-bezier(0.34, 1.2, 0.64, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"details-Bhz8_whd.cjs","names":[],"sources":["../src/details/details.ts"],"sourcesContent":["import { TailwindElement, SurfaceMixin } from '@mixins/index'\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { cursorGlow } from '../directives/cursor-glow'\nimport { magnetic } from '../directives/magnetic'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { BehaviorSubject, fromEvent, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, take, takeUntil, tap } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation.js'\nimport { reducedMotion$ } from '../directives/reduced-motion'\n\n@customElement('schmancy-details')\nexport default class SchmancyDetails extends SurfaceMixin(\n\tTailwindElement(css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\ttransition: box-shadow 400ms cubic-bezier(0.34, 1.2, 0.64, 1);\n\t\t}\n\n\t\t:host([overlay]) {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t:host([open]) {\n\t\t\tbox-shadow:\n\t\t\t\t0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent),\n\t\t\t\t0 8px 32px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 8%, transparent);\n\t\t\tz-index: 10;\n\t\t}\n\n\t\tdetails {\n\t\t\tbackground: inherit;\n\t\t\tcolor: inherit;\n\t\t\tborder-radius: inherit;\n\t\t}\n\n\t\tsummary::-webkit-details-marker {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tsummary {\n\t\t\tlist-style: none;\n\t\t\tcolor: inherit;\n\t\t}\n\n\t\t/*\n\t\t * Blackbird 2.1 — CSS-driven collapse/expand\n\t\t *\n\t\t * Single animation system: CSS grid transition handles height,\n\t\t * coordinated opacity fade for buttery smooth feel.\n\t\t * No competing Web Animations API on content.\n\t\t */\n\n\t\t.content-wrapper {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-rows: 0fr;\n\t\t\toverflow: hidden;\n\t\t\topacity: 0;\n\t\t\ttransition:\n\t\t\t\tgrid-template-rows 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\topacity 250ms ease;\n\t\t}\n\n\t\t/* Spring easing when linear() is supported */\n\t\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition:\n\t\t\t\t\tgrid-template-rows 400ms linear(\n\t\t\t\t\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t\t\t\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t\t\t\t\t1.017 63.3%, 1.001\n\t\t\t\t\t),\n\t\t\t\t\topacity 250ms ease;\n\t\t\t}\n\t\t}\n\n\t\t.content-wrapper[data-open='true'] {\n\t\t\tgrid-template-rows: 1fr;\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.content-inner {\n\t\t\tmin-height: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t/*\n\t\t * Progressive Enhancement: ::details-content (Chrome 131+)\n\t\t *\n\t\t * When both ::details-content AND interpolate-size are supported,\n\t\t * the browser handles height animation natively — including animated\n\t\t * close via transition-behavior: allow-discrete on content-visibility.\n\t\t * The grid wrapper becomes transparent (display: contents).\n\t\t */\n\t\t@supports selector(::details-content) and (interpolate-size: allow-keywords) {\n\t\t\t:host {\n\t\t\t\tinterpolate-size: allow-keywords;\n\t\t\t}\n\n\t\t\t.content-wrapper {\n\t\t\t\tdisplay: contents;\n\t\t\t}\n\n\t\t\tdetails::details-content {\n\t\t\t\tblock-size: 0;\n\t\t\t\toverflow-y: clip;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\tblock-size 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\t\topacity 250ms ease,\n\t\t\t\t\tcontent-visibility 400ms;\n\t\t\t\ttransition-behavior: allow-discrete;\n\t\t\t}\n\n\t\t\tdetails[open]::details-content {\n\t\t\t\tblock-size: auto;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tdetails::details-content {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t`),\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open' as const,\n\t\tdelegatesFocus: true,\n\t}\n\n\t@property() summary = ''\n\n\t@property({ type: Boolean, reflect: true })\n\tget open() {\n\t\treturn this._open$.value\n\t}\n\tset open(value: boolean) {\n\t\tif (this._open$.value !== value) {\n\t\t\tthis._open$.next(value)\n\t\t}\n\t}\n\n\t@property({ attribute: 'indicator-placement', reflect: true })\n\tindicatorPlacement: 'start' | 'end' = 'end'\n\n\t@property({ type: Boolean, attribute: 'hide-indicator' })\n\thideIndicator = false\n\n\t@property({ type: Number, attribute: 'indicator-rotate' })\n\tindicatorRotate: number = 90\n\n\t@property({ type: Boolean, reflect: true })\n\tlocked = false\n\n\t@property({ type: Boolean, reflect: true })\n\toverlay = false\n\n\t@property({ attribute: 'summary-padding' })\n\tsummaryPadding = 'p-3'\n\n\t@property({ attribute: 'content-padding' })\n\tcontentPadding = 'p-3'\n\n\tprivate _open$ = new BehaviorSubject<boolean>(false)\n\tprivate _indicatorRef: Ref<HTMLElement> = createRef()\n\tprivate _contentRef: Ref<HTMLDivElement> = createRef()\n\tprivate _currentAnimation?: Animation\n\tprivate _indicatorIsOpen = false\n\tprivate _closing = false\n\tprivate _closeSub?: Subscription\n\n\t/** True when browser handles close animation natively via ::details-content */\n\tprivate _nativeAnim =\n\t\ttypeof CSS !== 'undefined' &&\n\t\t!!CSS.supports?.('selector(::details-content)') &&\n\t\t!!CSS.supports?.('interpolate-size', 'allow-keywords')\n\n\t/**\n\t * Lazy rendering: tracks if content has ever been opened.\n\t * Once true, content stays rendered (even when closed) for smooth animations.\n\t */\n\t@state() private _hasOpened = false\n\n\tconstructor() {\n\t\tsuper()\n\t\tthis.type = 'solid'\n\t\tthis.rounded = 'all'\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tthis._open$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(isOpen => {\n\t\t\t\t\tif (isOpen && !this._hasOpened) {\n\t\t\t\t\t\tthis._hasOpened = true\n\t\t\t\t\t}\n\t\t\t\t\tthis._animateIndicator(isOpen)\n\t\t\t\t\tthis._updateIndicatorSlot()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.requestUpdate())\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._closeSub?.unsubscribe()\n\t}\n\n\trender() {\n\t\tconst isOpen = this._open$.value\n\n\t\tconst detailsClasses = this.classMap({\n\t\t\t'w-full rounded-xl transition-shadow duration-200 ease-out': true,\n\t\t\t'overflow-hidden': !this.overlay,\n\t\t\t'overflow-visible relative': this.overlay,\n\t\t})\n\n\t\tconst summaryClasses = this.classMap({\n\t\t\t[this.summaryPadding]: true,\n\t\t\t'select-none relative flex items-center gap-2 rounded-xl': true,\n\t\t\t'transition-colors duration-150': true,\n\t\t\t'ring-1 ring-inset ring-transparent': true,\n\t\t\t'hover:bg-surface-on/5 active:bg-surface-on/8 hover:ring-outline-variant/40': !this.locked,\n\t\t\t'focus-visible:ring-2 focus-visible:ring-primary-default/50 focus-visible:ring-offset-1': !this.locked,\n\t\t\t'cursor-pointer group': !this.locked,\n\t\t\t'cursor-default': this.locked,\n\t\t\t'flex-row': this.indicatorPlacement === 'start',\n\t\t\t'flex-row-reverse': this.indicatorPlacement === 'end',\n\t\t})\n\n\t\tconst contentClasses = this.classMap({\n\t\t\t[this.contentPadding]: true,\n\t\t\t'text-sm': true,\n\t\t\t'absolute inset-x-0 bg-surface-lowest/55 backdrop-blur-[16px] shadow-2xl rounded-b-xl z-20 border border-surface-on/10':\n\t\t\t\tthis.overlay,\n\t\t})\n\n\t\treturn html`\n\t\t\t<details ?open=${isOpen} @toggle=${this._handleToggle} class=${detailsClasses}>\n\t\t\t\t<summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this._handleSummaryClick}>\n\t\t\t\t\t${!this.hideIndicator\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t${ref(this._indicatorRef)}\n\t\t\t\t\t\t\t\t\tclass=\"flex items-center justify-center w-5 h-5 rounded-full shrink-0 opacity-70 group-hover:opacity-100\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"indicator\" @slotchange=${this._handleIndicatorSlotChange}>\n\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"w-5 h-5\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\td=\"M9 6L15 12L9 18\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: ''}\n\n\t\t\t\t\t<span class=\"flex-1 min-w-0\">\n\t\t\t\t\t\t<slot name=\"summary\">${this.summary}</slot>\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</summary>\n\n\t\t\t\t<div\n\t\t\t\t\t${ref(this._contentRef)}\n\t\t\t\t\tclass=\"content-wrapper\"\n\t\t\t\t\tdata-open=${isOpen && !this._closing}\n\t\t\t\t\taria-hidden=${isOpen ? 'false' : 'true'}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content-inner\">\n\t\t\t\t\t\t${this._hasOpened\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t\t\t<slot name=\"details\"></slot>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</details>\n\t\t`\n\t}\n\n\tprivate _handleSummaryClick(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).closest('[slot=\"actions\"]')) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this.locked) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this._closing) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\n\t\t// Native animated path (Chromium 131+): browser handles everything via CSS\n\t\tif (this._nativeAnim) return\n\n\t\t// Fallback: manually animate close via CSS transition, then close native details\n\t\tif (this._open$.value) {\n\t\t\te.preventDefault()\n\t\t\tthis._startClose()\n\t\t}\n\t\t// If closed, let native open happen (handled by _handleToggle)\n\t}\n\n\tprivate _handleToggle(e: Event) {\n\t\te.stopPropagation()\n\n\t\tconst ownDetails = this.shadowRoot?.querySelector('details')\n\t\tif (e.target !== ownDetails) return\n\n\t\tconst newState = ownDetails.open\n\n\t\tif (this._nativeAnim) {\n\t\t\t// Native path: handle both open and close\n\t\t\tif (this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t} else {\n\t\t\t// Fallback path: only handle OPEN (close is driven by _startClose)\n\t\t\tif (newState && this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fallback close: trigger CSS grid+opacity transition, then close native <details>.\n\t * The CSS transition (400ms) handles the visual collapse — no WAAPI needed.\n\t */\n\tprivate _startClose() {\n\t\tthis._closing = true\n\t\tthis._closeSub?.unsubscribe()\n\n\t\t// Immediately collapse the grid wrapper via DOM attribute\n\t\tthis._contentRef.value?.setAttribute('data-open', 'false')\n\n\t\t// Animate indicator immediately\n\t\tthis._animateIndicator(false)\n\n\t\t// After CSS transition completes, close native details and update state\n\t\tconst wrapper = this._contentRef.value\n\t\tif (!wrapper) return\n\n\t\tthis._closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(\n\t\t\tfilter(e => e.propertyName === 'grid-template-rows'),\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis._closing = false\n\t\t\t\tthis.open = false\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: false })\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprivate _handleIndicatorSlotChange(e: Event) {\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tslot.assignedElements().forEach(el => {\n\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t})\n\t}\n\n\tprivate _updateIndicatorSlot() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot[name=\"indicator\"]') as HTMLSlotElement | null\n\t\tif (slot) {\n\t\t\tslot.assignedElements().forEach(el => {\n\t\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t\t})\n\t\t}\n\t}\n\n\t/** Idempotent indicator rotation — skips if already at target state */\n\tprivate _animateIndicator(isOpen: boolean) {\n\t\tif (this._indicatorIsOpen === isOpen) return\n\t\tthis._indicatorIsOpen = isOpen\n\n\t\tconst indicator = this._indicatorRef.value\n\t\tif (!indicator || reducedMotion$.value) return\n\n\t\tthis._currentAnimation?.cancel()\n\n\t\tthis._currentAnimation = indicator.animate(\n\t\t\t[\n\t\t\t\t{ transform: `rotate(${isOpen ? '0deg' : `${this.indicatorRotate}deg`})` },\n\t\t\t\t{ transform: `rotate(${isOpen ? `${this.indicatorRotate}deg` : '0deg'})` },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: SPRING_SNAPPY.duration,\n\t\t\t\teasing: SPRING_SNAPPY.easingFallback,\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-details': SchmancyDetails\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"details-BPV8itUf.cjs","names":[],"sources":["../src/details/details.ts"],"sourcesContent":["import { TailwindElement, SurfaceMixin } from '@mixins/index'\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { cursorGlow } from '../directives/cursor-glow'\nimport { magnetic } from '../directives/magnetic'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { BehaviorSubject, fromEvent, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, take, takeUntil, tap } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation.js'\nimport { reducedMotion$ } from '../directives/reduced-motion'\n\n@customElement('schmancy-details')\nexport default class SchmancyDetails extends SurfaceMixin(\n\tTailwindElement(css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\ttransition: box-shadow 400ms cubic-bezier(0.34, 1.2, 0.64, 1);\n\t\t}\n\n\t\t:host([overlay]) {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t:host([open]) {\n\t\t\tbox-shadow:\n\t\t\t\t0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent),\n\t\t\t\t0 8px 32px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 8%, transparent);\n\t\t\tz-index: 10;\n\t\t}\n\n\t\tdetails {\n\t\t\tbackground: inherit;\n\t\t\tcolor: inherit;\n\t\t\tborder-radius: inherit;\n\t\t}\n\n\t\tsummary::-webkit-details-marker {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tsummary {\n\t\t\tlist-style: none;\n\t\t\tcolor: inherit;\n\t\t}\n\n\t\t/*\n\t\t * Blackbird 2.1 — CSS-driven collapse/expand\n\t\t *\n\t\t * Single animation system: CSS grid transition handles height,\n\t\t * coordinated opacity fade for buttery smooth feel.\n\t\t * No competing Web Animations API on content.\n\t\t */\n\n\t\t.content-wrapper {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-rows: 0fr;\n\t\t\toverflow: hidden;\n\t\t\topacity: 0;\n\t\t\ttransition:\n\t\t\t\tgrid-template-rows 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\topacity 250ms ease;\n\t\t}\n\n\t\t/* Spring easing when linear() is supported */\n\t\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition:\n\t\t\t\t\tgrid-template-rows 400ms linear(\n\t\t\t\t\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t\t\t\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t\t\t\t\t1.017 63.3%, 1.001\n\t\t\t\t\t),\n\t\t\t\t\topacity 250ms ease;\n\t\t\t}\n\t\t}\n\n\t\t.content-wrapper[data-open='true'] {\n\t\t\tgrid-template-rows: 1fr;\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.content-inner {\n\t\t\tmin-height: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t/*\n\t\t * Progressive Enhancement: ::details-content (Chrome 131+)\n\t\t *\n\t\t * When both ::details-content AND interpolate-size are supported,\n\t\t * the browser handles height animation natively — including animated\n\t\t * close via transition-behavior: allow-discrete on content-visibility.\n\t\t * The grid wrapper becomes transparent (display: contents).\n\t\t */\n\t\t@supports selector(::details-content) and (interpolate-size: allow-keywords) {\n\t\t\t:host {\n\t\t\t\tinterpolate-size: allow-keywords;\n\t\t\t}\n\n\t\t\t.content-wrapper {\n\t\t\t\tdisplay: contents;\n\t\t\t}\n\n\t\t\tdetails::details-content {\n\t\t\t\tblock-size: 0;\n\t\t\t\toverflow-y: clip;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\tblock-size 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\t\topacity 250ms ease,\n\t\t\t\t\tcontent-visibility 400ms;\n\t\t\t\ttransition-behavior: allow-discrete;\n\t\t\t}\n\n\t\t\tdetails[open]::details-content {\n\t\t\t\tblock-size: auto;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tdetails::details-content {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t`),\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open' as const,\n\t\tdelegatesFocus: true,\n\t}\n\n\t@property() summary = ''\n\n\t@property({ type: Boolean, reflect: true })\n\tget open() {\n\t\treturn this._open$.value\n\t}\n\tset open(value: boolean) {\n\t\tif (this._open$.value !== value) {\n\t\t\tthis._open$.next(value)\n\t\t}\n\t}\n\n\t@property({ attribute: 'indicator-placement', reflect: true })\n\tindicatorPlacement: 'start' | 'end' = 'end'\n\n\t@property({ type: Boolean, attribute: 'hide-indicator' })\n\thideIndicator = false\n\n\t@property({ type: Number, attribute: 'indicator-rotate' })\n\tindicatorRotate: number = 90\n\n\t@property({ type: Boolean, reflect: true })\n\tlocked = false\n\n\t@property({ type: Boolean, reflect: true })\n\toverlay = false\n\n\t@property({ attribute: 'summary-padding' })\n\tsummaryPadding = 'p-3'\n\n\t@property({ attribute: 'content-padding' })\n\tcontentPadding = 'p-3'\n\n\tprivate _open$ = new BehaviorSubject<boolean>(false)\n\tprivate _indicatorRef: Ref<HTMLElement> = createRef()\n\tprivate _contentRef: Ref<HTMLDivElement> = createRef()\n\tprivate _currentAnimation?: Animation\n\tprivate _indicatorIsOpen = false\n\tprivate _closing = false\n\tprivate _closeSub?: Subscription\n\n\t/** True when browser handles close animation natively via ::details-content */\n\tprivate _nativeAnim =\n\t\ttypeof CSS !== 'undefined' &&\n\t\t!!CSS.supports?.('selector(::details-content)') &&\n\t\t!!CSS.supports?.('interpolate-size', 'allow-keywords')\n\n\t/**\n\t * Lazy rendering: tracks if content has ever been opened.\n\t * Once true, content stays rendered (even when closed) for smooth animations.\n\t */\n\t@state() private _hasOpened = false\n\n\tconstructor() {\n\t\tsuper()\n\t\tthis.type = 'solid'\n\t\tthis.rounded = 'all'\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tthis._open$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(isOpen => {\n\t\t\t\t\tif (isOpen && !this._hasOpened) {\n\t\t\t\t\t\tthis._hasOpened = true\n\t\t\t\t\t}\n\t\t\t\t\tthis._animateIndicator(isOpen)\n\t\t\t\t\tthis._updateIndicatorSlot()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.requestUpdate())\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._closeSub?.unsubscribe()\n\t}\n\n\trender() {\n\t\tconst isOpen = this._open$.value\n\n\t\tconst detailsClasses = this.classMap({\n\t\t\t'w-full rounded-xl transition-shadow duration-200 ease-out': true,\n\t\t\t'overflow-hidden': !this.overlay,\n\t\t\t'overflow-visible relative': this.overlay,\n\t\t})\n\n\t\tconst summaryClasses = this.classMap({\n\t\t\t[this.summaryPadding]: true,\n\t\t\t'select-none relative flex items-center gap-2 rounded-xl': true,\n\t\t\t'transition-colors duration-150': true,\n\t\t\t'ring-1 ring-inset ring-transparent': true,\n\t\t\t'hover:bg-surface-on/5 active:bg-surface-on/8 hover:ring-outline-variant/40': !this.locked,\n\t\t\t'focus-visible:ring-2 focus-visible:ring-primary-default/50 focus-visible:ring-offset-1': !this.locked,\n\t\t\t'cursor-pointer group': !this.locked,\n\t\t\t'cursor-default': this.locked,\n\t\t\t'flex-row': this.indicatorPlacement === 'start',\n\t\t\t'flex-row-reverse': this.indicatorPlacement === 'end',\n\t\t})\n\n\t\tconst contentClasses = this.classMap({\n\t\t\t[this.contentPadding]: true,\n\t\t\t'text-sm': true,\n\t\t\t'absolute inset-x-0 bg-surface-lowest/55 backdrop-blur-[16px] shadow-2xl rounded-b-xl z-20 border border-surface-on/10':\n\t\t\t\tthis.overlay,\n\t\t})\n\n\t\treturn html`\n\t\t\t<details ?open=${isOpen} @toggle=${this._handleToggle} class=${detailsClasses}>\n\t\t\t\t<summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this._handleSummaryClick}>\n\t\t\t\t\t${!this.hideIndicator\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t${ref(this._indicatorRef)}\n\t\t\t\t\t\t\t\t\tclass=\"flex items-center justify-center w-5 h-5 rounded-full shrink-0 opacity-70 group-hover:opacity-100\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"indicator\" @slotchange=${this._handleIndicatorSlotChange}>\n\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"w-5 h-5\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\td=\"M9 6L15 12L9 18\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: ''}\n\n\t\t\t\t\t<span class=\"flex-1 min-w-0\">\n\t\t\t\t\t\t<slot name=\"summary\">${this.summary}</slot>\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</summary>\n\n\t\t\t\t<div\n\t\t\t\t\t${ref(this._contentRef)}\n\t\t\t\t\tclass=\"content-wrapper\"\n\t\t\t\t\tdata-open=${isOpen && !this._closing}\n\t\t\t\t\taria-hidden=${isOpen ? 'false' : 'true'}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content-inner\">\n\t\t\t\t\t\t${this._hasOpened\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t\t\t<slot name=\"details\"></slot>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</details>\n\t\t`\n\t}\n\n\tprivate _handleSummaryClick(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).closest('[slot=\"actions\"]')) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this.locked) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this._closing) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\n\t\t// Native animated path (Chromium 131+): browser handles everything via CSS\n\t\tif (this._nativeAnim) return\n\n\t\t// Fallback: manually animate close via CSS transition, then close native details\n\t\tif (this._open$.value) {\n\t\t\te.preventDefault()\n\t\t\tthis._startClose()\n\t\t}\n\t\t// If closed, let native open happen (handled by _handleToggle)\n\t}\n\n\tprivate _handleToggle(e: Event) {\n\t\te.stopPropagation()\n\n\t\tconst ownDetails = this.shadowRoot?.querySelector('details')\n\t\tif (e.target !== ownDetails) return\n\n\t\tconst newState = ownDetails.open\n\n\t\tif (this._nativeAnim) {\n\t\t\t// Native path: handle both open and close\n\t\t\tif (this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t} else {\n\t\t\t// Fallback path: only handle OPEN (close is driven by _startClose)\n\t\t\tif (newState && this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fallback close: trigger CSS grid+opacity transition, then close native <details>.\n\t * The CSS transition (400ms) handles the visual collapse — no WAAPI needed.\n\t */\n\tprivate _startClose() {\n\t\tthis._closing = true\n\t\tthis._closeSub?.unsubscribe()\n\n\t\t// Immediately collapse the grid wrapper via DOM attribute\n\t\tthis._contentRef.value?.setAttribute('data-open', 'false')\n\n\t\t// Animate indicator immediately\n\t\tthis._animateIndicator(false)\n\n\t\t// After CSS transition completes, close native details and update state\n\t\tconst wrapper = this._contentRef.value\n\t\tif (!wrapper) return\n\n\t\tthis._closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(\n\t\t\tfilter(e => e.propertyName === 'grid-template-rows'),\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis._closing = false\n\t\t\t\tthis.open = false\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: false })\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprivate _handleIndicatorSlotChange(e: Event) {\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tslot.assignedElements().forEach(el => {\n\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t})\n\t}\n\n\tprivate _updateIndicatorSlot() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot[name=\"indicator\"]') as HTMLSlotElement | null\n\t\tif (slot) {\n\t\t\tslot.assignedElements().forEach(el => {\n\t\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t\t})\n\t\t}\n\t}\n\n\t/** Idempotent indicator rotation — skips if already at target state */\n\tprivate _animateIndicator(isOpen: boolean) {\n\t\tif (this._indicatorIsOpen === isOpen) return\n\t\tthis._indicatorIsOpen = isOpen\n\n\t\tconst indicator = this._indicatorRef.value\n\t\tif (!indicator || reducedMotion$.value) return\n\n\t\tthis._currentAnimation?.cancel()\n\n\t\tthis._currentAnimation = indicator.animate(\n\t\t\t[\n\t\t\t\t{ transform: `rotate(${isOpen ? '0deg' : `${this.indicatorRotate}deg`})` },\n\t\t\t\t{ transform: `rotate(${isOpen ? `${this.indicatorRotate}deg` : '0deg'})` },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: SPRING_SNAPPY.duration,\n\t\t\t\teasing: SPRING_SNAPPY.easingFallback,\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-details': SchmancyDetails\n\t}\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as e } from "./tailwind.mixin-DufHBjmb.js";
1
+ import { t as e } from "./tailwind.mixin-CZ3HjYZA.js";
2
2
  import { t } from "./decorate-D_utPUsC.js";
3
3
  import { t as n } from "./surface.mixin-DqMwoddO.js";
4
4
  import "./mixins.js";
@@ -1 +1 @@
1
- {"version":3,"file":"details-D7VTnLOh.js","names":[],"sources":["../src/details/details.ts"],"sourcesContent":["import { TailwindElement, SurfaceMixin } from '@mixins/index'\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { cursorGlow } from '../directives/cursor-glow'\nimport { magnetic } from '../directives/magnetic'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { BehaviorSubject, fromEvent, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, take, takeUntil, tap } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation.js'\nimport { reducedMotion$ } from '../directives/reduced-motion'\n\n@customElement('schmancy-details')\nexport default class SchmancyDetails extends SurfaceMixin(\n\tTailwindElement(css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\ttransition: box-shadow 400ms cubic-bezier(0.34, 1.2, 0.64, 1);\n\t\t}\n\n\t\t:host([overlay]) {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t:host([open]) {\n\t\t\tbox-shadow:\n\t\t\t\t0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent),\n\t\t\t\t0 8px 32px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 8%, transparent);\n\t\t\tz-index: 10;\n\t\t}\n\n\t\tdetails {\n\t\t\tbackground: inherit;\n\t\t\tcolor: inherit;\n\t\t\tborder-radius: inherit;\n\t\t}\n\n\t\tsummary::-webkit-details-marker {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tsummary {\n\t\t\tlist-style: none;\n\t\t\tcolor: inherit;\n\t\t}\n\n\t\t/*\n\t\t * Blackbird 2.1 — CSS-driven collapse/expand\n\t\t *\n\t\t * Single animation system: CSS grid transition handles height,\n\t\t * coordinated opacity fade for buttery smooth feel.\n\t\t * No competing Web Animations API on content.\n\t\t */\n\n\t\t.content-wrapper {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-rows: 0fr;\n\t\t\toverflow: hidden;\n\t\t\topacity: 0;\n\t\t\ttransition:\n\t\t\t\tgrid-template-rows 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\topacity 250ms ease;\n\t\t}\n\n\t\t/* Spring easing when linear() is supported */\n\t\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition:\n\t\t\t\t\tgrid-template-rows 400ms linear(\n\t\t\t\t\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t\t\t\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t\t\t\t\t1.017 63.3%, 1.001\n\t\t\t\t\t),\n\t\t\t\t\topacity 250ms ease;\n\t\t\t}\n\t\t}\n\n\t\t.content-wrapper[data-open='true'] {\n\t\t\tgrid-template-rows: 1fr;\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.content-inner {\n\t\t\tmin-height: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t/*\n\t\t * Progressive Enhancement: ::details-content (Chrome 131+)\n\t\t *\n\t\t * When both ::details-content AND interpolate-size are supported,\n\t\t * the browser handles height animation natively — including animated\n\t\t * close via transition-behavior: allow-discrete on content-visibility.\n\t\t * The grid wrapper becomes transparent (display: contents).\n\t\t */\n\t\t@supports selector(::details-content) and (interpolate-size: allow-keywords) {\n\t\t\t:host {\n\t\t\t\tinterpolate-size: allow-keywords;\n\t\t\t}\n\n\t\t\t.content-wrapper {\n\t\t\t\tdisplay: contents;\n\t\t\t}\n\n\t\t\tdetails::details-content {\n\t\t\t\tblock-size: 0;\n\t\t\t\toverflow-y: clip;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\tblock-size 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\t\topacity 250ms ease,\n\t\t\t\t\tcontent-visibility 400ms;\n\t\t\t\ttransition-behavior: allow-discrete;\n\t\t\t}\n\n\t\t\tdetails[open]::details-content {\n\t\t\t\tblock-size: auto;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tdetails::details-content {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t`),\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open' as const,\n\t\tdelegatesFocus: true,\n\t}\n\n\t@property() summary = ''\n\n\t@property({ type: Boolean, reflect: true })\n\tget open() {\n\t\treturn this._open$.value\n\t}\n\tset open(value: boolean) {\n\t\tif (this._open$.value !== value) {\n\t\t\tthis._open$.next(value)\n\t\t}\n\t}\n\n\t@property({ attribute: 'indicator-placement', reflect: true })\n\tindicatorPlacement: 'start' | 'end' = 'end'\n\n\t@property({ type: Boolean, attribute: 'hide-indicator' })\n\thideIndicator = false\n\n\t@property({ type: Number, attribute: 'indicator-rotate' })\n\tindicatorRotate: number = 90\n\n\t@property({ type: Boolean, reflect: true })\n\tlocked = false\n\n\t@property({ type: Boolean, reflect: true })\n\toverlay = false\n\n\t@property({ attribute: 'summary-padding' })\n\tsummaryPadding = 'p-3'\n\n\t@property({ attribute: 'content-padding' })\n\tcontentPadding = 'p-3'\n\n\tprivate _open$ = new BehaviorSubject<boolean>(false)\n\tprivate _indicatorRef: Ref<HTMLElement> = createRef()\n\tprivate _contentRef: Ref<HTMLDivElement> = createRef()\n\tprivate _currentAnimation?: Animation\n\tprivate _indicatorIsOpen = false\n\tprivate _closing = false\n\tprivate _closeSub?: Subscription\n\n\t/** True when browser handles close animation natively via ::details-content */\n\tprivate _nativeAnim =\n\t\ttypeof CSS !== 'undefined' &&\n\t\t!!CSS.supports?.('selector(::details-content)') &&\n\t\t!!CSS.supports?.('interpolate-size', 'allow-keywords')\n\n\t/**\n\t * Lazy rendering: tracks if content has ever been opened.\n\t * Once true, content stays rendered (even when closed) for smooth animations.\n\t */\n\t@state() private _hasOpened = false\n\n\tconstructor() {\n\t\tsuper()\n\t\tthis.type = 'solid'\n\t\tthis.rounded = 'all'\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tthis._open$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(isOpen => {\n\t\t\t\t\tif (isOpen && !this._hasOpened) {\n\t\t\t\t\t\tthis._hasOpened = true\n\t\t\t\t\t}\n\t\t\t\t\tthis._animateIndicator(isOpen)\n\t\t\t\t\tthis._updateIndicatorSlot()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.requestUpdate())\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._closeSub?.unsubscribe()\n\t}\n\n\trender() {\n\t\tconst isOpen = this._open$.value\n\n\t\tconst detailsClasses = this.classMap({\n\t\t\t'w-full rounded-xl transition-shadow duration-200 ease-out': true,\n\t\t\t'overflow-hidden': !this.overlay,\n\t\t\t'overflow-visible relative': this.overlay,\n\t\t})\n\n\t\tconst summaryClasses = this.classMap({\n\t\t\t[this.summaryPadding]: true,\n\t\t\t'select-none relative flex items-center gap-2 rounded-xl': true,\n\t\t\t'transition-colors duration-150': true,\n\t\t\t'ring-1 ring-inset ring-transparent': true,\n\t\t\t'hover:bg-surface-on/5 active:bg-surface-on/8 hover:ring-outline-variant/40': !this.locked,\n\t\t\t'focus-visible:ring-2 focus-visible:ring-primary-default/50 focus-visible:ring-offset-1': !this.locked,\n\t\t\t'cursor-pointer group': !this.locked,\n\t\t\t'cursor-default': this.locked,\n\t\t\t'flex-row': this.indicatorPlacement === 'start',\n\t\t\t'flex-row-reverse': this.indicatorPlacement === 'end',\n\t\t})\n\n\t\tconst contentClasses = this.classMap({\n\t\t\t[this.contentPadding]: true,\n\t\t\t'text-sm': true,\n\t\t\t'absolute inset-x-0 bg-surface-lowest/55 backdrop-blur-[16px] shadow-2xl rounded-b-xl z-20 border border-surface-on/10':\n\t\t\t\tthis.overlay,\n\t\t})\n\n\t\treturn html`\n\t\t\t<details ?open=${isOpen} @toggle=${this._handleToggle} class=${detailsClasses}>\n\t\t\t\t<summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this._handleSummaryClick}>\n\t\t\t\t\t${!this.hideIndicator\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t${ref(this._indicatorRef)}\n\t\t\t\t\t\t\t\t\tclass=\"flex items-center justify-center w-5 h-5 rounded-full shrink-0 opacity-70 group-hover:opacity-100\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"indicator\" @slotchange=${this._handleIndicatorSlotChange}>\n\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"w-5 h-5\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\td=\"M9 6L15 12L9 18\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: ''}\n\n\t\t\t\t\t<span class=\"flex-1 min-w-0\">\n\t\t\t\t\t\t<slot name=\"summary\">${this.summary}</slot>\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</summary>\n\n\t\t\t\t<div\n\t\t\t\t\t${ref(this._contentRef)}\n\t\t\t\t\tclass=\"content-wrapper\"\n\t\t\t\t\tdata-open=${isOpen && !this._closing}\n\t\t\t\t\taria-hidden=${isOpen ? 'false' : 'true'}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content-inner\">\n\t\t\t\t\t\t${this._hasOpened\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t\t\t<slot name=\"details\"></slot>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</details>\n\t\t`\n\t}\n\n\tprivate _handleSummaryClick(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).closest('[slot=\"actions\"]')) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this.locked) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this._closing) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\n\t\t// Native animated path (Chromium 131+): browser handles everything via CSS\n\t\tif (this._nativeAnim) return\n\n\t\t// Fallback: manually animate close via CSS transition, then close native details\n\t\tif (this._open$.value) {\n\t\t\te.preventDefault()\n\t\t\tthis._startClose()\n\t\t}\n\t\t// If closed, let native open happen (handled by _handleToggle)\n\t}\n\n\tprivate _handleToggle(e: Event) {\n\t\te.stopPropagation()\n\n\t\tconst ownDetails = this.shadowRoot?.querySelector('details')\n\t\tif (e.target !== ownDetails) return\n\n\t\tconst newState = ownDetails.open\n\n\t\tif (this._nativeAnim) {\n\t\t\t// Native path: handle both open and close\n\t\t\tif (this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t} else {\n\t\t\t// Fallback path: only handle OPEN (close is driven by _startClose)\n\t\t\tif (newState && this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fallback close: trigger CSS grid+opacity transition, then close native <details>.\n\t * The CSS transition (400ms) handles the visual collapse — no WAAPI needed.\n\t */\n\tprivate _startClose() {\n\t\tthis._closing = true\n\t\tthis._closeSub?.unsubscribe()\n\n\t\t// Immediately collapse the grid wrapper via DOM attribute\n\t\tthis._contentRef.value?.setAttribute('data-open', 'false')\n\n\t\t// Animate indicator immediately\n\t\tthis._animateIndicator(false)\n\n\t\t// After CSS transition completes, close native details and update state\n\t\tconst wrapper = this._contentRef.value\n\t\tif (!wrapper) return\n\n\t\tthis._closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(\n\t\t\tfilter(e => e.propertyName === 'grid-template-rows'),\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis._closing = false\n\t\t\t\tthis.open = false\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: false })\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprivate _handleIndicatorSlotChange(e: Event) {\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tslot.assignedElements().forEach(el => {\n\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t})\n\t}\n\n\tprivate _updateIndicatorSlot() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot[name=\"indicator\"]') as HTMLSlotElement | null\n\t\tif (slot) {\n\t\t\tslot.assignedElements().forEach(el => {\n\t\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t\t})\n\t\t}\n\t}\n\n\t/** Idempotent indicator rotation — skips if already at target state */\n\tprivate _animateIndicator(isOpen: boolean) {\n\t\tif (this._indicatorIsOpen === isOpen) return\n\t\tthis._indicatorIsOpen = isOpen\n\n\t\tconst indicator = this._indicatorRef.value\n\t\tif (!indicator || reducedMotion$.value) return\n\n\t\tthis._currentAnimation?.cancel()\n\n\t\tthis._currentAnimation = indicator.animate(\n\t\t\t[\n\t\t\t\t{ transform: `rotate(${isOpen ? '0deg' : `${this.indicatorRotate}deg`})` },\n\t\t\t\t{ transform: `rotate(${isOpen ? `${this.indicatorRotate}deg` : '0deg'})` },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: SPRING_SNAPPY.duration,\n\t\t\t\teasing: SPRING_SNAPPY.easingFallback,\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-details': SchmancyDetails\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"details-DkFwn_vQ.js","names":[],"sources":["../src/details/details.ts"],"sourcesContent":["import { TailwindElement, SurfaceMixin } from '@mixins/index'\nimport { css, html, LitElement, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { cursorGlow } from '../directives/cursor-glow'\nimport { magnetic } from '../directives/magnetic'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { BehaviorSubject, fromEvent, Subscription } from 'rxjs'\nimport { distinctUntilChanged, filter, take, takeUntil, tap } from 'rxjs/operators'\nimport { SPRING_SNAPPY } from '../utils/animation.js'\nimport { reducedMotion$ } from '../directives/reduced-motion'\n\n@customElement('schmancy-details')\nexport default class SchmancyDetails extends SurfaceMixin(\n\tTailwindElement(css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\ttransition: box-shadow 400ms cubic-bezier(0.34, 1.2, 0.64, 1);\n\t\t}\n\n\t\t:host([overlay]) {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t:host([open]) {\n\t\t\tbox-shadow:\n\t\t\t\t0 2px 12px -2px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 15%, transparent),\n\t\t\t\t0 8px 32px -8px color-mix(in srgb, var(--schmancy-sys-color-primary-default) 8%, transparent);\n\t\t\tz-index: 10;\n\t\t}\n\n\t\tdetails {\n\t\t\tbackground: inherit;\n\t\t\tcolor: inherit;\n\t\t\tborder-radius: inherit;\n\t\t}\n\n\t\tsummary::-webkit-details-marker {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tsummary {\n\t\t\tlist-style: none;\n\t\t\tcolor: inherit;\n\t\t}\n\n\t\t/*\n\t\t * Blackbird 2.1 — CSS-driven collapse/expand\n\t\t *\n\t\t * Single animation system: CSS grid transition handles height,\n\t\t * coordinated opacity fade for buttery smooth feel.\n\t\t * No competing Web Animations API on content.\n\t\t */\n\n\t\t.content-wrapper {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-rows: 0fr;\n\t\t\toverflow: hidden;\n\t\t\topacity: 0;\n\t\t\ttransition:\n\t\t\t\tgrid-template-rows 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\topacity 250ms ease;\n\t\t}\n\n\t\t/* Spring easing when linear() is supported */\n\t\t@supports (animation-timing-function: linear(0, 1)) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition:\n\t\t\t\t\tgrid-template-rows 400ms linear(\n\t\t\t\t\t\t0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%,\n\t\t\t\t\t\t0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50%, 1.015 54.8%,\n\t\t\t\t\t\t1.017 63.3%, 1.001\n\t\t\t\t\t),\n\t\t\t\t\topacity 250ms ease;\n\t\t\t}\n\t\t}\n\n\t\t.content-wrapper[data-open='true'] {\n\t\t\tgrid-template-rows: 1fr;\n\t\t\topacity: 1;\n\t\t}\n\n\t\t.content-inner {\n\t\t\tmin-height: 0;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t/*\n\t\t * Progressive Enhancement: ::details-content (Chrome 131+)\n\t\t *\n\t\t * When both ::details-content AND interpolate-size are supported,\n\t\t * the browser handles height animation natively — including animated\n\t\t * close via transition-behavior: allow-discrete on content-visibility.\n\t\t * The grid wrapper becomes transparent (display: contents).\n\t\t */\n\t\t@supports selector(::details-content) and (interpolate-size: allow-keywords) {\n\t\t\t:host {\n\t\t\t\tinterpolate-size: allow-keywords;\n\t\t\t}\n\n\t\t\t.content-wrapper {\n\t\t\t\tdisplay: contents;\n\t\t\t}\n\n\t\t\tdetails::details-content {\n\t\t\t\tblock-size: 0;\n\t\t\t\toverflow-y: clip;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition:\n\t\t\t\t\tblock-size 400ms cubic-bezier(0.34, 1.2, 0.64, 1),\n\t\t\t\t\topacity 250ms ease,\n\t\t\t\t\tcontent-visibility 400ms;\n\t\t\t\ttransition-behavior: allow-discrete;\n\t\t\t}\n\n\t\t\tdetails[open]::details-content {\n\t\t\t\tblock-size: auto;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t.content-wrapper {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tdetails::details-content {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t`),\n) {\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tmode: 'open' as const,\n\t\tdelegatesFocus: true,\n\t}\n\n\t@property() summary = ''\n\n\t@property({ type: Boolean, reflect: true })\n\tget open() {\n\t\treturn this._open$.value\n\t}\n\tset open(value: boolean) {\n\t\tif (this._open$.value !== value) {\n\t\t\tthis._open$.next(value)\n\t\t}\n\t}\n\n\t@property({ attribute: 'indicator-placement', reflect: true })\n\tindicatorPlacement: 'start' | 'end' = 'end'\n\n\t@property({ type: Boolean, attribute: 'hide-indicator' })\n\thideIndicator = false\n\n\t@property({ type: Number, attribute: 'indicator-rotate' })\n\tindicatorRotate: number = 90\n\n\t@property({ type: Boolean, reflect: true })\n\tlocked = false\n\n\t@property({ type: Boolean, reflect: true })\n\toverlay = false\n\n\t@property({ attribute: 'summary-padding' })\n\tsummaryPadding = 'p-3'\n\n\t@property({ attribute: 'content-padding' })\n\tcontentPadding = 'p-3'\n\n\tprivate _open$ = new BehaviorSubject<boolean>(false)\n\tprivate _indicatorRef: Ref<HTMLElement> = createRef()\n\tprivate _contentRef: Ref<HTMLDivElement> = createRef()\n\tprivate _currentAnimation?: Animation\n\tprivate _indicatorIsOpen = false\n\tprivate _closing = false\n\tprivate _closeSub?: Subscription\n\n\t/** True when browser handles close animation natively via ::details-content */\n\tprivate _nativeAnim =\n\t\ttypeof CSS !== 'undefined' &&\n\t\t!!CSS.supports?.('selector(::details-content)') &&\n\t\t!!CSS.supports?.('interpolate-size', 'allow-keywords')\n\n\t/**\n\t * Lazy rendering: tracks if content has ever been opened.\n\t * Once true, content stays rendered (even when closed) for smooth animations.\n\t */\n\t@state() private _hasOpened = false\n\n\tconstructor() {\n\t\tsuper()\n\t\tthis.type = 'solid'\n\t\tthis.rounded = 'all'\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tthis._open$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(isOpen => {\n\t\t\t\t\tif (isOpen && !this._hasOpened) {\n\t\t\t\t\t\tthis._hasOpened = true\n\t\t\t\t\t}\n\t\t\t\t\tthis._animateIndicator(isOpen)\n\t\t\t\t\tthis._updateIndicatorSlot()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => this.requestUpdate())\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._closeSub?.unsubscribe()\n\t}\n\n\trender() {\n\t\tconst isOpen = this._open$.value\n\n\t\tconst detailsClasses = this.classMap({\n\t\t\t'w-full rounded-xl transition-shadow duration-200 ease-out': true,\n\t\t\t'overflow-hidden': !this.overlay,\n\t\t\t'overflow-visible relative': this.overlay,\n\t\t})\n\n\t\tconst summaryClasses = this.classMap({\n\t\t\t[this.summaryPadding]: true,\n\t\t\t'select-none relative flex items-center gap-2 rounded-xl': true,\n\t\t\t'transition-colors duration-150': true,\n\t\t\t'ring-1 ring-inset ring-transparent': true,\n\t\t\t'hover:bg-surface-on/5 active:bg-surface-on/8 hover:ring-outline-variant/40': !this.locked,\n\t\t\t'focus-visible:ring-2 focus-visible:ring-primary-default/50 focus-visible:ring-offset-1': !this.locked,\n\t\t\t'cursor-pointer group': !this.locked,\n\t\t\t'cursor-default': this.locked,\n\t\t\t'flex-row': this.indicatorPlacement === 'start',\n\t\t\t'flex-row-reverse': this.indicatorPlacement === 'end',\n\t\t})\n\n\t\tconst contentClasses = this.classMap({\n\t\t\t[this.contentPadding]: true,\n\t\t\t'text-sm': true,\n\t\t\t'absolute inset-x-0 bg-surface-lowest/55 backdrop-blur-[16px] shadow-2xl rounded-b-xl z-20 border border-surface-on/10':\n\t\t\t\tthis.overlay,\n\t\t})\n\n\t\treturn html`\n\t\t\t<details ?open=${isOpen} @toggle=${this._handleToggle} class=${detailsClasses}>\n\t\t\t\t<summary ${this.locked ? '' : magnetic({ strength: 2, radius: 50 })} ${this.locked ? '' : cursorGlow({ radius: 250, intensity: 0.08 })} class=${summaryClasses} tabindex=${this.locked ? -1 : 0} @click=${this._handleSummaryClick}>\n\t\t\t\t\t${!this.hideIndicator\n\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t${ref(this._indicatorRef)}\n\t\t\t\t\t\t\t\t\tclass=\"flex items-center justify-center w-5 h-5 rounded-full shrink-0 opacity-70 group-hover:opacity-100\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"indicator\" @slotchange=${this._handleIndicatorSlotChange}>\n\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"w-5 h-5\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\td=\"M9 6L15 12L9 18\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t: ''}\n\n\t\t\t\t\t<span class=\"flex-1 min-w-0\">\n\t\t\t\t\t\t<slot name=\"summary\">${this.summary}</slot>\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t</summary>\n\n\t\t\t\t<div\n\t\t\t\t\t${ref(this._contentRef)}\n\t\t\t\t\tclass=\"content-wrapper\"\n\t\t\t\t\tdata-open=${isOpen && !this._closing}\n\t\t\t\t\taria-hidden=${isOpen ? 'false' : 'true'}\n\t\t\t\t>\n\t\t\t\t\t<div class=\"content-inner\">\n\t\t\t\t\t\t${this._hasOpened\n\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t<div class=${contentClasses}>\n\t\t\t\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t\t\t\t<slot name=\"details\"></slot>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</details>\n\t\t`\n\t}\n\n\tprivate _handleSummaryClick(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).closest('[slot=\"actions\"]')) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this.locked) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\t\tif (this._closing) {\n\t\t\te.preventDefault()\n\t\t\treturn\n\t\t}\n\n\t\t// Native animated path (Chromium 131+): browser handles everything via CSS\n\t\tif (this._nativeAnim) return\n\n\t\t// Fallback: manually animate close via CSS transition, then close native details\n\t\tif (this._open$.value) {\n\t\t\te.preventDefault()\n\t\t\tthis._startClose()\n\t\t}\n\t\t// If closed, let native open happen (handled by _handleToggle)\n\t}\n\n\tprivate _handleToggle(e: Event) {\n\t\te.stopPropagation()\n\n\t\tconst ownDetails = this.shadowRoot?.querySelector('details')\n\t\tif (e.target !== ownDetails) return\n\n\t\tconst newState = ownDetails.open\n\n\t\tif (this._nativeAnim) {\n\t\t\t// Native path: handle both open and close\n\t\t\tif (this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t} else {\n\t\t\t// Fallback path: only handle OPEN (close is driven by _startClose)\n\t\t\tif (newState && this._open$.value !== newState) {\n\t\t\t\tthis.open = newState\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: newState })\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Fallback close: trigger CSS grid+opacity transition, then close native <details>.\n\t * The CSS transition (400ms) handles the visual collapse — no WAAPI needed.\n\t */\n\tprivate _startClose() {\n\t\tthis._closing = true\n\t\tthis._closeSub?.unsubscribe()\n\n\t\t// Immediately collapse the grid wrapper via DOM attribute\n\t\tthis._contentRef.value?.setAttribute('data-open', 'false')\n\n\t\t// Animate indicator immediately\n\t\tthis._animateIndicator(false)\n\n\t\t// After CSS transition completes, close native details and update state\n\t\tconst wrapper = this._contentRef.value\n\t\tif (!wrapper) return\n\n\t\tthis._closeSub = fromEvent<TransitionEvent>(wrapper, 'transitionend').pipe(\n\t\t\tfilter(e => e.propertyName === 'grid-template-rows'),\n\t\t\ttake(1),\n\t\t\ttap(() => {\n\t\t\t\tthis._closing = false\n\t\t\t\tthis.open = false\n\t\t\t\tthis.dispatchScopedEvent('toggle', { open: false })\n\t\t\t}),\n\t\t\ttakeUntil(this.disconnecting),\n\t\t).subscribe()\n\t}\n\n\tprivate _handleIndicatorSlotChange(e: Event) {\n\t\tconst slot = e.target as HTMLSlotElement\n\t\tslot.assignedElements().forEach(el => {\n\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t})\n\t}\n\n\tprivate _updateIndicatorSlot() {\n\t\tconst slot = this.shadowRoot?.querySelector('slot[name=\"indicator\"]') as HTMLSlotElement | null\n\t\tif (slot) {\n\t\t\tslot.assignedElements().forEach(el => {\n\t\t\t\tel.setAttribute('data-open', String(this._open$.value))\n\t\t\t})\n\t\t}\n\t}\n\n\t/** Idempotent indicator rotation — skips if already at target state */\n\tprivate _animateIndicator(isOpen: boolean) {\n\t\tif (this._indicatorIsOpen === isOpen) return\n\t\tthis._indicatorIsOpen = isOpen\n\n\t\tconst indicator = this._indicatorRef.value\n\t\tif (!indicator || reducedMotion$.value) return\n\n\t\tthis._currentAnimation?.cancel()\n\n\t\tthis._currentAnimation = indicator.animate(\n\t\t\t[\n\t\t\t\t{ transform: `rotate(${isOpen ? '0deg' : `${this.indicatorRotate}deg`})` },\n\t\t\t\t{ transform: `rotate(${isOpen ? `${this.indicatorRotate}deg` : '0deg'})` },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: SPRING_SNAPPY.duration,\n\t\t\t\teasing: SPRING_SNAPPY.easingFallback,\n\t\t\t\tfill: 'forwards',\n\t\t\t},\n\t\t)\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-details': SchmancyDetails\n\t}\n}\n"],"mappings":"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"}
package/dist/details.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./details-Bhz8_whd.cjs`);exports.SchmancyDetails=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./details-BPV8itUf.cjs`);exports.SchmancyDetails=e.t;
package/dist/details.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./details-D7VTnLOh.js";
1
+ import { t as e } from "./details-DkFwn_vQ.js";
2
2
  export { e as SchmancyDetails };
package/dist/dialog.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-Bj2q1yPw.cjs`);require(`./mixins.cjs`);const n=require(`./animation-Bcwh107v.cjs`),r=require(`./reduced-motion-DR32yKEO.cjs`),i=require(`./cursor-glow-82y5h3E4.cjs`),a=require(`./dialog-service-DcuAavp2.cjs`);let o=require(`rxjs`),s=require(`rxjs/operators`),c=require(`lit/decorators.js`),l=require(`lit`),u=require(`lit/directives/ref.js`),d=require(`lit/directives/when.js`),f=require(`@floating-ui/dom`);var p=e=>class extends e{constructor(...e){super(...e),this.position={x:0,y:0},this.isMobile=!1,this.dragOffset=0,this.stopSwipe$=new o.Subject,this.lastFocusedElement=null,this.inertSiblings=[],this.animating=!1,this.dialogInternals=(()=>{try{return this.attachInternals()}catch{return}})()}isAnimating(){return this.animating}getDialogElement(){return null}getBackdropElement(){return null}getDragHandleElement(){return null}connectedCallback(){super.connectedCallback(),this.setupResizeListener()}setupResizeListener(){(0,o.fromEvent)(window,`resize`).pipe((0,o.map)(()=>window.innerWidth<640),(0,o.distinctUntilChanged)(),(0,o.filter)(()=>this.hasAttribute(`active`)),(0,o.tap)(e=>{if(this.isMobile!==e){this.isMobile=e,this.requestUpdate();let t=this.getDialogElement();t&&(e?(this.applyBottomSheetStyles(t),this.setupSwipeGesture(t)):(this.stopSwipe$.next(),this.setupPositioning()))}}),(0,o.takeUntil)(this.disconnecting)).subscribe()}setupSwipeGesture(e){this.stopSwipe$.next();let t=0,n=!1,r=0,i=this.getDragHandleElement();(0,o.merge)((0,o.fromEvent)(i||e,`touchstart`,{passive:!0}).pipe((0,o.tap)(a=>{let o=a.touches[0],s=e.getBoundingClientRect();o.clientY-s.top>80&&!i||(n=!0,t=o.clientY,r=0,this.dragOffset=0,e.style.transition=`none`,e.style.willChange=`transform`)})),(0,o.fromEvent)(e,`touchmove`,{passive:!1}).pipe((0,o.filter)(()=>n),(0,o.tap)(n=>{let i=n.touches[0].clientY-t;r=i<0?.2*i:i,this.dragOffset=Math.max(0,i),e.style.transform=`translateY(${r}px)`,n.preventDefault()})),(0,o.merge)((0,o.fromEvent)(e,`touchend`,{passive:!0}),(0,o.fromEvent)(e,`touchcancel`,{passive:!0})).pipe((0,o.filter)(()=>n),(0,o.tap)(()=>{n=!1,e.style.transition=`transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)`,e.style.willChange=``;let t=e.getBoundingClientRect().height,r=Math.min(100,.25*t);this.dragOffset>r?(e.style.transform=`translateY(100%)`,this.hide(!1)):(e.style.transform=`translateY(0)`,this.dragOffset=0)}))).pipe((0,o.takeUntil)((0,o.merge)(this.stopSwipe$,this.disconnecting))).subscribe()}applyBottomSheetStyles(e){this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),Object.assign(e.style,{position:``,left:``,top:``,transform:``,maxWidth:``})}async show(e){let t,n;if(this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),this.isMobile=window.innerWidth<640,e)if(`clientX`in e)t=e.clientX,n=e.clientY;else if(`touches`in e&&e.touches.length)t=e.touches[0].clientX,n=e.touches[0].clientY;else{let r=e;t=r.x,n=r.y}else t=window.innerWidth/2,n=window.innerHeight/2;this.position={x:t,y:n},this.virtualReference={getBoundingClientRect:()=>new DOMRect(t,n,0,0)},this.requestUpdate(),await this.updateComplete,this.setAttribute(`active`,``),this.dialogInternals?.states.add(`open`),await this.updateComplete,this.lastFocusedElement=document.activeElement;let r=this.parentElement;if(r){this.inertSiblings=[];for(let e=0;e<r.children.length;e++){let t=r.children[e];t!==this&&`inert`in t&&(t.inert=!0,this.inertSiblings.push(t))}}(0,o.fromEvent)(document,`keydown`).pipe((0,o.filter)(e=>e.key===`Escape`),(0,o.tap)(e=>{e.preventDefault(),this.hide(!1)}),(0,o.takeUntil)((0,o.merge)(this.stopSwipe$,this.disconnecting))).subscribe();let i=this.getDialogElement(),a=window.innerWidth<1024?.6:.8;return!this.isMobile&&i&&(i.scrollHeight>window.innerHeight*a||i.scrollWidth>window.innerWidth*a)&&(this.isMobile=!0,this.requestUpdate(),await this.updateComplete),this.isMobile?i&&(this.applyBottomSheetStyles(i),this.setupSwipeGesture(i)):this.setupPositioning(),this.animating=!0,await this.animateIn(),this.animating=!1,new Promise(e=>{this.resolvePromise=e})}async animateIn(){let e=this.getDialogElement(),t=this.getBackdropElement();if(r.t.value)return t&&(t.style.opacity=`1`),void(e&&(e.style.opacity=`1`));if(t?.animate([{opacity:0},{opacity:1}],{duration:200,easing:n.s,fill:`forwards`}),e){let t=this.isMobile?[{opacity:0,transform:`translateY(100%)`},{opacity:1,transform:`translateY(0)`}]:[{opacity:0,transform:`scale(0.92) translateY(16px)`},{opacity:1,transform:`scale(1) translateY(0)`}];await e.animate(t,{duration:n.i,easing:n.n,fill:`forwards`}).finished}}async animateOut(){let e=this.getDialogElement(),t=this.getBackdropElement();if(r.t.value)return t&&(t.style.opacity=`0`),void(e&&(e.style.opacity=`0`));let i=[];if(t&&i.push(t.animate([{opacity:1},{opacity:0}],{duration:150,easing:n.s,fill:`forwards`}).finished),e){let t=this.isMobile?[{opacity:1,transform:`translateY(0)`},{opacity:0,transform:`translateY(100%)`}]:[{opacity:1,transform:`scale(1) translateY(0)`},{opacity:0,transform:`scale(0.95) translateY(8px)`}];i.push(e.animate(t,{duration:150,easing:n.o,fill:`forwards`}).finished)}await Promise.all(i)}async hide(e=!1){this.stopSwipe$.next(),this.animating=!0,await this.animateOut(),this.animating=!1,this.removeAttribute(`active`),this.dialogInternals?.states.delete(`open`);for(let e of this.inertSiblings)e.inert=!1;if(this.inertSiblings=[],this.lastFocusedElement){let e=this.lastFocusedElement;typeof e.focus==`function`&&e.focus(),this.lastFocusedElement=null}this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),this.resolvePromise&&=(this.resolvePromise(e),void 0)}isCentered(){let e=.05*window.innerWidth,t=.05*window.innerHeight;return Math.abs(this.position.x-window.innerWidth/2)<e&&Math.abs(this.position.y-window.innerHeight/2)<t}setupPositioning(){let e=this.getDialogElement();e&&(this.isCentered()||this.virtualReference&&(this.cleanupAutoUpdate=(0,f.autoUpdate)(this.virtualReference,e,()=>this.updatePosition(e),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0}),this.updatePosition(e)))}async updatePosition(e){if(!this.virtualReference)return;let{x:t,y:n}=await(0,f.computePosition)(this.virtualReference,e,{strategy:`fixed`,middleware:[(0,f.offset)(8),(0,f.autoPlacement)({padding:16,allowedPlacements:[`top-start`,`top-end`,`bottom-start`,`bottom-end`,`left-start`,`left-end`,`right-start`,`right-end`]}),(0,f.shift)({padding:16}),(0,f.size)({padding:16,apply({availableWidth:e,elements:t}){t.floating.style.maxWidth=`${e}px`}})]});Object.assign(e.style,{position:`fixed`,left:`${Math.round(t)}px`,top:`${Math.round(n)}px`,transform:`none`})}disconnectedCallback(){this.stopSwipe$.next(),this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),super.disconnectedCallback()}},m=class extends p(t.t(l.css`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-DE2UvM55.cjs`);require(`./mixins.cjs`);const n=require(`./animation-Bcwh107v.cjs`),r=require(`./reduced-motion-DR32yKEO.cjs`),i=require(`./cursor-glow-82y5h3E4.cjs`),a=require(`./dialog-service-DcuAavp2.cjs`);let o=require(`rxjs`),s=require(`rxjs/operators`),c=require(`lit/decorators.js`),l=require(`lit`),u=require(`lit/directives/ref.js`),d=require(`lit/directives/when.js`),f=require(`@floating-ui/dom`);var p=e=>class extends e{constructor(...e){super(...e),this.position={x:0,y:0},this.isMobile=!1,this.dragOffset=0,this.stopSwipe$=new o.Subject,this.lastFocusedElement=null,this.inertSiblings=[],this.animating=!1,this.dialogInternals=(()=>{try{return this.attachInternals()}catch{return}})()}isAnimating(){return this.animating}getDialogElement(){return null}getBackdropElement(){return null}getDragHandleElement(){return null}connectedCallback(){super.connectedCallback(),this.setupResizeListener()}setupResizeListener(){(0,o.fromEvent)(window,`resize`).pipe((0,o.map)(()=>window.innerWidth<640),(0,o.distinctUntilChanged)(),(0,o.filter)(()=>this.hasAttribute(`active`)),(0,o.tap)(e=>{if(this.isMobile!==e){this.isMobile=e,this.requestUpdate();let t=this.getDialogElement();t&&(e?(this.applyBottomSheetStyles(t),this.setupSwipeGesture(t)):(this.stopSwipe$.next(),this.setupPositioning()))}}),(0,o.takeUntil)(this.disconnecting)).subscribe()}setupSwipeGesture(e){this.stopSwipe$.next();let t=0,n=!1,r=0,i=this.getDragHandleElement();(0,o.merge)((0,o.fromEvent)(i||e,`touchstart`,{passive:!0}).pipe((0,o.tap)(a=>{let o=a.touches[0],s=e.getBoundingClientRect();o.clientY-s.top>80&&!i||(n=!0,t=o.clientY,r=0,this.dragOffset=0,e.style.transition=`none`,e.style.willChange=`transform`)})),(0,o.fromEvent)(e,`touchmove`,{passive:!1}).pipe((0,o.filter)(()=>n),(0,o.tap)(n=>{let i=n.touches[0].clientY-t;r=i<0?.2*i:i,this.dragOffset=Math.max(0,i),e.style.transform=`translateY(${r}px)`,n.preventDefault()})),(0,o.merge)((0,o.fromEvent)(e,`touchend`,{passive:!0}),(0,o.fromEvent)(e,`touchcancel`,{passive:!0})).pipe((0,o.filter)(()=>n),(0,o.tap)(()=>{n=!1,e.style.transition=`transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)`,e.style.willChange=``;let t=e.getBoundingClientRect().height,r=Math.min(100,.25*t);this.dragOffset>r?(e.style.transform=`translateY(100%)`,this.hide(!1)):(e.style.transform=`translateY(0)`,this.dragOffset=0)}))).pipe((0,o.takeUntil)((0,o.merge)(this.stopSwipe$,this.disconnecting))).subscribe()}applyBottomSheetStyles(e){this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),Object.assign(e.style,{position:``,left:``,top:``,transform:``,maxWidth:``})}async show(e){let t,n;if(this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),this.isMobile=window.innerWidth<640,e)if(`clientX`in e)t=e.clientX,n=e.clientY;else if(`touches`in e&&e.touches.length)t=e.touches[0].clientX,n=e.touches[0].clientY;else{let r=e;t=r.x,n=r.y}else t=window.innerWidth/2,n=window.innerHeight/2;this.position={x:t,y:n},this.virtualReference={getBoundingClientRect:()=>new DOMRect(t,n,0,0)},this.requestUpdate(),await this.updateComplete,this.setAttribute(`active`,``),this.dialogInternals?.states.add(`open`),await this.updateComplete,this.lastFocusedElement=document.activeElement;let r=this.parentElement;if(r){this.inertSiblings=[];for(let e=0;e<r.children.length;e++){let t=r.children[e];t!==this&&`inert`in t&&(t.inert=!0,this.inertSiblings.push(t))}}(0,o.fromEvent)(document,`keydown`).pipe((0,o.filter)(e=>e.key===`Escape`),(0,o.tap)(e=>{e.preventDefault(),this.hide(!1)}),(0,o.takeUntil)((0,o.merge)(this.stopSwipe$,this.disconnecting))).subscribe();let i=this.getDialogElement(),a=window.innerWidth<1024?.6:.8;return!this.isMobile&&i&&(i.scrollHeight>window.innerHeight*a||i.scrollWidth>window.innerWidth*a)&&(this.isMobile=!0,this.requestUpdate(),await this.updateComplete),this.isMobile?i&&(this.applyBottomSheetStyles(i),this.setupSwipeGesture(i)):this.setupPositioning(),this.animating=!0,await this.animateIn(),this.animating=!1,new Promise(e=>{this.resolvePromise=e})}async animateIn(){let e=this.getDialogElement(),t=this.getBackdropElement();if(r.t.value)return t&&(t.style.opacity=`1`),void(e&&(e.style.opacity=`1`));if(t?.animate([{opacity:0},{opacity:1}],{duration:200,easing:n.s,fill:`forwards`}),e){let t=this.isMobile?[{opacity:0,transform:`translateY(100%)`},{opacity:1,transform:`translateY(0)`}]:[{opacity:0,transform:`scale(0.92) translateY(16px)`},{opacity:1,transform:`scale(1) translateY(0)`}];await e.animate(t,{duration:n.i,easing:n.n,fill:`forwards`}).finished}}async animateOut(){let e=this.getDialogElement(),t=this.getBackdropElement();if(r.t.value)return t&&(t.style.opacity=`0`),void(e&&(e.style.opacity=`0`));let i=[];if(t&&i.push(t.animate([{opacity:1},{opacity:0}],{duration:150,easing:n.s,fill:`forwards`}).finished),e){let t=this.isMobile?[{opacity:1,transform:`translateY(0)`},{opacity:0,transform:`translateY(100%)`}]:[{opacity:1,transform:`scale(1) translateY(0)`},{opacity:0,transform:`scale(0.95) translateY(8px)`}];i.push(e.animate(t,{duration:150,easing:n.o,fill:`forwards`}).finished)}await Promise.all(i)}async hide(e=!1){this.stopSwipe$.next(),this.animating=!0,await this.animateOut(),this.animating=!1,this.removeAttribute(`active`),this.dialogInternals?.states.delete(`open`);for(let e of this.inertSiblings)e.inert=!1;if(this.inertSiblings=[],this.lastFocusedElement){let e=this.lastFocusedElement;typeof e.focus==`function`&&e.focus(),this.lastFocusedElement=null}this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),this.resolvePromise&&=(this.resolvePromise(e),void 0)}isCentered(){let e=.05*window.innerWidth,t=.05*window.innerHeight;return Math.abs(this.position.x-window.innerWidth/2)<e&&Math.abs(this.position.y-window.innerHeight/2)<t}setupPositioning(){let e=this.getDialogElement();e&&(this.isCentered()||this.virtualReference&&(this.cleanupAutoUpdate=(0,f.autoUpdate)(this.virtualReference,e,()=>this.updatePosition(e),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0}),this.updatePosition(e)))}async updatePosition(e){if(!this.virtualReference)return;let{x:t,y:n}=await(0,f.computePosition)(this.virtualReference,e,{strategy:`fixed`,middleware:[(0,f.offset)(8),(0,f.autoPlacement)({padding:16,allowedPlacements:[`top-start`,`top-end`,`bottom-start`,`bottom-end`,`left-start`,`left-end`,`right-start`,`right-end`]}),(0,f.shift)({padding:16}),(0,f.size)({padding:16,apply({availableWidth:e,elements:t}){t.floating.style.maxWidth=`${e}px`}})]});Object.assign(e.style,{position:`fixed`,left:`${Math.round(t)}px`,top:`${Math.round(n)}px`,transform:`none`})}disconnectedCallback(){this.stopSwipe$.next(),this.cleanupAutoUpdate&&=(this.cleanupAutoUpdate(),void 0),super.disconnectedCallback()}},m=class extends p(t.t(l.css`
2
2
  :host {
3
3
  position: fixed;
4
4
  z-index: var(--schmancy-overlay-z, 10000);
package/dist/dialog.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-CncaUoxz.js";
2
+ import { t } from "./litElement.mixin-8Ow4xwZs.js";
3
3
  import "./mixins.js";
4
4
  import { i as n, n as r, o as i, s as a } from "./animation-CXKSuUoE.js";
5
5
  import { t as o } from "./reduced-motion-B83yZbcO.js";
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-Bj2q1yPw.cjs`);require(`./mixins.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends t.t(r.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./decorate-F9CuyeHg.cjs`),t=require(`./litElement.mixin-DE2UvM55.cjs`);require(`./mixins.cjs`);let n=require(`lit/decorators.js`),r=require(`lit`);var i=class extends t.t(r.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"divider-S0bHwCCS.cjs","names":[],"sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"mappings":"oMAMe,IAAA,EAAA,cAA8B,EAAA,EAAY,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAuDE,UAAA,KAAA,SAAA,CACrB,EAAA,KAAA,KACqB,QAK7D,IAAA,YACgB,EAAA,CACf,KAAK,SAAW,IAAU,WAE3B,IAAA,aAAI,CACH,OAAO,KAAK,SAAW,WAAa,aAGrC,QAAA,CACC,MAAO,GAAA,IAAI;WACF,KAAK,SAAS,CAErB,cAAA,CAAgB,KAAK,SACrB,cAAe,KAAK,SAEpB,wBAAyB,KAAK,UAAY,UAC1C,iBAAkB,KAAK,UAAY,UAEnC,WAAA,CAAa,KAAK,SAClB,WAAY,KAAK,UAEhB,QAAQ,KAAK,QAAA,CAAS,EAAA,CAAA,CAAA;iCA5BhB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,UAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UACjB,CAAE,KAAM,QAAA,CAAA,CAAA,CAAU,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAClB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAKjB,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,cAAA,KAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eA/D5B,mBAAA,CAAA,CAAmB,EAAA"}
1
+ {"version":3,"file":"divider-CvPXQI-l.cjs","names":[],"sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"mappings":"oMAMe,IAAA,EAAA,cAA8B,EAAA,EAAY,EAAA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAuDE,UAAA,KAAA,SAAA,CACrB,EAAA,KAAA,KACqB,QAK7D,IAAA,YACgB,EAAA,CACf,KAAK,SAAW,IAAU,WAE3B,IAAA,aAAI,CACH,OAAO,KAAK,SAAW,WAAa,aAGrC,QAAA,CACC,MAAO,GAAA,IAAI;WACF,KAAK,SAAS,CAErB,cAAA,CAAgB,KAAK,SACrB,cAAe,KAAK,SAEpB,wBAAyB,KAAK,UAAY,UAC1C,iBAAkB,KAAK,UAAY,UAEnC,WAAA,CAAa,KAAK,SAClB,WAAY,KAAK,UAEhB,QAAQ,KAAK,QAAA,CAAS,EAAA,CAAA,CAAA;iCA5BhB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,UAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UACjB,CAAE,KAAM,QAAA,CAAA,CAAA,CAAU,EAAA,UAAA,WAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAClB,CAAE,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,OAAA,IAAA,GAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,UAKjB,CAAE,QAAA,CAAS,EAAM,KAAM,OAAA,CAAA,CAAA,CAAS,EAAA,UAAA,cAAA,KAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,eA/D5B,mBAAA,CAAA,CAAmB,EAAA"}
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./decorate-D_utPUsC.js";
2
- import { t } from "./litElement.mixin-CncaUoxz.js";
2
+ import { t } from "./litElement.mixin-8Ow4xwZs.js";
3
3
  import "./mixins.js";
4
4
  import { customElement as n, property as r } from "lit/decorators.js";
5
5
  import { css as i, html as a } from "lit";
@@ -1 +1 @@
1
- {"version":3,"file":"divider-zS232JDr.js","names":[],"sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"mappings":";;;;;AAMe,IAAA,IAAA,cAA8B,EAAY,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuDE,WAAA,KAAA,WAAA,CACrB,GAAA,KAAA,OACqB;;CAK7D,IAAA,YACgB,GAAA;AACf,OAAK,WAAW,MAAU;;CAE3B,IAAA,cAAI;AACH,SAAO,KAAK,WAAW,aAAa;;CAGrC,SAAA;AACC,SAAO,CAAI;WACF,KAAK,SAAS;GAErB,eAAA,CAAgB,KAAK;GACrB,eAAe,KAAK;GAEpB,yBAAyB,KAAK,YAAY;GAC1C,kBAAkB,KAAK,YAAY;GAEnC,YAAA,CAAa,KAAK;GAClB,YAAY,KAAK;IAEhB,QAAQ,KAAK,SAAA,CAAS;GAAA,CAAA,CAAA;;;;GA5BzB,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,SAAA,CAAA,CAAA,EAAU,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC3B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAK1B,EAAS;CAAE,SAAA,CAAS;CAAM,MAAM;CAAA,CAAA,CAAA,EAAS,EAAA,WAAA,eAAA,KAAA,EAAA,IAAA,EAAA,CA/D1C,EAAc,mBAAA,CAAA,EAAmB,EAAA"}
1
+ {"version":3,"file":"divider-DIrCxVmp.js","names":[],"sources":["../src/divider/divider.ts"],"sourcesContent":["// divider.ts\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-divider')\nexport default class SchmancyDivider extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n\n\t@keyframes grow-horizontal {\n\t\tfrom {\n\t\t\ttransform: scaleX(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleX(1);\n\t\t}\n\t}\n\n\t@keyframes grow-vertical {\n\t\tfrom {\n\t\t\ttransform: scaleY(0);\n\t\t}\n\t\tto {\n\t\t\ttransform: scaleY(1);\n\t\t}\n\t}\n\n\t/* Horizontal divider grow animations */\n\t.grow-start:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: left;\n\t}\n\n\t.grow-end:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: right;\n\t}\n\n\t.grow-both:not(.h-full) {\n\t\tanimation: grow-horizontal 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n\n\t/* Vertical divider grow animations */\n\t.grow-start.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: top;\n\t}\n\n\t.grow-end.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: bottom;\n\t}\n\n\t.grow-both.h-full {\n\t\tanimation: grow-vertical 400ms ease-out;\n\t\ttransform-origin: center;\n\t}\n`) {\n\t@property({ type: String }) outline: 'default' | 'variant' = 'variant'\n\t@property({ type: Boolean }) vertical = false\n\t@property({ type: String }) grow: 'start' | 'end' | 'both' = 'start'\n\n\t/**\n\t * @deprecated Use `vertical` property instead. Will be removed in next major version.\n\t */\n\t@property({ reflect: true, type: String })\n\tset orientation(value: 'horizontal' | 'vertical') {\n\t\tthis.vertical = value === 'vertical'\n\t}\n\tget orientation(): 'horizontal' | 'vertical' {\n\t\treturn this.vertical ? 'vertical' : 'horizontal'\n\t}\n\n\tprotected render() {\n\t\treturn html`<div\n\t\t\tclass=${this.classMap({\n\t\t\t\t// Dimensions\n\t\t\t\t'w-full h-px': !this.vertical,\n\t\t\t\t'h-full w-px': this.vertical,\n\t\t\t\t// Border color\n\t\t\t\t'border-outlineVariant': this.outline === 'variant',\n\t\t\t\t'border-outline': this.outline === 'default',\n\t\t\t\t// Border style\n\t\t\t\t'border-t': !this.vertical,\n\t\t\t\t'border-l': this.vertical,\n\t\t\t\t// Grow behavior\n\t\t\t\t[`grow-${this.grow}`]: true,\n\t\t\t})}\n\t\t></div>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-divider': SchmancyDivider\n\t}\n}\n"],"mappings":";;;;;AAMe,IAAA,IAAA,cAA8B,EAAY,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuDE,WAAA,KAAA,WAAA,CACrB,GAAA,KAAA,OACqB;;CAK7D,IAAA,YACgB,GAAA;AACf,OAAK,WAAW,MAAU;;CAE3B,IAAA,cAAI;AACH,SAAO,KAAK,WAAW,aAAa;;CAGrC,SAAA;AACC,SAAO,CAAI;WACF,KAAK,SAAS;GAErB,eAAA,CAAgB,KAAK;GACrB,eAAe,KAAK;GAEpB,yBAAyB,KAAK,YAAY;GAC1C,kBAAkB,KAAK,YAAY;GAEnC,YAAA,CAAa,KAAK;GAClB,YAAY,KAAK;IAEhB,QAAQ,KAAK,SAAA,CAAS;GAAA,CAAA,CAAA;;;;GA5BzB,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAC1B,EAAS,EAAE,MAAM,SAAA,CAAA,CAAA,EAAU,EAAA,WAAA,YAAA,KAAA,EAAA,EAAA,EAAA,CAC3B,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAK1B,EAAS;CAAE,SAAA,CAAS;CAAM,MAAM;CAAA,CAAA,CAAA,EAAS,EAAA,WAAA,eAAA,KAAA,EAAA,IAAA,EAAA,CA/D1C,EAAc,mBAAA,CAAA,EAAmB,EAAA"}
package/dist/divider.cjs CHANGED
@@ -1 +1 @@
1
- require(`./divider-S0bHwCCS.cjs`);
1
+ require(`./divider-CvPXQI-l.cjs`);
package/dist/divider.js CHANGED
@@ -1 +1 @@
1
- import "./divider-zS232JDr.js";
1
+ import "./divider-DIrCxVmp.js";
package/dist/dropdown.cjs CHANGED
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Cpa-VnnX.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-Bj2q1yPw.cjs`);require(`./mixins.cjs`);let r=require(`rxjs`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`@floating-ui/dom`);var s=class extends n.t(){constructor(...e){super(...e),this.open=!1,this.placement=`bottom-start`,this.distance=8,this.portal=null,this.portalSubscriptions=[]}connectedCallback(){super.connectedCallback(),this.setupPortal(),(0,r.fromEvent)(document,`click`).pipe((0,r.filter)(e=>this.open&&!this.isEventFromSelf(e)),(0,r.takeUntil)(this.disconnecting)).subscribe(()=>{this.open=!1}),(0,r.fromEvent)(document,`keydown`).pipe((0,r.filter)(e=>this.open&&e.key===`Escape`),(0,r.takeUntil)(this.disconnecting)).subscribe(()=>{this.open=!1})}setupPortal(){let e=document.getElementById(`schmancy-portal-container`);e||(e=document.createElement(`div`),e.id=`schmancy-portal-container`,e.style.position=`fixed`,e.style.zIndex=`10000`,e.style.top=`0`,e.style.left=`0`,e.style.pointerEvents=`none`,document.body.appendChild(e));let t=document.createElement(`div`);t.className=`schmancy-dropdown-portal`,t.style.position=`absolute`,t.style.pointerEvents=`auto`,t.style.display=`none`,e.appendChild(t),this.portal=t}isEventFromSelf(e){return e.composedPath().some(e=>e===this)}disconnectedCallback(){this.cleanupPositioner?.(),this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[],this.portal&&=(this.portal.remove(),null),super.disconnectedCallback()}toggle(){this.open=!this.open}updated(e){super.updated(e),e.has(`open`)&&(this.open?this.setupPositioner():(this.cleanupPositioner?.(),this.portal&&(this.portal.style.display=`none`,this.portal.innerHTML=``,this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[])))}setupPositioner(){this.triggerContainer&&this.portal&&(this.portal.style.display=`block`,this.teleportContentToPortal(),this.cleanupPositioner=(0,o.autoUpdate)(this.triggerContainer,this.portal,()=>{(0,o.computePosition)(this.triggerContainer,this.portal,{placement:this.placement,middleware:[(0,o.offset)(this.distance),(0,o.flip)({fallbackPlacements:[`top-start`,`bottom-start`]}),(0,o.shift)({padding:0})]}).then(({x:e,y:t})=>{Object.assign(this.portal.style,{left:`${e}px`,top:t-8+`px`})})}))}teleportContentToPortal(){this.portal&&(this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[],this.portal.innerHTML=``,this.contentElements.forEach(e=>{let t=e.cloneNode(!0);if(e.tagName.toLowerCase()===`schmancy-dropdown-content`){let e=(0,r.fromEvent)(t,`slotchange`).subscribe(()=>{let e=t.shadowRoot?.querySelector(`[part="content"]`);e&&e.classList.add(`schmancy-dropdown-content`)});this.portalSubscriptions.push(e)}this.portal?.appendChild(t)}))}handleTriggerClick(e){e.stopPropagation(),this.toggle()}render(){return a.html`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-B9BI55A6.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./litElement.mixin-DE2UvM55.cjs`);require(`./mixins.cjs`);let r=require(`rxjs`),i=require(`lit/decorators.js`),a=require(`lit`),o=require(`@floating-ui/dom`);var s=class extends n.t(){constructor(...e){super(...e),this.open=!1,this.placement=`bottom-start`,this.distance=8,this.portal=null,this.portalSubscriptions=[]}connectedCallback(){super.connectedCallback(),this.setupPortal(),(0,r.fromEvent)(document,`click`).pipe((0,r.filter)(e=>this.open&&!this.isEventFromSelf(e)),(0,r.takeUntil)(this.disconnecting)).subscribe(()=>{this.open=!1}),(0,r.fromEvent)(document,`keydown`).pipe((0,r.filter)(e=>this.open&&e.key===`Escape`),(0,r.takeUntil)(this.disconnecting)).subscribe(()=>{this.open=!1})}setupPortal(){let e=document.getElementById(`schmancy-portal-container`);e||(e=document.createElement(`div`),e.id=`schmancy-portal-container`,e.style.position=`fixed`,e.style.zIndex=`10000`,e.style.top=`0`,e.style.left=`0`,e.style.pointerEvents=`none`,document.body.appendChild(e));let t=document.createElement(`div`);t.className=`schmancy-dropdown-portal`,t.style.position=`absolute`,t.style.pointerEvents=`auto`,t.style.display=`none`,e.appendChild(t),this.portal=t}isEventFromSelf(e){return e.composedPath().some(e=>e===this)}disconnectedCallback(){this.cleanupPositioner?.(),this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[],this.portal&&=(this.portal.remove(),null),super.disconnectedCallback()}toggle(){this.open=!this.open}updated(e){super.updated(e),e.has(`open`)&&(this.open?this.setupPositioner():(this.cleanupPositioner?.(),this.portal&&(this.portal.style.display=`none`,this.portal.innerHTML=``,this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[])))}setupPositioner(){this.triggerContainer&&this.portal&&(this.portal.style.display=`block`,this.teleportContentToPortal(),this.cleanupPositioner=(0,o.autoUpdate)(this.triggerContainer,this.portal,()=>{(0,o.computePosition)(this.triggerContainer,this.portal,{placement:this.placement,middleware:[(0,o.offset)(this.distance),(0,o.flip)({fallbackPlacements:[`top-start`,`bottom-start`]}),(0,o.shift)({padding:0})]}).then(({x:e,y:t})=>{Object.assign(this.portal.style,{left:`${e}px`,top:t-8+`px`})})}))}teleportContentToPortal(){this.portal&&(this.portalSubscriptions.forEach(e=>e.unsubscribe()),this.portalSubscriptions=[],this.portal.innerHTML=``,this.contentElements.forEach(e=>{let t=e.cloneNode(!0);if(e.tagName.toLowerCase()===`schmancy-dropdown-content`){let e=(0,r.fromEvent)(t,`slotchange`).subscribe(()=>{let e=t.shadowRoot?.querySelector(`[part="content"]`);e&&e.classList.add(`schmancy-dropdown-content`)});this.portalSubscriptions.push(e)}this.portal?.appendChild(t)}))}handleTriggerClick(e){e.stopPropagation(),this.toggle()}render(){return a.html`
2
2
  <div class="trigger-container" @click=${this.handleTriggerClick}>
3
3
  <slot name="trigger"></slot>
4
4
  </div>
package/dist/dropdown.js CHANGED
@@ -1,6 +1,6 @@
1
- import { t as e } from "./tailwind.mixin-DufHBjmb.js";
1
+ import { t as e } from "./tailwind.mixin-CZ3HjYZA.js";
2
2
  import { t } from "./decorate-D_utPUsC.js";
3
- import { t as n } from "./litElement.mixin-CncaUoxz.js";
3
+ import { t as n } from "./litElement.mixin-8Ow4xwZs.js";
4
4
  import "./mixins.js";
5
5
  import { filter as r, fromEvent as i, takeUntil as a } from "rxjs";
6
6
  import { customElement as o, property as s, query as c, queryAssignedElements as l, state as u } from "lit/decorators.js";
@@ -1,4 +1,4 @@
1
- require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-Cpa-VnnX.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./surface.mixin-CSKqQH-0.cjs`);require(`./mixins.cjs`);const r=require(`./animation-Bcwh107v.cjs`),i=require(`./reduced-motion-DR32yKEO.cjs`);require(`./surface-CDufon40.cjs`);let a=require(`rxjs`),o=require(`rxjs/operators`),s=require(`lit/directives/style-map.js`),c=require(`lit/decorators.js`),l=require(`lit`),u=require(`lit/directives/ref.js`);var d=class extends n.t(e.t(l.css`
1
+ require(`./chunk-BCfY8kxB.cjs`);const e=require(`./tailwind.mixin-B9BI55A6.cjs`),t=require(`./decorate-F9CuyeHg.cjs`),n=require(`./surface.mixin-CSKqQH-0.cjs`);require(`./mixins.cjs`);const r=require(`./animation-Bcwh107v.cjs`),i=require(`./reduced-motion-DR32yKEO.cjs`);require(`./surface-C_5i3jWp.cjs`);let a=require(`rxjs`),o=require(`rxjs/operators`),s=require(`lit/directives/style-map.js`),c=require(`lit/decorators.js`),l=require(`lit`),u=require(`lit/directives/ref.js`);var d=class extends n.t(e.t(l.css`
2
2
  :host {
3
3
  display: contents;
4
4
  }