@mhmo91/schmancy 0.5.37 → 0.5.38

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 (323) hide show
  1. package/ai/boat.md +38 -106
  2. package/dist/ai/boat.md +38 -106
  3. package/dist/{animated-text-Cfs1zx2e.js → animated-text-B6BM8UAR.js} +3 -3
  4. package/dist/{animated-text-Cfs1zx2e.js.map → animated-text-B6BM8UAR.js.map} +1 -1
  5. package/dist/{animated-text-DoLx8YhT.cjs → animated-text-DMLVAWR9.cjs} +2 -2
  6. package/dist/{animated-text-DoLx8YhT.cjs.map → animated-text-DMLVAWR9.cjs.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-A6Xw-dfF.js → area.component-C0i1I-XN.js} +3 -3
  11. package/dist/{area.component-A6Xw-dfF.js.map → area.component-C0i1I-XN.js.map} +1 -1
  12. package/dist/{area.component-DMRF1lD-.cjs → area.component-D630N8ae.cjs} +2 -2
  13. package/dist/{area.component-DMRF1lD-.cjs.map → area.component-D630N8ae.cjs.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-C5DIxpTG.js → autocomplete-B8VgSG8j.js} +4 -4
  16. package/dist/{autocomplete-C5DIxpTG.js.map → autocomplete-B8VgSG8j.js.map} +1 -1
  17. package/dist/{autocomplete-DkJqOYTg.cjs → autocomplete-Dz24IUoU.cjs} +2 -2
  18. package/dist/{autocomplete-DkJqOYTg.cjs.map → autocomplete-Dz24IUoU.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-BmcocEQ4.cjs → avatar-DqZd_LTf.cjs} +4 -4
  22. package/dist/{avatar-BmcocEQ4.cjs.map → avatar-DqZd_LTf.cjs.map} +1 -1
  23. package/dist/{avatar-BDy0wAek.js → avatar-b6tMCYC_.js} +55 -53
  24. package/dist/{avatar-BDy0wAek.js.map → avatar-b6tMCYC_.js.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-DumUFcmT.js → boat-CQlfnrN3.js} +81 -93
  28. package/dist/boat-CQlfnrN3.js.map +1 -0
  29. package/dist/boat-CvWXHBGZ.cjs +83 -0
  30. package/dist/boat-CvWXHBGZ.cjs.map +1 -0
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-CsMLbxBY.cjs → checkbox-BxVFUa5d.cjs} +2 -2
  40. package/dist/{checkbox-CsMLbxBY.cjs.map → checkbox-BxVFUa5d.cjs.map} +1 -1
  41. package/dist/{checkbox-CHG-gT2P.js → checkbox-IXHvFU8T.js} +2 -2
  42. package/dist/{checkbox-CHG-gT2P.js.map → checkbox-IXHvFU8T.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-Bp4OemTD.js → code-preview-BckcSzge.js} +2 -2
  50. package/dist/{code-preview-Bp4OemTD.js.map → code-preview-BckcSzge.js.map} +1 -1
  51. package/dist/{code-preview-BgUU7bPR.cjs → code-preview-BtlXrJte.cjs} +2 -2
  52. package/dist/{code-preview-BgUU7bPR.cjs.map → code-preview-BtlXrJte.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-D_DBil9n.cjs → date-range-CEBvpz9I.cjs} +2 -2
  58. package/dist/{date-range-D_DBil9n.cjs.map → date-range-CEBvpz9I.cjs.map} +1 -1
  59. package/dist/{date-range-BcJ0YN2n.js → date-range-DJlpBhfg.js} +3 -3
  60. package/dist/{date-range-BcJ0YN2n.js.map → date-range-DJlpBhfg.js.map} +1 -1
  61. package/dist/{date-range-inline-Dqxqgu2s.js → date-range-inline-DUkLYZw-.js} +3 -3
  62. package/dist/{date-range-inline-Dqxqgu2s.js.map → date-range-inline-DUkLYZw-.js.map} +1 -1
  63. package/dist/{date-range-inline-DQjOVUxD.cjs → date-range-inline-svKzfEjk.cjs} +2 -2
  64. package/dist/{date-range-inline-DQjOVUxD.cjs.map → date-range-inline-svKzfEjk.cjs.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-BbtlKEc4.cjs → delay-dCJupQL7.cjs} +2 -2
  70. package/dist/{delay-BbtlKEc4.cjs.map → delay-dCJupQL7.cjs.map} +1 -1
  71. package/dist/{delay-CC_14mn4.js → delay-zFsG2bgS.js} +2 -2
  72. package/dist/{delay-CC_14mn4.js.map → delay-zFsG2bgS.js.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-CTdm7rbG.cjs → details-63cgbcG4.cjs} +2 -2
  76. package/dist/{details-CTdm7rbG.cjs.map → details-63cgbcG4.cjs.map} +1 -1
  77. package/dist/{details-dk2hnRIp.js → details-zr1wF8T5.js} +2 -2
  78. package/dist/{details-dk2hnRIp.js.map → details-zr1wF8T5.js.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-BSZ5dwnP.cjs → dialog-content-CCwZGDWl.cjs} +2 -2
  82. package/dist/{dialog-content-BSZ5dwnP.cjs.map → dialog-content-CCwZGDWl.cjs.map} +1 -1
  83. package/dist/{dialog-content-BM-lfqHq.js → dialog-content-D4hLDFG7.js} +3 -3
  84. package/dist/{dialog-content-BM-lfqHq.js.map → dialog-content-D4hLDFG7.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-DgJXEKxB.cjs → divider-BDpbyVks.cjs} +2 -2
  88. package/dist/{divider-DgJXEKxB.cjs.map → divider-BDpbyVks.cjs.map} +1 -1
  89. package/dist/{divider-BWVdeJm1.js → divider-DXh9y_Nv.js} +3 -3
  90. package/dist/{divider-BWVdeJm1.js.map → divider-DXh9y_Nv.js.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-ZAB82v-h.cjs → dropdown-content-DGxquZCA.cjs} +2 -2
  94. package/dist/{dropdown-content-ZAB82v-h.cjs.map → dropdown-content-DGxquZCA.cjs.map} +1 -1
  95. package/dist/{dropdown-content-BgLy9dwU.js → dropdown-content-zM3fWF1d.js} +3 -3
  96. package/dist/{dropdown-content-BgLy9dwU.js.map → dropdown-content-zM3fWF1d.js.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-IXQLqBaI.js → email-recipients-DqOHKxsV.js} +5 -5
  100. package/dist/{email-recipients-IXQLqBaI.js.map → email-recipients-DqOHKxsV.js.map} +1 -1
  101. package/dist/{email-recipients-R7jCXy_I.cjs → email-recipients-MvSCLUmk.cjs} +2 -2
  102. package/dist/{email-recipients-R7jCXy_I.cjs.map → email-recipients-MvSCLUmk.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-Cp1nomar.js → flex-BjpIb0Xr.js} +2 -2
  106. package/dist/{flex-Cp1nomar.js.map → flex-BjpIb0Xr.js.map} +1 -1
  107. package/dist/{flex-sAQsXdsk.cjs → flex-D1NZuZez.cjs} +2 -2
  108. package/dist/{flex-sAQsXdsk.cjs.map → flex-D1NZuZez.cjs.map} +1 -1
  109. package/dist/{form-DHTbrnEl.cjs → form-CRPFTmNd.cjs} +2 -2
  110. package/dist/{form-DHTbrnEl.cjs.map → form-CRPFTmNd.cjs.map} +1 -1
  111. package/dist/{form-Dtc128QU.js → form-UlL9mkQq.js} +2 -2
  112. package/dist/{form-Dtc128QU.js.map → form-UlL9mkQq.js.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-CCB_CKYb.js → formField.mixin-6_cx2CQR.js} +2 -2
  116. package/dist/{formField.mixin-CCB_CKYb.js.map → formField.mixin-6_cx2CQR.js.map} +1 -1
  117. package/dist/{formField.mixin-CZQ7alVs.cjs → formField.mixin-CXYETznz.cjs} +2 -2
  118. package/dist/{formField.mixin-CZQ7alVs.cjs.map → formField.mixin-CXYETznz.cjs.map} +1 -1
  119. package/dist/{icon-CocdSdlX.cjs → icon-BjvTgGum.cjs} +2 -2
  120. package/dist/{icon-CocdSdlX.cjs.map → icon-BjvTgGum.cjs.map} +1 -1
  121. package/dist/{icon-BHhOyVjB.js → icon-Ce_dFWKs.js} +2 -2
  122. package/dist/{icon-BHhOyVjB.js.map → icon-Ce_dFWKs.js.map} +1 -1
  123. package/dist/{icon-button-CjSaBrg0.js → icon-button-BLp0zzBs.js} +3 -3
  124. package/dist/{icon-button-CjSaBrg0.js.map → icon-button-BLp0zzBs.js.map} +1 -1
  125. package/dist/{icon-button-m8kXxOvS.cjs → icon-button-yr8UowN8.cjs} +2 -2
  126. package/dist/{icon-button-m8kXxOvS.cjs.map → icon-button-yr8UowN8.cjs.map} +1 -1
  127. package/dist/icons.cjs +1 -1
  128. package/dist/icons.js +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.js +49 -49
  131. package/dist/{input-BuDPnk5e.cjs → input-BbBgA67h.cjs} +2 -2
  132. package/dist/{input-BuDPnk5e.cjs.map → input-BbBgA67h.cjs.map} +1 -1
  133. package/dist/{input-D_gdNxxR.js → input-FbaIdP-U.js} +3 -3
  134. package/dist/{input-D_gdNxxR.js.map → input-FbaIdP-U.js.map} +1 -1
  135. package/dist/{input-chip-CDLblIp9.cjs → input-chip-B49269QA.cjs} +2 -2
  136. package/dist/{input-chip-CDLblIp9.cjs.map → input-chip-B49269QA.cjs.map} +1 -1
  137. package/dist/{input-chip-CLnR4vSR.js → input-chip-r5DIdtls.js} +2 -2
  138. package/dist/{input-chip-CLnR4vSR.js.map → input-chip-r5DIdtls.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-KCakyWxw.cjs → list-BLG8XA7G.cjs} +2 -2
  144. package/dist/{list-KCakyWxw.cjs.map → list-BLG8XA7G.cjs.map} +1 -1
  145. package/dist/{list-C069T9ey.js → list-QEY7H4eL.js} +2 -2
  146. package/dist/{list-C069T9ey.js.map → list-QEY7H4eL.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-Dp4mBSNw.js → litElement.mixin-D5MC2dPM.js} +2 -2
  150. package/dist/{litElement.mixin-Dp4mBSNw.js.map → litElement.mixin-D5MC2dPM.js.map} +1 -1
  151. package/dist/{litElement.mixin-DoBMt4ia.cjs → litElement.mixin-Dmtg7y_h.cjs} +2 -2
  152. package/dist/{litElement.mixin-DoBMt4ia.cjs.map → litElement.mixin-Dmtg7y_h.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-vNMrrat-.cjs → map-BygoKmAX.cjs} +2 -2
  156. package/dist/{map-vNMrrat-.cjs.map → map-BygoKmAX.cjs.map} +1 -1
  157. package/dist/{map-pn_6ziZf.js → map-DY3fXMM4.js} +2 -2
  158. package/dist/{map-pn_6ziZf.js.map → map-DY3fXMM4.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-CAtXPif3.cjs → media-BFkmF0pK.cjs} +2 -2
  162. package/dist/{media-CAtXPif3.cjs.map → media-BFkmF0pK.cjs.map} +1 -1
  163. package/dist/{media-DC3r4y8-.js → media-ChpYwvB3.js} +2 -2
  164. package/dist/{media-DC3r4y8-.js.map → media-ChpYwvB3.js.map} +1 -1
  165. package/dist/{menu-C2ZKJe1g.cjs → menu-BXHjDZge.cjs} +2 -2
  166. package/dist/{menu-C2ZKJe1g.cjs.map → menu-BXHjDZge.cjs.map} +1 -1
  167. package/dist/{menu-BAs2snSu.js → menu-gLYzAVLB.js} +3 -3
  168. package/dist/{menu-BAs2snSu.js.map → menu-gLYzAVLB.js.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/navigation-bar.cjs +1 -1
  174. package/dist/navigation-bar.js +1 -1
  175. package/dist/{navigation-rail-KdVjbO1I.js → navigation-rail-SPrrtWOS.js} +22 -20
  176. package/dist/{navigation-rail-KdVjbO1I.js.map → navigation-rail-SPrrtWOS.js.map} +1 -1
  177. package/dist/{navigation-rail-B0zofile.cjs → navigation-rail-luQXsJ36.cjs} +7 -7
  178. package/dist/{navigation-rail-B0zofile.cjs.map → navigation-rail-luQXsJ36.cjs.map} +1 -1
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-BOCdK7B0.js → notification-service-Bzxf4TIc.js} +4 -4
  182. package/dist/{notification-service-BOCdK7B0.js.map → notification-service-Bzxf4TIc.js.map} +1 -1
  183. package/dist/{notification-service-DXsySIdG.cjs → notification-service-uoprkE19.cjs} +2 -2
  184. package/dist/{notification-service-DXsySIdG.cjs.map → notification-service-uoprkE19.cjs.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-Cglpgay3.js → notify-BK0mniGw.js} +2 -2
  188. package/dist/{notify-Cglpgay3.js.map → notify-BK0mniGw.js.map} +1 -1
  189. package/dist/{notify-CvDL-o79.cjs → notify-BhSCT3Xk.cjs} +2 -2
  190. package/dist/{notify-CvDL-o79.cjs.map → notify-BhSCT3Xk.cjs.map} +1 -1
  191. package/dist/{option-tDU1Z_vP.js → option-BZue6YG8.js} +2 -2
  192. package/dist/{option-tDU1Z_vP.js.map → option-BZue6YG8.js.map} +1 -1
  193. package/dist/{option-ezGy71aI.cjs → option-Kk_GQY6j.cjs} +2 -2
  194. package/dist/{option-ezGy71aI.cjs.map → option-Kk_GQY6j.cjs.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-B5b-LA2Y.cjs → payment-card-form-BcKkjxkm.cjs} +2 -2
  198. package/dist/{payment-card-form-B5b-LA2Y.cjs.map → payment-card-form-BcKkjxkm.cjs.map} +1 -1
  199. package/dist/{payment-card-form-CZpc-zfO.js → payment-card-form-C3JgpEIE.js} +3 -3
  200. package/dist/{payment-card-form-CZpc-zfO.js.map → payment-card-form-C3JgpEIE.js.map} +1 -1
  201. package/dist/{progress-OMGbiNv5.cjs → progress-BXnQuNBd.cjs} +2 -2
  202. package/dist/{progress-OMGbiNv5.cjs.map → progress-BXnQuNBd.cjs.map} +1 -1
  203. package/dist/{progress-Bqih11TQ.js → progress-CPGV-HHh.js} +2 -2
  204. package/dist/{progress-Bqih11TQ.js.map → progress-CPGV-HHh.js.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button-BuSpPTO4.cjs → radio-button-DDgwyanN.cjs} +2 -2
  208. package/dist/{radio-button-BuSpPTO4.cjs.map → radio-button-DDgwyanN.cjs.map} +1 -1
  209. package/dist/{radio-button-mHT1573u.js → radio-button-Dsv9rYTJ.js} +3 -3
  210. package/dist/{radio-button-mHT1573u.js.map → radio-button-Dsv9rYTJ.js.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/{schmancy-steps-container-Bht_BlLU.cjs → schmancy-steps-container-C7evWzAc.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-Bht_BlLU.cjs.map → schmancy-steps-container-C7evWzAc.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-DDMiJJyw.js → schmancy-steps-container-Cbzqrhes.js} +2 -2
  216. package/dist/{schmancy-steps-container-DDMiJJyw.js.map → schmancy-steps-container-Cbzqrhes.js.map} +1 -1
  217. package/dist/{select-HPtumqyg.cjs → select-BuZt9KsB.cjs} +2 -2
  218. package/dist/{select-HPtumqyg.cjs.map → select-BuZt9KsB.cjs.map} +1 -1
  219. package/dist/{select-CKtpFPTr.js → select-Ru5E-2M3.js} +3 -3
  220. package/dist/{select-CKtpFPTr.js.map → select-Ru5E-2M3.js.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-B-vTiTi8.js → sheet-Cta5o1Yq.js} +3 -3
  224. package/dist/{sheet-B-vTiTi8.js.map → sheet-Cta5o1Yq.js.map} +1 -1
  225. package/dist/{sheet-DP7nFOEo.cjs → sheet-Dg6bkAGj.cjs} +2 -2
  226. package/dist/{sheet-DP7nFOEo.cjs.map → sheet-Dg6bkAGj.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-Bu7kQ0_w.js → slider-C7pfCYir.js} +3 -3
  230. package/dist/{slider-Bu7kQ0_w.js.map → slider-C7pfCYir.js.map} +1 -1
  231. package/dist/{slider-Diqgkt3E.cjs → slider-CDhICxOr.cjs} +2 -2
  232. package/dist/{slider-Diqgkt3E.cjs.map → slider-CDhICxOr.cjs.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-paAzgY93.js → spinner-6-lTUGhs.js} +2 -2
  236. package/dist/{spinner-paAzgY93.js.map → spinner-6-lTUGhs.js.map} +1 -1
  237. package/dist/{spinner-b6hiAljR.cjs → spinner-nAYWwwNr.cjs} +2 -2
  238. package/dist/{spinner-b6hiAljR.cjs.map → spinner-nAYWwwNr.cjs.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-DnnfUAqx.js → suggestion-chip-5_s9HR2Y.js} +3 -3
  242. package/dist/{suggestion-chip-DnnfUAqx.js.map → suggestion-chip-5_s9HR2Y.js.map} +1 -1
  243. package/dist/{suggestion-chip--FVeCUSI.cjs → suggestion-chip-CsGRZal0.cjs} +2 -2
  244. package/dist/{suggestion-chip--FVeCUSI.cjs.map → suggestion-chip-CsGRZal0.cjs.map} +1 -1
  245. package/dist/{surface-BBhAIoZq.js → surface-D5c_ddsq.js} +2 -2
  246. package/dist/{surface-BBhAIoZq.js.map → surface-D5c_ddsq.js.map} +1 -1
  247. package/dist/{surface-SICYUsoB.cjs → surface-EDSS-N2K.cjs} +2 -2
  248. package/dist/{surface-SICYUsoB.cjs.map → surface-EDSS-N2K.cjs.map} +1 -1
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-CepjNGT6.js → table-5TjWY5RR.js} +2 -2
  252. package/dist/{table-CepjNGT6.js.map → table-5TjWY5RR.js.map} +1 -1
  253. package/dist/{table-yYKET4qQ.cjs → table-B_GbZCU6.cjs} +2 -2
  254. package/dist/{table-yYKET4qQ.cjs.map → table-B_GbZCU6.cjs.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-BWaRkr9s.cjs → tabs-compatibility-byG-7uxY.cjs} +2 -2
  258. package/dist/{tabs-compatibility-BWaRkr9s.cjs.map → tabs-compatibility-byG-7uxY.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BXdyrybs.js → tabs-compatibility-eM8y7Hkw.js} +2 -2
  260. package/dist/{tabs-compatibility-BXdyrybs.js.map → tabs-compatibility-eM8y7Hkw.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-BOTmjQKh.js +64 -0
  264. package/dist/{tailwind.mixin-Cn7vup-6.js.map → tailwind.mixin-BOTmjQKh.js.map} +1 -1
  265. package/dist/tailwind.mixin-SjjyWekZ.cjs +2 -0
  266. package/dist/{tailwind.mixin-CYhJgwwb.cjs.map → tailwind.mixin-SjjyWekZ.cjs.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-BpNEwBP9.js → textarea-Ba0EbwKj.js} +2 -2
  270. package/dist/{textarea-BpNEwBP9.js.map → textarea-Ba0EbwKj.js.map} +1 -1
  271. package/dist/{textarea-Xgbs3rjA.cjs → textarea-C5G_bBP8.cjs} +2 -2
  272. package/dist/{textarea-Xgbs3rjA.cjs.map → textarea-C5G_bBP8.cjs.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-77xbTIaH.js → theme-button--FRHwiCC.js} +2 -2
  276. package/dist/{theme-button-77xbTIaH.js.map → theme-button--FRHwiCC.js.map} +1 -1
  277. package/dist/{theme-button-BsjsULjH.cjs → theme-button-BiQ-jfG4.cjs} +2 -2
  278. package/dist/{theme-button-BsjsULjH.cjs.map → theme-button-BiQ-jfG4.cjs.map} +1 -1
  279. package/dist/theme-button.cjs +1 -1
  280. package/dist/theme-button.js +1 -1
  281. package/dist/theme.cjs +1 -1
  282. package/dist/{theme.controls-BeNS8iSM.cjs → theme.controls-BPnEjft1.cjs} +2 -2
  283. package/dist/{theme.controls-BeNS8iSM.cjs.map → theme.controls-BPnEjft1.cjs.map} +1 -1
  284. package/dist/{theme.controls-DtcpHuz9.js → theme.controls-Bua4rENX.js} +3 -3
  285. package/dist/{theme.controls-DtcpHuz9.js.map → theme.controls-Bua4rENX.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-D3kdUX6c.cjs → timezone-CCvqNgyF.cjs} +2 -2
  288. package/dist/{timezone-D3kdUX6c.cjs.map → timezone-CCvqNgyF.cjs.map} +1 -1
  289. package/dist/{timezone-CtH2a7Hw.js → timezone-D54Cff6x.js} +3 -3
  290. package/dist/{timezone-CtH2a7Hw.js.map → timezone-D54Cff6x.js.map} +1 -1
  291. package/dist/{tooltip-DgGZouB5.js → tooltip-C8m-rfYS.js} +2 -2
  292. package/dist/{tooltip-DgGZouB5.js.map → tooltip-C8m-rfYS.js.map} +1 -1
  293. package/dist/{tooltip-BwZ_zIEI.cjs → tooltip-CCl6ctrG.cjs} +2 -2
  294. package/dist/{tooltip-BwZ_zIEI.cjs.map → tooltip-CCl6ctrG.cjs.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-B9fWtaGW.cjs → tree-COuLggJS.cjs} +2 -2
  298. package/dist/{tree-B9fWtaGW.cjs.map → tree-COuLggJS.cjs.map} +1 -1
  299. package/dist/{tree-BSENnhB2.js → tree-t1IWaICA.js} +2 -2
  300. package/dist/{tree-BSENnhB2.js.map → tree-t1IWaICA.js.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-BCXtlffJ.js → typewriter-B1SrKdhR.js} +4 -4
  304. package/dist/{typewriter-BCXtlffJ.js.map → typewriter-B1SrKdhR.js.map} +1 -1
  305. package/dist/{typewriter-DeNR2E_p.cjs → typewriter-iHUlWvZZ.cjs} +2 -2
  306. package/dist/{typewriter-DeNR2E_p.cjs.map → typewriter-iHUlWvZZ.cjs.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-Cm7pGqRe.cjs → typography-J_EEO2HF.cjs} +2 -2
  310. package/dist/{typography-Cm7pGqRe.cjs.map → typography-J_EEO2HF.cjs.map} +1 -1
  311. package/dist/{typography-sxQLtA6a.js → typography-X_jjdG7E.js} +2 -2
  312. package/dist/{typography-sxQLtA6a.js.map → typography-X_jjdG7E.js.map} +1 -1
  313. package/dist/typography.cjs +1 -1
  314. package/dist/typography.js +1 -1
  315. package/package.json +1 -1
  316. package/types/src/boat/boat.d.ts +3 -3
  317. package/types/src/navigation-bar/navigation-bar.d.ts +2 -1
  318. package/types/src/navigation-rail/navigation-rail.d.ts +2 -3
  319. package/dist/boat-CfIXRMn-.cjs +0 -78
  320. package/dist/boat-CfIXRMn-.cjs.map +0 -1
  321. package/dist/boat-DumUFcmT.js.map +0 -1
  322. package/dist/tailwind.mixin-CYhJgwwb.cjs +0 -2
  323. package/dist/tailwind.mixin-Cn7vup-6.js +0 -64
package/dist/badge.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-BmcocEQ4.cjs");Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>e.ScBadgeV2}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-DqZd_LTf.cjs");Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>e.ScBadgeV2}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
2
2
  //# sourceMappingURL=badge.cjs.map
