@mhmo91/schmancy 0.5.24 → 0.5.25

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 (320) hide show
  1. package/dist/{animated-text-1UeLx0sc.cjs → animated-text-CiHeHOww.cjs} +2 -2
  2. package/dist/{animated-text-1UeLx0sc.cjs.map → animated-text-CiHeHOww.cjs.map} +1 -1
  3. package/dist/{animated-text-BLtDcshf.js → animated-text-Q61RCdXT.js} +3 -3
  4. package/dist/{animated-text-BLtDcshf.js.map → animated-text-Q61RCdXT.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-B5V5Bg5B.cjs → area.component-C_cHSKz0.cjs} +2 -2
  9. package/dist/{area.component-B5V5Bg5B.cjs.map → area.component-C_cHSKz0.cjs.map} +1 -1
  10. package/dist/{area.component-BIRswT0J.js → area.component-DYMGLvuA.js} +3 -3
  11. package/dist/{area.component-BIRswT0J.js.map → area.component-DYMGLvuA.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-BlTQIvvt.js → autocomplete-DuQWyQeT.js} +4 -4
  14. package/dist/{autocomplete-BlTQIvvt.js.map → autocomplete-DuQWyQeT.js.map} +1 -1
  15. package/dist/{autocomplete-gIoxR7_t.cjs → autocomplete-ZT3BOEA5.cjs} +2 -2
  16. package/dist/{autocomplete-gIoxR7_t.cjs.map → autocomplete-ZT3BOEA5.cjs.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/{avatar-BAVfTtEM.cjs → avatar-8CSFLRvq.cjs} +2 -2
  20. package/dist/{avatar-BAVfTtEM.cjs.map → avatar-8CSFLRvq.cjs.map} +1 -1
  21. package/dist/{avatar-BCOzG2-D.js → avatar-BcnWoLvo.js} +50 -50
  22. package/dist/{avatar-BCOzG2-D.js.map → avatar-BcnWoLvo.js.map} +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/boat-BTSQNgJQ.js +174 -0
  26. package/dist/boat-BTSQNgJQ.js.map +1 -0
  27. package/dist/boat-BtViHW8M.cjs +66 -0
  28. package/dist/boat-BtViHW8M.cjs.map +1 -0
  29. package/dist/boat.cjs +1 -1
  30. package/dist/boat.js +1 -1
  31. package/dist/busy.cjs +1 -1
  32. package/dist/busy.js +1 -1
  33. package/dist/button.cjs +1 -1
  34. package/dist/button.js +1 -1
  35. package/dist/card.cjs +1 -1
  36. package/dist/card.js +1 -1
  37. package/dist/{checkbox-DShC2A6P.cjs → checkbox-D0LwTB_L.cjs} +2 -2
  38. package/dist/{checkbox-DShC2A6P.cjs.map → checkbox-D0LwTB_L.cjs.map} +1 -1
  39. package/dist/{checkbox-Dim_q5YB.js → checkbox-WxVuYamU.js} +2 -2
  40. package/dist/{checkbox-Dim_q5YB.js.map → checkbox-WxVuYamU.js.map} +1 -1
  41. package/dist/checkbox.cjs +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/chips.cjs +1 -1
  44. package/dist/chips.js +2 -2
  45. package/dist/code-highlight.cjs +1 -1
  46. package/dist/code-highlight.js +1 -1
  47. package/dist/{code-preview-Ci_x_fdP.js → code-preview-7uzeIcQP.js} +2 -2
  48. package/dist/{code-preview-Ci_x_fdP.js.map → code-preview-7uzeIcQP.js.map} +1 -1
  49. package/dist/{code-preview-DI4Fdnf1.cjs → code-preview-BcwituOr.cjs} +2 -2
  50. package/dist/{code-preview-DI4Fdnf1.cjs.map → code-preview-BcwituOr.cjs.map} +1 -1
  51. package/dist/components.cjs +1 -1
  52. package/dist/components.js +1 -1
  53. package/dist/content-drawer.cjs +1 -1
  54. package/dist/content-drawer.js +1 -1
  55. package/dist/{date-range--H8CYCUX.cjs → date-range-eygGuBZz.cjs} +2 -2
  56. package/dist/{date-range--H8CYCUX.cjs.map → date-range-eygGuBZz.cjs.map} +1 -1
  57. package/dist/{date-range-inline-B91UEouL.cjs → date-range-inline-97fWguq7.cjs} +2 -2
  58. package/dist/{date-range-inline-B91UEouL.cjs.map → date-range-inline-97fWguq7.cjs.map} +1 -1
  59. package/dist/{date-range-inline-CQ0p9Gk0.js → date-range-inline-B2QQNDMg.js} +3 -3
  60. package/dist/{date-range-inline-CQ0p9Gk0.js.map → date-range-inline-B2QQNDMg.js.map} +1 -1
  61. package/dist/date-range-inline.cjs +1 -1
  62. package/dist/date-range-inline.js +1 -1
  63. package/dist/{date-range-BiLjEqjs.js → date-range-s3Us154k.js} +3 -3
  64. package/dist/{date-range-BiLjEqjs.js.map → date-range-s3Us154k.js.map} +1 -1
  65. package/dist/date-range.cjs +1 -1
  66. package/dist/date-range.js +1 -1
  67. package/dist/{delay-D65ijCZW.cjs → delay-B0GqQ3C1.cjs} +2 -2
  68. package/dist/{delay-D65ijCZW.cjs.map → delay-B0GqQ3C1.cjs.map} +1 -1
  69. package/dist/{delay-Byxv_EuC.js → delay-CQEb521T.js} +2 -2
  70. package/dist/{delay-Byxv_EuC.js.map → delay-CQEb521T.js.map} +1 -1
  71. package/dist/delay.cjs +1 -1
  72. package/dist/delay.js +1 -1
  73. package/dist/{details-D7EmD6Vy.cjs → details-BSmS_ILq.cjs} +2 -2
  74. package/dist/{details-D7EmD6Vy.cjs.map → details-BSmS_ILq.cjs.map} +1 -1
  75. package/dist/{details-D3krTZot.js → details-kr1zYIlK.js} +2 -2
  76. package/dist/{details-D3krTZot.js.map → details-kr1zYIlK.js.map} +1 -1
  77. package/dist/details.cjs +1 -1
  78. package/dist/details.js +1 -1
  79. package/dist/{dialog-content-BCmJU6-6.js → dialog-content-CcNZ5YU6.js} +3 -3
  80. package/dist/{dialog-content-BCmJU6-6.js.map → dialog-content-CcNZ5YU6.js.map} +1 -1
  81. package/dist/{dialog-content-CIbrBTyn.cjs → dialog-content-DMImBN73.cjs} +2 -2
  82. package/dist/{dialog-content-CIbrBTyn.cjs.map → dialog-content-DMImBN73.cjs.map} +1 -1
  83. package/dist/dialog.cjs +1 -1
  84. package/dist/dialog.js +1 -1
  85. package/dist/{divider-2GPNgq-E.cjs → divider-DNxHAfMo.cjs} +2 -2
  86. package/dist/{divider-2GPNgq-E.cjs.map → divider-DNxHAfMo.cjs.map} +1 -1
  87. package/dist/{divider-BPrA36H2.js → divider-DvznHh3I.js} +3 -3
  88. package/dist/{divider-BPrA36H2.js.map → divider-DvznHh3I.js.map} +1 -1
  89. package/dist/divider.cjs +1 -1
  90. package/dist/divider.js +1 -1
  91. package/dist/{dropdown-content-BbekqPxj.cjs → dropdown-content-CH5MB5mz.cjs} +2 -2
  92. package/dist/{dropdown-content-BbekqPxj.cjs.map → dropdown-content-CH5MB5mz.cjs.map} +1 -1
  93. package/dist/{dropdown-content-mlUSVOyD.js → dropdown-content-CtMauszk.js} +3 -3
  94. package/dist/{dropdown-content-mlUSVOyD.js.map → dropdown-content-CtMauszk.js.map} +1 -1
  95. package/dist/dropdown.cjs +1 -1
  96. package/dist/dropdown.js +1 -1
  97. package/dist/{email-recipients-CDD_g5yN.js → email-recipients-BxiV610x.js} +5 -5
  98. package/dist/{email-recipients-CDD_g5yN.js.map → email-recipients-BxiV610x.js.map} +1 -1
  99. package/dist/{email-recipients-CIg2Zr1g.cjs → email-recipients-pW93YxrA.cjs} +2 -2
  100. package/dist/{email-recipients-CIg2Zr1g.cjs.map → email-recipients-pW93YxrA.cjs.map} +1 -1
  101. package/dist/extra.cjs +1 -1
  102. package/dist/extra.js +1 -1
  103. package/dist/{flex-Dt_5LiZY.cjs → flex-H2ZPqfIW.cjs} +2 -2
  104. package/dist/{flex-Dt_5LiZY.cjs.map → flex-H2ZPqfIW.cjs.map} +1 -1
  105. package/dist/{flex-B80ttpFK.js → flex-ykbucnko.js} +2 -2
  106. package/dist/{flex-B80ttpFK.js.map → flex-ykbucnko.js.map} +1 -1
  107. package/dist/{form-DQy6kwCm.cjs → form-C7FRhHOX.cjs} +2 -2
  108. package/dist/{form-DQy6kwCm.cjs.map → form-C7FRhHOX.cjs.map} +1 -1
  109. package/dist/{form-BMsARji5.js → form-CGGeAQbK.js} +2 -2
  110. package/dist/{form-BMsARji5.js.map → form-CGGeAQbK.js.map} +1 -1
  111. package/dist/form.cjs +1 -1
  112. package/dist/form.js +1 -1
  113. package/dist/{formField.mixin-6n9T0jO7.js → formField.mixin-D-3pktvx.js} +2 -2
  114. package/dist/{formField.mixin-6n9T0jO7.js.map → formField.mixin-D-3pktvx.js.map} +1 -1
  115. package/dist/{formField.mixin-CvAbYIRF.cjs → formField.mixin-MbkisYHL.cjs} +2 -2
  116. package/dist/{formField.mixin-CvAbYIRF.cjs.map → formField.mixin-MbkisYHL.cjs.map} +1 -1
  117. package/dist/{icon-TyfiEK7a.js → icon-BiHCgOyT.js} +2 -2
  118. package/dist/{icon-TyfiEK7a.js.map → icon-BiHCgOyT.js.map} +1 -1
  119. package/dist/{icon-FPVUigzr.cjs → icon-CnVNGmjD.cjs} +2 -2
  120. package/dist/{icon-FPVUigzr.cjs.map → icon-CnVNGmjD.cjs.map} +1 -1
  121. package/dist/{icon-button-DOk1cdCw.js → icon-button--hjJtAL_.js} +3 -3
  122. package/dist/{icon-button-DOk1cdCw.js.map → icon-button--hjJtAL_.js.map} +1 -1
  123. package/dist/{icon-button-CVTYisTH.cjs → icon-button-CB52pDFa.cjs} +2 -2
  124. package/dist/{icon-button-CVTYisTH.cjs.map → icon-button-CB52pDFa.cjs.map} +1 -1
  125. package/dist/icons.cjs +1 -1
  126. package/dist/icons.js +1 -1
  127. package/dist/index.cjs +1 -1
  128. package/dist/index.js +49 -49
  129. package/dist/{input-Cf5oQC-b.cjs → input-BXcrOvCH.cjs} +2 -2
  130. package/dist/{input-Cf5oQC-b.cjs.map → input-BXcrOvCH.cjs.map} +1 -1
  131. package/dist/{input-DdSxDY3S.js → input-Mrc7DrIK.js} +3 -3
  132. package/dist/{input-DdSxDY3S.js.map → input-Mrc7DrIK.js.map} +1 -1
  133. package/dist/{input-chip-BwjgX7hk.js → input-chip-BRdk5zlg.js} +2 -2
  134. package/dist/{input-chip-BwjgX7hk.js.map → input-chip-BRdk5zlg.js.map} +1 -1
  135. package/dist/{input-chip-Bps8lWjC.cjs → input-chip-DnM_iJbj.cjs} +2 -2
  136. package/dist/{input-chip-Bps8lWjC.cjs.map → input-chip-DnM_iJbj.cjs.map} +1 -1
  137. package/dist/input.cjs +1 -1
  138. package/dist/input.js +1 -1
  139. package/dist/layout.cjs +1 -1
  140. package/dist/layout.js +1 -1
  141. package/dist/{list-lGihowZf.js → list-CXBxuSyn.js} +2 -2
  142. package/dist/{list-lGihowZf.js.map → list-CXBxuSyn.js.map} +1 -1
  143. package/dist/{list-6DG-gWkP.cjs → list-CYvT9cR6.cjs} +2 -2
  144. package/dist/{list-6DG-gWkP.cjs.map → list-CYvT9cR6.cjs.map} +1 -1
  145. package/dist/list.cjs +1 -1
  146. package/dist/list.js +1 -1
  147. package/dist/{litElement.mixin-BOqWtWD7.cjs → litElement.mixin-BlkckXzw.cjs} +2 -2
  148. package/dist/{litElement.mixin-BOqWtWD7.cjs.map → litElement.mixin-BlkckXzw.cjs.map} +1 -1
  149. package/dist/{litElement.mixin-COkgumbp.js → litElement.mixin-DvxIa-6i.js} +2 -2
  150. package/dist/{litElement.mixin-COkgumbp.js.map → litElement.mixin-DvxIa-6i.js.map} +1 -1
  151. package/dist/mailbox.cjs +1 -1
  152. package/dist/mailbox.js +1 -1
  153. package/dist/{map-CEmUG79Z.cjs → map-CnBZmqCI.cjs} +2 -2
  154. package/dist/{map-CEmUG79Z.cjs.map → map-CnBZmqCI.cjs.map} +1 -1
  155. package/dist/{map-Dm6-Ldi2.js → map-DwJzufvh.js} +2 -2
  156. package/dist/{map-Dm6-Ldi2.js.map → map-DwJzufvh.js.map} +1 -1
  157. package/dist/map.cjs +1 -1
  158. package/dist/map.js +1 -1
  159. package/dist/{media-DR-39DF4.cjs → media-CdM6XhRo.cjs} +2 -2
  160. package/dist/{media-DR-39DF4.cjs.map → media-CdM6XhRo.cjs.map} +1 -1
  161. package/dist/{media-I-gnfGOG.js → media-DOKkl0Ic.js} +2 -2
  162. package/dist/{media-I-gnfGOG.js.map → media-DOKkl0Ic.js.map} +1 -1
  163. package/dist/{menu-CBV9tC7E.cjs → menu-1D8Grlkb.cjs} +2 -2
  164. package/dist/{menu-CBV9tC7E.cjs.map → menu-1D8Grlkb.cjs.map} +1 -1
  165. package/dist/{menu-ybFe4rip.js → menu-dj8ocrls.js} +3 -3
  166. package/dist/{menu-ybFe4rip.js.map → menu-dj8ocrls.js.map} +1 -1
  167. package/dist/menu.cjs +1 -1
  168. package/dist/menu.js +1 -1
  169. package/dist/nav-drawer.cjs +1 -1
  170. package/dist/nav-drawer.js +1 -1
  171. package/dist/navigation-bar.cjs +1 -1
  172. package/dist/navigation-bar.js +1 -1
  173. package/dist/{navigation-rail-B8P5mauT.cjs → navigation-rail-CO20kIzL.cjs} +2 -2
  174. package/dist/{navigation-rail-B8P5mauT.cjs.map → navigation-rail-CO20kIzL.cjs.map} +1 -1
  175. package/dist/{navigation-rail-BdV-lakC.js → navigation-rail-DDSUxYea.js} +3 -3
  176. package/dist/{navigation-rail-BdV-lakC.js.map → navigation-rail-DDSUxYea.js.map} +1 -1
  177. package/dist/navigation-rail.cjs +1 -1
  178. package/dist/navigation-rail.js +1 -1
  179. package/dist/{notification-service-Dnfci5v7.cjs → notification-service-DcZEP2es.cjs} +2 -2
  180. package/dist/{notification-service-Dnfci5v7.cjs.map → notification-service-DcZEP2es.cjs.map} +1 -1
  181. package/dist/{notification-service-CGsSCCzQ.js → notification-service-pckh5tN0.js} +4 -4
  182. package/dist/{notification-service-CGsSCCzQ.js.map → notification-service-pckh5tN0.js.map} +1 -1
  183. package/dist/notification.cjs +1 -1
  184. package/dist/notification.js +2 -2
  185. package/dist/{notify-CaLeiAjP.js → notify-CkVQ8Yk1.js} +2 -2
  186. package/dist/{notify-CaLeiAjP.js.map → notify-CkVQ8Yk1.js.map} +1 -1
  187. package/dist/{notify-B6FU_L5j.cjs → notify-G37oQhaA.cjs} +2 -2
  188. package/dist/{notify-B6FU_L5j.cjs.map → notify-G37oQhaA.cjs.map} +1 -1
  189. package/dist/{option-6lIpPpmL.cjs → option-Cjwmga85.cjs} +2 -2
  190. package/dist/{option-6lIpPpmL.cjs.map → option-Cjwmga85.cjs.map} +1 -1
  191. package/dist/{option-CaU38vIH.js → option-aPValeTc.js} +2 -2
  192. package/dist/{option-CaU38vIH.js.map → option-aPValeTc.js.map} +1 -1
  193. package/dist/option.cjs +1 -1
  194. package/dist/option.js +1 -1
  195. package/dist/{payment-card-form-D1Jwf62h.js → payment-card-form-B0kQ8Wr5.js} +3 -3
  196. package/dist/{payment-card-form-D1Jwf62h.js.map → payment-card-form-B0kQ8Wr5.js.map} +1 -1
  197. package/dist/{payment-card-form-BoiyJ200.cjs → payment-card-form-CbGx00Fm.cjs} +2 -2
  198. package/dist/{payment-card-form-BoiyJ200.cjs.map → payment-card-form-CbGx00Fm.cjs.map} +1 -1
  199. package/dist/{progress-D5HItcIt.cjs → progress-CmI5A7Z_.cjs} +2 -2
  200. package/dist/{progress-D5HItcIt.cjs.map → progress-CmI5A7Z_.cjs.map} +1 -1
  201. package/dist/{progress-CCDeBrWN.js → progress-DuqVkW8o.js} +2 -2
  202. package/dist/{progress-CCDeBrWN.js.map → progress-DuqVkW8o.js.map} +1 -1
  203. package/dist/progress.cjs +1 -1
  204. package/dist/progress.js +1 -1
  205. package/dist/{radio-button-DBvcq1he.cjs → radio-button-Chlsm46k.cjs} +2 -2
  206. package/dist/{radio-button-DBvcq1he.cjs.map → radio-button-Chlsm46k.cjs.map} +1 -1
  207. package/dist/{radio-button-T2_iDIjn.js → radio-button-sQa0jt-L.js} +3 -3
  208. package/dist/{radio-button-T2_iDIjn.js.map → radio-button-sQa0jt-L.js.map} +1 -1
  209. package/dist/radio-group.cjs +1 -1
  210. package/dist/radio-group.js +1 -1
  211. package/dist/{schmancy-steps-container-CqzKB-CU.js → schmancy-steps-container-BsVtwIIR.js} +2 -2
  212. package/dist/{schmancy-steps-container-CqzKB-CU.js.map → schmancy-steps-container-BsVtwIIR.js.map} +1 -1
  213. package/dist/{schmancy-steps-container-DWIMp6LQ.cjs → schmancy-steps-container-r34O78hN.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-DWIMp6LQ.cjs.map → schmancy-steps-container-r34O78hN.cjs.map} +1 -1
  215. package/dist/{select-D609EFnZ.js → select-DQNDWSWh.js} +3 -3
  216. package/dist/{select-D609EFnZ.js.map → select-DQNDWSWh.js.map} +1 -1
  217. package/dist/{select-BRMGRukN.cjs → select-lhS0e1Jw.cjs} +2 -2
  218. package/dist/{select-BRMGRukN.cjs.map → select-lhS0e1Jw.cjs.map} +1 -1
  219. package/dist/select.cjs +1 -1
  220. package/dist/select.js +1 -1
  221. package/dist/{sheet-Dn1oACXH.cjs → sheet-CVQ6px7m.cjs} +2 -2
  222. package/dist/{sheet-Dn1oACXH.cjs.map → sheet-CVQ6px7m.cjs.map} +1 -1
  223. package/dist/{sheet-bNj12Jep.js → sheet-DImUVTqD.js} +3 -3
  224. package/dist/{sheet-bNj12Jep.js.map → sheet-DImUVTqD.js.map} +1 -1
  225. package/dist/sheet.cjs +1 -1
  226. package/dist/sheet.js +1 -1
  227. package/dist/{slider-DlMSimST.js → slider-CZMt67fl.js} +3 -3
  228. package/dist/{slider-DlMSimST.js.map → slider-CZMt67fl.js.map} +1 -1
  229. package/dist/{slider-C5tqF0nO.cjs → slider-MzOpDc_J.cjs} +2 -2
  230. package/dist/{slider-C5tqF0nO.cjs.map → slider-MzOpDc_J.cjs.map} +1 -1
  231. package/dist/slider.cjs +1 -1
  232. package/dist/slider.js +1 -1
  233. package/dist/{spinner-CAlukL4U.cjs → spinner-BuujVERe.cjs} +2 -2
  234. package/dist/{spinner-CAlukL4U.cjs.map → spinner-BuujVERe.cjs.map} +1 -1
  235. package/dist/{spinner-C5gsrJLF.js → spinner-CUHM2lNo.js} +2 -2
  236. package/dist/{spinner-C5gsrJLF.js.map → spinner-CUHM2lNo.js.map} +1 -1
  237. package/dist/steps.cjs +1 -1
  238. package/dist/steps.js +1 -1
  239. package/dist/{suggestion-chip-Cnwn6c0a.js → suggestion-chip-8mpcT2Lk.js} +3 -3
  240. package/dist/{suggestion-chip-Cnwn6c0a.js.map → suggestion-chip-8mpcT2Lk.js.map} +1 -1
  241. package/dist/{suggestion-chip-BVfyK0NJ.cjs → suggestion-chip-CzMoacAF.cjs} +2 -2
  242. package/dist/{suggestion-chip-BVfyK0NJ.cjs.map → suggestion-chip-CzMoacAF.cjs.map} +1 -1
  243. package/dist/{surface-DsGqOf5R.cjs → surface-C3B9Sbtw.cjs} +2 -2
  244. package/dist/{surface-DsGqOf5R.cjs.map → surface-C3B9Sbtw.cjs.map} +1 -1
  245. package/dist/{surface-DkMPuTve.js → surface-DdR9DjO8.js} +2 -2
  246. package/dist/{surface-DkMPuTve.js.map → surface-DdR9DjO8.js.map} +1 -1
  247. package/dist/surface.cjs +1 -1
  248. package/dist/surface.js +1 -1
  249. package/dist/{table-i-NLS62P.js → table-DkaAXbrh.js} +2 -2
  250. package/dist/{table-i-NLS62P.js.map → table-DkaAXbrh.js.map} +1 -1
  251. package/dist/{table-m3BFqpLy.cjs → table-Dt0gOEZZ.cjs} +2 -2
  252. package/dist/{table-m3BFqpLy.cjs.map → table-Dt0gOEZZ.cjs.map} +1 -1
  253. package/dist/table.cjs +1 -1
  254. package/dist/table.js +1 -1
  255. package/dist/{tabs-compatibility-CorELwOP.cjs → tabs-compatibility-5WVuGrk5.cjs} +2 -2
  256. package/dist/{tabs-compatibility-CorELwOP.cjs.map → tabs-compatibility-5WVuGrk5.cjs.map} +1 -1
  257. package/dist/{tabs-compatibility-o-QpicRH.js → tabs-compatibility-DGvPxrEr.js} +2 -2
  258. package/dist/{tabs-compatibility-o-QpicRH.js.map → tabs-compatibility-DGvPxrEr.js.map} +1 -1
  259. package/dist/tabs.cjs +1 -1
  260. package/dist/tabs.js +1 -1
  261. package/dist/tailwind.mixin-BbF53_0W.js +43 -0
  262. package/dist/{tailwind.mixin-t4qdJZYU.js.map → tailwind.mixin-BbF53_0W.js.map} +1 -1
  263. package/dist/tailwind.mixin-BiRVB4Hl.cjs +2 -0
  264. package/dist/{tailwind.mixin-B5ggvnsv.cjs.map → tailwind.mixin-BiRVB4Hl.cjs.map} +1 -1
  265. package/dist/teleport.cjs +1 -1
  266. package/dist/teleport.js +1 -1
  267. package/dist/{textarea-nsQCj801.cjs → textarea-CJECXt0r.cjs} +2 -2
  268. package/dist/{textarea-nsQCj801.cjs.map → textarea-CJECXt0r.cjs.map} +1 -1
  269. package/dist/{textarea-Bf4ki8zE.js → textarea-mc3Gk2Ch.js} +2 -2
  270. package/dist/{textarea-Bf4ki8zE.js.map → textarea-mc3Gk2Ch.js.map} +1 -1
  271. package/dist/textarea.cjs +1 -1
  272. package/dist/textarea.js +1 -1
  273. package/dist/{theme-button-C3276dwN.cjs → theme-button-1nU7sd5N.cjs} +2 -2
  274. package/dist/{theme-button-C3276dwN.cjs.map → theme-button-1nU7sd5N.cjs.map} +1 -1
  275. package/dist/{theme-button-Ct614su5.js → theme-button-cDGf9KiE.js} +2 -2
  276. package/dist/{theme-button-Ct614su5.js.map → theme-button-cDGf9KiE.js.map} +1 -1
  277. package/dist/theme-button.cjs +1 -1
  278. package/dist/theme-button.js +1 -1
  279. package/dist/theme.cjs +1 -1
  280. package/dist/{theme.component-sclZlwEH.cjs → theme.component-BpyyRbkh.cjs} +2 -2
  281. package/dist/{theme.component-sclZlwEH.cjs.map → theme.component-BpyyRbkh.cjs.map} +1 -1
  282. package/dist/{theme.component-BjZrB7ia.js → theme.component-HF6Qt0YA.js} +2 -2
  283. package/dist/{theme.component-BjZrB7ia.js.map → theme.component-HF6Qt0YA.js.map} +1 -1
  284. package/dist/theme.js +1 -1
  285. package/dist/{timezone-YRr3A-Lm.js → timezone-8UCGVbbl.js} +3 -3
  286. package/dist/{timezone-YRr3A-Lm.js.map → timezone-8UCGVbbl.js.map} +1 -1
  287. package/dist/{timezone-Dac-JVch.cjs → timezone-DC3VVwlT.cjs} +2 -2
  288. package/dist/{timezone-Dac-JVch.cjs.map → timezone-DC3VVwlT.cjs.map} +1 -1
  289. package/dist/{tooltip-6Oyr6pbf.js → tooltip-C5r_jUM1.js} +2 -2
  290. package/dist/{tooltip-6Oyr6pbf.js.map → tooltip-C5r_jUM1.js.map} +1 -1
  291. package/dist/{tooltip-DmyzYkj4.cjs → tooltip-DNl5aBNp.cjs} +2 -2
  292. package/dist/{tooltip-DmyzYkj4.cjs.map → tooltip-DNl5aBNp.cjs.map} +1 -1
  293. package/dist/tooltip.cjs +1 -1
  294. package/dist/tooltip.js +1 -1
  295. package/dist/{tree-Dykg9PVs.js → tree-CeNor9l6.js} +2 -2
  296. package/dist/{tree-Dykg9PVs.js.map → tree-CeNor9l6.js.map} +1 -1
  297. package/dist/{tree-Bzi_9Pyn.cjs → tree-yiGCSyyN.cjs} +2 -2
  298. package/dist/{tree-Bzi_9Pyn.cjs.map → tree-yiGCSyyN.cjs.map} +1 -1
  299. package/dist/tree.cjs +1 -1
  300. package/dist/tree.js +1 -1
  301. package/dist/{typewriter-Bv4bwE0O.js → typewriter-BbQsON2M.js} +4 -4
  302. package/dist/{typewriter-Bv4bwE0O.js.map → typewriter-BbQsON2M.js.map} +1 -1
  303. package/dist/{typewriter-BAWBxSs8.cjs → typewriter-CWFH8-z-.cjs} +2 -2
  304. package/dist/{typewriter-BAWBxSs8.cjs.map → typewriter-CWFH8-z-.cjs.map} +1 -1
  305. package/dist/typewriter.cjs +1 -1
  306. package/dist/typewriter.js +1 -1
  307. package/dist/{typography-DpkgWs15.cjs → typography-ByLTIj6U.cjs} +2 -2
  308. package/dist/{typography-DpkgWs15.cjs.map → typography-ByLTIj6U.cjs.map} +1 -1
  309. package/dist/{typography-lNs92vU0.js → typography-PFj-xY2T.js} +2 -2
  310. package/dist/{typography-lNs92vU0.js.map → typography-PFj-xY2T.js.map} +1 -1
  311. package/dist/typography.cjs +1 -1
  312. package/dist/typography.js +1 -1
  313. package/package.json +1 -1
  314. package/types/src/boat/boat.d.ts +25 -18
  315. package/dist/boat-Du6EgSxQ.js +0 -157
  316. package/dist/boat-Du6EgSxQ.js.map +0 -1
  317. package/dist/boat-Nd_h9cld.cjs +0 -51
  318. package/dist/boat-Nd_h9cld.cjs.map +0 -1
  319. package/dist/tailwind.mixin-B5ggvnsv.cjs +0 -2
  320. package/dist/tailwind.mixin-t4qdJZYU.js +0 -43
package/dist/badge.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-BAVfTtEM.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-8CSFLRvq.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-BCOzG2-D.js";
1
+ import { a as e, S } from "./avatar-BcnWoLvo.js";
2
2
  export {
3
3
  e as ScBadgeV2,
4
4
  S as SchmancyBadgeV2
@@ -0,0 +1,174 @@
1
+ import { T as w } from "./tailwind.mixin-BbF53_0W.js";
2
+ import { css as v, html as S } from "lit";
3
+ import { property as g, state as p, customElement as z } from "lit/decorators.js";
4
+ import { createRef as m, ref as x } from "lit/directives/ref.js";
5
+ import { Subject as C, fromEvent as k, EMPTY as b, merge as R, of as l } from "rxjs";
6
+ import { debounceTime as $, filter as A, tap as d, scan as F, switchMap as y, catchError as I, finalize as L, shareReplay as P, takeUntil as O } from "rxjs/operators";
7
+ var E = Object.defineProperty, N = Object.getOwnPropertyDescriptor, c = (t, e, i, n) => {
8
+ for (var r, s = n > 1 ? void 0 : n ? N(e, i) : e, a = t.length - 1; a >= 0; a--) (r = t[a]) && (s = (n ? r(e, i, s) : r(s)) || s);
9
+ return n && s && E(e, i, s), s;
10
+ };
11
+ let o = class extends w(v`
12
+ /* Performance optimization - GPU hints only */
13
+ .boat-container {
14
+ will-change: transform, border-radius, width, max-width, box-shadow;
15
+ contain: layout style;
16
+ transform: translate3d(0, 0, 0); /* Force GPU acceleration */
17
+ backface-visibility: hidden;
18
+ }
19
+ `) {
20
+ constructor() {
21
+ super(...arguments), this.stateChange$ = new C(), this.containerRef = m(), this.contentRef = m(), this.iconRef = m(), 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;
22
+ }
23
+ get state() {
24
+ return this.currentState;
25
+ }
26
+ set state(t) {
27
+ this.stateChange$.next({ source: "external", target: t, type: "state" });
28
+ }
29
+ get lowered() {
30
+ return this.isLowered;
31
+ }
32
+ set lowered(t) {
33
+ this.stateChange$.next({ source: "external", target: this.currentState, type: "lowered" }), this.isLowered = t;
34
+ }
35
+ connectedCallback() {
36
+ super.connectedCallback(), this.setupUnifiedPipeline();
37
+ }
38
+ setupUnifiedPipeline() {
39
+ const t = typeof window < "u" ? k(window, "resize").pipe($(100), A(() => this.currentState === "expanded"), d(() => this.stateChange$.next({ source: "resize", type: "resize" }))) : b;
40
+ R(l({ source: "internal", target: "minimized", type: "state" }), this.stateChange$, t).pipe(F((e, i) => i.type === "resize" && this.currentState === "expanded" ? (this.updateExpandedWidth(), { ...e, resized: !0 }) : i.type === "lowered" ? { ...e, lowered: !e.lowered } : i.type === "state" && i.target && i.target !== e.current ? { ...e, previous: e.current, current: i.target, pending: !0, source: i.source } : e, { current: "minimized", previous: "minimized", pending: !1, lowered: !1, resized: !1, source: "internal" }), d((e) => {
41
+ this.isLowered = e.lowered;
42
+ }), y((e) => !e.pending || this.isAnimating ? l(e) : (this.isAnimating = !0, this.animateTransition(e.previous, e.current).pipe(d(() => {
43
+ this.currentState = e.current, this.isContentVisible = e.current === "expanded", this.dispatchEvent(new CustomEvent("toggle", { detail: e.current, bubbles: !0, composed: !0 }));
44
+ }), I((i) => (this.currentState = e.current, this.isContentVisible = e.current === "expanded", l(e))), L(() => {
45
+ this.isAnimating = !1;
46
+ }), d(() => e.pending = !1)))), P(1), O(this.disconnecting)).subscribe();
47
+ }
48
+ animateTransition(t, e) {
49
+ return l({ fromState: t, toState: e }).pipe(d(() => this.currentAnimation?.cancel()), y(({ fromState: i, toState: n }) => {
50
+ if (!this.containerRef.value) return b;
51
+ n === "expanded" && (this.isContentVisible = !0);
52
+ const r = this.createAnimations(i, n);
53
+ return new Promise((s) => {
54
+ const a = r.container;
55
+ a ? (this.currentAnimation = a, a.finished.then(() => {
56
+ n !== "expanded" && (this.isContentVisible = !1), s();
57
+ }).catch(() => s())) : s();
58
+ });
59
+ }));
60
+ }
61
+ createAnimations(t, e) {
62
+ const i = this.containerRef.value, n = this.contentRef.value, r = this.iconRef.value, s = {};
63
+ if (!i) return s;
64
+ const a = this.ANIMATION_CONFIG, f = this.getStyleForState(t), h = this.getStyleForState(e);
65
+ if (s.container = e === "expanded" ? i.animate([f, { ...h, transform: "translate3d(0, -8px, 0)", offset: 0.7 }, h], { duration: a.durations.expand, easing: a.easing.decelerate, fill: "forwards" }) : i.animate([f, h], { duration: e === "hidden" ? a.durations.hide : a.durations.minimize, easing: a.easing.accelerate, fill: "forwards" }), n && t === "expanded" && e === "minimized" ? n.animate([{ opacity: 1, transform: "translateY(0)" }, { opacity: 0, transform: "translateY(-8px)" }], { duration: 150, easing: a.easing.standard, fill: "forwards" }) : n && e === "expanded" && n.animate([{ opacity: 0, transform: "translateY(8px)" }, { opacity: 1, transform: "translateY(0)" }], { duration: a.durations.content, easing: a.easing.standard, fill: "forwards" }), r) {
66
+ const u = e === "expanded";
67
+ (u || t === "expanded" && e === "minimized") && r.animate([{ transform: u ? "rotate(0deg)" : "rotate(180deg)" }, { transform: u ? "rotate(180deg)" : "rotate(0deg)" }], { duration: 250, easing: a.easing.emphasized, fill: "forwards" });
68
+ }
69
+ return s;
70
+ }
71
+ getStyleForState(t) {
72
+ const { shadows: e } = this.ANIMATION_CONFIG, i = { width: "300px", maxWidth: "300px", maxHeight: "auto", borderRadius: "16px" };
73
+ return { hidden: { ...i, transform: "translate3d(0, calc(100% + 16px), 0)", boxShadow: "none", backdropFilter: "none" }, minimized: { ...i, transform: "translate3d(0, calc(100% - 56px), 0)", boxShadow: this.isLowered ? e.fabLowered : e.fab, backdropFilter: "none" }, expanded: { transform: "translate3d(0, 0, 0)", width: this.getResponsiveWidth(), maxWidth: "100%", maxHeight: "80vh", boxShadow: e.expanded, borderRadius: "8px 8px 0 0", backdropFilter: "blur(12px)" } }[t];
74
+ }
75
+ getResponsiveWidth() {
76
+ if (typeof window > "u") return "40vw";
77
+ const t = window.innerWidth;
78
+ return t < 768 ? "calc(100vw - 32px)" : t < 1024 ? "70vw" : t < 1280 ? "60vw" : "40vw";
79
+ }
80
+ updateExpandedWidth() {
81
+ const t = this.containerRef.value;
82
+ t && this.currentState === "expanded" && (t.style.width = this.getResponsiveWidth());
83
+ }
84
+ firstUpdated() {
85
+ this.applyInitialStyles();
86
+ }
87
+ applyInitialStyles() {
88
+ const t = this.containerRef.value, e = this.contentRef.value, i = this.iconRef.value;
89
+ if (t) {
90
+ const n = this.getStyleForState(this.currentState);
91
+ Object.assign(t.style, n), "webkitBackdropFilter" in t.style && (t.style.webkitBackdropFilter = n.backdropFilter);
92
+ }
93
+ e && (e.style.opacity = this.isContentVisible ? "1" : "0"), i && this.currentState === "expanded" && (i.style.transform = "rotate(180deg)");
94
+ }
95
+ toggleState() {
96
+ const t = this.currentState === "minimized" ? "expanded" : "minimized";
97
+ this.stateChange$.next({ source: "internal", target: t, type: "state" });
98
+ }
99
+ close() {
100
+ this.stateChange$.next({ source: "internal", target: "hidden", type: "state" });
101
+ }
102
+ disconnectedCallback() {
103
+ super.disconnectedCallback(), this.currentAnimation?.cancel(), this.stateChange$.complete();
104
+ }
105
+ render() {
106
+ const t = this.currentState === "minimized" ? this.isLowered ? "1" : "3" : "4", e = this.currentState === "minimized", i = e ? "expand_less" : "expand_more";
107
+ return S`
108
+ <div
109
+ class="boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col"
110
+ ${x(this.containerRef)}
111
+ >
112
+ <!-- Header section -->
113
+ <section class="sticky top-0 z-10">
114
+ <schmancy-surface
115
+ elevation="${t}"
116
+ class="cursor-pointer"
117
+ rounded="${e ? "none" : "top"}"
118
+ type="containerLowest"
119
+ @click=${() => this.toggleState()}
120
+ >
121
+ <div class="sticky top-0 px-3 py-2 flex items-center justify-between gap-3">
122
+ <!-- Header content slot -->
123
+ <div class="flex-1 flex items-center min-w-0">
124
+ <slot name="header"></slot>
125
+ </div>
126
+
127
+ <!-- Control buttons -->
128
+ <div class="flex items-center gap-1 flex-shrink-0">
129
+ <!-- Toggle button -->
130
+ <schmancy-icon-button
131
+ variant="${e ? "text" : "filled tonal"}"
132
+ @click=${(n) => {
133
+ n.stopPropagation(), this.toggleState();
134
+ }}
135
+ title=${e ? "Expand" : "Minimize"}
136
+ >
137
+ <span class="icon-container" ${x(this.iconRef)}>
138
+ ${i}
139
+ </span>
140
+ </schmancy-icon-button>
141
+
142
+ <!-- Close button -->
143
+ <schmancy-icon-button
144
+ variant="text"
145
+ @click=${(n) => {
146
+ n.stopPropagation(), this.close();
147
+ }}
148
+ title="Close"
149
+ >
150
+ close
151
+ </schmancy-icon-button>
152
+ </div>
153
+ </div>
154
+ </schmancy-surface>
155
+ </section>
156
+
157
+ <!-- Content section -->
158
+ <schmancy-surface
159
+ .hidden=${!this.isContentVisible}
160
+ type="containerLow"
161
+ class="boat-content z-0 flex-1"
162
+ ${x(this.contentRef)}
163
+ >
164
+ <slot></slot>
165
+ </schmancy-surface>
166
+ </div>
167
+ `;
168
+ }
169
+ };
170
+ c([g({ type: String, reflect: !0 })], o.prototype, "state", 1), c([g({ type: Boolean, reflect: !0 })], o.prototype, "lowered", 1), c([p()], o.prototype, "currentState", 2), c([p()], o.prototype, "isContentVisible", 2), c([p()], o.prototype, "isAnimating", 2), c([p()], o.prototype, "isLowered", 2), o = c([z("schmancy-boat")], o);
171
+ export {
172
+ o as S
173
+ };
174
+ //# sourceMappingURL=boat-BTSQNgJQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boat-BTSQNgJQ.js","sources":["../src/boat/boat.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport {\n Subject,\n fromEvent,\n merge,\n of,\n EMPTY\n} from 'rxjs'\nimport {\n filter,\n switchMap,\n takeUntil,\n tap,\n finalize,\n catchError,\n debounceTime,\n scan,\n shareReplay\n} from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\n// State change event for the unified pipeline\ninterface StateChangeEvent {\n\tsource: 'internal' | 'external' | 'resize'\n\ttarget?: BoatState\n\ttype: 'state' | 'lowered' | 'resize'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends TailwindElement(css`\n\t/* Performance optimization - GPU hints only */\n\t.boat-container {\n\t\twill-change: transform, border-radius, width, max-width, box-shadow;\n\t\tcontain: layout style;\n\t\ttransform: translate3d(0, 0, 0); /* Force GPU acceleration */\n\t\tbackface-visibility: hidden;\n\t}\n`) {\n\t// Public properties - route ALL changes through stateChange$\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\t// Route external state changes through the unified pipeline\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: value,\n\t\t\ttype: 'state'\n\t\t})\n\t}\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.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: this.currentState,\n\t\t\ttype: 'lowered'\n\t\t})\n\t\tthis.isLowered = value\n\t}\n\n\t// Single unified state change stream - ALL state changes go through this\n\tprivate stateChange$ = new Subject<StateChangeEvent>()\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: 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: '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\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupUnifiedPipeline()\n\t}\n\n\tprivate setupUnifiedPipeline() {\n\t\t// Create resize stream\n\t\tconst resize$ = typeof window !== 'undefined'\n\t\t\t? fromEvent(window, 'resize').pipe(\n\t\t\t\tdebounceTime(100),\n\t\t\t\tfilter(() => this.currentState === 'expanded'),\n\t\t\t\ttap(() => this.stateChange$.next({\n\t\t\t\t\tsource: 'resize',\n\t\t\t\t\ttype: 'resize'\n\t\t\t\t}))\n\t\t\t)\n\t\t\t: EMPTY\n\n\t\t// SINGLE UNIFIED PIPELINE - All state management in ONE place\n\t\tmerge(\n\t\t\t// Initial state\n\t\t\tof({\n\t\t\t\tsource: 'internal' as const,\n\t\t\t\ttarget: 'minimized' as BoatState,\n\t\t\t\ttype: 'state' as const\n\t\t\t}),\n\t\t\t// All state changes\n\t\t\tthis.stateChange$,\n\t\t\t// Window resize events\n\t\t\tresize$\n\t\t).pipe(\n\t\t\t// Accumulate state and handle all changes\n\t\t\tscan((state, event: StateChangeEvent) => {\n\t\t\t\t// Handle different event types\n\t\t\t\tif (event.type === 'resize' && this.currentState === 'expanded') {\n\t\t\t\t\t// Just update width, no animation needed\n\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\treturn { ...state, resized: true }\n\t\t\t\t}\n\n\t\t\t\tif (event.type === 'lowered') {\n\t\t\t\t\t// Update lowered state\n\t\t\t\t\treturn { ...state, lowered: !state.lowered }\n\t\t\t\t}\n\n\t\t\t\t// Handle state changes\n\t\t\t\tif (event.type === 'state' && event.target && event.target !== state.current) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tprevious: state.current,\n\t\t\t\t\t\tcurrent: event.target,\n\t\t\t\t\t\tpending: true,\n\t\t\t\t\t\tsource: event.source\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn state\n\t\t\t}, {\n\t\t\t\tcurrent: 'minimized' as BoatState,\n\t\t\t\tprevious: 'minimized' as BoatState,\n\t\t\t\tpending: false,\n\t\t\t\tlowered: false,\n\t\t\t\tresized: false,\n\t\t\t\tsource: 'internal' as 'internal' | 'external' | 'resize'\n\t\t\t}),\n\n\t\t\t// Only process when there's a pending state change\n\t\t\ttap(state => {\n\t\t\t\t// Always update lowered state\n\t\t\t\tthis.isLowered = state.lowered\n\t\t\t}),\n\n\t\t\t// Handle animations for state transitions\n\t\t\tswitchMap(state => {\n\t\t\t\tif (!state.pending || this.isAnimating) {\n\t\t\t\t\treturn of(state)\n\t\t\t\t}\n\n\t\t\t\t// Mark as animating\n\t\t\t\tthis.isAnimating = true\n\n\t\t\t\t// Animate the transition\n\t\t\t\treturn this.animateTransition(state.previous, state.current).pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t// Update state after animation completes\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\n\t\t\t\t\t\t// Dispatch event\n\t\t\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', {\n\t\t\t\t\t\t\tdetail: state.current,\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}))\n\t\t\t\t\t}),\n\t\t\t\t\tcatchError(err => {\n\t\t\t\t\t\tconsole.warn('Animation error:', err)\n\t\t\t\t\t\t// Still update state even if animation fails\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\t\t\t\t\t\treturn of(state)\n\t\t\t\t\t}),\n\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\tthis.isAnimating = false\n\t\t\t\t\t}),\n\t\t\t\t\t// Return the state for next iteration\n\t\t\t\t\ttap(() => state.pending = false)\n\t\t\t\t)\n\t\t\t}),\n\n\t\t\t// Share the pipeline result\n\t\t\tshareReplay(1),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\t// Simplified animation transition method\n\tprivate animateTransition(fromState: BoatState, toState: BoatState) {\n\t\treturn of({ fromState, toState }).pipe(\n\t\t\ttap(() => this.currentAnimation?.cancel()),\n\t\t\tswitchMap(({ fromState, toState }) => {\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (!container) return EMPTY\n\n\t\t\t\t// Update content visibility before expand, after minimize\n\t\t\t\tif (toState === 'expanded') {\n\t\t\t\t\tthis.isContentVisible = true\n\t\t\t\t}\n\n\t\t\t\t// Create animation based on target state\n\t\t\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t\t\t// Execute animations and return completion promise\n\t\t\t\treturn new Promise<void>((resolve) => {\n\t\t\t\t\tconst mainAnimation = animations.container\n\t\t\t\t\tif (mainAnimation) {\n\t\t\t\t\t\tthis.currentAnimation = mainAnimation\n\t\t\t\t\t\tmainAnimation.finished.then(() => {\n\t\t\t\t\t\t\tif (toState !== 'expanded') {\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t})\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// Add bounce effect for expand\n\t\t\tanimations.container = container.animate([\n\t\t\t\tfromStyles,\n\t\t\t\t{ ...toStyles, transform: 'translate3d(0, -8px, 0)', offset: 0.7 },\n\t\t\t\ttoStyles,\n\t\t\t], {\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{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t], {\n\t\t\t\tduration: 150,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\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{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t], {\n\t\t\t\tduration: config.durations.content,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\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{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t], {\n\t\t\t\t\tduration: 250,\n\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\tfill: 'forwards',\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\twidth: '300px',\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\ttransform: 'translate3d(0, calc(100% + 16px), 0)',\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\ttransform: 'translate3d(0, calc(100% - 56px), 0)',\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\ttransform: 'translate3d(0, 0, 0)',\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\t// Initialize component styles after first render\n\tfirstUpdated() {\n\t\t// Apply initial styles\n\t\tthis.applyInitialStyles()\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\t// Public method to toggle between minimized and expanded\n\ttoggleState() {\n\t\tconst newState = this.currentState === 'minimized' ? 'expanded' : 'minimized'\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: newState,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: 'hidden',\n\t\t\ttype: 'state'\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\tthis.stateChange$.complete()\n\t}\n\n\t// Render the component\n\tprotected render(): unknown {\n\t\t// Calculate dynamic values\n\t\tconst surfaceElevation = this.currentState === 'minimized'\n\t\t\t? (this.isLowered ? '1' : '3')\n\t\t\t: '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\t\tconst iconName = isMinimized ? 'expand_less' : 'expand_more'\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col\"\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 z-10\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\tclass=\"cursor-pointer\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t\t@click=${() => this.toggleState()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"sticky top-0 px-3 py-2 flex items-center justify-between gap-3\">\n\t\t\t\t\t\t\t<!-- Header content slot -->\n\t\t\t\t\t\t\t<div class=\"flex-1 flex items-center min-w-0\">\n\t\t\t\t\t\t\t\t<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<!-- Toggle button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"${isMinimized ? 'text' : 'filled tonal'}\"\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.toggleState()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=${isMinimized ? 'Expand' : 'Minimize'}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span class=\"icon-container\" ${ref(this.iconRef)}>\n\t\t\t\t\t\t\t\t\t\t${iconName}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\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.close()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tclose\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\n\t\t\t\t\t.hidden=${!this.isContentVisible}\n\t\t\t\t\ttype=\"containerLow\"\n\t\t\t\t\tclass=\"boat-content z-0 flex-1\"\n\t\t\t\t\t${ref(this.contentRef)}\n\t\t\t\t>\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}"],"names":["SchmancyBoat","TailwindElement","css","super","arguments","this","stateChange$","Subject","containerRef","createRef","contentRef","iconRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","state","value","next","source","target","type","connectedCallback","setupUnifiedPipeline","resize$","window","fromEvent","pipe","debounceTime","filter","tap","EMPTY","merge","of","scan","event","updateExpandedWidth","resized","lowered","current","previous","pending","switchMap","animateTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","catchError","err","finalize","shareReplay","takeUntil","disconnecting","subscribe","fromState","toState","currentAnimation","cancel","animations","createAnimations","Promise","resolve","mainAnimation","container","finished","then","catch","icon","config","fromStyles","getStyleForState","toStyles","animate","transform","offset","duration","fill","opacity","isExpanding","baseStyles","width","maxWidth","maxHeight","borderRadius","hidden","boxShadow","backdropFilter","minimized","getResponsiveWidth","vw","innerWidth","style","applyInitialStyles","initialStyle","Object","assign","webkitBackdropFilter","newState","close","disconnectedCallback","complete","render","surfaceElevation","isMinimized","iconName","html","ref","toggleState","e","stopPropagation","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";const f=require("./tailwind.mixin-BiRVB4Hl.cjs"),x=require("lit"),d=require("lit/decorators.js"),l=require("lit/directives/ref.js"),o=require("rxjs"),s=require("rxjs/operators");var g=Object.defineProperty,y=Object.getOwnPropertyDescriptor,p=(t,e,i,n)=>{for(var c,r=n>1?void 0:n?y(e,i):e,a=t.length-1;a>=0;a--)(c=t[a])&&(r=(n?c(e,i,r):c(r))||r);return n&&r&&g(e,i,r),r};exports.SchmancyBoat=class extends f.TailwindElement(x.css`
2
+ /* Performance optimization - GPU hints only */
3
+ .boat-container {
4
+ will-change: transform, border-radius, width, max-width, box-shadow;
5
+ contain: layout style;
6
+ transform: translate3d(0, 0, 0); /* Force GPU acceleration */
7
+ backface-visibility: hidden;
8
+ }
9
+ `){constructor(){super(...arguments),this.stateChange$=new o.Subject,this.containerRef=l.createRef(),this.contentRef=l.createRef(),this.iconRef=l.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}get state(){return this.currentState}set state(t){this.stateChange$.next({source:"external",target:t,type:"state"})}get lowered(){return this.isLowered}set lowered(t){this.stateChange$.next({source:"external",target:this.currentState,type:"lowered"}),this.isLowered=t}connectedCallback(){super.connectedCallback(),this.setupUnifiedPipeline()}setupUnifiedPipeline(){const t=typeof window<"u"?o.fromEvent(window,"resize").pipe(s.debounceTime(100),s.filter(()=>this.currentState==="expanded"),s.tap(()=>this.stateChange$.next({source:"resize",type:"resize"}))):o.EMPTY;o.merge(o.of({source:"internal",target:"minimized",type:"state"}),this.stateChange$,t).pipe(s.scan((e,i)=>i.type==="resize"&&this.currentState==="expanded"?(this.updateExpandedWidth(),{...e,resized:!0}):i.type==="lowered"?{...e,lowered:!e.lowered}:i.type==="state"&&i.target&&i.target!==e.current?{...e,previous:e.current,current:i.target,pending:!0,source:i.source}:e,{current:"minimized",previous:"minimized",pending:!1,lowered:!1,resized:!1,source:"internal"}),s.tap(e=>{this.isLowered=e.lowered}),s.switchMap(e=>!e.pending||this.isAnimating?o.of(e):(this.isAnimating=!0,this.animateTransition(e.previous,e.current).pipe(s.tap(()=>{this.currentState=e.current,this.isContentVisible=e.current==="expanded",this.dispatchEvent(new CustomEvent("toggle",{detail:e.current,bubbles:!0,composed:!0}))}),s.catchError(i=>(this.currentState=e.current,this.isContentVisible=e.current==="expanded",o.of(e))),s.finalize(()=>{this.isAnimating=!1}),s.tap(()=>e.pending=!1)))),s.shareReplay(1),s.takeUntil(this.disconnecting)).subscribe()}animateTransition(t,e){return o.of({fromState:t,toState:e}).pipe(s.tap(()=>this.currentAnimation?.cancel()),s.switchMap(({fromState:i,toState:n})=>{if(!this.containerRef.value)return o.EMPTY;n==="expanded"&&(this.isContentVisible=!0);const c=this.createAnimations(i,n);return new Promise(r=>{const a=c.container;a?(this.currentAnimation=a,a.finished.then(()=>{n!=="expanded"&&(this.isContentVisible=!1),r()}).catch(()=>r())):r()})}))}createAnimations(t,e){const i=this.containerRef.value,n=this.contentRef.value,c=this.iconRef.value,r={};if(!i)return r;const a=this.ANIMATION_CONFIG,m=this.getStyleForState(t),h=this.getStyleForState(e);if(r.container=e==="expanded"?i.animate([m,{...h,transform:"translate3d(0, -8px, 0)",offset:.7},h],{duration:a.durations.expand,easing:a.easing.decelerate,fill:"forwards"}):i.animate([m,h],{duration:e==="hidden"?a.durations.hide:a.durations.minimize,easing:a.easing.accelerate,fill:"forwards"}),n&&t==="expanded"&&e==="minimized"?n.animate([{opacity:1,transform:"translateY(0)"},{opacity:0,transform:"translateY(-8px)"}],{duration:150,easing:a.easing.standard,fill:"forwards"}):n&&e==="expanded"&&n.animate([{opacity:0,transform:"translateY(8px)"},{opacity:1,transform:"translateY(0)"}],{duration:a.durations.content,easing:a.easing.standard,fill:"forwards"}),c){const u=e==="expanded";(u||t==="expanded"&&e==="minimized")&&c.animate([{transform:u?"rotate(0deg)":"rotate(180deg)"},{transform:u?"rotate(180deg)":"rotate(0deg)"}],{duration:250,easing:a.easing.emphasized,fill:"forwards"})}return r}getStyleForState(t){const{shadows:e}=this.ANIMATION_CONFIG,i={width:"300px",maxWidth:"300px",maxHeight:"auto",borderRadius:"16px"};return{hidden:{...i,transform:"translate3d(0, calc(100% + 16px), 0)",boxShadow:"none",backdropFilter:"none"},minimized:{...i,transform:"translate3d(0, calc(100% - 56px), 0)",boxShadow:this.isLowered?e.fabLowered:e.fab,backdropFilter:"none"},expanded:{transform:"translate3d(0, 0, 0)",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.applyInitialStyles()}applyInitialStyles(){const t=this.containerRef.value,e=this.contentRef.value,i=this.iconRef.value;if(t){const n=this.getStyleForState(this.currentState);Object.assign(t.style,n),"webkitBackdropFilter"in t.style&&(t.style.webkitBackdropFilter=n.backdropFilter)}e&&(e.style.opacity=this.isContentVisible?"1":"0"),i&&this.currentState==="expanded"&&(i.style.transform="rotate(180deg)")}toggleState(){const t=this.currentState==="minimized"?"expanded":"minimized";this.stateChange$.next({source:"internal",target:t,type:"state"})}close(){this.stateChange$.next({source:"internal",target:"hidden",type:"state"})}disconnectedCallback(){super.disconnectedCallback(),this.currentAnimation?.cancel(),this.stateChange$.complete()}render(){const t=this.currentState==="minimized"?this.isLowered?"1":"3":"4",e=this.currentState==="minimized",i=e?"expand_less":"expand_more";return x.html`
10
+ <div
11
+ class="boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col"
12
+ ${l.ref(this.containerRef)}
13
+ >
14
+ <!-- Header section -->
15
+ <section class="sticky top-0 z-10">
16
+ <schmancy-surface
17
+ elevation="${t}"
18
+ class="cursor-pointer"
19
+ rounded="${e?"none":"top"}"
20
+ type="containerLowest"
21
+ @click=${()=>this.toggleState()}
22
+ >
23
+ <div class="sticky top-0 px-3 py-2 flex items-center justify-between gap-3">
24
+ <!-- Header content slot -->
25
+ <div class="flex-1 flex items-center min-w-0">
26
+ <slot name="header"></slot>
27
+ </div>
28
+
29
+ <!-- Control buttons -->
30
+ <div class="flex items-center gap-1 flex-shrink-0">
31
+ <!-- Toggle button -->
32
+ <schmancy-icon-button
33
+ variant="${e?"text":"filled tonal"}"
34
+ @click=${n=>{n.stopPropagation(),this.toggleState()}}
35
+ title=${e?"Expand":"Minimize"}
36
+ >
37
+ <span class="icon-container" ${l.ref(this.iconRef)}>
38
+ ${i}
39
+ </span>
40
+ </schmancy-icon-button>
41
+
42
+ <!-- Close button -->
43
+ <schmancy-icon-button
44
+ variant="text"
45
+ @click=${n=>{n.stopPropagation(),this.close()}}
46
+ title="Close"
47
+ >
48
+ close
49
+ </schmancy-icon-button>
50
+ </div>
51
+ </div>
52
+ </schmancy-surface>
53
+ </section>
54
+
55
+ <!-- Content section -->
56
+ <schmancy-surface
57
+ .hidden=${!this.isContentVisible}
58
+ type="containerLow"
59
+ class="boat-content z-0 flex-1"
60
+ ${l.ref(this.contentRef)}
61
+ >
62
+ <slot></slot>
63
+ </schmancy-surface>
64
+ </div>
65
+ `}},p([d.property({type:String,reflect:!0})],exports.SchmancyBoat.prototype,"state",1),p([d.property({type:Boolean,reflect:!0})],exports.SchmancyBoat.prototype,"lowered",1),p([d.state()],exports.SchmancyBoat.prototype,"currentState",2),p([d.state()],exports.SchmancyBoat.prototype,"isContentVisible",2),p([d.state()],exports.SchmancyBoat.prototype,"isAnimating",2),p([d.state()],exports.SchmancyBoat.prototype,"isLowered",2),exports.SchmancyBoat=p([d.customElement("schmancy-boat")],exports.SchmancyBoat);
66
+ //# sourceMappingURL=boat-BtViHW8M.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boat-BtViHW8M.cjs","sources":["../src/boat/boat.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/tailwind.mixin'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { createRef, ref, Ref } from 'lit/directives/ref.js'\nimport {\n Subject,\n fromEvent,\n merge,\n of,\n EMPTY\n} from 'rxjs'\nimport {\n filter,\n switchMap,\n takeUntil,\n tap,\n finalize,\n catchError,\n debounceTime,\n scan,\n shareReplay\n} from 'rxjs/operators'\n\ntype BoatState = 'hidden' | 'minimized' | 'expanded'\n\n// State change event for the unified pipeline\ninterface StateChangeEvent {\n\tsource: 'internal' | 'external' | 'resize'\n\ttarget?: BoatState\n\ttype: 'state' | 'lowered' | 'resize'\n}\n\n@customElement('schmancy-boat')\nexport default class SchmancyBoat extends TailwindElement(css`\n\t/* Performance optimization - GPU hints only */\n\t.boat-container {\n\t\twill-change: transform, border-radius, width, max-width, box-shadow;\n\t\tcontain: layout style;\n\t\ttransform: translate3d(0, 0, 0); /* Force GPU acceleration */\n\t\tbackface-visibility: hidden;\n\t}\n`) {\n\t// Public properties - route ALL changes through stateChange$\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\t// Route external state changes through the unified pipeline\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: value,\n\t\t\ttype: 'state'\n\t\t})\n\t}\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.stateChange$.next({\n\t\t\tsource: 'external',\n\t\t\ttarget: this.currentState,\n\t\t\ttype: 'lowered'\n\t\t})\n\t\tthis.isLowered = value\n\t}\n\n\t// Single unified state change stream - ALL state changes go through this\n\tprivate stateChange$ = new Subject<StateChangeEvent>()\n\n\t// Element references\n\tprivate containerRef: Ref<HTMLDivElement> = createRef()\n\tprivate contentRef: Ref<HTMLElement> = createRef()\n\tprivate iconRef: 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: '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\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupUnifiedPipeline()\n\t}\n\n\tprivate setupUnifiedPipeline() {\n\t\t// Create resize stream\n\t\tconst resize$ = typeof window !== 'undefined'\n\t\t\t? fromEvent(window, 'resize').pipe(\n\t\t\t\tdebounceTime(100),\n\t\t\t\tfilter(() => this.currentState === 'expanded'),\n\t\t\t\ttap(() => this.stateChange$.next({\n\t\t\t\t\tsource: 'resize',\n\t\t\t\t\ttype: 'resize'\n\t\t\t\t}))\n\t\t\t)\n\t\t\t: EMPTY\n\n\t\t// SINGLE UNIFIED PIPELINE - All state management in ONE place\n\t\tmerge(\n\t\t\t// Initial state\n\t\t\tof({\n\t\t\t\tsource: 'internal' as const,\n\t\t\t\ttarget: 'minimized' as BoatState,\n\t\t\t\ttype: 'state' as const\n\t\t\t}),\n\t\t\t// All state changes\n\t\t\tthis.stateChange$,\n\t\t\t// Window resize events\n\t\t\tresize$\n\t\t).pipe(\n\t\t\t// Accumulate state and handle all changes\n\t\t\tscan((state, event: StateChangeEvent) => {\n\t\t\t\t// Handle different event types\n\t\t\t\tif (event.type === 'resize' && this.currentState === 'expanded') {\n\t\t\t\t\t// Just update width, no animation needed\n\t\t\t\t\tthis.updateExpandedWidth()\n\t\t\t\t\treturn { ...state, resized: true }\n\t\t\t\t}\n\n\t\t\t\tif (event.type === 'lowered') {\n\t\t\t\t\t// Update lowered state\n\t\t\t\t\treturn { ...state, lowered: !state.lowered }\n\t\t\t\t}\n\n\t\t\t\t// Handle state changes\n\t\t\t\tif (event.type === 'state' && event.target && event.target !== state.current) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tprevious: state.current,\n\t\t\t\t\t\tcurrent: event.target,\n\t\t\t\t\t\tpending: true,\n\t\t\t\t\t\tsource: event.source\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn state\n\t\t\t}, {\n\t\t\t\tcurrent: 'minimized' as BoatState,\n\t\t\t\tprevious: 'minimized' as BoatState,\n\t\t\t\tpending: false,\n\t\t\t\tlowered: false,\n\t\t\t\tresized: false,\n\t\t\t\tsource: 'internal' as 'internal' | 'external' | 'resize'\n\t\t\t}),\n\n\t\t\t// Only process when there's a pending state change\n\t\t\ttap(state => {\n\t\t\t\t// Always update lowered state\n\t\t\t\tthis.isLowered = state.lowered\n\t\t\t}),\n\n\t\t\t// Handle animations for state transitions\n\t\t\tswitchMap(state => {\n\t\t\t\tif (!state.pending || this.isAnimating) {\n\t\t\t\t\treturn of(state)\n\t\t\t\t}\n\n\t\t\t\t// Mark as animating\n\t\t\t\tthis.isAnimating = true\n\n\t\t\t\t// Animate the transition\n\t\t\t\treturn this.animateTransition(state.previous, state.current).pipe(\n\t\t\t\t\ttap(() => {\n\t\t\t\t\t\t// Update state after animation completes\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\n\t\t\t\t\t\t// Dispatch event\n\t\t\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', {\n\t\t\t\t\t\t\tdetail: state.current,\n\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t}))\n\t\t\t\t\t}),\n\t\t\t\t\tcatchError(err => {\n\t\t\t\t\t\tconsole.warn('Animation error:', err)\n\t\t\t\t\t\t// Still update state even if animation fails\n\t\t\t\t\t\tthis.currentState = state.current\n\t\t\t\t\t\tthis.isContentVisible = state.current === 'expanded'\n\t\t\t\t\t\treturn of(state)\n\t\t\t\t\t}),\n\t\t\t\t\tfinalize(() => {\n\t\t\t\t\t\tthis.isAnimating = false\n\t\t\t\t\t}),\n\t\t\t\t\t// Return the state for next iteration\n\t\t\t\t\ttap(() => state.pending = false)\n\t\t\t\t)\n\t\t\t}),\n\n\t\t\t// Share the pipeline result\n\t\t\tshareReplay(1),\n\t\t\ttakeUntil(this.disconnecting)\n\t\t).subscribe()\n\t}\n\n\t// Simplified animation transition method\n\tprivate animateTransition(fromState: BoatState, toState: BoatState) {\n\t\treturn of({ fromState, toState }).pipe(\n\t\t\ttap(() => this.currentAnimation?.cancel()),\n\t\t\tswitchMap(({ fromState, toState }) => {\n\t\t\t\tconst container = this.containerRef.value\n\t\t\t\tif (!container) return EMPTY\n\n\t\t\t\t// Update content visibility before expand, after minimize\n\t\t\t\tif (toState === 'expanded') {\n\t\t\t\t\tthis.isContentVisible = true\n\t\t\t\t}\n\n\t\t\t\t// Create animation based on target state\n\t\t\t\tconst animations = this.createAnimations(fromState, toState)\n\n\t\t\t\t// Execute animations and return completion promise\n\t\t\t\treturn new Promise<void>((resolve) => {\n\t\t\t\t\tconst mainAnimation = animations.container\n\t\t\t\t\tif (mainAnimation) {\n\t\t\t\t\t\tthis.currentAnimation = mainAnimation\n\t\t\t\t\t\tmainAnimation.finished.then(() => {\n\t\t\t\t\t\t\tif (toState !== 'expanded') {\n\t\t\t\t\t\t\t\tthis.isContentVisible = false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t})\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// Add bounce effect for expand\n\t\t\tanimations.container = container.animate([\n\t\t\t\tfromStyles,\n\t\t\t\t{ ...toStyles, transform: 'translate3d(0, -8px, 0)', offset: 0.7 },\n\t\t\t\ttoStyles,\n\t\t\t], {\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{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t\t{ opacity: 0, transform: 'translateY(-8px)' },\n\t\t\t], {\n\t\t\t\tduration: 150,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\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{ opacity: 0, transform: 'translateY(8px)' },\n\t\t\t\t{ opacity: 1, transform: 'translateY(0)' },\n\t\t\t], {\n\t\t\t\tduration: config.durations.content,\n\t\t\t\teasing: config.easing.standard,\n\t\t\t\tfill: 'forwards',\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{ transform: isExpanding ? 'rotate(0deg)' : 'rotate(180deg)' },\n\t\t\t\t\t{ transform: isExpanding ? 'rotate(180deg)' : 'rotate(0deg)' },\n\t\t\t\t], {\n\t\t\t\t\tduration: 250,\n\t\t\t\t\teasing: config.easing.emphasized,\n\t\t\t\t\tfill: 'forwards',\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\twidth: '300px',\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\ttransform: 'translate3d(0, calc(100% + 16px), 0)',\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\ttransform: 'translate3d(0, calc(100% - 56px), 0)',\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\ttransform: 'translate3d(0, 0, 0)',\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\t// Initialize component styles after first render\n\tfirstUpdated() {\n\t\t// Apply initial styles\n\t\tthis.applyInitialStyles()\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\t// Public method to toggle between minimized and expanded\n\ttoggleState() {\n\t\tconst newState = this.currentState === 'minimized' ? 'expanded' : 'minimized'\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: newState,\n\t\t\ttype: 'state'\n\t\t})\n\t}\n\n\t// Public method to close (hide) the boat\n\tclose() {\n\t\tthis.stateChange$.next({\n\t\t\tsource: 'internal',\n\t\t\ttarget: 'hidden',\n\t\t\ttype: 'state'\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\tthis.stateChange$.complete()\n\t}\n\n\t// Render the component\n\tprotected render(): unknown {\n\t\t// Calculate dynamic values\n\t\tconst surfaceElevation = this.currentState === 'minimized'\n\t\t\t? (this.isLowered ? '1' : '3')\n\t\t\t: '4'\n\t\tconst isMinimized = this.currentState === 'minimized'\n\t\tconst iconName = isMinimized ? 'expand_less' : 'expand_more'\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"boat-container z-[9999] fixed bottom-4 right-4 overflow-y-auto flex flex-col\"\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 z-10\">\n\t\t\t\t\t<schmancy-surface\n\t\t\t\t\t\televation=\"${surfaceElevation}\"\n\t\t\t\t\t\tclass=\"cursor-pointer\"\n\t\t\t\t\t\trounded=\"${isMinimized ? 'none' : 'top'}\"\n\t\t\t\t\t\ttype=\"containerLowest\"\n\t\t\t\t\t\t@click=${() => this.toggleState()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"sticky top-0 px-3 py-2 flex items-center justify-between gap-3\">\n\t\t\t\t\t\t\t<!-- Header content slot -->\n\t\t\t\t\t\t\t<div class=\"flex-1 flex items-center min-w-0\">\n\t\t\t\t\t\t\t\t<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<!-- Toggle button -->\n\t\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\t\tvariant=\"${isMinimized ? 'text' : 'filled tonal'}\"\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.toggleState()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=${isMinimized ? 'Expand' : 'Minimize'}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span class=\"icon-container\" ${ref(this.iconRef)}>\n\t\t\t\t\t\t\t\t\t\t${iconName}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</schmancy-icon-button>\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.close()\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttitle=\"Close\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tclose\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\n\t\t\t\t\t.hidden=${!this.isContentVisible}\n\t\t\t\t\ttype=\"containerLow\"\n\t\t\t\t\tclass=\"boat-content z-0 flex-1\"\n\t\t\t\t\t${ref(this.contentRef)}\n\t\t\t\t>\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}"],"names":["SchmancyBoat","TailwindElement","css","constructor","super","arguments","this","stateChange$","Subject","containerRef","createRef","contentRef","iconRef","ANIMATION_CONFIG","durations","expand","minimize","hide","content","easing","emphasized","decelerate","accelerate","standard","shadows","fab","fabLowered","expanded","currentState","isContentVisible","isAnimating","isLowered","value","next","source","target","type","lowered","connectedCallback","setupUnifiedPipeline","resize$","window","fromEvent","pipe","debounceTime","filter","tap","EMPTY","merge","of","scan","state","event","updateExpandedWidth","resized","current","previous","pending","switchMap","animateTransition","dispatchEvent","CustomEvent","detail","bubbles","composed","catchError","err","finalize","shareReplay","takeUntil","disconnecting","subscribe","fromState","toState","currentAnimation","cancel","animations","createAnimations","Promise","resolve","mainAnimation","container","finished","then","catch","icon","config","fromStyles","getStyleForState","toStyles","animate","transform","offset","duration","fill","opacity","isExpanding","baseStyles","width","maxWidth","maxHeight","borderRadius","hidden","boxShadow","backdropFilter","minimized","getResponsiveWidth","vw","innerWidth","style","firstUpdated","applyInitialStyles","initialStyle","Object","assign","webkitBackdropFilter","toggleState","newState","disconnectedCallback","complete","render","surfaceElevation","isMinimized","iconName","html","ref","e","stopPropagation","close","__decorateClass","property","String","reflect","prototype","Boolean","customElement"],"mappings":"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"}
package/dist/boat.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./boat-Nd_h9cld.cjs");Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>e.SchmancyBoat});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./boat-BtViHW8M.cjs");Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>e.SchmancyBoat});
2
2
  //# sourceMappingURL=boat.cjs.map
package/dist/boat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as c } from "./boat-Du6EgSxQ.js";
1
+ import { S as c } from "./boat-BTSQNgJQ.js";
2
2
  export {
3
3
  c as SchmancyBoat
4
4
  };
package/dist/busy.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./spinner-CAlukL4U.cjs");
1
+ "use strict";require("./spinner-BuujVERe.cjs");
2
2
  //# sourceMappingURL=busy.cjs.map
package/dist/busy.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./spinner-C5gsrJLF.js";
1
+ import "./spinner-CUHM2lNo.js";
2
2
  //# sourceMappingURL=busy.js.map
package/dist/button.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-CVTYisTH.cjs");Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>e.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./icon-button-CB52pDFa.cjs");Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>e.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>e.SchmnacyIconButton});
2
2
  //# sourceMappingURL=button.cjs.map
package/dist/button.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as n, a as o } from "./icon-button-DOk1cdCw.js";
1
+ import { S as n, a as o } from "./icon-button--hjJtAL_.js";
2
2
  export {
3
3
  n as SchmancyButton,
4
4
  o as SchmnacyIconButton
package/dist/card.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./media-DR-39DF4.cjs");
1
+ "use strict";require("./media-CdM6XhRo.cjs");
2
2
  //# sourceMappingURL=card.cjs.map
package/dist/card.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./media-I-gnfGOG.js";
1
+ import "./media-DOKkl0Ic.js";
2
2
  //# sourceMappingURL=card.js.map
@@ -1,4 +1,4 @@
1
- "use strict";const d=require("./tslib.es6-DgOcxv4s.cjs"),n=require("lit/decorators.js"),c=require("lit"),F=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const G=require("./tailwind.mixin-B5ggvnsv.cjs"),H=require("lit/directives/when.js"),D=Symbol("attachableController");let N;c.isServer||(N=new MutationObserver(o=>{for(const e of o)e.target[D]?.hostConnected()}));class U{get htmlFor(){return this.host.getAttribute("for")}set htmlFor(e){e===null?this.host.removeAttribute("for"):this.host.setAttribute("for",e)}get control(){return this.host.hasAttribute("for")?this.htmlFor&&this.host.isConnected?this.host.getRootNode().querySelector(`#${this.htmlFor}`):null:this.currentControl||this.host.parentElement}set control(e){e?this.attach(e):this.detach()}constructor(e,t){this.host=e,this.onControlChange=t,this.currentControl=null,e.addController(this),e[D]=this,N?.observe(e,{attributeFilter:["for"]})}attach(e){e!==this.currentControl&&(this.setCurrentControl(e),this.host.removeAttribute("for"))}detach(){this.setCurrentControl(null),this.host.setAttribute("for","")}hostConnected(){this.setCurrentControl(this.control)}hostDisconnected(){this.setCurrentControl(null)}setCurrentControl(e){this.onControlChange(this.currentControl,e),this.currentControl=e}}const Y=["focusin","focusout","pointerdown"];class z extends c.LitElement{constructor(){super(...arguments),this.visible=!1,this.inward=!1,this.attachableController=new U(this,this.onControlChange.bind(this))}get htmlFor(){return this.attachableController.htmlFor}set htmlFor(e){this.attachableController.htmlFor=e}get control(){return this.attachableController.control}set control(e){this.attachableController.control=e}attach(e){this.attachableController.attach(e)}detach(){this.attachableController.detach()}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-hidden","true")}handleEvent(e){if(!e[O]){switch(e.type){default:return;case"focusin":this.visible=this.control?.matches(":focus-visible")??!1;break;case"focusout":case"pointerdown":this.visible=!1}e[O]=!0}}onControlChange(e,t){if(!c.isServer)for(const r of Y)e?.removeEventListener(r,this),t?.addEventListener(r,this)}update(e){e.has("visible")&&this.dispatchEvent(new Event("visibility-changed")),super.update(e)}}d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"visible",void 0),d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"inward",void 0);const O=Symbol("handledByFocusRing"),K=c.css`:host{animation-delay:0s,calc(var(--md-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--md-focus-ring-duration, 600ms)*.25),calc(var(--md-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));inset:calc(-1*var(--md-focus-ring-outward-offset, 2px));outline:var(--md-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border:var(--md-focus-ring-width, 3px) solid currentColor;inset:var(--md-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--md-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}
1
+ "use strict";const d=require("./tslib.es6-DgOcxv4s.cjs"),n=require("lit/decorators.js"),c=require("lit"),F=require("lit/directives/class-map.js");require("rxjs"),require("lit/directives/style-map.js");const G=require("./tailwind.mixin-BiRVB4Hl.cjs"),H=require("lit/directives/when.js"),D=Symbol("attachableController");let N;c.isServer||(N=new MutationObserver(o=>{for(const e of o)e.target[D]?.hostConnected()}));class U{get htmlFor(){return this.host.getAttribute("for")}set htmlFor(e){e===null?this.host.removeAttribute("for"):this.host.setAttribute("for",e)}get control(){return this.host.hasAttribute("for")?this.htmlFor&&this.host.isConnected?this.host.getRootNode().querySelector(`#${this.htmlFor}`):null:this.currentControl||this.host.parentElement}set control(e){e?this.attach(e):this.detach()}constructor(e,t){this.host=e,this.onControlChange=t,this.currentControl=null,e.addController(this),e[D]=this,N?.observe(e,{attributeFilter:["for"]})}attach(e){e!==this.currentControl&&(this.setCurrentControl(e),this.host.removeAttribute("for"))}detach(){this.setCurrentControl(null),this.host.setAttribute("for","")}hostConnected(){this.setCurrentControl(this.control)}hostDisconnected(){this.setCurrentControl(null)}setCurrentControl(e){this.onControlChange(this.currentControl,e),this.currentControl=e}}const Y=["focusin","focusout","pointerdown"];class z extends c.LitElement{constructor(){super(...arguments),this.visible=!1,this.inward=!1,this.attachableController=new U(this,this.onControlChange.bind(this))}get htmlFor(){return this.attachableController.htmlFor}set htmlFor(e){this.attachableController.htmlFor=e}get control(){return this.attachableController.control}set control(e){this.attachableController.control=e}attach(e){this.attachableController.attach(e)}detach(){this.attachableController.detach()}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-hidden","true")}handleEvent(e){if(!e[O]){switch(e.type){default:return;case"focusin":this.visible=this.control?.matches(":focus-visible")??!1;break;case"focusout":case"pointerdown":this.visible=!1}e[O]=!0}}onControlChange(e,t){if(!c.isServer)for(const r of Y)e?.removeEventListener(r,this),t?.addEventListener(r,this)}update(e){e.has("visible")&&this.dispatchEvent(new Event("visibility-changed")),super.update(e)}}d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"visible",void 0),d.t([n.property({type:Boolean,reflect:!0})],z.prototype,"inward",void 0);const O=Symbol("handledByFocusRing"),K=c.css`:host{animation-delay:0s,calc(var(--md-focus-ring-duration, 600ms)*.25);animation-duration:calc(var(--md-focus-ring-duration, 600ms)*.25),calc(var(--md-focus-ring-duration, 600ms)*.75);animation-timing-function:cubic-bezier(0.2, 0, 0, 1);box-sizing:border-box;color:var(--md-focus-ring-color, var(--md-sys-color-secondary, #625b71));display:none;pointer-events:none;position:absolute}:host([visible]){display:flex}:host(:not([inward])){animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) + var(--md-focus-ring-outward-offset, 2px));inset:calc(-1*var(--md-focus-ring-outward-offset, 2px));outline:var(--md-focus-ring-width, 3px) solid currentColor}:host([inward]){animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--md-focus-ring-shape-end-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-end-start-radius:calc(var(--md-focus-ring-shape-end-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-end-radius:calc(var(--md-focus-ring-shape-start-end, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border-start-start-radius:calc(var(--md-focus-ring-shape-start-start, var(--md-focus-ring-shape, var(--md-sys-shape-corner-full, 9999px))) - var(--md-focus-ring-inward-offset, 0px));border:var(--md-focus-ring-width, 3px) solid currentColor;inset:var(--md-focus-ring-inward-offset, 0px)}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes outward-shrink{from{outline-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--md-focus-ring-active-width, 8px)}}@keyframes inward-shrink{from{border-width:var(--md-focus-ring-active-width, 8px)}}@media(prefers-reduced-motion){:host{animation:none}}
2
2
  `;let C=class extends z{};C.styles=[K],C=d.t([n.customElement("md-focus-ring")],C);const W="cubic-bezier(0.2, 0, 0, 1)";var h;(function(o){o[o.INACTIVE=0]="INACTIVE",o[o.TOUCH_DELAY=1]="TOUCH_DELAY",o[o.HOLDING=2]="HOLDING",o[o.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK"})(h||(h={}));const j=["click","contextmenu","pointercancel","pointerdown","pointerenter","pointerleave","pointerup"],Z=c.isServer?null:window.matchMedia("(forced-colors: active)");class f extends c.LitElement{constructor(){super(...arguments),this.disabled=!1,this.hovered=!1,this.pressed=!1,this.rippleSize="",this.rippleScale="",this.initialSize=0,this.state=h.INACTIVE,this.attachableController=new U(this,this.onControlChange.bind(this))}get htmlFor(){return this.attachableController.htmlFor}set htmlFor(e){this.attachableController.htmlFor=e}get control(){return this.attachableController.control}set control(e){this.attachableController.control=e}attach(e){this.attachableController.attach(e)}detach(){this.attachableController.detach()}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-hidden","true")}render(){const e={hovered:this.hovered,pressed:this.pressed};return c.html`<div class="surface ${F.classMap(e)}"></div>`}update(e){e.has("disabled")&&this.disabled&&(this.hovered=!1,this.pressed=!1),super.update(e)}handlePointerenter(e){this.shouldReactToEvent(e)&&(this.hovered=!0)}handlePointerleave(e){this.shouldReactToEvent(e)&&(this.hovered=!1,this.state!==h.INACTIVE&&this.endPressAnimation())}handlePointerup(e){if(this.shouldReactToEvent(e)){if(this.state!==h.HOLDING)return this.state===h.TOUCH_DELAY?(this.state=h.WAITING_FOR_CLICK,void this.startPressAnimation(this.rippleStartEvent)):void 0;this.state=h.WAITING_FOR_CLICK}}async handlePointerdown(e){if(this.shouldReactToEvent(e)){if(this.rippleStartEvent=e,!this.isTouch(e))return this.state=h.WAITING_FOR_CLICK,void this.startPressAnimation(e);this.state=h.TOUCH_DELAY,await new Promise(t=>{setTimeout(t,150)}),this.state===h.TOUCH_DELAY&&(this.state=h.HOLDING,this.startPressAnimation(e))}}handleClick(){this.disabled||(this.state!==h.WAITING_FOR_CLICK?this.state===h.INACTIVE&&(this.startPressAnimation(),this.endPressAnimation()):this.endPressAnimation())}handlePointercancel(e){this.shouldReactToEvent(e)&&this.endPressAnimation()}handleContextmenu(){this.disabled||this.endPressAnimation()}determineRippleSize(){const{height:e,width:t}=this.getBoundingClientRect(),r=Math.max(e,t),i=Math.max(.35*r,75),a=this.currentCSSZoom??1,s=Math.floor(.2*r/a),l=Math.sqrt(t**2+e**2)+10;this.initialSize=s;const m=(l+i)/s;this.rippleScale=""+m/a,this.rippleSize=`${s}px`}getNormalizedPointerEventCoords(e){const{scrollX:t,scrollY:r}=window,{left:i,top:a}=this.getBoundingClientRect(),s=t+i,l=r+a,{pageX:m,pageY:y}=e,M=this.currentCSSZoom??1;return{x:(m-s)/M,y:(y-l)/M}}getTranslationCoordinates(e){const{height:t,width:r}=this.getBoundingClientRect(),i=this.currentCSSZoom??1,a={x:(r/i-this.initialSize)/2,y:(t/i-this.initialSize)/2};let s;return s=e instanceof PointerEvent?this.getNormalizedPointerEventCoords(e):{x:r/i/2,y:t/i/2},s={x:s.x-this.initialSize/2,y:s.y-this.initialSize/2},{startPoint:s,endPoint:a}}startPressAnimation(e){if(!this.mdRoot)return;this.pressed=!0,this.growAnimation?.cancel(),this.determineRippleSize();const{startPoint:t,endPoint:r}=this.getTranslationCoordinates(e),i=`${t.x}px, ${t.y}px`,a=`${r.x}px, ${r.y}px`;this.growAnimation=this.mdRoot.animate({top:[0,0],left:[0,0],height:[this.rippleSize,this.rippleSize],width:[this.rippleSize,this.rippleSize],transform:[`translate(${i}) scale(1)`,`translate(${a}) scale(${this.rippleScale})`]},{pseudoElement:"::after",duration:450,easing:W,fill:"forwards"})}async endPressAnimation(){this.rippleStartEvent=void 0,this.state=h.INACTIVE;const e=this.growAnimation;let t=1/0;typeof e?.currentTime=="number"?t=e.currentTime:e?.currentTime&&(t=e.currentTime.to("ms").value),t>=225?this.pressed=!1:(await new Promise(r=>{setTimeout(r,225-t)}),this.growAnimation===e&&(this.pressed=!1))}shouldReactToEvent(e){if(this.disabled||!e.isPrimary||this.rippleStartEvent&&this.rippleStartEvent.pointerId!==e.pointerId)return!1;if(e.type==="pointerenter"||e.type==="pointerleave")return!this.isTouch(e);const t=e.buttons===1;return this.isTouch(e)||t}isTouch({pointerType:e}){return e==="touch"}async handleEvent(e){if(!Z?.matches)switch(e.type){case"click":this.handleClick();break;case"contextmenu":this.handleContextmenu();break;case"pointercancel":this.handlePointercancel(e);break;case"pointerdown":await this.handlePointerdown(e);break;case"pointerenter":this.handlePointerenter(e);break;case"pointerleave":this.handlePointerleave(e);break;case"pointerup":this.handlePointerup(e)}}onControlChange(e,t){if(!c.isServer)for(const r of j)e?.removeEventListener(r,this),t?.addEventListener(r,this)}}d.t([n.property({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),d.t([n.state()],f.prototype,"hovered",void 0),d.t([n.state()],f.prototype,"pressed",void 0),d.t([n.query(".surface")],f.prototype,"mdRoot",void 0);const X=c.css`:host{display:flex;margin:auto;pointer-events:none}:host([disabled]){display:none}@media(forced-colors: active){:host{display:none}}:host,.surface{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.surface{-webkit-tap-highlight-color:rgba(0,0,0,0)}.surface::before,.surface::after{content:"";opacity:0;position:absolute}.surface::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));inset:0;transition:opacity 15ms linear,background-color 15ms linear}.surface::after{background:radial-gradient(closest-side, var(--md-ripple-pressed-color, var(--md-sys-color-on-surface, #1d1b20)) max(100% - 70px, 65%), transparent 100%);transform-origin:center center;transition:opacity 375ms linear}.hovered::before{background-color:var(--md-ripple-hover-color, var(--md-sys-color-on-surface, #1d1b20));opacity:var(--md-ripple-hover-opacity, 0.08)}.pressed::after{opacity:var(--md-ripple-pressed-opacity, 0.12);transition-duration:105ms}
3
3
  `;let w=class extends f{};w.styles=[X],w=d.t([n.customElement("md-ripple")],w);const B=["role","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText"],J=B.map(_);function S(o){return J.includes(o)}function _(o){return o.replace("aria","aria-").replace(/Elements?/g,"").toLowerCase()}const g=Symbol("privateIgnoreAttributeChangesFor");function E(o){return`data-${o}`}function A(o){return o.replace(/-\w/,e=>e[1].toUpperCase())}function Q(o){return o.currentTarget===o.target&&o.composedPath()[0]===o.target&&!o.target.disabled&&!function(e){const t=I;return t&&(e.preventDefault(),e.stopImmediatePropagation()),async function(){I=!0,await null,I=!1}(),t}(o)}let I=!1;const p=Symbol("internals"),P=Symbol("privateInternals"),R=Symbol("createValidator"),V=Symbol("getValidityAnchor"),T=Symbol("privateValidator"),b=Symbol("privateSyncValidity"),k=Symbol("privateCustomValidationMessage"),x=Symbol("getFormValue"),L=Symbol("getFormState");class ee{constructor(e){this.getCurrentState=e,this.currentValidity={validity:{},validationMessage:""}}getValidity(){const e=this.getCurrentState();if(!(!this.prevState||!this.equals(this.prevState,e)))return this.currentValidity;const{validity:t,validationMessage:r}=this.computeValidity(e);return this.prevState=this.copy(e),this.currentValidity={validationMessage:r,validity:{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing}},this.currentValidity}}class te extends ee{computeValidity(e){return this.checkboxControl||(this.checkboxControl=document.createElement("input"),this.checkboxControl.type="checkbox"),this.checkboxControl.checked=e.checked,this.checkboxControl.required=e.required,{validity:this.checkboxControl.validity,validationMessage:this.checkboxControl.validationMessage}}equals(e,t){return e.checked===t.checked&&e.required===t.required}copy({checked:e,required:t}){return{checked:e,required:t}}}const re=function(o){var e;if(c.isServer)return o;class t extends o{constructor(){super(...arguments),this[e]=new Set}attributeChangedCallback(i,a,s){if(!S(i))return void super.attributeChangedCallback(i,a,s);if(this[g].has(i))return;this[g].add(i),this.removeAttribute(i),this[g].delete(i);const l=A(i);s===null?delete this.dataset[l]:this.dataset[l]=s,this.requestUpdate(A(i),a)}getAttribute(i){return S(i)?super.getAttribute(E(i)):super.getAttribute(i)}removeAttribute(i){super.removeAttribute(i),S(i)&&(super.removeAttribute(E(i)),this.requestUpdate())}}return e=g,function(r){for(const i of B){const a=_(i),s=E(a),l=A(a);r.createProperty(i,{attribute:a,noAccessor:!0}),r.createProperty(Symbol(s),{attribute:s,noAccessor:!0}),Object.defineProperty(r.prototype,i,{configurable:!0,enumerable:!0,get(){return this.dataset[l]??null},set(m){const y=this.dataset[l]??null;m!==y&&(m===null?delete this.dataset[l]:this.dataset[l]=m,this.requestUpdate(i,y))}})}}(t),t}(function(o){var e;class t extends o{constructor(){super(...arguments),this[e]=""}get validity(){return this[b](),this[p].validity}get validationMessage(){return this[b](),this[p].validationMessage}get willValidate(){return this[b](),this[p].willValidate}checkValidity(){return this[b](),this[p].checkValidity()}reportValidity(){return this[b](),this[p].reportValidity()}setCustomValidity(i){this[k]=i,this[b]()}requestUpdate(i,a,s){super.requestUpdate(i,a,s),this[b]()}firstUpdated(i){super.firstUpdated(i),this[b]()}[(e=k,b)](){if(c.isServer)return;this[T]||(this[T]=this[R]());const{validity:i,validationMessage:a}=this[T].getValidity(),s=!!this[k],l=this[k]||a;this[p].setValidity({...i,customError:s},l,this[V]()??void 0)}[R](){throw new Error("Implement [createValidator]")}[V](){throw new Error("Implement [getValidityAnchor]")}}return t}(function(o){class e extends o{get form(){return this[p].form}get labels(){return this[p].labels}get name(){return this.getAttribute("name")??""}set name(r){this.setAttribute("name",r)}get disabled(){return this.hasAttribute("disabled")}set disabled(r){this.toggleAttribute("disabled",r)}attributeChangedCallback(r,i,a){if(r==="name"||r==="disabled"){const s=r==="disabled"?i!==null:i;return void this.requestUpdate(r,s)}super.attributeChangedCallback(r,i,a)}requestUpdate(r,i,a){super.requestUpdate(r,i,a),this[p].setFormValue(this[x](),this[L]())}[x](){throw new Error("Implement [getFormValue]")}[L](){return this[x]()}formDisabledCallback(r){this.disabled=r}}return e.formAssociated=!0,d.t([n.property({noAccessor:!0})],e.prototype,"name",null),d.t([n.property({type:Boolean,noAccessor:!0})],e.prototype,"disabled",null),e}(($=c.LitElement,class extends ${get[p](){return this[P]||(this[P]=this.attachInternals()),this[P]}}))));var $;class u extends re{constructor(){super(),this.checked=!1,this.indeterminate=!1,this.required=!1,this.value="on",this.prevChecked=!1,this.prevDisabled=!1,this.prevIndeterminate=!1,c.isServer||this.addEventListener("click",e=>{Q(e)&&this.input&&(this.focus(),function(t){const r=new MouseEvent("click",{bubbles:!0});t.dispatchEvent(r)}(this.input))})}update(e){(e.has("checked")||e.has("disabled")||e.has("indeterminate"))&&(this.prevChecked=e.get("checked")??this.checked,this.prevDisabled=e.get("disabled")??this.disabled,this.prevIndeterminate=e.get("indeterminate")??this.indeterminate),super.update(e)}render(){const e=!this.prevChecked&&!this.prevIndeterminate,t=this.prevChecked&&!this.prevIndeterminate,r=this.prevIndeterminate,i=this.checked&&!this.indeterminate,a=this.indeterminate,s=F.classMap({disabled:this.disabled,selected:i||a,unselected:!i&&!a,checked:i,indeterminate:a,"prev-unselected":e,"prev-checked":t,"prev-indeterminate":r,"prev-disabled":this.prevDisabled}),{ariaLabel:l,ariaInvalid:m}=this;return c.html`
4
4
  <div class="container ${s}">
@@ -37,4 +37,4 @@
37
37
  ${H.when(this.label,()=>c.html`<span>${this.label}</span>`,()=>c.html`<slot></slot>`)}
38
38
  </label>
39
39
  `}},exports.SchmancyCheckboxElement.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0},exports.SchmancyCheckboxElement.formAssociated=!0,v([n.property({type:Boolean,reflect:!0})],exports.SchmancyCheckboxElement.prototype,"value",2),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"checked",1),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"disabled",2),v([n.property({type:Boolean})],exports.SchmancyCheckboxElement.prototype,"required",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"name",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"id",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"label",2),v([n.property({type:String})],exports.SchmancyCheckboxElement.prototype,"size",2),exports.SchmancyCheckboxElement=v([n.customElement("schmancy-checkbox")],exports.SchmancyCheckboxElement);
40
- //# sourceMappingURL=checkbox-DShC2A6P.cjs.map
40
+ //# sourceMappingURL=checkbox-D0LwTB_L.cjs.map