package/dist/badge.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, S } from "./avatar-BDy0wAek.js";
1
+ import { a as e, S } from "./avatar-b6tMCYC_.js";
2
2
  export {
3
3
  e as ScBadgeV2,
4
4
  S as SchmancyBadgeV2
@@ -1,23 +1,23 @@
1
- import { fromEvent as u, race as A, merge as k } from "rxjs";
2
- import { takeUntil as b, filter as S, tap as w, take as P, map as f, switchMap as I, finalize as D } from "rxjs/operators";
1
+ import { fromEvent as l, race as z, merge as A } from "rxjs";
2
+ import { takeUntil as x, filter as R, tap as b, take as P, map as f, switchMap as Y, finalize as D } from "rxjs/operators";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
- import { property as R, state as m, customElement as F } from "lit/decorators.js";
6
- import "./tailwind.mixin-Cn7vup-6.js";
7
- import { $ as Y } from "./litElement.mixin-Dp4mBSNw.js";
8
- import { css as N, html as $ } from "lit";
9
- import { createRef as v, ref as g } from "lit/directives/ref.js";
10
- var T = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, d = (t, e, n, i) => {
11
- for (var a, s = i > 1 ? void 0 : i ? _(e, n) : e, o = t.length - 1; o >= 0; o--) (a = t[o]) && (s = (i ? a(e, n, s) : a(s)) || s);
12
- return i && s && T(e, n, s), s;
5
+ import { property as y, state as g, customElement as I } from "lit/decorators.js";
6
+ import "./tailwind.mixin-BOTmjQKh.js";
7
+ import { $ as _ } from "./litElement.mixin-D5MC2dPM.js";
8
+ import { css as M, html as u } from "lit";
9
+ import { createRef as $, ref as w } from "lit/directives/ref.js";
10
+ var X = Object.defineProperty, F = Object.getOwnPropertyDescriptor, h = (t, e, n, i) => {
11
+ for (var s, a = i > 1 ? void 0 : i ? F(e, n) : e, o = t.length - 1; o >= 0; o--) (s = t[o]) && (a = (i ? s(e, n, a) : s(a)) || a);
12
+ return i && a && X(e, n, a), a;
13
13
  };
14
- let c = class extends Y(N`
14
+ let c = class extends _(M`
15
15
  :host {
16
16
  display: contents;
17
17
  }
18
18
  `) {
19
19
  constructor() {
20
- super(...arguments), this.id = "default", this.containerRef = v(), this.contentRef = v(), this.iconRef = v(), this.headerRef = v(), this.ANIMATION_CONFIG = { durations: { expand: 350, minimize: 250, hide: 200, content: 300 }, easing: { emphasized: "cubic-bezier(0.2, 0.0, 0, 1.0)", decelerate: "cubic-bezier(0.05, 0.7, 0.1, 1.0)", accelerate: "cubic-bezier(0.3, 0.0, 0.8, 0.15)", standard: "cubic-bezier(0.4, 0.0, 0.2, 1)" }, shadows: { fab: "0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)", fabLowered: "0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)", expanded: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)" } }, this.currentState = "minimized", this.isContentVisible = !1, this.isAnimating = !1, this.isLowered = !1, this.isDragging = !1, this.position = { x: 16, y: 16 }, this.anchor = "bottom-right";
20
+ super(...arguments), this.id = "default", this.containerRef = $(), this.contentRef = $(), this.iconRef = $(), this.headerRef = $(), this.ANIMATION_CONFIG = { durations: { expand: 350, minimize: 250, hide: 200, content: 300 }, easing: { emphasized: "cubic-bezier(0.2, 0.0, 0, 1.0)", decelerate: "cubic-bezier(0.05, 0.7, 0.1, 1.0)", accelerate: "cubic-bezier(0.3, 0.0, 0.8, 0.15)", standard: "cubic-bezier(0.4, 0.0, 0.2, 1)" }, shadows: { fab: "0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)", fabLowered: "0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)", expanded: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)" } }, this.currentState = "minimized", this.isContentVisible = !1, this.isAnimating = !1, this.isLowered = !1, this.isDragging = !1, this.position = { x: 16, y: 16 }, this.anchor = "bottom-right";
21
21
  }
22
22
  get state() {
23
23
  return this.currentState;
@@ -32,9 +32,9 @@ let c = class extends Y(N`
32
32
  this.isLowered = t, this.requestUpdate();
33
33
  }
34
34
  connectedCallback() {
35
- super.connectedCallback(), typeof window < "u" && (u(window, "resize").pipe(b(this.disconnecting)).subscribe(() => {
35
+ super.connectedCallback(), typeof window < "u" && (l(window, "resize").pipe(x(this.disconnecting)).subscribe(() => {
36
36
  this.currentState === "expanded" && this.updateExpandedWidth();
37
- }), u(window, "keydown").pipe(S((t) => t.key === "Escape" && this.currentState !== "hidden"), w((t) => t.preventDefault()), b(this.disconnecting)).subscribe(() => {
37
+ }), l(window, "keydown").pipe(R((t) => t.key === "Escape" && this.currentState !== "hidden"), b((t) => t.preventDefault()), x(this.disconnecting)).subscribe(() => {
38
38
  this.currentState === "expanded" ? this.toggleState() : this.close();
39
39
  }));
40
40
  }
@@ -66,14 +66,14 @@ let c = class extends Y(N`
66
66
  n.container && (this.currentAnimation = n.container, await n.container.finished, e !== "expanded" && (this.isContentVisible = !1));
67
67
  }
68
68
  createAnimations(t, e) {
69
- const n = this.containerRef.value, i = this.contentRef.value, a = this.iconRef.value, s = {};
70
- if (!n) return s;
71
- const o = this.ANIMATION_CONFIG, l = this.getStyleForState(t), p = this.getStyleForState(e);
72
- if (s.container = e === "expanded" ? n.animate([l, p], { duration: o.durations.expand, easing: o.easing.decelerate, fill: "forwards" }) : n.animate([l, p], { duration: e === "hidden" ? o.durations.hide : o.durations.minimize, easing: o.easing.accelerate, fill: "forwards" }), i && t === "expanded" && e === "minimized" ? i.animate([{ opacity: 1, transform: "translateY(0)" }, { opacity: 0, transform: "translateY(-8px)" }], { duration: 150, easing: o.easing.standard, fill: "forwards" }) : i && e === "expanded" && i.animate([{ opacity: 0, transform: "translateY(8px)" }, { opacity: 1, transform: "translateY(0)" }], { duration: o.durations.content, easing: o.easing.standard, fill: "forwards" }), a) {
73
- const h = e === "expanded";
74
- (h || t === "expanded" && e === "minimized") && a.animate([{ transform: h ? "rotate(0deg)" : "rotate(180deg)" }, { transform: h ? "rotate(180deg)" : "rotate(0deg)" }], { duration: 250, easing: o.easing.emphasized, fill: "forwards" });
69
+ const n = this.containerRef.value, i = this.contentRef.value, s = this.iconRef.value, a = {};
70
+ if (!n) return a;
71
+ const o = this.ANIMATION_CONFIG, m = this.getStyleForState(t), d = this.getStyleForState(e);
72
+ if (a.container = e === "expanded" ? n.animate([m, d], { duration: o.durations.expand, easing: o.easing.decelerate, fill: "forwards" }) : n.animate([m, d], { duration: e === "hidden" ? o.durations.hide : o.durations.minimize, easing: o.easing.accelerate, fill: "forwards" }), i && t === "expanded" && e === "minimized" ? i.animate([{ opacity: 1, transform: "translateY(0)" }, { opacity: 0, transform: "translateY(-8px)" }], { duration: 150, easing: o.easing.standard, fill: "forwards" }) : i && e === "expanded" && i.animate([{ opacity: 0, transform: "translateY(8px)" }, { opacity: 1, transform: "translateY(0)" }], { duration: o.durations.content, easing: o.easing.standard, fill: "forwards" }), s) {
73
+ const p = e === "expanded";
74
+ (p || t === "expanded" && e === "minimized") && s.animate([{ transform: p ? "rotate(0deg)" : "rotate(180deg)" }, { transform: p ? "rotate(180deg)" : "rotate(0deg)" }], { duration: 250, easing: o.easing.emphasized, fill: "forwards" });
75
75
  }
76
- return s;
76
+ return a;
77
77
  }
78
78
  getStyleForState(t) {
79
79
  const { shadows: e } = this.ANIMATION_CONFIG, n = { maxWidth: "300px", maxHeight: "auto", borderRadius: "16px" };
@@ -89,7 +89,7 @@ let c = class extends Y(N`
89
89
  t && this.currentState === "expanded" && (t.style.width = this.getResponsiveWidth());
90
90
  }
91
91
  firstUpdated() {
92
- this.initializePosition(), this.applyInitialStyles(), this.updateContainerPosition(), this.setupDragPipeline();
92
+ this.initializePosition(), this.applyInitialStyles(), this.updateContainerPosition(), this.setupDragPipeline(), this.querySelector('[slot="header"]') && !this.icon && this.label;
93
93
  }
94
94
  applyInitialStyles() {
95
95
  const t = this.containerRef.value, e = this.contentRef.value, n = this.iconRef.value;
@@ -107,41 +107,24 @@ let c = class extends Y(N`
107
107
  this.animateToState("hidden");
108
108
  }
109
109
  closeAndAddToNav() {
110
- A(this.discover("schmancy-navigation-rail"), this.discover("schmancy-navigation-bar"), this.discover("schmancy-nav-drawer"), this.discover("app-navigation-rail"), this.discover("app-navigation-bar"), this.discover("app-nav-drawer")).pipe(P(1), w(async (t) => {
110
+ z(this.discover("schmancy-navigation-rail"), this.discover("schmancy-navigation-bar"), this.discover("schmancy-nav-drawer"), this.discover("app-navigation-rail"), this.discover("app-navigation-bar"), this.discover("app-nav-drawer")).pipe(P(1), b((t) => {
111
111
  if (t && typeof t.addBoatItem == "function") {
112
- const e = this.querySelector('[slot="header"]'), n = e?.querySelector("schmancy-icon"), i = n?.textContent?.trim() || "widgets";
113
- let a = e?.textContent?.trim() || "Boat";
114
- a.includes(i) && (a = a.replace(i, "").trim());
115
- const s = t.addBoatItem({ id: `boat-${this.id}`, title: a || this.id, icon: i });
116
- s && (await this.animateToNavItem(s), s.addEventListener("click", () => {
117
- this.animateFromNavItem(s);
118
- }));
112
+ const e = this.icon || (this.querySelector('[slot="header"]')?.querySelector("schmancy-icon")?.textContent?.trim() || "widgets"), n = this.label || (() => {
113
+ let a = this.querySelector('[slot="header"]')?.textContent?.trim() || "Boat";
114
+ return a.includes(e) && (a = a.replace(e, "").trim()), a || this.id;
115
+ })(), i = t.addBoatItem({ id: `boat-${this.id}`, title: n, icon: e });
116
+ if (i) {
117
+ const s = this.containerRef.value;
118
+ s ? s.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: "ease-out", fill: "forwards" }).finished.then(() => {
119
+ this.currentState = "hidden", this.isContentVisible = !1;
120
+ }) : (this.currentState = "hidden", this.isContentVisible = !1), l(i, "click").pipe(b(() => this.state = "expanded"), x(this.disconnecting)).subscribe();
121
+ }
119
122
  } else this.close();
120
123
  })).subscribe();
121
124
  }
122
- async animateToNavItem(t) {
123
- const e = this.containerRef.value;
124
- if (!e) return;
125
- const n = e.getBoundingClientRect(), i = t.getBoundingClientRect();
126
- this.currentAnimation?.cancel();
127
- const a = [{ transform: "scale(1) translate3d(0, 0, 0)", opacity: 1, borderRadius: "8px" }, { transform: `scale(0.3) translate3d(${i.left - n.left}px, ${i.top - n.top}px, 0)`, opacity: 0.5, borderRadius: "50%" }, { transform: `scale(0) translate3d(${i.left - n.left}px, ${i.top - n.top}px, 0)`, opacity: 0, borderRadius: "50%" }];
128
- this.currentAnimation = e.animate(a, { duration: 600, easing: "cubic-bezier(0.4, 0.0, 0.2, 1)", fill: "forwards" }), await this.currentAnimation.finished, this.currentState = "hidden";
129
- }
130
- animateFromNavItem(t) {
131
- const e = this.containerRef.value;
132
- if (!e) return;
133
- const n = t.getBoundingClientRect();
134
- e.style.transformOrigin = `${n.left}px ${n.top}px`, this.currentAnimation?.cancel();
135
- const i = [{ transform: `scale(0) translate3d(${n.left}px, ${n.top}px, 0)`, opacity: 0, borderRadius: "50%" }, { transform: "scale(0.5) translate3d(0, 0, 0)", opacity: 0.5, borderRadius: "24px" }, { transform: "scale(1) translate3d(0, 0, 0)", opacity: 1, borderRadius: "8px" }];
136
- this.currentAnimation = e.animate(i, { duration: 400, easing: "cubic-bezier(0.2, 0.0, 0, 1.0)", fill: "forwards" }), this.currentState = "expanded", this.isContentVisible = !0, this.bringToFront();
137
- }
138
- bringToFront() {
139
- const t = this.containerRef.value;
140
- t && (t.style.zIndex = String(1e4 + Date.now() % 1e3));
141
- }
142
- calculateDragPosition(t, e, n, i, a) {
143
- const s = t - n, o = e - i, l = window.innerWidth, p = window.innerHeight, h = Math.max(0, Math.min(s, l - a.width)), y = Math.max(0, Math.min(o, p - a.height)), r = this.anchor.includes("right") ? l - (h + a.width) : h, x = this.anchor.includes("bottom") ? p - (y + a.height) : y;
144
- return { x: Math.max(0, r), y: Math.max(0, x) };
125
+ calculateDragPosition(t, e, n, i, s) {
126
+ const a = t - n, o = e - i, m = window.innerWidth, d = window.innerHeight, p = Math.max(0, Math.min(a, m - s.width)), v = Math.max(0, Math.min(o, d - s.height)), r = this.anchor.includes("right") ? m - (p + s.width) : p, S = this.anchor.includes("bottom") ? d - (v + s.height) : v;
127
+ return { x: Math.max(0, r), y: Math.max(0, S) };
145
128
  }
146
129
  savePosition() {
147
130
  if (typeof window > "u") return;
@@ -153,22 +136,22 @@ let c = class extends Y(N`
153
136
  const t = this.headerRef.value, e = this.containerRef.value;
154
137
  if (!t || !e) return;
155
138
  let n = !1;
156
- k(u(t, "mousedown").pipe(S((i) => i.button === 0), w((i) => {
139
+ A(l(t, "mousedown").pipe(R((i) => i.button === 0), b((i) => {
157
140
  i.preventDefault(), i.stopPropagation();
158
- }), f((i) => ({ clientX: i.clientX, clientY: i.clientY, type: "mouse" }))), u(t, "touchstart").pipe(f((i) => ({ clientX: i.touches[0].clientX, clientY: i.touches[0].clientY, type: "touch" })))).pipe(f(({ clientX: i, clientY: a, type: s }) => {
141
+ }), f((i) => ({ clientX: i.clientX, clientY: i.clientY, type: "mouse" }))), l(t, "touchstart").pipe(f((i) => ({ clientX: i.touches[0].clientX, clientY: i.touches[0].clientY, type: "touch" })))).pipe(f(({ clientX: i, clientY: s, type: a }) => {
159
142
  const o = e.getBoundingClientRect();
160
- return n = !1, { startX: i, startY: a, offsetX: i - o.left, offsetY: a - o.top, initialRect: o, type: s };
161
- })).pipe(I(({ startX: i, startY: a, offsetX: s, offsetY: o, initialRect: l, type: p }) => {
162
- const h = p === "mouse" ? u(window, "mousemove").pipe(f((r) => ({ clientX: r.clientX, clientY: r.clientY }))) : u(window, "touchmove").pipe(f((r) => ({ clientX: r.touches[0].clientX, clientY: r.touches[0].clientY }))), y = u(window, p === "mouse" ? "mouseup" : "touchend");
163
- return h.pipe(f(({ clientX: r, clientY: x }) => {
164
- const z = r - i, C = x - a;
165
- return Math.sqrt(z * z + C * C) > 5 && !n && (n = !0, this.isDragging = !0), n ? this.calculateDragPosition(r, x, s, o, l) : null;
166
- }), S((r) => r !== null), w((r) => {
143
+ return n = !1, { startX: i, startY: s, offsetX: i - o.left, offsetY: s - o.top, initialRect: o, type: a };
144
+ })).pipe(Y(({ startX: i, startY: s, offsetX: a, offsetY: o, initialRect: m, type: d }) => {
145
+ const p = d === "mouse" ? l(window, "mousemove").pipe(f((r) => ({ clientX: r.clientX, clientY: r.clientY }))) : l(window, "touchmove").pipe(f((r) => ({ clientX: r.touches[0].clientX, clientY: r.touches[0].clientY }))), v = l(window, d === "mouse" ? "mouseup" : "touchend");
146
+ return p.pipe(f(({ clientX: r, clientY: S }) => {
147
+ const C = r - i, k = S - s;
148
+ return Math.sqrt(C * C + k * k) > 5 && !n && (n = !0, this.isDragging = !0), n ? this.calculateDragPosition(r, S, a, o, m) : null;
149
+ }), R((r) => r !== null), b((r) => {
167
150
  r && (this.position = r, this.updateContainerPosition());
168
- }), b(y));
151
+ }), x(v));
169
152
  }), D(() => {
170
153
  n ? (this.updateAnchor(), this.savePosition()) : this.toggleState(), this.isDragging = !1, n = !1;
171
- }), b(this.disconnecting)).subscribe();
154
+ }), x(this.disconnecting)).subscribe();
172
155
  }
173
156
  updateContainerPosition() {
174
157
  const t = this.containerRef.value;
@@ -178,18 +161,22 @@ let c = class extends Y(N`
178
161
  if (typeof window > "u") return;
179
162
  const t = this.containerRef.value;
180
163
  if (!t) return;
181
- const e = t.getBoundingClientRect(), n = window.innerWidth, i = window.innerHeight, a = e.left > n / 2, s = e.top > i / 2, o = `${s ? "bottom" : "top"}-${a ? "right" : "left"}`;
182
- o !== this.anchor && (this.position.x = a ? n - e.right : e.left, this.position.y = s ? i - e.bottom : e.top, this.anchor = o);
164
+ const e = t.getBoundingClientRect(), n = window.innerWidth, i = window.innerHeight, s = e.left > n / 2, a = e.top > i / 2, o = `${a ? "bottom" : "top"}-${s ? "right" : "left"}`;
165
+ o !== this.anchor && (this.position.x = s ? n - e.right : e.left, this.position.y = a ? i - e.bottom : e.top, this.anchor = o);
183
166
  }
184
167
  disconnectedCallback() {
185
168
  super.disconnectedCallback(), this.currentAnimation?.cancel();
186
169
  }
187
170
  render() {
188
- const t = this.currentState === "minimized" ? this.isLowered ? "1" : "3" : "4", e = this.currentState === "minimized", n = { fixed: !0, "overflow-y-auto": !0, flex: !0, "flex-col": !0, "z-[10000]": !0, "select-none": !0, "will-change-transform": !0, "[contain:layout_style]": !0, "[transform:translate3d(0,0,0)]": !0, "[backface-visibility:hidden]": !0, "transition-shadow": !0, "opacity-95": this.isDragging, "shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]": this.isDragging };
189
- return $`
190
- <div class=${this.classMap(n)} ${g(this.containerRef)} @click=${this.bringToFront}>
171
+ const t = this.currentState === "minimized" ? this.isLowered ? "1" : "3" : "4", e = this.currentState === "minimized", n = this.anchor.includes("bottom") ? this.anchor.includes("right") ? "bottom right" : "bottom left" : this.anchor.includes("right") ? "top right" : "top left", i = { "z-50": !0, fixed: !0, "overflow-y-auto": !0, flex: !0, "flex-col": !0, "select-none": !0, "will-change-transform": !0, "[contain:layout_style]": !0, "[transform:translate3d(0,0,0)]": !0, "[backface-visibility:hidden]": !0, "transition-shadow": !0, "opacity-95": this.isDragging, "shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]": this.isDragging };
172
+ return u`
173
+ <div
174
+ class=${this.classMap(i)}
175
+ style="transform-origin: ${n}"
176
+ ${w(this.containerRef)}
177
+ >
191
178
  <!-- Header section -->
192
- <section class="sticky top-0 z-10">
179
+ <section class="sticky top-0">
193
180
  <schmancy-surface
194
181
  elevation="${t}"
195
182
  rounded="${e ? "none" : "top"}"
@@ -197,10 +184,10 @@ let c = class extends Y(N`
197
184
  >
198
185
  <div
199
186
  class="group sticky top-0 px-3 py-2 flex items-center justify-between gap-3 ${this.isDragging ? "cursor-grabbing" : "cursor-move"}"
200
- ${g(this.headerRef)}
187
+ ${w(this.headerRef)}
201
188
  title="Drag to move, double-click to toggle"
202
- @dblclick=${(i) => {
203
- i.preventDefault(), i.stopPropagation(), this.toggleState();
189
+ @dblclick=${(s) => {
190
+ s.preventDefault(), s.stopPropagation(), this.toggleState();
204
191
  }}
205
192
  >
206
193
  <!-- Drag handle indicator -->
@@ -210,42 +197,48 @@ let c = class extends Y(N`
210
197
  <schmancy-icon style="font-size: 20px">drag_indicator</schmancy-icon>
211
198
  </div>
212
199
 
213
- <!-- Header content slot -->
200
+ <!-- Header content - use properties if provided, else fallback to slot -->
214
201
  <div class="flex-1 min-w-fit items-center flex justify-start">
215
- <slot name="header"></slot>
202
+ ${this.icon || this.label ? u`
203
+ <div class="flex gap-2 items-center">
204
+ ${this.icon ? u`<schmancy-icon>${this.icon}</schmancy-icon>` : ""}
205
+ ${this.label ? u`<schmancy-typography type="title" token="md">${this.label}</schmancy-typography>` : ""}
206
+ ${this.badge !== void 0 && this.badge !== null && this.badge !== "" ? u`<schmancy-badge>${this.badge}</schmancy-badge>` : ""}
207
+ </div>
208
+ ` : u`<slot name="header"></slot>`}
216
209
  </div>
217
210
 
218
211
  <!-- Control buttons -->
219
212
  <div class="flex items-center gap-1 flex-shrink-0">
220
- ${e ? $`
213
+ ${e ? u`
221
214
  <!-- Expand button (when minimized) -->
222
215
  <schmancy-icon-button
223
216
  variant="text"
224
- @click=${(i) => {
225
- i.stopPropagation(), this.state = "expanded";
217
+ @click=${(s) => {
218
+ s.stopPropagation(), this.state = "expanded";
226
219
  }}
227
220
  title="Expand"
228
221
  >
229
- <schmancy-icon ${g(this.iconRef)}>expand_less</schmancy-icon>
222
+ <schmancy-icon ${w(this.iconRef)}>expand_less</schmancy-icon>
230
223
  </schmancy-icon-button>
231
- ` : $`
224
+ ` : u`
232
225
  <!-- Minimize button (when expanded) -->
233
226
  <schmancy-icon-button
234
227
  variant="filled tonal"
235
- @click=${(i) => {
236
- i.stopPropagation(), this.state = "minimized";
228
+ @click=${(s) => {
229
+ s.stopPropagation(), this.state = "minimized";
237
230
  }}
238
231
  title="Minimize"
239
232
  >
240
- <schmancy-icon ${g(this.iconRef)}>expand_more</schmancy-icon>
233
+ <schmancy-icon ${w(this.iconRef)}>expand_more</schmancy-icon>
241
234
  </schmancy-icon-button>
242
235
  `}
243
236
 
244
237
  <!-- Close button -->
245
238
  <schmancy-icon-button
246
239
  variant="text"
247
- @click=${(i) => {
248
- i.stopPropagation(), this.closeAndAddToNav();
240
+ @click=${(s) => {
241
+ s.stopPropagation(), this.closeAndAddToNav();
249
242
  }}
250
243
  title="Close and add to navigation"
251
244
  >
@@ -257,20 +250,15 @@ let c = class extends Y(N`
257
250
  </section>
258
251
 
259
252
  <!-- Content section -->
260
- <schmancy-surface
261
- .hidden=${!this.isContentVisible}
262
- type="containerLow"
263
- class="z-0 flex-1"
264
- ${g(this.contentRef)}
265
- >
253
+ <schmancy-surface .hidden=${!this.isContentVisible} type="containerLow" class="flex-1" ${w(this.contentRef)}>
266
254
  <slot></slot>
267
255
  </schmancy-surface>
268
256
  </div>
269
257
  `;
270
258
  }
271
259
  };
272
- d([R({ type: String, reflect: !0 })], c.prototype, "state", 1), d([R({ type: String })], c.prototype, "id", 2), d([R({ type: Boolean, reflect: !0 })], c.prototype, "lowered", 1), d([m()], c.prototype, "currentState", 2), d([m()], c.prototype, "isContentVisible", 2), d([m()], c.prototype, "isAnimating", 2), d([m()], c.prototype, "isLowered", 2), d([m()], c.prototype, "isDragging", 2), d([m()], c.prototype, "position", 2), d([m()], c.prototype, "anchor", 2), c = d([F("schmancy-boat")], c);
260
+ h([y({ type: String, reflect: !0 })], c.prototype, "state", 1), h([y({ type: String })], c.prototype, "id", 2), h([y({ type: Boolean, reflect: !0 })], c.prototype, "lowered", 1), h([y({ type: String })], c.prototype, "icon", 2), h([y({ type: String })], c.prototype, "label", 2), h([y()], c.prototype, "badge", 2), h([g()], c.prototype, "currentState", 2), h([g()], c.prototype, "isContentVisible", 2), h([g()], c.prototype, "isAnimating", 2), h([g()], c.prototype, "isLowered", 2), h([g()], c.prototype, "isDragging", 2), h([g()], c.prototype, "position", 2), h([g()], c.prototype, "anchor", 2), c = h([I("schmancy-boat")], c);
273
261
  export {
274
262
  c as S
275
263
  };
276
- //# sourceMappingURL=boat-DumUFcmT.js.map
264
+ //# sourceMappingURL=boat-CQlfnrN3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boat-CQlfnrN3.js","sources":["../src/boat/boat.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { html, css } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, race } from 'rxjs'\nimport { filter, switchMap, takeUntil, tap, finalize, map, take } from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\ninterface Position {\n\tx: number\n\ty: number\n}\n\ninterface SavedPosition {\n\tx: number\n\ty: number\n\tanchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends $LitElement(css`\n\t:host {\n\t\tdisplay: contents;\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tget state(): BoatState {\n\t\treturn this.currentState\n\t}\n\tset state(value: BoatState) {\n\t\tif (this.isAnimating || value === this.currentState) return\n\t\tthis.animateToState(value)\n\t}\n\n\t@property({ type: String }) id: string = 'default'\n\n\t@property({ type: Boolean, reflect: true })\n\tget lowered(): boolean {\n\t\treturn this.isLowered\n\t}\n\tset lowered(value: boolean) {\n\t\tthis.isLowered = value\n\t\tthis.requestUpdate()\n\t}\n\n\t// New properties for simplified API\n\t@property({ type: String }) icon?: string\n\t@property({ type: String }) label?: string\n\t@property() badge?: string | number\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: Ref<HTMLElement> = createRef()\n\tprivate headerRef: Ref<HTMLElement> = createRef()\n\n\t// Current animation reference\n\tprivate currentAnimation?: Animation\n\n\t// Animation configuration\n\tprivate readonly ANIMATION_CONFIG = {\n\t\tdurations: {\n\t\t\texpand: 350,\n\t\t\tminimize: 250,\n\t\t\thide: 200,\n\t\t\tcontent: 300,\n\t\t},\n\t\teasing: {\n\t\t\temphasized: 'cubic-bezier(0.2, 0.0, 0, 1.0)',\n\t\t\tdecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1.0)',\n\t\t\taccelerate: 'cubic-bezier(0.3, 0.0, 0.8, 0.15)',\n\t\t\tstandard: 'cubic-bezier(0.4, 0.0, 0.2, 1)',\n\t\t},\n\t\tshadows: {\n\t\t\tfab: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)',\n\t\t\tfabLowered:\n\t\t\t\t'0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)',\n\t\t\texpanded: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n\t\t},\n\t}\n\n\t// Reactive state for template\n\t@state() private currentState: BoatState = 'minimized'\n\t@state() private isContentVisible: boolean = false\n\t@state() private isAnimating: boolean = false\n\t@state() private isLowered: boolean = false\n\t@state() private isDragging: boolean = false\n\t@state() private position: Position = { x: 16, y: 16 }\n\t@state() private anchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' = 'bottom-right'\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\tif (typeof window !== 'undefined') {\n\t\t\tfromEvent(window, 'resize')\n\t\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t// Keyboard shortcut - Escape key\n\t\t\tfromEvent<KeyboardEvent>(window, 'keydown')\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(e => e.key === 'Escape' && this.currentState !== 'hidden'),\n\t\t\t\t\ttap(e => e.preventDefault()),\n\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (this.currentState === 'expanded') {\n\t\t\t\t\t\tthis.toggleState() // Minimize on Esc if expanded\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.close() // Hide on Esc if minimized\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\tprivate initializePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst saved = localStorage.getItem(`schmancy-boat-${this.id}`)\n\n\t\tif (saved) {\n\t\t\ttry {\n\t\t\t\tconst parsed: SavedPosition = JSON.parse(saved)\n\t\t\t\tthis.position = { x: parsed.x, y: parsed.y }\n\t\t\t\tthis.anchor = parsed.anchor\n\t\t\t\tconsole.log('📍 Loaded position:', this.id, parsed)\n\t\t\t} catch (e) {\n\t\t\t\t// Use default position on parse error\n\t\t\t}\n\t\t}\n\t\t// If no saved position, use default from @state initialization\n\t}\n\n\tprivate async animateToState(targetState: BoatState) {\n\t\tif (this.isAnimating || targetState === this.currentState) return\n\n\t\tconst previousState = this.currentState\n\t\tthis.isAnimating = true\n\n\t\ttry {\n\t\t\tawait this.performTransition(previousState, targetState)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\n\t\t\t// Dispatch event\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('toggle', {\n\t\t\t\t\tdetail: targetState,\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} catch (err) {\n\t\t\tconsole.warn('Animation error:', err)\n\t\t\tthis.currentState = targetState\n\t\t\tthis.isContentVisible = targetState === 'expanded'\n\t\t} finally {\n\t\t\tthis.isAnimating = false\n\t\t}\n\t}\n\n\t// Simplified animation transition\n\tprivate async performTransition(fromState: BoatState, toState: BoatState): Promise<void> {\n\t\tthis.currentAnimation?.cancel()\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Update content visibility before expand\n\t\tif (toState === 'expanded') {\n\t\t\tthis.isContentVisible = true\n\t\t}\n\n\t\t// Create animations\n\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t// Wait for main animation to complete\n\t\tif (animations.container) {\n\t\t\tthis.currentAnimation = animations.container\n\t\t\tawait animations.container.finished\n\n\t\t\t// Hide content after minimize\n\t\t\tif (toState !== 'expanded') {\n\t\t\t\tthis.isContentVisible = false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create animations for state transition\n\tprivate createAnimations(fromState: BoatState, toState: BoatState) {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\t\tconst animations: { container?: Animation; content?: Animation; icon?: Animation } = {}\n\n\t\tif (!container) return animations\n\n\t\tconst config = this.ANIMATION_CONFIG\n\t\tconst fromStyles = this.getStyleForState(fromState)\n\t\tconst toStyles = this.getStyleForState(toState)\n\n\t\t// Container animation\n\t\tif (toState === 'expanded') {\n\t\t\t// Expand animation without transform\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\n\t\t\t\tduration: config.durations.expand,\n\t\t\t\teasing: config.easing.decelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t} else {\n\t\t\tanimations.container = container.animate([fromStyles, toStyles], {\n\t\t\t\tduration: toState === 'hidden' ? config.durations.hide : config.durations.minimize,\n\t\t\t\teasing: config.easing.accelerate,\n\t\t\t\tfill: 'forwards',\n\t\t\t})\n\t\t}\n\n\t\t// Content animation (only for expand/minimize transitions)\n\t\tif (content && fromState === 'expanded' && toState === 'minimized') {\n\t\t\t// Fade out content before minimizing\n\t\t\tcontent.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: 150,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t} else if (content && toState === 'expanded') {\n\t\t\t// Fade in content when expanding\n\t\t\tcontent.animate(\n\t\t\t\t[\n\t\t\t\t\t{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\tduration: config.durations.content,\n\t\t\t\t\teasing: config.easing.standard,\n\t\t\t\t\tfill: 'forwards',\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t\t// Icon rotation animation\n\t\tif (icon) {\n\t\t\tconst isExpanding = toState === 'expanded'\n\t\t\tconst isCollapsing = fromState === 'expanded' && toState === 'minimized'\n\n\t\t\tif (isExpanding || isCollapsing) {\n\t\t\t\ticon.animate(\n\t\t\t\t\t[\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\tduration: 250,\n\t\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn animations\n\t}\n\n\t// Get styles for a specific state\n\tprivate getStyleForState(state: BoatState): Keyframe {\n\t\tconst { shadows } = this.ANIMATION_CONFIG\n\t\tconst baseStyles = {\n\t\t\tmaxWidth: '300px',\n\t\t\tmaxHeight: 'auto',\n\t\t\tborderRadius: '16px',\n\t\t}\n\n\t\tconst stateStyles: Record<BoatState, Keyframe> = {\n\t\t\thidden: {\n\t\t\t\t...baseStyles,\n\t\t\t\topacity: '0',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tboxShadow: 'none',\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\tminimized: {\n\t\t\t\t...baseStyles,\n\t\t\t\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\n\t\t\t\tboxShadow: this.isLowered ? shadows.fabLowered : shadows.fab,\n\t\t\t\tbackdropFilter: 'none',\n\t\t\t},\n\t\t\texpanded: {\n\t\t\t\topacity: '1',\n\t\t\t\tpointerEvents: 'auto',\n\t\t\t\twidth: this.getResponsiveWidth(),\n\t\t\t\tmaxWidth: '100%',\n\t\t\t\tmaxHeight: '80vh',\n\t\t\t\tboxShadow: shadows.expanded,\n\t\t\t\tborderRadius: '8px 8px 0 0',\n\t\t\t\tbackdropFilter: 'blur(12px)',\n\t\t\t},\n\t\t}\n\n\t\treturn stateStyles[state] as Keyframe\n\t}\n\n\t// Calculate responsive width based on viewport\n\tprivate getResponsiveWidth(): string {\n\t\tif (typeof window === 'undefined') return '40vw'\n\n\t\tconst vw = window.innerWidth\n\t\tif (vw < 768) return 'calc(100vw - 32px)'\n\t\tif (vw < 1024) return '70vw'\n\t\tif (vw < 1280) return '60vw'\n\t\treturn '40vw'\n\t}\n\n\t// Update expanded width on window resize\n\tprivate updateExpandedWidth() {\n\t\tconst container = this.containerRef.value\n\t\tif (container && this.currentState === 'expanded') {\n\t\t\tcontainer.style.width = this.getResponsiveWidth()\n\t\t}\n\t}\n\n\tfirstUpdated() {\n\t\tthis.initializePosition()\n\t\tthis.applyInitialStyles()\n\t\tthis.updateContainerPosition()\n\t\tthis.setupDragPipeline()\n\n\t\t// Check for deprecated header slot usage\n\t\tconst hasHeaderSlot = this.querySelector('[slot=\"header\"]')\n\t\tif (hasHeaderSlot && !this.icon && !this.label) {\n\t\t\tconsole.warn(\n\t\t\t\t'[schmancy-boat] Using slot=\"header\" is deprecated. ' +\n\t\t\t\t\t'Please use the icon, label, and badge properties instead. ' +\n\t\t\t\t\t'Example: <schmancy-boat icon=\"info\" label=\"Title\" badge=\"5\">',\n\t\t\t)\n\t\t}\n\t}\n\n\t// Apply initial styles to elements\n\tprivate applyInitialStyles() {\n\t\tconst container = this.containerRef.value\n\t\tconst content = this.contentRef.value\n\t\tconst icon = this.iconRef.value\n\n\t\tif (container) {\n\t\t\tconst initialStyle = this.getStyleForState(this.currentState)\n\t\t\tObject.assign(container.style, initialStyle)\n\n\t\t\t// Safari compatibility for backdrop filter\n\t\t\tif ('webkitBackdropFilter' in container.style) {\n\t\t\t\t;(container.style as any).webkitBackdropFilter = initialStyle.backdropFilter\n\t\t\t}\n\t\t}\n\n\t\t// Set initial content opacity\n\t\tif (content) {\n\t\t\tcontent.style.opacity = this.isContentVisible ? '1' : '0'\n\t\t}\n\n\t\t// Set initial icon rotation\n\t\tif (icon && this.currentState === 'expanded') {\n\t\t\ticon.style.transform = 'rotate(180deg)'\n\t\t}\n\t}\n\n\n\t// Public method to toggle between minimized and expanded\n\ttoggleState() {\n\t\tconst newState = this.currentState === 'minimized' ? 'expanded' : 'minimized'\n\t\tthis.animateToState(newState)\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.animateToState('hidden')\n\t}\n\n\tprivate closeAndAddToNav() {\n\t\trace(\n\t\t\tthis.discover<any>('schmancy-navigation-rail'),\n\t\t\tthis.discover<any>('schmancy-navigation-bar'),\n\t\t\tthis.discover<any>('schmancy-nav-drawer'),\n\t\t\tthis.discover<any>('app-navigation-rail'),\n\t\t\tthis.discover<any>('app-navigation-bar'),\n\t\t\tthis.discover<any>('app-nav-drawer'),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\ttake(1),\n\t\t\t\ttap(navComponent => {\n\t\t\t\t\tif (navComponent && typeof navComponent.addBoatItem === 'function') {\n\t\t\t\t\t\t// Use properties first, fall back to slot parsing\n\t\t\t\t\t\tconst icon =\n\t\t\t\t\t\t\tthis.icon ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tconst iconElement = headerSlot?.querySelector('schmancy-icon')\n\t\t\t\t\t\t\t\treturn iconElement?.textContent?.trim() || 'widgets'\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\tconst label =\n\t\t\t\t\t\t\tthis.label ||\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tconst headerSlot = this.querySelector('[slot=\"header\"]')\n\t\t\t\t\t\t\t\tlet title = headerSlot?.textContent?.trim() || 'Boat'\n\t\t\t\t\t\t\t\tif (icon && title.includes(icon)) {\n\t\t\t\t\t\t\t\t\ttitle = title.replace(icon, '').trim()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn title || this.id\n\t\t\t\t\t\t\t})()\n\n\t\t\t\t\t\t// Add the boat to navigation\n\t\t\t\t\t\tconst navItem = navComponent.addBoatItem({\n\t\t\t\t\t\t\tid: `boat-${this.id}`,\n\t\t\t\t\t\t\ttitle: label,\n\t\t\t\t\t\t\ticon: icon,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tif (navItem) {\n\t\t\t\t\t\t\t// Simple fade out then hide\n\t\t\t\t\t\t\tconst container = this.containerRef.value\n\t\t\t\t\t\t\tif (container) {\n\t\t\t\t\t\t\t\tcontainer\n\t\t\t\t\t\t\t\t\t.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: 'ease-out', fill: 'forwards' })\n\t\t\t\t\t\t\t\t\t.finished.then(() => {\n\t\t\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.currentState = 'hidden'\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Set up click listener to reopen - using RxJS pattern\n\t\t\t\t\t\t\tfromEvent(navItem, 'click')\n\t\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\t\ttap(() => this.state = 'expanded'),\n\t\t\t\t\t\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.subscribe()\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No nav component found, just hide\n\t\t\t\t\t\tthis.close()\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\n\tprivate calculateDragPosition(\n\t\tclientX: number,\n\t\tclientY: number,\n\t\toffsetX: number,\n\t\toffsetY: number,\n\t\tinitialRect: DOMRect,\n\t): Position {\n\t\tconst targetLeft = clientX - offsetX\n\t\tconst targetTop = clientY - offsetY\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\t\tconst clampedLeft = Math.max(0, Math.min(targetLeft, vw - initialRect.width))\n\t\tconst clampedTop = Math.max(0, Math.min(targetTop, vh - initialRect.height))\n\n\t\tconst newX = this.anchor.includes('right') ? vw - (clampedLeft + initialRect.width) : clampedLeft\n\n\t\tconst newY = this.anchor.includes('bottom') ? vh - (clampedTop + initialRect.height) : clampedTop\n\n\t\treturn { x: Math.max(0, newX), y: Math.max(0, newY) }\n\t}\n\n\tprivate savePosition() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst toSave: SavedPosition = {\n\t\t\tx: this.position.x,\n\t\t\ty: this.position.y,\n\t\t\tanchor: this.anchor,\n\t\t}\n\t\tconst key = `schmancy-boat-${this.id}`\n\t\tlocalStorage.setItem(key, JSON.stringify(toSave))\n\t\tconsole.log('💾 Saved position:', key, toSave)\n\t}\n\n\tprivate setupDragPipeline() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst header = this.headerRef.value\n\t\tconst container = this.containerRef.value\n\t\tif (!header || !container) return\n\n\t\tlet hasDragged = false\n\t\tconst DRAG_THRESHOLD = 5\n\n\t\t// Merge mouse and touch start events\n\t\tmerge(\n\t\t\tfromEvent<MouseEvent>(header, 'mousedown').pipe(\n\t\t\t\tfilter(e => e.button === 0),\n\t\t\t\ttap(e => {\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t}),\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.clientX,\n\t\t\t\t\tclientY: e.clientY,\n\t\t\t\t\ttype: 'mouse' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t\tfromEvent<TouchEvent>(header, 'touchstart').pipe(\n\t\t\t\tmap(e => ({\n\t\t\t\t\tclientX: e.touches[0].clientX,\n\t\t\t\t\tclientY: e.touches[0].clientY,\n\t\t\t\t\ttype: 'touch' as const,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap(({ clientX, clientY, type }) => {\n\t\t\t\t\tconst rect = container.getBoundingClientRect()\n\t\t\t\t\thasDragged = false\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstartX: clientX,\n\t\t\t\t\t\tstartY: clientY,\n\t\t\t\t\t\toffsetX: clientX - rect.left,\n\t\t\t\t\t\toffsetY: clientY - rect.top,\n\t\t\t\t\t\tinitialRect: rect,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(({ startX, startY, offsetX, offsetY, initialRect, type }) => {\n\t\t\t\t\tconst move$ =\n\t\t\t\t\t\ttype === 'mouse'\n\t\t\t\t\t\t\t? fromEvent<MouseEvent>(window, 'mousemove').pipe(map(e => ({ clientX: e.clientX, clientY: e.clientY })))\n\t\t\t\t\t\t\t: fromEvent<TouchEvent>(window, 'touchmove').pipe(\n\t\t\t\t\t\t\t\t\tmap(e => ({ clientX: e.touches[0].clientX, clientY: e.touches[0].clientY })),\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\tconst end$ = type === 'mouse' ? fromEvent(window, 'mouseup') : fromEvent(window, 'touchend')\n\n\t\t\t\t\treturn move$.pipe(\n\t\t\t\t\t\tmap(({ clientX, clientY }) => {\n\t\t\t\t\t\t\tconst deltaX = clientX - startX\n\t\t\t\t\t\t\tconst deltaY = clientY - startY\n\t\t\t\t\t\t\tconst distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY)\n\n\t\t\t\t\t\t\tif (distance > DRAG_THRESHOLD && !hasDragged) {\n\t\t\t\t\t\t\t\thasDragged = true\n\t\t\t\t\t\t\t\tthis.isDragging = true\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!hasDragged) return null\n\n\t\t\t\t\t\t\treturn this.calculateDragPosition(clientX, clientY, offsetX, offsetY, initialRect)\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tfilter(position => position !== null),\n\t\t\t\t\t\ttap(position => {\n\t\t\t\t\t\t\tif (position) {\n\t\t\t\t\t\t\t\tthis.position = position\n\t\t\t\t\t\t\t\tthis.updateContainerPosition()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttakeUntil(end$),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\tfinalize(() => {\n\t\t\t\t\tif (hasDragged) {\n\t\t\t\t\t\tthis.updateAnchor()\n\t\t\t\t\t\tthis.savePosition()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t}\n\t\t\t\t\tthis.isDragging = false\n\t\t\t\t\thasDragged = false\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\t// Update container position based on anchor and position values\n\tprivate updateContainerPosition() {\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\t// Reset all position styles\n\t\tcontainer.style.removeProperty('left')\n\t\tcontainer.style.removeProperty('right')\n\t\tcontainer.style.removeProperty('top')\n\t\tcontainer.style.removeProperty('bottom')\n\n\t\t// Apply new position based on anchor\n\t\tif (this.anchor.includes('right')) {\n\t\t\tcontainer.style.right = `${this.position.x}px`\n\t\t} else {\n\t\t\tcontainer.style.left = `${this.position.x}px`\n\t\t}\n\n\t\tif (this.anchor.includes('bottom')) {\n\t\t\tcontainer.style.bottom = `${this.position.y}px`\n\t\t} else {\n\t\t\tcontainer.style.top = `${this.position.y}px`\n\t\t}\n\t}\n\n\t// Update anchor based on current position\n\tprivate updateAnchor() {\n\t\tif (typeof window === 'undefined') return\n\n\t\tconst container = this.containerRef.value\n\t\tif (!container) return\n\n\t\tconst rect = container.getBoundingClientRect()\n\t\tconst vw = window.innerWidth\n\t\tconst vh = window.innerHeight\n\n\t\tconst isRight = rect.left > vw / 2\n\t\tconst isBottom = rect.top > vh / 2\n\n\t\tconst newAnchor = `${isBottom ? 'bottom' : 'top'}-${isRight ? 'right' : 'left'}` as typeof this.anchor\n\n\t\tif (newAnchor !== this.anchor) {\n\t\t\t// Calculate new position values for the new anchor\n\t\t\tif (isRight) {\n\t\t\t\tthis.position.x = vw - rect.right\n\t\t\t} else {\n\t\t\t\tthis.position.x = rect.left\n\t\t\t}\n\n\t\t\tif (isBottom) {\n\t\t\t\tthis.position.y = vh - rect.bottom\n\t\t\t} else {\n\t\t\t\tthis.position.y = rect.top\n\t\t\t}\n\n\t\t\tthis.anchor = newAnchor\n\t\t}\n\t}\n\n\t// Cleanup on component disconnect\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.currentAnimation?.cancel()\n\t}\n\n\tprotected render(): unknown {\n\t\tconst surfaceElevation = this.currentState === 'minimized' ? (this.isLowered ? '1' : '3') : '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\n\t\t// Set transform origin based on anchor for proper expansion\n\t\tconst transformOrigin = this.anchor.includes('bottom')\n\t\t\t? (this.anchor.includes('right') ? 'bottom right' : 'bottom left')\n\t\t\t: (this.anchor.includes('right') ? 'top right' : 'top left')\n\n\t\tconst containerClasses = {\n\t\t\t'z-50':true,\n\t\t\tfixed: true,\n\t\t\t'overflow-y-auto': true,\n\t\t\tflex: true,\n\t\t\t'flex-col': true,\n\t\t\t'select-none': true,\n\t\t\t'will-change-transform': true,\n\t\t\t'[contain:layout_style]': true,\n\t\t\t'[transform:translate3d(0,0,0)]': true,\n\t\t\t'[backface-visibility:hidden]': true,\n\t\t\t'transition-shadow': true,\n\t\t\t'opacity-95': this.isDragging,\n\t\t\t'shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]': this.isDragging,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${this.classMap(containerClasses)}\n\t\t\t\tstyle=\"transform-origin: ${transformOrigin}\"\n\t\t\t\t${ref(this.containerRef)}\n\t\t\t>\n\t\t\t\t<!-- Header section -->\n\t\t\t\t<section class=\"sticky top-0\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"group sticky top-0 px-3 py-2 flex items-center justify-between gap-3 ${this.isDragging\n\t\t\t\t\t\t\t\t? 'cursor-grabbing'\n\t\t\t\t\t\t\t\t: 'cursor-move'}\"\n\t\t\t\t\t\t\t${ref(this.headerRef)}\n\t\t\t\t\t\t\ttitle=\"Drag to move, double-click to toggle\"\n\t\t\t\t\t\t\t@dblclick=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.toggleState()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<!-- Drag handle indicator -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"flex items-center text-surface-onVariant opacity-40 transition-opacity duration-200 group-hover:opacity-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-icon style=\"font-size: 20px\">drag_indicator</schmancy-icon>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Header content - use properties if provided, else fallback to slot -->\n\t\t\t\t\t\t\t<div class=\"flex-1 min-w-fit items-center flex justify-start\">\n\t\t\t\t\t\t\t\t${this.icon || this.label\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"flex gap-2 items-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t${this.icon ? html`<schmancy-icon>${this.icon}</schmancy-icon>` : ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.label\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-typography type=\"title\" token=\"md\">${this.label}</schmancy-typography>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t\t${this.badge !== undefined && this.badge !== null && this.badge !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t? html`<schmancy-badge>${this.badge}</schmancy-badge>`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`<slot name=\"header\"></slot>`}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Control buttons -->\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-1 flex-shrink-0\">\n\t\t\t\t\t\t\t\t${isMinimized\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Expand button (when minimized) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'expanded'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Expand\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon ${ref(this.iconRef)}>expand_less</schmancy-icon>\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`\n\t\t\t\t\t\t\t\t\t\t\t<!-- Minimize button (when expanded) -->\n\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"filled tonal\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.state = 'minimized'\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Minimize\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-icon ${ref(this.iconRef)}>expand_more</schmancy-icon>\n\t\t\t\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t\t\t\t`}\n\n\t\t\t\t\t\t\t\t<!-- Close button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\t\tthis.closeAndAddToNav()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close and add to navigation\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<schmancy-icon>close</schmancy-icon>\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</section>\n\n\t\t\t\t<!-- Content section -->\n\t\t\t\t<schmancy-surface .hidden=${!this.isContentVisible} type=\"containerLow\" class=\"flex-1\" ${ref(this.contentRef)}>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</schmancy-surface>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-boat': SchmancyBoat\n\t}\n}\n"],"names":["SchmancyBoat","$LitElement","css","super","arguments","this","id","containerRef","createRef","contentRef","iconRef","headerRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","isDragging","position","x","y","anchor","state","value","animateToState","lowered","requestUpdate","connectedCallback","window","fromEvent","pipe","takeUntil","disconnecting","subscribe","updateExpandedWidth","filter","e","key","tap","preventDefault","toggleState","close","initializePosition","saved","localStorage","getItem","parsed","JSON","parse","targetState","previousState","performTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","fromState","toState","currentAnimation","cancel","animations","createAnimations","container","finished","icon","config","fromStyles","getStyleForState","toStyles","animate","duration","fill","opacity","transform","isExpanding","baseStyles","maxWidth","maxHeight","borderRadius","hidden","pointerEvents","boxShadow","backdropFilter","minimized","width","getResponsiveWidth","vw","innerWidth","style","applyInitialStyles","updateContainerPosition","setupDragPipeline","querySelector","label","initialStyle","Object","assign","webkitBackdropFilter","newState","race","discover","take","navComponent","addBoatItem","textContent","trim","title","includes","replace","navItem","then","clientX","clientY","offsetX","offsetY","initialRect","targetLeft","targetTop","vh","innerHeight","clampedLeft","Math","max","min","clampedTop","height","newX","newY","toSave","setItem","stringify","header","hasDragged","merge","button","stopPropagation","map","type","touches","rect","getBoundingClientRect","startX","startY","left","top","switchMap","move$","end$","deltaX","deltaY","sqrt","calculateDragPosition","finalize","updateAnchor","savePosition","removeProperty","right","bottom","isRight","isBottom","newAnchor","disconnectedCallback","render","surfaceElevation","isMinimized","transformOrigin","containerClasses","fixed","flex","html","classMap","ref","badge","closeAndAddToNav","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":";;;;;;;;;;;;;AAqBA,IAAqBA,IAArB,cAA0CC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA,CAAtD,EAAA;AAAA,EAAA;AAAAC,UAAAA,GAAAC,SAAAA,GAc6BC,KAAAC,KAAa,WAiBzCD,KAAQE,eAAoCC,EAAAA,GAC5CH,KAAQI,aAA+BD,EAAAA,GACvCH,KAAQK,UAA4BF,EAAAA,GACpCH,KAAQM,YAA8BH,EAAAA,GAMtCH,KAAiBO,mBAAmB,EACnCC,WAAW,EACVC,QAAQ,KACRC,UAAU,KACVC,MAAM,KACNC,SAAS,OAEVC,QAAQ,EACPC,YAAY,kCACZC,YAAY,qCACZC,YAAY,qCACZC,UAAU,iCAAA,GAEXC,SAAS,EACRC,KAAK,mHACLC,YACC,iHACDC,UAAU,4EAAA,EAAA,GAKHrB,KAAQsB,eAA0B,aAClCtB,KAAQuB,mBAAAA,IACRvB,KAAQwB,cAAAA,IACRxB,KAAQyB,YAAAA,IACRzB,KAAQ0B,iBACR1B,KAAQ2B,WAAqB,EAAEC,GAAG,IAAIC,GAAG,GAAA,GACzC7B,KAAQ8B,SAAoE;AAAA,EAAA;AAAA,EA9DrF,YAAIC;AACH,WAAO/B,KAAKsB;AAAAA,EAAA;AAAA,EAEb,IAAA,MAAUU;AACLhC,SAAKwB,eAAeQ,MAAUhC,KAAKsB,gBACvCtB,KAAKiC,eAAeD,CAAAA;AAAAA,EAAK;AAAA,EAM1B,cAAIE;AACH,WAAOlC,KAAKyB;AAAAA,EAAA;AAAA,EAEb,YAAYO,GAAAA;AACXhC,SAAKyB,YAAYO,GACjBhC,KAAKmC,cAAAA;AAAAA,EAAc;AAAA,EAgDpB;AACCrC,UAAMsC,kBAAAA,GAEgB,OAAXC,SAAW,QACrBC,EAAUD,QAAQ,QAAA,EAChBE,KAAKC,EAAUxC,KAAKyC,gBACpBC,UAAU,MAAA;AACgB,MAAtB1C,KAAKsB,iBAAiB,cACzBtB,KAAK2C,oBAAAA;AAAAA,IAAAA,CAAAA,GAKRL,EAAyBD,QAAQ,WAC/BE,KACAK,EAAOC,OAAKA,EAAEC,QAAQ,YAAY9C,KAAKsB,iBAAiB,QAAjBA,GACvCyB,EAAIF,OAAKA,EAAEG,eAAAA,CAAAA,GACXR,EAAUxC,KAAKyC,gBAEfC,UAAU,MAAA;AACgB,MAAtB1C,KAAKsB,iBAAiB,aACzBtB,KAAKiD,YAAAA,IAELjD,KAAKkD,MAAAA;AAAAA,IAAAA,CAAAA;AAAAA,EAGT;AAAA,EAGO,qBAAAC;AACP,QAAsB,OAAXd,SAAW,IAAa;AAEnC,UAAMe,IAAQC,aAAaC,QAAQ,iBAAiBtD,KAAKC,EAAAA,EAAAA;AAEzD,QAAImD,EACH;AACC,YAAMG,IAAwBC,KAAKC,MAAML;AACzCpD,WAAK2B,WAAW,EAAEC,GAAG2B,EAAO3B,GAAGC,GAAG0B,EAAO1B,EAAAA,GACzC7B,KAAK8B,SAASyB,EAAOzB;AAAAA,IAC6B,QAC1Ce;AAAAA,IAAG;AAAA,EAGb;AAAA,EAID,MAAA,eAA6Ba,GAAAA;AAC5B,QAAI1D,KAAKwB,eAAekC,MAAgB1D,KAAKsB,aAAc;AAE3D,UAAMqC,IAAgB3D,KAAKsB;AAC3BtB,SAAKwB,cAAAA;AAEL;YACOxB,KAAK4D,kBAAkBD,GAAeD,CAAAA,GAC5C1D,KAAKsB,eAAeoC,GACpB1D,KAAKuB,mBAAmBmC,MAAgB,YAGxC1D,KAAK6D,cACJ,IAAIC,YAAY,UAAU,EACzBC,QAAQL,GACRM,SAAAA,IACAC,UAAAA,GAAU,CAAA,CAAA;AAAA,IAEZ;AAGAjE,WAAKsB,eAAeoC,GACpB1D,KAAKuB,mBAAmBmC,MAAgB;AAAA,IAAA,UACzC;AACC1D,WAAKwB;IAAc;AAAA,EACpB;AAAA,EAID,MAAA,kBAAgC0C,GAAsBC,GAAAA;AAIrD,QAHAnE,KAAKoE,kBAAkBC,UAGvB,CADkBrE,KAAKE,aAAa8B,MACpB;AAGA,IAAZmC,MAAY,eACfnE,KAAKuB,mBAAAA;AAIN,UAAM+C,IAAatE,KAAKuE,iBAAiBL,GAAWC;AAGhDG,IAAAA,EAAWE,cACdxE,KAAKoE,mBAAmBE,EAAWE,WAAAA,MAC7BF,EAAWE,UAAUC,UAGvBN,MAAY,eACfnE,KAAKuB,mBAAAA;AAAAA,EAEP;AAAA,EAIO,iBAAiB2C,GAAsBC,GAAAA;AAC9C,UAAMK,IAAYxE,KAAKE,aAAa8B,OAC9BpB,IAAUZ,KAAKI,WAAW4B,OAC1B0C,IAAO1E,KAAKK,QAAQ2B,OACpBsC,IAA+E,CAAA;AAErF,QAAA,CAAKE,EAAW,QAAOF;AAEvB,UAAMK,IAAS3E,KAAKO,kBACdqE,IAAa5E,KAAK6E,iBAAiBX,IACnCY,IAAW9E,KAAK6E,iBAAiBV,CAAAA;AAgDvC,QA3CCG,EAAWE,YAFRL,MAAY,aAEQK,EAAUO,QAAQ,CAACH,GAAYE,CAAAA,GAAW,EAChEE,UAAUL,EAAOnE,UAAUC,QAC3BI,QAAQ8D,EAAO9D,OAAOE,YACtBkE,MAAM,WAAA,CAAA,IAGgBT,EAAUO,QAAQ,CAACH,GAAYE,CAAAA,GAAW,EAChEE,UAAUb,MAAY,WAAWQ,EAAOnE,UAAUG,OAAOgE,EAAOnE,UAAUE,UAC1EG,QAAQ8D,EAAO9D,OAAOG,YACtBiE,MAAM,WAAA,CAAA,GAKJrE,KAAWsD,MAAc,cAAcC,MAAY,cAEtDvD,EAAQmE,QACP,CACC,EAAEG,SAAS,GAAGC,WAAW,gBAAA,GACzB,EAAED,SAAS,GAAGC,WAAW,mBAAA,CAAA,GAE1B,EACCH,UAAU,KACVnE,QAAQ8D,EAAO9D,OAAOI,UACtBgE,MAAM,gBAGErE,KAAWuD,MAAY,cAEjCvD,EAAQmE,QACP,CACC,EAAEG,SAAS,GAAGC,WAAW,kBAAA,GACzB,EAAED,SAAS,GAAGC,WAAW,oBAE1B,EACCH,UAAUL,EAAOnE,UAAUI,SAC3BC,QAAQ8D,EAAO9D,OAAOI,UACtBgE,MAAM,WAAA,CAAA,GAMLP,GAAM;AACT,YAAMU,IAAcjB,MAAY;AAAZA,OAGhBiB,KAFiBlB,MAAc,cAAcC,MAAY,gBAG5DO,EAAKK,QACJ,CACC,EAAEI,WAAWC,IAAc,iBAAiB,iBAAA,GAC5C,EAAED,WAAWC,IAAc,mBAAmB,eAAA,CAAA,GAE/C,EACCJ,UAAU,KACVnE,QAAQ8D,EAAO9D,OAAOC,YACtBmE,MAAM,WAAA,CAAA;AAAA,IAGT;AAGD,WAAOX;AAAAA,EAAA;AAAA,EAIA,iBAAiBvC,GAAAA;AACxB,YAAMb,SAAEA,EAAAA,IAAYlB,KAAKO,kBACnB8E,IAAa,EAClBC,UAAU,SACVC,WAAW,QACXC,cAAc,OAAA;AA8Bf,WA3BiD,EAChDC,QAAQ,KACJJ,GACHH,SAAS,KACTQ,eAAe,QACfC,WAAW,QACXC,gBAAgB,OAAA,GAEjBC,WAAW,EAAA,GACPR,GACHH,SAAS,KACTQ,eAAe,QACfC,WAAW3F,KAAKyB,YAAYP,EAAQE,aAAaF,EAAQC,KACzDyE,gBAAgB,OAAA,GAEjBvE,UAAU,EACT6D,SAAS,KACTQ,eAAe,QACfI,OAAO9F,KAAK+F,sBACZT,UAAU,QACVC,WAAW,QACXI,WAAWzE,EAAQG,UACnBmE,cAAc,eACdI,gBAAgB,aAAA,EAAA,EAIC7D,CAAAA;AAAAA,EAAK;AAAA,EAIjB,qBAAAgE;AACP,QAAsB,OAAX1D,SAAW,IAAa,QAAO;AAE1C,UAAM2D,IAAK3D,OAAO4D;AAClB,WAAID,IAAK,MAAY,uBACjBA,IAAK,OAAa,SAClBA,IAAK,OAAa,SACf;AAAA,EAAA;AAAA,EAIA,sBAAArD;AACP,UAAM6B,IAAYxE,KAAKE,aAAa8B;AAChCwC,SAAaxE,KAAKsB,iBAAiB,eACtCkD,EAAU0B,MAAMJ,QAAQ9F,KAAK+F,mBAAAA;AAAAA,EAC9B;AAAA,EAGD;AACC/F,SAAKmD,mBAAAA,GACLnD,KAAKmG,mBAAAA,GACLnG,KAAKoG,wBAAAA,GACLpG,KAAKqG,qBAGiBrG,KAAKsG,cAAc,uBACnBtG,KAAK0E,QAAS1E,KAAKuG;AAAAA,EAMzC;AAAA,EAIO,qBAAAJ;AACP,UAAM3B,IAAYxE,KAAKE,aAAa8B,OAC9BpB,IAAUZ,KAAKI,WAAW4B,OAC1B0C,IAAO1E,KAAKK,QAAQ2B;AAE1B,QAAIwC,GAAW;AACd,YAAMgC,IAAexG,KAAK6E,iBAAiB7E,KAAKsB,YAAAA;AAChDmF,aAAOC,OAAOlC,EAAU0B,OAAOM,CAAAA,GAG3B,0BAA0BhC,EAAU0B,UACrC1B,EAAU0B,MAAcS,uBAAuBH,EAAaZ;AAAAA,IAC/D;AAIGhF,IAAAA,MACHA,EAAQsF,MAAMhB,UAAUlF,KAAKuB,mBAAmB,MAAM,MAInDmD,KAAQ1E,KAAKsB,iBAAiB,eACjCoD,EAAKwB,MAAMf,YAAY;AAAA,EACxB;AAAA,EAKD,cAAAlC;AACC,UAAM2D,IAAW5G,KAAKsB,iBAAiB,cAAc,aAAa;AAClEtB,SAAKiC,eAAe2E,CAAAA;AAAAA,EAAQ;AAAA,EAI7B,QAAA1D;AACClD,SAAKiC,eAAe;EAAQ;AAAA,EAGrB;AACP4E,IAAAA,EACC7G,KAAK8G,SAAc,0BAAA,GACnB9G,KAAK8G,SAAc,yBAAA,GACnB9G,KAAK8G,SAAc,qBAAA,GACnB9G,KAAK8G,SAAc,wBACnB9G,KAAK8G,SAAc,oBAAA,GACnB9G,KAAK8G,SAAc,gBAAA,CAAA,EAElBvE,KACAwE,EAAK,CAAA,GACLhE,EAAIiE,CAAAA,MAAAA;AACH,UAAIA,KAAoD,OAA7BA,EAAaC,eAAgB,YAAY;AAEnE,cAAMvC,IACL1E,KAAK0E,SAEe1E,KAAKsG,cAAc,iBAAA,GACNA,cAAc,kBAC1BY,aAAaC,KAAAA,KAAU,YAGvCZ,IACLvG,KAAKuG,UAAA,MAAA;AAGJ,cAAIa,IADepH,KAAKsG,cAAc,iBAAA,GACdY,aAAaC,UAAU;AAI/C,iBAHYC,EAAMC,SAAS3C,OAC1B0C,IAAQA,EAAME,QAAQ5C,GAAM,IAAIyC,KAAAA,IAE1BC,KAASpH,KAAKC;AAAAA,QACtB,GARK,GAWAsH,IAAUP,EAAaC,YAAY,EACxChH,IAAI,QAAQD,KAAKC,EAAAA,IACjBmH,OAAOb,GACP7B,MAAAA,EAAAA,CAAAA;AAGD,YAAI6C,GAAS;AAEZ,gBAAM/C,IAAYxE,KAAKE,aAAa8B;AAChCwC,UAAAA,IACHA,EACEO,QAAQ,CAAC,EAAEG,SAAS,KAAK,EAAEA,SAAS,EAAA,CAAA,GAAM,EAAEF,UAAU,KAAKnE,QAAQ,YAAYoE,MAAM,cACrFR,SAAS+C,KAAK,MAAA;AACdxH,iBAAKsB,eAAe,UACpBtB,KAAKuB;UAAmB,CAAA,KAG1BvB,KAAKsB,eAAe,UACpBtB,KAAKuB,mBAAAA,KAINe,EAAUiF,GAAS,OAAA,EACjBhF,KACAQ,EAAI,MAAM/C,KAAK+B,QAAQ,UAAA,GACvBS,EAAUxC,KAAKyC,aAAAA,CAAAA,EAEfC,UAAAA;AAAAA,QAAU;AAAA,MACb,MAGA1C,MAAKkD;QAIPR,UAAAA;AAAAA,EAAU;AAAA,EAIL,sBACP+E,GACAC,GACAC,GACAC,GACAC,GAAAA;AAEA,UAAMC,IAAaL,IAAUE,GACvBI,IAAYL,IAAUE,GACtB5B,IAAK3D,OAAO4D,YACZ+B,IAAK3F,OAAO4F,aACZC,IAAcC,KAAKC,IAAI,GAAGD,KAAKE,IAAIP,GAAY9B,IAAK6B,EAAY/B,KAAAA,CAAAA,GAChEwC,IAAaH,KAAKC,IAAI,GAAGD,KAAKE,IAAIN,GAAWC,IAAKH,EAAYU,MAAAA,CAAAA,GAE9DC,IAAOxI,KAAK8B,OAAOuF,SAAS,OAAA,IAAWrB,KAAMkC,IAAcL,EAAY/B,SAASoC,GAEhFO,IAAOzI,KAAK8B,OAAOuF,SAAS,QAAA,IAAYW,KAAMM,IAAaT,EAAYU,UAAUD;AAEvF,WAAO,EAAE1G,GAAGuG,KAAKC,IAAI,GAAGI,CAAAA,GAAO3G,GAAGsG,KAAKC,IAAI,GAAGK,CAAAA,EAAAA;AAAAA,EAAM;AAAA,EAG7C;AACP,QAAsB,OAAXpG,SAAW,IAAa;AAEnC,UAAMqG,IAAwB,EAC7B9G,GAAG5B,KAAK2B,SAASC,GACjBC,GAAG7B,KAAK2B,SAASE,GACjBC,QAAQ9B,KAAK8B,OAAAA,GAERgB,IAAM,iBAAiB9C,KAAKC,EAAAA;AAClCoD,iBAAasF,QAAQ7F,GAAKU,KAAKoF,UAAUF,CAAAA,CAAAA;AAAAA,EACI;AAAA,EAGtC,oBAAArC;AACP,QAAsB,OAAXhE,SAAW,IAAa;AAEnC,UAAMwG,IAAS7I,KAAKM,UAAU0B,OACxBwC,IAAYxE,KAAKE,aAAa8B;AACpC,SAAK6G,KAAAA,CAAWrE,EAAW;AAE3B,QAAIsE,IAAAA;AAIJC,IAAAA,EACCzG,EAAsBuG,GAAQ,WAAA,EAAatG,KAC1CK,EAAOC,CAAAA,MAAKA,EAAEmG,WAAW,CAAXA,GACdjG,EAAIF,CAAAA;AACHA,MAAAA,EAAEG,eAAAA,GACFH,EAAEoG,gBAAAA;AAAAA,IAAAA,CAAAA,GAEHC,EAAIrG,CAAAA,OAAA,EACH4E,SAAS5E,EAAE4E,SACXC,SAAS7E,EAAE6E,SACXyB,MAAM,QAAA,EAAA,CAAA,GAGR7G,EAAsBuG,GAAQ,YAAA,EAActG,KAC3C2G,EAAIrG,CAAAA,OAAA,EACH4E,SAAS5E,EAAEuG,QAAQ,CAAA,EAAG3B,SACtBC,SAAS7E,EAAEuG,QAAQ,CAAA,EAAG1B,SACtByB,MAAM,QAAA,EAAA,CAAA,CAAA,EAIP5G,KACA2G,EAAI,GAAGzB,SAAAA,GAASC,SAAAA,GAASyB,MAAAA,EAAAA,MAAAA;AACxB,YAAME,IAAO7E,EAAU8E,sBAAAA;AAEvB,aADAR,IAAAA,IACO,EACNS,QAAQ9B,GACR+B,QAAQ9B,GACRC,SAASF,IAAU4B,EAAKI,MACxB7B,SAASF,IAAU2B,EAAKK,KACxB7B,aAAawB,GACbF;QAIF5G,KACAoH,EAAU,CAAA,EAAGJ,QAAAA,GAAQC,WAAQ7B,SAAAA,GAASC,SAAAA,GAASC,aAAAA,GAAasB,MAAAA,EAAAA,MAAAA;AAC3D,YAAMS,IACLT,MAAS,UACN7G,EAAsBD,QAAQ,WAAA,EAAaE,KAAK2G,EAAIrG,CAAAA,OAAA,EAAQ4E,SAAS5E,EAAE4E,SAASC,SAAS7E,EAAE6E,eAC3FpF,EAAsBD,QAAQ,WAAA,EAAaE,KAC3C2G,EAAIrG,CAAAA,OAAA,EAAQ4E,SAAS5E,EAAEuG,QAAQ,CAAA,EAAG3B,SAASC,SAAS7E,EAAEuG,QAAQ,CAAA,EAAG1B,QAAAA,EAAAA,CAAAA,GAG/DmC,IAA0BvH,EAAUD,QAA7B8G,MAAS,UAA4B,YAA+B,UAAA;AAEjF,aAAOS,EAAMrH,KACZ2G,EAAI,CAAA,EAAGzB,SAAAA,GAASC;AACf,cAAMoC,IAASrC,IAAU8B,GACnBQ,IAASrC,IAAU8B;AAQzB,eAPiBrB,KAAK6B,KAAKF,IAASA,IAASC,IAASA,CAAAA,IArDpC,KAAA,CAuDgBjB,MACjCA,IAAAA,IACA9I,KAAK0B,aAAAA,KAGDoH,IAEE9I,KAAKiK,sBAAsBxC,GAASC,GAASC,GAASC,GAASC,KAF9C;AAAA,MAAA,CAAA,GAIzBjF,EAAOjB,CAAAA,MAAYA,MAAa,IAAbA,GACnBoB,EAAIpB,CAAAA,MAAAA;AACCA,QAAAA,MACH3B,KAAK2B,WAAWA,GAChB3B,KAAKoG;UAGP5D,EAAUqH,CAAAA,CAAAA;AAAAA,IAAAA,CAAAA,GAGZK,EAAS,MAAA;AACJpB,MAAAA,KACH9I,KAAKmK,aAAAA,GACLnK,KAAKoK,aAAAA,KAELpK,KAAKiD,eAENjD,KAAK0B,aAAAA,IACLoH,IAAAA;AAAAA,QAEDtG,EAAUxC,KAAKyC,aAAAA,CAAAA,EAEfC,UAAAA;AAAAA,EAAU;AAAA,EAIL,0BAAA0D;AACP,UAAM5B,IAAYxE,KAAKE,aAAa8B;AAC/BwC,UAGLA,EAAU0B,MAAMmE,eAAe,MAAA,GAC/B7F,EAAU0B,MAAMmE,eAAe,UAC/B7F,EAAU0B,MAAMmE,eAAe,KAAA,GAC/B7F,EAAU0B,MAAMmE,eAAe,QAAA,GAG3BrK,KAAK8B,OAAOuF,SAAS,OAAA,IACxB7C,EAAU0B,MAAMoE,QAAQ,GAAGtK,KAAK2B,SAASC,CAAAA,OAEzC4C,EAAU0B,MAAMuD,OAAO,GAAGzJ,KAAK2B,SAASC,OAGrC5B,KAAK8B,OAAOuF,SAAS,QAAA,IACxB7C,EAAU0B,MAAMqE,SAAS,GAAGvK,KAAK2B,SAASE,QAE1C2C,EAAU0B,MAAMwD,MAAM,GAAG1J,KAAK2B,SAASE,CAAAA;AAAAA,EACxC;AAAA,EAIO;AACP,QAAsB,OAAXQ,SAAW,IAAa;AAEnC,UAAMmC,IAAYxE,KAAKE,aAAa8B;AACpC,QAAA,CAAKwC,EAAW;AAEhB,UAAM6E,IAAO7E,EAAU8E,yBACjBtD,IAAK3D,OAAO4D,YACZ+B,IAAK3F,OAAO4F,aAEZuC,IAAUnB,EAAKI,OAAOzD,IAAK,GAC3ByE,IAAWpB,EAAKK,MAAM1B,IAAK,GAE3B0C,IAAY,GAAGD,IAAW,WAAW,SAASD,IAAU,UAAU,MAAA;AAEpEE,IAAAA,MAAc1K,KAAK8B,WAGrB9B,KAAK2B,SAASC,IADX4I,IACexE,IAAKqD,EAAKiB,QAEVjB,EAAKI,MAIvBzJ,KAAK2B,SAASE,IADX4I,IACezC,IAAKqB,EAAKkB,SAEVlB,EAAKK,KAGxB1J,KAAK8B,SAAS4I;AAAAA,EACf;AAAA,EAID,uBAAAC;AACC7K,UAAM6K,qBAAAA,GACN3K,KAAKoE,kBAAkBC,OAAAA;AAAAA,EAAO;AAAA,EAGrB,SAAAuG;AACT,UAAMC,IAAmB7K,KAAKsB,iBAAiB,cAAetB,KAAKyB,YAAY,MAAM,MAAO,KACtFqJ,IAAc9K,KAAKsB,iBAAiB,aAGpCyJ,IAAkB/K,KAAK8B,OAAOuF,SAAS,QAAA,IACzCrH,KAAK8B,OAAOuF,SAAS,OAAA,IAAW,iBAAiB,gBACjDrH,KAAK8B,OAAOuF,SAAS,OAAA,IAAW,cAAc,YAE5C2D,IAAmB,EACxB,QAAA,IACAC,OAAAA,IACA,uBACAC,MAAAA,IACA,YAAA,IACA,eAAA,IACA,6BACA,0BAAA,IACA,kCAAA,IACA,gCAAA,IACA,qBAAA,IACA,cAAclL,KAAK0B,YACnB,+EAA+E1B,KAAK0B,WAAAA;AAGrF,WAAOyJ;AAAAA;AAAAA,YAEGnL,KAAKoL,SAASJ,CAAAA,CAAAA;AAAAA,+BACKD,CAAAA;AAAAA,MACzBM,EAAIrL,KAAKE,YAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAKI2K,CAAAA;AAAAA,iBACFC,IAAc,SAAS,KAAA;AAAA;AAAA;AAAA;AAAA,qFAI6C9K,KAAK0B,aAChF,oBACA,aAAA;AAAA,SACD2J,EAAIrL,KAAKM,SAAAA,CAAAA;AAAAA;AAAAA,mBAEEuC,CAAAA,MAAAA;AACZA,MAAAA,EAAEG,eAAAA,GACFH,EAAEoG,gBAAAA,GACFjJ,KAAKiD,YAAAA;AAAAA,IAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAYHjD,KAAK0E,QAAQ1E,KAAKuG,QACjB4E;AAAAA;AAAAA,cAEGnL,KAAK0E,OAAOyG,mBAAsBnL,KAAK0E,IAAAA,qBAAyB,EAAA;AAAA,cAChE1E,KAAKuG,QACJ4E,iDAAoDnL,KAAKuG,KAAAA,2BACzD,EAAA;AAAA,cACDvG,KAAKsL,oBAAuBtL,KAAKsL,UAAU,QAAQtL,KAAKsL,UAAU,KACjEH,oBAAuBnL,KAAKsL,KAAAA,sBAC5B,EAAA;AAAA;AAAA,cAGJH,8BAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAKDL,IACCK;AAAAA;AAAAA;AAAAA;AAAAA,qBAIWtI,CAAAA,MAAAA;AACTA,MAAAA,EAAEoG,gBAAAA,GACFjJ,KAAK+B,QAAQ;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA,6BAIGsJ,EAAIrL,KAAKK,OAAAA,CAAAA;AAAAA;AAAAA,cAG3B8K;AAAAA;AAAAA;AAAAA;AAAAA,qBAIWtI,CAAAA,MAAAA;AACTA,MAAAA,EAAEoG,gBAAAA,GACFjJ,KAAK+B,QAAQ;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA,6BAIGsJ,EAAIrL,KAAKK,OAAAA,CAAAA;AAAAA;AAAAA;;;;;kBAOnBwC,CAAAA,MAAAA;AACTA,MAAAA,EAAEoG,mBACFjJ,KAAKuL,iBAAAA;AAAAA,IAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iCAYkBvL,KAAKuB,gBAAAA,uCAAuD8J,EAAIrL,KAAKI,UAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAW;AAAA;AA/uB5GoL,EAAA,CADHC,EAAS,EAAEtC,MAAMuC,QAAQC,SAAAA,GAAS,CAAA,CAAA,GALfhM,EAMhBiM,WAAA,SAAA,CAAA,GAQwBJ,EAAA,CAA3BC,EAAS,EAAEtC,MAAMuC,OAAAA,CAAAA,CAAAA,GAdE/L,EAcQiM,WAAA,MAAA,CAAA,GAGxBJ,EAAA,CADHC,EAAS,EAAEtC,MAAM0C,SAASF,SAAAA,GAAS,CAAA,CAAA,GAhBhBhM,EAiBhBiM,WAAA,WAAA,CAAA,GASwBJ,EAAA,CAA3BC,EAAS,EAAEtC,MAAMuC,OAAAA,CAAAA,CAAAA,GA1BE/L,EA0BQiM,WAAA,QAAA,CAAA,GACAJ,EAAA,CAA3BC,EAAS,EAAEtC,MAAMuC,OAAAA,CAAAA,CAAAA,GA3BE/L,EA2BQiM,WAAA,SAAA,CAAA,GAChBJ,EAAA,CAAXC,EAAAA,CAAAA,GA5BmB9L,EA4BRiM,WAAA,SAAA,CAAA,GAkCKJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GA9DmBpC,EA8DHiM,WAAA,gBAAA,CAAA,GACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GA/DmBpC,EA+DHiM,WAAA,oBAAA,CAAA,GACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GAhEmBpC,EAgEHiM,WAAA,eAAA,CAAA,GACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GAjEmBpC,EAiEHiM,WAAA,aAAA,CAAA,GACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GAlEmBpC,EAkEHiM,WAAA,cAAA,CAAA,GACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GAnEmBpC,EAmEHiM,WAAA,YAAA,IACAJ,EAAA,CAAhBzJ,EAAAA,CAAAA,GApEmBpC,EAoEHiM,WAAA,UAAA,CAAA,GApEGjM,IAArB6L,EAAA,CADCM,EAAc,eAAA,CAAA,GACMnM,CAAAA;"}
@@ -0,0 +1,83 @@
1
+ "use strict";const p=require("rxjs"),r=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const h=require("lit/decorators.js");require("./tailwind.mixin-SjjyWekZ.cjs");const w=require("./litElement.mixin-Dmtg7y_h.cjs"),l=require("lit"),m=require("lit/directives/ref.js");var S=Object.defineProperty,R=Object.getOwnPropertyDescriptor,d=(t,e,n,i)=>{for(var a,o=i>1?void 0:i?R(e,n):e,s=t.length-1;s>=0;s--)(a=t[s])&&(o=(i?a(e,n,o):a(o))||o);return i&&o&&S(e,n,o),o};exports.SchmancyBoat=class extends w.$LitElement(l.css`
2
+ :host {
3
+ display: contents;
4
+ }
5
+ `){constructor(){super(...arguments),this.id="default",this.containerRef=m.createRef(),this.contentRef=m.createRef(),this.iconRef=m.createRef(),this.headerRef=m.createRef(),this.ANIMATION_CONFIG={durations:{expand:350,minimize:250,hide:200,content:300},easing:{emphasized:"cubic-bezier(0.2, 0.0, 0, 1.0)",decelerate:"cubic-bezier(0.05, 0.7, 0.1, 1.0)",accelerate:"cubic-bezier(0.3, 0.0, 0.8, 0.15)",standard:"cubic-bezier(0.4, 0.0, 0.2, 1)"},shadows:{fab:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)",fabLowered:"0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12)",expanded:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"}},this.currentState="minimized",this.isContentVisible=!1,this.isAnimating=!1,this.isLowered=!1,this.isDragging=!1,this.position={x:16,y:16},this.anchor="bottom-right"}get state(){return this.currentState}set state(t){this.isAnimating||t===this.currentState||this.animateToState(t)}get lowered(){return this.isLowered}set lowered(t){this.isLowered=t,this.requestUpdate()}connectedCallback(){super.connectedCallback(),typeof window<"u"&&(p.fromEvent(window,"resize").pipe(r.takeUntil(this.disconnecting)).subscribe(()=>{this.currentState==="expanded"&&this.updateExpandedWidth()}),p.fromEvent(window,"keydown").pipe(r.filter(t=>t.key==="Escape"&&this.currentState!=="hidden"),r.tap(t=>t.preventDefault()),r.takeUntil(this.disconnecting)).subscribe(()=>{this.currentState==="expanded"?this.toggleState():this.close()}))}initializePosition(){if(typeof window>"u")return;const t=localStorage.getItem(`schmancy-boat-${this.id}`);if(t)try{const e=JSON.parse(t);this.position={x:e.x,y:e.y},this.anchor=e.anchor}catch{}}async animateToState(t){if(this.isAnimating||t===this.currentState)return;const e=this.currentState;this.isAnimating=!0;try{await this.performTransition(e,t),this.currentState=t,this.isContentVisible=t==="expanded",this.dispatchEvent(new CustomEvent("toggle",{detail:t,bubbles:!0,composed:!0}))}catch{this.currentState=t,this.isContentVisible=t==="expanded"}finally{this.isAnimating=!1}}async performTransition(t,e){if(this.currentAnimation?.cancel(),!this.containerRef.value)return;e==="expanded"&&(this.isContentVisible=!0);const n=this.createAnimations(t,e);n.container&&(this.currentAnimation=n.container,await n.container.finished,e!=="expanded"&&(this.isContentVisible=!1))}createAnimations(t,e){const n=this.containerRef.value,i=this.contentRef.value,a=this.iconRef.value,o={};if(!n)return o;const s=this.ANIMATION_CONFIG,f=this.getStyleForState(t),u=this.getStyleForState(e);if(o.container=e==="expanded"?n.animate([f,u],{duration:s.durations.expand,easing:s.easing.decelerate,fill:"forwards"}):n.animate([f,u],{duration:e==="hidden"?s.durations.hide:s.durations.minimize,easing:s.easing.accelerate,fill:"forwards"}),i&&t==="expanded"&&e==="minimized"?i.animate([{opacity:1,transform:"translateY(0)"},{opacity:0,transform:"translateY(-8px)"}],{duration:150,easing:s.easing.standard,fill:"forwards"}):i&&e==="expanded"&&i.animate([{opacity:0,transform:"translateY(8px)"},{opacity:1,transform:"translateY(0)"}],{duration:s.durations.content,easing:s.easing.standard,fill:"forwards"}),a){const y=e==="expanded";(y||t==="expanded"&&e==="minimized")&&a.animate([{transform:y?"rotate(0deg)":"rotate(180deg)"},{transform:y?"rotate(180deg)":"rotate(0deg)"}],{duration:250,easing:s.easing.emphasized,fill:"forwards"})}return o}getStyleForState(t){const{shadows:e}=this.ANIMATION_CONFIG,n={maxWidth:"300px",maxHeight:"auto",borderRadius:"16px"};return{hidden:{...n,opacity:"0",pointerEvents:"none",boxShadow:"none",backdropFilter:"none"},minimized:{...n,opacity:"1",pointerEvents:"auto",boxShadow:this.isLowered?e.fabLowered:e.fab,backdropFilter:"none"},expanded:{opacity:"1",pointerEvents:"auto",width:this.getResponsiveWidth(),maxWidth:"100%",maxHeight:"80vh",boxShadow:e.expanded,borderRadius:"8px 8px 0 0",backdropFilter:"blur(12px)"}}[t]}getResponsiveWidth(){if(typeof window>"u")return"40vw";const t=window.innerWidth;return t<768?"calc(100vw - 32px)":t<1024?"70vw":t<1280?"60vw":"40vw"}updateExpandedWidth(){const t=this.containerRef.value;t&&this.currentState==="expanded"&&(t.style.width=this.getResponsiveWidth())}firstUpdated(){this.initializePosition(),this.applyInitialStyles(),this.updateContainerPosition(),this.setupDragPipeline(),this.querySelector('[slot="header"]')&&!this.icon&&this.label}applyInitialStyles(){const t=this.containerRef.value,e=this.contentRef.value,n=this.iconRef.value;if(t){const i=this.getStyleForState(this.currentState);Object.assign(t.style,i),"webkitBackdropFilter"in t.style&&(t.style.webkitBackdropFilter=i.backdropFilter)}e&&(e.style.opacity=this.isContentVisible?"1":"0"),n&&this.currentState==="expanded"&&(n.style.transform="rotate(180deg)")}toggleState(){const t=this.currentState==="minimized"?"expanded":"minimized";this.animateToState(t)}close(){this.animateToState("hidden")}closeAndAddToNav(){p.race(this.discover("schmancy-navigation-rail"),this.discover("schmancy-navigation-bar"),this.discover("schmancy-nav-drawer"),this.discover("app-navigation-rail"),this.discover("app-navigation-bar"),this.discover("app-nav-drawer")).pipe(r.take(1),r.tap(t=>{if(t&&typeof t.addBoatItem=="function"){const e=this.icon||(this.querySelector('[slot="header"]')?.querySelector("schmancy-icon")?.textContent?.trim()||"widgets"),n=this.label||(()=>{let o=this.querySelector('[slot="header"]')?.textContent?.trim()||"Boat";return o.includes(e)&&(o=o.replace(e,"").trim()),o||this.id})(),i=t.addBoatItem({id:`boat-${this.id}`,title:n,icon:e});if(i){const a=this.containerRef.value;a?a.animate([{opacity:1},{opacity:0}],{duration:150,easing:"ease-out",fill:"forwards"}).finished.then(()=>{this.currentState="hidden",this.isContentVisible=!1}):(this.currentState="hidden",this.isContentVisible=!1),p.fromEvent(i,"click").pipe(r.tap(()=>this.state="expanded"),r.takeUntil(this.disconnecting)).subscribe()}}else this.close()})).subscribe()}calculateDragPosition(t,e,n,i,a){const o=t-n,s=e-i,f=window.innerWidth,u=window.innerHeight,y=Math.max(0,Math.min(o,f-a.width)),g=Math.max(0,Math.min(s,u-a.height)),c=this.anchor.includes("right")?f-(y+a.width):y,x=this.anchor.includes("bottom")?u-(g+a.height):g;return{x:Math.max(0,c),y:Math.max(0,x)}}savePosition(){if(typeof window>"u")return;const t={x:this.position.x,y:this.position.y,anchor:this.anchor},e=`schmancy-boat-${this.id}`;localStorage.setItem(e,JSON.stringify(t))}setupDragPipeline(){if(typeof window>"u")return;const t=this.headerRef.value,e=this.containerRef.value;if(!t||!e)return;let n=!1;p.merge(p.fromEvent(t,"mousedown").pipe(r.filter(i=>i.button===0),r.tap(i=>{i.preventDefault(),i.stopPropagation()}),r.map(i=>({clientX:i.clientX,clientY:i.clientY,type:"mouse"}))),p.fromEvent(t,"touchstart").pipe(r.map(i=>({clientX:i.touches[0].clientX,clientY:i.touches[0].clientY,type:"touch"})))).pipe(r.map(({clientX:i,clientY:a,type:o})=>{const s=e.getBoundingClientRect();return n=!1,{startX:i,startY:a,offsetX:i-s.left,offsetY:a-s.top,initialRect:s,type:o}})).pipe(r.switchMap(({startX:i,startY:a,offsetX:o,offsetY:s,initialRect:f,type:u})=>{const y=u==="mouse"?p.fromEvent(window,"mousemove").pipe(r.map(c=>({clientX:c.clientX,clientY:c.clientY}))):p.fromEvent(window,"touchmove").pipe(r.map(c=>({clientX:c.touches[0].clientX,clientY:c.touches[0].clientY}))),g=u==="mouse"?p.fromEvent(window,"mouseup"):p.fromEvent(window,"touchend");return y.pipe(r.map(({clientX:c,clientY:x})=>{const b=c-i,v=x-a;return Math.sqrt(b*b+v*v)>5&&!n&&(n=!0,this.isDragging=!0),n?this.calculateDragPosition(c,x,o,s,f):null}),r.filter(c=>c!==null),r.tap(c=>{c&&(this.position=c,this.updateContainerPosition())}),r.takeUntil(g))}),r.finalize(()=>{n?(this.updateAnchor(),this.savePosition()):this.toggleState(),this.isDragging=!1,n=!1}),r.takeUntil(this.disconnecting)).subscribe()}updateContainerPosition(){const t=this.containerRef.value;t&&(t.style.removeProperty("left"),t.style.removeProperty("right"),t.style.removeProperty("top"),t.style.removeProperty("bottom"),this.anchor.includes("right")?t.style.right=`${this.position.x}px`:t.style.left=`${this.position.x}px`,this.anchor.includes("bottom")?t.style.bottom=`${this.position.y}px`:t.style.top=`${this.position.y}px`)}updateAnchor(){if(typeof window>"u")return;const t=this.containerRef.value;if(!t)return;const e=t.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight,a=e.left>n/2,o=e.top>i/2,s=`${o?"bottom":"top"}-${a?"right":"left"}`;s!==this.anchor&&(this.position.x=a?n-e.right:e.left,this.position.y=o?i-e.bottom:e.top,this.anchor=s)}disconnectedCallback(){super.disconnectedCallback(),this.currentAnimation?.cancel()}render(){const t=this.currentState==="minimized"?this.isLowered?"1":"3":"4",e=this.currentState==="minimized",n=this.anchor.includes("bottom")?this.anchor.includes("right")?"bottom right":"bottom left":this.anchor.includes("right")?"top right":"top left",i={"z-50":!0,fixed:!0,"overflow-y-auto":!0,flex:!0,"flex-col":!0,"select-none":!0,"will-change-transform":!0,"[contain:layout_style]":!0,"[transform:translate3d(0,0,0)]":!0,"[backface-visibility:hidden]":!0,"transition-shadow":!0,"opacity-95":this.isDragging,"shadow-[0_24px_48px_-8px_rgba(0,0,0,0.2),0_12px_24px_-4px_rgba(0,0,0,0.12)]":this.isDragging};return l.html`
6
+ <div
7
+ class=${this.classMap(i)}
8
+ style="transform-origin: ${n}"
9
+ ${m.ref(this.containerRef)}
10
+ >
11
+ <!-- Header section -->
12
+ <section class="sticky top-0">
13
+ <schmancy-surface
14
+ elevation="${t}"
15
+ rounded="${e?"none":"top"}"
16
+ type="containerLowest"
17
+ >
18
+ <div
19
+ class="group sticky top-0 px-3 py-2 flex items-center justify-between gap-3 ${this.isDragging?"cursor-grabbing":"cursor-move"}"
20
+ ${m.ref(this.headerRef)}
21
+ title="Drag to move, double-click to toggle"
22
+ @dblclick=${a=>{a.preventDefault(),a.stopPropagation(),this.toggleState()}}
23
+ >
24
+ <!-- Drag handle indicator -->
25
+ <div
26
+ class="flex items-center text-surface-onVariant opacity-40 transition-opacity duration-200 group-hover:opacity-100"
27
+ >
28
+ <schmancy-icon style="font-size: 20px">drag_indicator</schmancy-icon>
29
+ </div>
30
+
31
+ <!-- Header content - use properties if provided, else fallback to slot -->
32
+ <div class="flex-1 min-w-fit items-center flex justify-start">
33
+ ${this.icon||this.label?l.html`
34
+ <div class="flex gap-2 items-center">
35
+ ${this.icon?l.html`<schmancy-icon>${this.icon}</schmancy-icon>`:""}
36
+ ${this.label?l.html`<schmancy-typography type="title" token="md">${this.label}</schmancy-typography>`:""}
37
+ ${this.badge!==void 0&&this.badge!==null&&this.badge!==""?l.html`<schmancy-badge>${this.badge}</schmancy-badge>`:""}
38
+ </div>
39
+ `:l.html`<slot name="header"></slot>`}
40
+ </div>
41
+
42
+ <!-- Control buttons -->
43
+ <div class="flex items-center gap-1 flex-shrink-0">
44
+ ${e?l.html`
45
+ <!-- Expand button (when minimized) -->
46
+ <schmancy-icon-button
47
+ variant="text"
48
+ @click=${a=>{a.stopPropagation(),this.state="expanded"}}
49
+ title="Expand"
50
+ >
51
+ <schmancy-icon ${m.ref(this.iconRef)}>expand_less</schmancy-icon>
52
+ </schmancy-icon-button>
53
+ `:l.html`
54
+ <!-- Minimize button (when expanded) -->
55
+ <schmancy-icon-button
56
+ variant="filled tonal"
57
+ @click=${a=>{a.stopPropagation(),this.state="minimized"}}
58
+ title="Minimize"
59
+ >
60
+ <schmancy-icon ${m.ref(this.iconRef)}>expand_more</schmancy-icon>
61
+ </schmancy-icon-button>
62
+ `}
63
+
64
+ <!-- Close button -->
65
+ <schmancy-icon-button
66
+ variant="text"
67
+ @click=${a=>{a.stopPropagation(),this.closeAndAddToNav()}}
68
+ title="Close and add to navigation"
69
+ >
70
+ <schmancy-icon>close</schmancy-icon>
71
+ </schmancy-icon-button>
72
+ </div>
73
+ </div>
74
+ </schmancy-surface>
75
+ </section>
76
+
77
+ <!-- Content section -->
78
+ <schmancy-surface .hidden=${!this.isContentVisible} type="containerLow" class="flex-1" ${m.ref(this.contentRef)}>
79
+ <slot></slot>
80
+ </schmancy-surface>
81
+ </div>
82
+ `}},d([h.property({type:String,reflect:!0})],exports.SchmancyBoat.prototype,"state",1),d([h.property({type:String})],exports.SchmancyBoat.prototype,"id",2),d([h.property({type:Boolean,reflect:!0})],exports.SchmancyBoat.prototype,"lowered",1),d([h.property({type:String})],exports.SchmancyBoat.prototype,"icon",2),d([h.property({type:String})],exports.SchmancyBoat.prototype,"label",2),d([h.property()],exports.SchmancyBoat.prototype,"badge",2),d([h.state()],exports.SchmancyBoat.prototype,"currentState",2),d([h.state()],exports.SchmancyBoat.prototype,"isContentVisible",2),d([h.state()],exports.SchmancyBoat.prototype,"isAnimating",2),d([h.state()],exports.SchmancyBoat.prototype,"isLowered",2),d([h.state()],exports.SchmancyBoat.prototype,"isDragging",2),d([h.state()],exports.SchmancyBoat.prototype,"position",2),d([h.state()],exports.SchmancyBoat.prototype,"anchor",2),exports.SchmancyBoat=d([h.customElement("schmancy-boat")],exports.SchmancyBoat);
83
+ //# sourceMappingURL=boat-CvWXHBGZ.cjs.map