@mhmo91/schmancy 0.5.26 → 0.5.27

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 (336) hide show
  1. package/ai/checkbox.md +93 -52
  2. package/dist/ai/checkbox.md +93 -52
  3. package/dist/{animated-text-BF-_41Hw.js → animated-text-Bn8-ILmB.js} +3 -3
  4. package/dist/{animated-text-BF-_41Hw.js.map → animated-text-Bn8-ILmB.js.map} +1 -1
  5. package/dist/{animated-text-D7XcIPvJ.cjs → animated-text-vdNivzdc.cjs} +2 -2
  6. package/dist/{animated-text-D7XcIPvJ.cjs.map → animated-text-vdNivzdc.cjs.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-C1EzgnER.cjs → area.component-DwPL6bdo.cjs} +2 -2
  11. package/dist/{area.component-C1EzgnER.cjs.map → area.component-DwPL6bdo.cjs.map} +1 -1
  12. package/dist/{area.component-C5wZ7yAA.js → area.component-pd24G8zW.js} +3 -3
  13. package/dist/{area.component-C5wZ7yAA.js.map → area.component-pd24G8zW.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-C2KCl8gZ.js → autocomplete-BlhAOtex.js} +4 -4
  16. package/dist/{autocomplete-C2KCl8gZ.js.map → autocomplete-BlhAOtex.js.map} +1 -1
  17. package/dist/{autocomplete-Dp2pvQ1J.cjs → autocomplete-GW91jVqw.cjs} +2 -2
  18. package/dist/{autocomplete-Dp2pvQ1J.cjs.map → autocomplete-GW91jVqw.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-BISA1L6R.js → avatar-4sGidVGe.js} +50 -50
  22. package/dist/{avatar-BISA1L6R.js.map → avatar-4sGidVGe.js.map} +1 -1
  23. package/dist/{avatar-dRvfep6e.cjs → avatar-q32dkyky.cjs} +2 -2
  24. package/dist/{avatar-dRvfep6e.cjs.map → avatar-q32dkyky.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-B7y4ZeDv.cjs → boat-DNmaFlxD.cjs} +2 -2
  28. package/dist/{boat-B7y4ZeDv.cjs.map → boat-DNmaFlxD.cjs.map} +1 -1
  29. package/dist/{boat-BDARBzjf.js → boat-dSTPix8t.js} +2 -2
  30. package/dist/{boat-BDARBzjf.js.map → boat-dSTPix8t.js.map} +1 -1
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-Dyj95Cob.cjs → checkbox-BJ5aqrKY.cjs} +2 -2
  40. package/dist/{checkbox-Dyj95Cob.cjs.map → checkbox-BJ5aqrKY.cjs.map} +1 -1
  41. package/dist/{checkbox-Bo5DWgmR.js → checkbox-CU2tyEL0.js} +2 -2
  42. package/dist/{checkbox-Bo5DWgmR.js.map → checkbox-CU2tyEL0.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-BkLf1Tjt.js → code-preview-KDpn0Q3T.js} +2 -2
  50. package/dist/{code-preview-BkLf1Tjt.js.map → code-preview-KDpn0Q3T.js.map} +1 -1
  51. package/dist/{code-preview-Ci4_9dyI.cjs → code-preview-fda91FDi.cjs} +2 -2
  52. package/dist/{code-preview-Ci4_9dyI.cjs.map → code-preview-fda91FDi.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-BzJ_GFAW.cjs → date-range-0nOdLk-l.cjs} +2 -2
  58. package/dist/{date-range-BzJ_GFAW.cjs.map → date-range-0nOdLk-l.cjs.map} +1 -1
  59. package/dist/{date-range-inline-egzlYgWB.cjs → date-range-inline-UoP6EDug.cjs} +2 -2
  60. package/dist/{date-range-inline-egzlYgWB.cjs.map → date-range-inline-UoP6EDug.cjs.map} +1 -1
  61. package/dist/{date-range-inline-C5gZQxPv.js → date-range-inline-b0yYxPn_.js} +3 -3
  62. package/dist/{date-range-inline-C5gZQxPv.js.map → date-range-inline-b0yYxPn_.js.map} +1 -1
  63. package/dist/date-range-inline.cjs +1 -1
  64. package/dist/date-range-inline.js +1 -1
  65. package/dist/{date-range-BriVhMyA.js → date-range-yd-FnXRe.js} +3 -3
  66. package/dist/{date-range-BriVhMyA.js.map → date-range-yd-FnXRe.js.map} +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-3A6yeHgq.js → delay-CE9VOJBG.js} +2 -2
  70. package/dist/{delay-3A6yeHgq.js.map → delay-CE9VOJBG.js.map} +1 -1
  71. package/dist/{delay-9mVh_ncQ.cjs → delay-CaOsI0yP.cjs} +2 -2
  72. package/dist/{delay-9mVh_ncQ.cjs.map → delay-CaOsI0yP.cjs.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/details-B_kKG0Du.cjs +143 -0
  76. package/dist/details-B_kKG0Du.cjs.map +1 -0
  77. package/dist/details-m-njXkGl.js +210 -0
  78. package/dist/details-m-njXkGl.js.map +1 -0
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-B9OkO5fD.cjs → dialog-content-B5MUa6uq.cjs} +2 -2
  82. package/dist/{dialog-content-B9OkO5fD.cjs.map → dialog-content-B5MUa6uq.cjs.map} +1 -1
  83. package/dist/{dialog-content-B2mWmFZf.js → dialog-content-BireCTdH.js} +3 -3
  84. package/dist/{dialog-content-B2mWmFZf.js.map → dialog-content-BireCTdH.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-gwQsKA8E.js → divider-CMaqpnia.js} +3 -3
  88. package/dist/{divider-gwQsKA8E.js.map → divider-CMaqpnia.js.map} +1 -1
  89. package/dist/{divider-7QB9lkg8.cjs → divider-DekMH80a.cjs} +2 -2
  90. package/dist/{divider-7QB9lkg8.cjs.map → divider-DekMH80a.cjs.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-wWiQrGbJ.js → dropdown-content-CViuccZ6.js} +3 -3
  94. package/dist/{dropdown-content-wWiQrGbJ.js.map → dropdown-content-CViuccZ6.js.map} +1 -1
  95. package/dist/{dropdown-content-B8jF14WR.cjs → dropdown-content-eXth59vX.cjs} +2 -2
  96. package/dist/{dropdown-content-B8jF14WR.cjs.map → dropdown-content-eXth59vX.cjs.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-BerOPRSS.js → email-recipients-BSopuO1J.js} +5 -5
  100. package/dist/{email-recipients-BerOPRSS.js.map → email-recipients-BSopuO1J.js.map} +1 -1
  101. package/dist/{email-recipients-DDPOQ6GR.cjs → email-recipients-DNcWf4_1.cjs} +2 -2
  102. package/dist/{email-recipients-DDPOQ6GR.cjs.map → email-recipients-DNcWf4_1.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-A9QGoIZO.cjs → flex-CE0IKjR4.cjs} +2 -2
  106. package/dist/{flex-A9QGoIZO.cjs.map → flex-CE0IKjR4.cjs.map} +1 -1
  107. package/dist/{flex-CMaGJmsr.js → flex-Czj-zqJQ.js} +2 -2
  108. package/dist/{flex-CMaGJmsr.js.map → flex-Czj-zqJQ.js.map} +1 -1
  109. package/dist/{form-TwzAo9l7.js → form-CAvvBQiv.js} +2 -2
  110. package/dist/{form-TwzAo9l7.js.map → form-CAvvBQiv.js.map} +1 -1
  111. package/dist/{form-B1MHwY2q.cjs → form-OUNdJnUW.cjs} +2 -2
  112. package/dist/{form-B1MHwY2q.cjs.map → form-OUNdJnUW.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-BnEz6ZwN.cjs → formField.mixin-Bu0ygAbE.cjs} +2 -2
  116. package/dist/{formField.mixin-BnEz6ZwN.cjs.map → formField.mixin-Bu0ygAbE.cjs.map} +1 -1
  117. package/dist/{formField.mixin-BssBYPia.js → formField.mixin-DlYLC82X.js} +2 -2
  118. package/dist/{formField.mixin-BssBYPia.js.map → formField.mixin-DlYLC82X.js.map} +1 -1
  119. package/dist/{icon-BAcc1N7i.cjs → icon-BwhQbcAk.cjs} +2 -2
  120. package/dist/{icon-BAcc1N7i.cjs.map → icon-BwhQbcAk.cjs.map} +1 -1
  121. package/dist/{icon-Bc-fZOsV.js → icon-D0EaNtwd.js} +2 -2
  122. package/dist/{icon-Bc-fZOsV.js.map → icon-D0EaNtwd.js.map} +1 -1
  123. package/dist/{icon-button-u2JxLUVz.cjs → icon-button-BrRSVzzx.cjs} +2 -2
  124. package/dist/{icon-button-u2JxLUVz.cjs.map → icon-button-BrRSVzzx.cjs.map} +1 -1
  125. package/dist/{icon-button-bMlXZsaD.js → icon-button-CGMdsmXS.js} +3 -3
  126. package/dist/{icon-button-bMlXZsaD.js.map → icon-button-CGMdsmXS.js.map} +1 -1
  127. package/dist/icons.cjs +1 -1
  128. package/dist/icons.js +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.js +49 -49
  131. package/dist/{input-CBpMXWq5.js → input-DZYN1TnY.js} +3 -3
  132. package/dist/{input-CBpMXWq5.js.map → input-DZYN1TnY.js.map} +1 -1
  133. package/dist/{input-chip-BdOr_Bst.js → input-chip-CNLkwei6.js} +2 -2
  134. package/dist/{input-chip-BdOr_Bst.js.map → input-chip-CNLkwei6.js.map} +1 -1
  135. package/dist/{input-chip-BOD5fjLj.cjs → input-chip-Cf25jEob.cjs} +2 -2
  136. package/dist/{input-chip-BOD5fjLj.cjs.map → input-chip-Cf25jEob.cjs.map} +1 -1
  137. package/dist/{input-64Amkh7B.cjs → input-lzxE1e5L.cjs} +2 -2
  138. package/dist/{input-64Amkh7B.cjs.map → input-lzxE1e5L.cjs.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-kbaJkd6g.js → list-Cqo45m_h.js} +2 -2
  144. package/dist/{list-kbaJkd6g.js.map → list-Cqo45m_h.js.map} +1 -1
  145. package/dist/{list-D_RsjBt7.cjs → list-rGx4YHgo.cjs} +2 -2
  146. package/dist/{list-D_RsjBt7.cjs.map → list-rGx4YHgo.cjs.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-BjvDNbpd.js → litElement.mixin-B0Rsd4Km.js} +2 -2
  150. package/dist/{litElement.mixin-BjvDNbpd.js.map → litElement.mixin-B0Rsd4Km.js.map} +1 -1
  151. package/dist/{litElement.mixin-wU3TW8NU.cjs → litElement.mixin-DUiUa087.cjs} +2 -2
  152. package/dist/{litElement.mixin-wU3TW8NU.cjs.map → litElement.mixin-DUiUa087.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-C3aSKiL1.cjs → map-8DhybTup.cjs} +2 -2
  156. package/dist/{map-C3aSKiL1.cjs.map → map-8DhybTup.cjs.map} +1 -1
  157. package/dist/{map-DhyZmeSW.js → map-DWf43TA1.js} +2 -2
  158. package/dist/{map-DhyZmeSW.js.map → map-DWf43TA1.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/media-BVKgZzK_.js +243 -0
  162. package/dist/media-BVKgZzK_.js.map +1 -0
  163. package/dist/media-BZwiyJto.cjs +152 -0
  164. package/dist/media-BZwiyJto.cjs.map +1 -0
  165. package/dist/{menu-BWAj2ToG.js → menu-CGaCEOer.js} +3 -3
  166. package/dist/{menu-BWAj2ToG.js.map → menu-CGaCEOer.js.map} +1 -1
  167. package/dist/{menu-GScOP0tp.cjs → menu-D8qP_e7D.cjs} +2 -2
  168. package/dist/{menu-GScOP0tp.cjs.map → menu-D8qP_e7D.cjs.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/navigation-bar.cjs +1 -1
  174. package/dist/navigation-bar.js +1 -1
  175. package/dist/{navigation-rail-DpffIkNR.cjs → navigation-rail-BzMOzaFm.cjs} +77 -39
  176. package/dist/navigation-rail-BzMOzaFm.cjs.map +1 -0
  177. package/dist/{navigation-rail-Cwhii1Km.js → navigation-rail-CjBw96pi.js} +88 -50
  178. package/dist/navigation-rail-CjBw96pi.js.map +1 -0
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-CiS9cxNM.cjs → notification-service-DCmDSvc-.cjs} +2 -2
  182. package/dist/{notification-service-CiS9cxNM.cjs.map → notification-service-DCmDSvc-.cjs.map} +1 -1
  183. package/dist/{notification-service-D9FrcaYV.js → notification-service-Dv4oQi_Z.js} +4 -4
  184. package/dist/{notification-service-D9FrcaYV.js.map → notification-service-Dv4oQi_Z.js.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-CHdshRyb.js → notify-COuaNTJP.js} +2 -2
  188. package/dist/{notify-CHdshRyb.js.map → notify-COuaNTJP.js.map} +1 -1
  189. package/dist/{notify-BmlPVAHr.cjs → notify-XY2e8y_a.cjs} +2 -2
  190. package/dist/{notify-BmlPVAHr.cjs.map → notify-XY2e8y_a.cjs.map} +1 -1
  191. package/dist/{option-DYw6IjKG.js → option-CSSmqUBi.js} +2 -2
  192. package/dist/{option-DYw6IjKG.js.map → option-CSSmqUBi.js.map} +1 -1
  193. package/dist/{option-DA812L2R.cjs → option-q-dig7LF.cjs} +2 -2
  194. package/dist/{option-DA812L2R.cjs.map → option-q-dig7LF.cjs.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-DI7uO_75.cjs → payment-card-form-C8bWa_hh.cjs} +2 -2
  198. package/dist/{payment-card-form-DI7uO_75.cjs.map → payment-card-form-C8bWa_hh.cjs.map} +1 -1
  199. package/dist/{payment-card-form-K2w6cCIE.js → payment-card-form-CWboYwqO.js} +3 -3
  200. package/dist/{payment-card-form-K2w6cCIE.js.map → payment-card-form-CWboYwqO.js.map} +1 -1
  201. package/dist/{progress-DDWci51w.cjs → progress-CP2lpJsl.cjs} +2 -2
  202. package/dist/{progress-DDWci51w.cjs.map → progress-CP2lpJsl.cjs.map} +1 -1
  203. package/dist/{progress-CHHtHq7e.js → progress-Cci0dXzp.js} +2 -2
  204. package/dist/{progress-CHHtHq7e.js.map → progress-Cci0dXzp.js.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button-BFWrUvoQ.cjs → radio-button-CU-lMs92.cjs} +2 -2
  208. package/dist/{radio-button-BFWrUvoQ.cjs.map → radio-button-CU-lMs92.cjs.map} +1 -1
  209. package/dist/{radio-button-Uzt9IgG3.js → radio-button-DFbfVgox.js} +3 -3
  210. package/dist/{radio-button-Uzt9IgG3.js.map → radio-button-DFbfVgox.js.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/{schmancy-steps-container-DCIjNVl9.cjs → schmancy-steps-container-CQY1zmws.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-DCIjNVl9.cjs.map → schmancy-steps-container-CQY1zmws.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-fxA9vvA6.js → schmancy-steps-container-vW7r1ZTL.js} +2 -2
  216. package/dist/{schmancy-steps-container-fxA9vvA6.js.map → schmancy-steps-container-vW7r1ZTL.js.map} +1 -1
  217. package/dist/{select-HByOFIgf.cjs → select-Be8HIqWu.cjs} +2 -2
  218. package/dist/{select-HByOFIgf.cjs.map → select-Be8HIqWu.cjs.map} +1 -1
  219. package/dist/{select-s2RGXov_.js → select-BkGodZaS.js} +3 -3
  220. package/dist/{select-s2RGXov_.js.map → select-BkGodZaS.js.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-CHMqdnPC.js → sheet-DECb9whB.js} +3 -3
  224. package/dist/{sheet-CHMqdnPC.js.map → sheet-DECb9whB.js.map} +1 -1
  225. package/dist/{sheet-B3SYJ5bI.cjs → sheet-dK5UPVjp.cjs} +2 -2
  226. package/dist/{sheet-B3SYJ5bI.cjs.map → sheet-dK5UPVjp.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-B5sg-McD.js → slider-BhFc1oRj.js} +3 -3
  230. package/dist/{slider-B5sg-McD.js.map → slider-BhFc1oRj.js.map} +1 -1
  231. package/dist/{slider-C34Lp0Ns.cjs → slider-CP3JRaWR.cjs} +2 -2
  232. package/dist/{slider-C34Lp0Ns.cjs.map → slider-CP3JRaWR.cjs.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-D2zUun1n.cjs → spinner-BD8cXVK_.cjs} +2 -2
  236. package/dist/{spinner-D2zUun1n.cjs.map → spinner-BD8cXVK_.cjs.map} +1 -1
  237. package/dist/{spinner-CsdQec_Y.js → spinner-DGyRYqUZ.js} +2 -2
  238. package/dist/{spinner-CsdQec_Y.js.map → spinner-DGyRYqUZ.js.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-jPIhloJG.cjs → suggestion-chip-C1n2VYBG.cjs} +31 -20
  242. package/dist/suggestion-chip-C1n2VYBG.cjs.map +1 -0
  243. package/dist/{suggestion-chip-BE4I1i8Z.js → suggestion-chip-Cl0cPTKV.js} +89 -70
  244. package/dist/suggestion-chip-Cl0cPTKV.js.map +1 -0
  245. package/dist/surface-C3V23wh9.js +140 -0
  246. package/dist/surface-C3V23wh9.js.map +1 -0
  247. package/dist/surface-ClIDhSRv.cjs +119 -0
  248. package/dist/surface-ClIDhSRv.cjs.map +1 -0
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-CzHvHTwO.cjs → table-1New2HBS.cjs} +2 -2
  252. package/dist/{table-CzHvHTwO.cjs.map → table-1New2HBS.cjs.map} +1 -1
  253. package/dist/{table-Zvpbmts7.js → table-CLA3cxIk.js} +2 -2
  254. package/dist/{table-Zvpbmts7.js.map → table-CLA3cxIk.js.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-BIwTX2f5.cjs → tabs-compatibility-DDtYFCUj.cjs} +2 -2
  258. package/dist/{tabs-compatibility-BIwTX2f5.cjs.map → tabs-compatibility-DDtYFCUj.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BRxG6DfR.js → tabs-compatibility-RMzYuSJ1.js} +2 -2
  260. package/dist/{tabs-compatibility-BRxG6DfR.js.map → tabs-compatibility-RMzYuSJ1.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-CFrLBtkD.cjs +2 -0
  264. package/dist/{tailwind.mixin-CvLC4LGm.cjs.map → tailwind.mixin-CFrLBtkD.cjs.map} +1 -1
  265. package/dist/tailwind.mixin-CZKT1dUr.js +43 -0
  266. package/dist/{tailwind.mixin-DXMWx0zN.js.map → tailwind.mixin-CZKT1dUr.js.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-BmfkGMl_.js → textarea-B4DXG5Sg.js} +2 -2
  270. package/dist/{textarea-BmfkGMl_.js.map → textarea-B4DXG5Sg.js.map} +1 -1
  271. package/dist/{textarea-BStwsU5t.cjs → textarea-ChDsPBZz.cjs} +2 -2
  272. package/dist/{textarea-BStwsU5t.cjs.map → textarea-ChDsPBZz.cjs.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-C0aKpjew.js → theme-button-DGjG_shg.js} +2 -2
  276. package/dist/{theme-button-C0aKpjew.js.map → theme-button-DGjG_shg.js.map} +1 -1
  277. package/dist/{theme-button-8UOIxNBy.cjs → theme-button-qzDX0i9Q.cjs} +2 -2
  278. package/dist/{theme-button-8UOIxNBy.cjs.map → theme-button-qzDX0i9Q.cjs.map} +1 -1
  279. package/dist/theme-button.cjs +1 -1
  280. package/dist/theme-button.js +1 -1
  281. package/dist/theme.cjs +1 -1
  282. package/dist/{theme.component-BvUi2mvO.cjs → theme.component-Blc_4wu9.cjs} +2 -2
  283. package/dist/{theme.component-BvUi2mvO.cjs.map → theme.component-Blc_4wu9.cjs.map} +1 -1
  284. package/dist/{theme.component-DPfWc8Tz.js → theme.component-C3r_-QqQ.js} +2 -2
  285. package/dist/{theme.component-DPfWc8Tz.js.map → theme.component-C3r_-QqQ.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-CyWZzj5y.js → timezone-BkE20wzQ.js} +3 -3
  288. package/dist/{timezone-CyWZzj5y.js.map → timezone-BkE20wzQ.js.map} +1 -1
  289. package/dist/{timezone-BqVai0NU.cjs → timezone-wWfEuXrb.cjs} +2 -2
  290. package/dist/{timezone-BqVai0NU.cjs.map → timezone-wWfEuXrb.cjs.map} +1 -1
  291. package/dist/{tooltip-B3OI6L58.cjs → tooltip-DLadXXnP.cjs} +2 -2
  292. package/dist/{tooltip-B3OI6L58.cjs.map → tooltip-DLadXXnP.cjs.map} +1 -1
  293. package/dist/{tooltip-ADFA2Hhl.js → tooltip-UtpbXzQX.js} +2 -2
  294. package/dist/{tooltip-ADFA2Hhl.js.map → tooltip-UtpbXzQX.js.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-Dn_LFln3.cjs → tree-Brtho3Eu.cjs} +2 -2
  298. package/dist/{tree-Dn_LFln3.cjs.map → tree-Brtho3Eu.cjs.map} +1 -1
  299. package/dist/{tree-B8U0nKLT.js → tree-VkXtw2P8.js} +2 -2
  300. package/dist/{tree-B8U0nKLT.js.map → tree-VkXtw2P8.js.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-D16QiY6_.cjs → typewriter-CEgaw_pR.cjs} +2 -2
  304. package/dist/{typewriter-D16QiY6_.cjs.map → typewriter-CEgaw_pR.cjs.map} +1 -1
  305. package/dist/{typewriter-eEIOUfNO.js → typewriter-CsReDsYS.js} +4 -4
  306. package/dist/{typewriter-eEIOUfNO.js.map → typewriter-CsReDsYS.js.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-BuYmtWlY.js → typography-D_bM5DW7.js} +2 -2
  310. package/dist/{typography-BuYmtWlY.js.map → typography-D_bM5DW7.js.map} +1 -1
  311. package/dist/{typography-9tbZm7OD.cjs → typography-NurK7F-8.cjs} +2 -2
  312. package/dist/{typography-9tbZm7OD.cjs.map → typography-NurK7F-8.cjs.map} +1 -1
  313. package/dist/typography.cjs +1 -1
  314. package/dist/typography.js +1 -1
  315. package/package.json +1 -1
  316. package/types/src/card/card.d.ts +5 -1
  317. package/types/src/chips/chips.d.ts +1 -6
  318. package/types/src/details/details.d.ts +4 -4
  319. package/dist/details-BVo7N1R-.cjs +0 -161
  320. package/dist/details-BVo7N1R-.cjs.map +0 -1
  321. package/dist/details-b0374YYL.js +0 -228
  322. package/dist/details-b0374YYL.js.map +0 -1
  323. package/dist/media-CXD15d1H.js +0 -261
  324. package/dist/media-CXD15d1H.js.map +0 -1
  325. package/dist/media-DPyw2ILI.cjs +0 -177
  326. package/dist/media-DPyw2ILI.cjs.map +0 -1
  327. package/dist/navigation-rail-Cwhii1Km.js.map +0 -1
  328. package/dist/navigation-rail-DpffIkNR.cjs.map +0 -1
  329. package/dist/suggestion-chip-BE4I1i8Z.js.map +0 -1
  330. package/dist/suggestion-chip-jPIhloJG.cjs.map +0 -1
  331. package/dist/surface-D8fzaQOr.cjs +0 -90
  332. package/dist/surface-D8fzaQOr.cjs.map +0 -1
  333. package/dist/surface-QCZ627r4.js +0 -111
  334. package/dist/surface-QCZ627r4.js.map +0 -1
  335. package/dist/tailwind.mixin-CvLC4LGm.cjs +0 -2
  336. package/dist/tailwind.mixin-DXMWx0zN.js +0 -43
@@ -1 +1 @@
1
- {"version":3,"file":"sheet-B3SYJ5bI.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\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}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheet","$LitElement","constructor","super","arguments","open","header","position","SchmancySheetPosition","Side","persist","lock","handleHistory","title","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","handleHeaderDismiss","_oldValue","newValue","document","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","tap","preventDefault","closeSheet","of","take","keyUp$","event","key","rickyComm$","SheetWhereAreYouRicky","detail","SheetHereMorty","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","setAttribute","removeAttribute","body","isShown","value","String","getFocusElement","selector","assignedElements","find","el","matches","querySelector","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
1
+ {"version":3,"file":"sheet-dK5UPVjp.cjs","sources":["../src/sheet/header.ts","../src/sheet/sheet.ts","../src/sheet/hook.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-sheet-header')\nexport default class SchmancySheetHeader extends TailwindElement(css``) {\n\trender() {\n\t\treturn html`\n\t\t\t<sch-flex class=\"absolute top-0 left-0 md:left-[unset] md:right-0\">\n\t\t\t\t<div class=\"block md:hidden flex-1 justify-start items-start\">\n\t\t\t\t\t<slot name=\"back\">\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"text-[24px]\">&#8592; </span>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"hidden md:block flex-1 justify-end items-end\">\n\t\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\t\t\t\tnew CustomEvent('dismiss', {\n\t\t\t\t\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tclose\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</sch-flex>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet-header': SchmancySheetHeader\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { fromEvent, merge, of, take, takeUntil, tap } from 'rxjs'\nimport { on } from './hook'\nimport style from './sheet.scss?inline'\nimport {\n\tSchmancySheetPosition,\n\tSheetHereMorty,\n\tSheetWhereAreYouRicky,\n\tSheetWhereAreYouRickyEvent,\n\tsheet,\n} from './sheet.service'\n\n@customElement('schmancy-sheet')\nexport default class SchmancySheet extends $LitElement(style) {\n\t@property({ type: String, reflect: true }) uid!: string\n\t@property({ type: Boolean, reflect: true }) open = false\n\t@property({ type: String, reflect: true }) header: 'hidden' | 'visible' = 'visible'\n\t@property({ type: String, reflect: true }) position: SchmancySheetPosition = SchmancySheetPosition.Side\n\t@property({ type: Boolean, reflect: true }) persist = false\n\t@property({ type: Boolean, reflect: true }) lock = false\n\t@property({ type: Boolean, reflect: true }) handleHistory = true\n\t@property({ type: String, reflect: true }) title = ''\n\n\t// Use ref directive instead of @query\n\tprivate sheetRef = createRef<HTMLDivElement>()\n\t@queryAssignedElements({ flatten: true }) private assignedElements!: HTMLElement[]\n\n\t@property() focusAttribute = 'autofocus'\n\tprivate lastFocusedElement: HTMLElement | null = null\n\n\t@on('open')\n\tonOpenChange(_oldValue: boolean, newValue: boolean) {\n\t\tif (newValue) {\n\t\t\tthis.lastFocusedElement = document.activeElement as HTMLElement\n\t\t\t// Use native inert attribute to prevent focus outside sheet\n\t\t\tthis.setBackgroundInert(true)\n\t\t\tthis.focus()\n\t\t} else {\n\t\t\tthis.setBackgroundInert(false)\n\t\t\tthis.lastFocusedElement?.focus()\n\t\t\tthis.lastFocusedElement = null\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tthis.setupEventListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.disconnecting.next(true)\n\t}\n\n\tprivate setupEventListeners() {\n\t\t// Handle browser back button - only if handleHistory is true\n\t\tconst popState$ = this.handleHistory\n\t\t\t? fromEvent<PopStateEvent>(window, 'popstate').pipe(\n\t\t\t\t\ttap(e => {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.closeSheet()\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: of(null).pipe(take(0)) // Empty observable if handleHistory is false\n\n\t\t// Handle ESC key - listen on the sheet element for better event capture\n\t\tconst keyUp$ = fromEvent<KeyboardEvent>(this, 'keydown').pipe(\n\t\t\ttap(event => {\n\t\t\t\tif (event.key === 'Escape' && !this.lock && this.open) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tsheet.dismiss(this.uid)\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\n\t\t// Handle inter-component communication\n\t\tconst rickyComm$ = fromEvent<SheetWhereAreYouRickyEvent>(window, SheetWhereAreYouRicky).pipe(\n\t\t\ttap(e => {\n\t\t\t\tif (e.detail.uid === this.uid)\n\t\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\t\tnew CustomEvent(SheetHereMorty, {\n\t\t\t\t\t\t\tdetail: { sheet: this },\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}),\n\t\t)\n\n\t\tmerge(popState$, keyUp$, rickyComm$).pipe(takeUntil(this.disconnecting)).subscribe()\n\t}\n\n\tprivate setBackgroundInert(inert: boolean) {\n\t\t// Get all sibling elements and make them inert\n\t\tconst parent = this.parentElement\n\t\tif (parent) {\n\t\t\tArray.from(parent.children).forEach(child => {\n\t\t\t\tif (child !== this && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\t// Also handle body's direct children if sheet is attached to body\n\t\tif (this.parentElement === document.body) {\n\t\t\tArray.from(document.body.children).forEach(child => {\n\t\t\t\tif (child !== this && child !== parent && child instanceof HTMLElement) {\n\t\t\t\t\tif (inert) {\n\t\t\t\t\t\tchild.setAttribute('inert', '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild.removeAttribute('inert')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tsetIsSheetShown(isShown: boolean) {\n\t\tthis.sheetRef.value?.setAttribute('aria-hidden', String(!isShown))\n\t\tthis.sheetRef.value?.setAttribute('aria-modal', String(isShown))\n\t}\n\n\tcloseSheet() {\n\t\tthis.open = false\n\t\tthis.dispatchEvent(new CustomEvent('close'))\n\t}\n\n\tprivate getFocusElement(): HTMLElement | null {\n\t\tconst selector = `[${this.focusAttribute}]`\n\t\treturn (this.assignedElements.find(el => el.matches(selector) || el.querySelector(selector)) as HTMLElement) ?? null\n\t}\n\n\toverride focus() {\n\t\t// First try native autofocus attribute\n\t\tconst autofocusElement = this.querySelector('[autofocus]') as HTMLElement\n\t\tif (autofocusElement) {\n\t\t\tautofocusElement.focus()\n\t\t\treturn\n\t\t}\n\n\t\t// Fallback to custom focus attribute\n\t\tthis.getFocusElement()?.focus()\n\t}\n\n\tprivate handleOverlayClick = (e: Event) => {\n\t\te.stopPropagation()\n\t\tif (!this.lock) {\n\t\t\tsheet.dismiss(this.uid)\n\t\t}\n\t}\n\n\tprivate handleHeaderDismiss = (e: CustomEvent) => {\n\t\te.stopPropagation()\n\t\tsheet.dismiss(this.uid)\n\t}\n\n\trender() {\n\t\tconst sheetClasses = {\n\t\t\tsheet: true,\n\t\t\t'sheet--open': this.open,\n\t\t\t'sheet--locked': this.lock,\n\t\t}\n\n\t\tconst overlayClasses = {\n\t\t\toverlay: true,\n\t\t\t'overlay--interactive': !this.lock,\n\t\t}\n\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=${classMap(sheetClasses)}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-labelledby=${ifDefined(this.header !== 'hidden' ? 'sheet-title' : undefined)}\n\t\t\t\taria-hidden=${!this.open}\n\t\t\t\taria-modal=${this.open}\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t${ref(this.sheetRef)}\n\t\t\t>\n\t\t\t\t<div class=${classMap(overlayClasses)} @click=${this.lock ? undefined : this.handleOverlayClick}></div>\n\t\t\t\t<schmancy-grid\n\t\t\t\t\trows=${this.header === 'hidden' ? '1fr' : 'auto 1fr'}\n\t\t\t\t\tclass=\"content w-full\"\n\t\t\t\t\tdata-position=${this.position}\n\t\t\t\t>\n\t\t\t\t\t${cache(\n\t\t\t\t\t\tthis.header !== 'hidden'\n\t\t\t\t\t\t\t? html`<schmancy-sheet-header\n\t\t\t\t\t\t\t\t\tclass=\"sticky top-0 z-50 w-full\"\n\t\t\t\t\t\t\t\t\t@dismiss=${this.handleHeaderDismiss}\n\t\t\t\t\t\t\t\t\tid=\"sheet-title\"\n\t\t\t\t\t\t\t\t\ttitle=${ifDefined(this.title || undefined)}\n\t\t\t\t\t\t\t\t></schmancy-sheet-header>`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t)}\n\n\t\t\t\t\t<schmancy-surface rounded=\"left\" fill=\"all\" id=\"body\" class=\"overflow-auto\" type=\"surface\">\n\t\t\t\t\t\t<schmancy-scroll> <slot></slot></schmancy-scroll>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-grid>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-sheet': SchmancySheet\n\t}\n}\n","// @watch decorator\n//\n// Runs when an observed property changes, e.g. @property or @state, but before the component updates.\n//\n// To wait for an update to complete after a change occurs, use `await this.updateComplete` in the handler. To start\n// watching after the initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.\n//\n// Usage:\n//\n// @watch('propName')\n// handlePropChange(oldValue, newValue) {\n// ...\n// }\n//\ninterface WatchOptions {\n\twaitUntilFirstUpdate?: boolean\n}\n\nexport function on(propName: string, options?: WatchOptions) {\n\treturn (protoOrDescriptor: any, name: string): any => {\n\t\tconst { willUpdate } = protoOrDescriptor\n\n\t\toptions = Object.assign({ waitUntilFirstUpdate: false }, options) as WatchOptions\n\n\t\tprotoOrDescriptor.willUpdate = function (changedProps: Map<string, any>) {\n\t\t\twillUpdate.call(this, changedProps)\n\n\t\t\tif (changedProps.has(propName)) {\n\t\t\t\tconst oldValue = changedProps.get(propName)\n\t\t\t\tconst newValue = this[propName]\n\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\tif (!options?.waitUntilFirstUpdate || this.hasUpdated) {\n\t\t\t\t\t\tthis[name].call(this, oldValue, newValue)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["SchmancySheetHeader","TailwindElement","css","render","html","this","dispatchEvent","CustomEvent","bubbles","composed","customElement","SchmancySheet","$LitElement","constructor","super","arguments","open","header","position","SchmancySheetPosition","Side","persist","lock","handleHistory","title","sheetRef","createRef","focusAttribute","lastFocusedElement","handleOverlayClick","e","stopPropagation","sheet","dismiss","uid","handleHeaderDismiss","_oldValue","newValue","document","activeElement","setBackgroundInert","focus","connectedCallback","setupEventListeners","disconnectedCallback","disconnecting","next","popState$","fromEvent","window","pipe","tap","preventDefault","closeSheet","of","take","keyUp$","event","key","rickyComm$","SheetWhereAreYouRicky","detail","SheetHereMorty","merge","takeUntil","subscribe","inert","parent","parentElement","Array","from","children","forEach","child","HTMLElement","setAttribute","removeAttribute","body","isShown","value","String","getFocusElement","selector","assignedElements","find","el","matches","querySelector","autofocusElement","sheetClasses","overlayClasses","overlay","classMap","ifDefined","ref","cache","propName","options","__decorateClass","property","type","reflect","prototype","Boolean","queryAssignedElements","flatten","protoOrDescriptor","name","willUpdate","Object","assign","waitUntilFirstUpdate","changedProps","call","has","oldValue","get","hasUpdated"],"mappings":"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"}
package/dist/sheet.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./sheet-B3SYJ5bI.cjs");const e=require("./sheet.service-BxvWBGsJ.cjs");exports.SchmancySheetPosition=e.SchmancySheetPosition,exports.SheetHereMorty=e.SheetHereMorty,exports.SheetWhereAreYouRicky=e.SheetWhereAreYouRicky,exports.sheet=e.sheet;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./sheet-dK5UPVjp.cjs");const e=require("./sheet.service-BxvWBGsJ.cjs");exports.SchmancySheetPosition=e.SchmancySheetPosition,exports.SheetHereMorty=e.SheetHereMorty,exports.SheetWhereAreYouRicky=e.SheetWhereAreYouRicky,exports.sheet=e.sheet;
2
2
  //# sourceMappingURL=sheet.cjs.map
package/dist/sheet.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./sheet-CHMqdnPC.js";
1
+ import "./sheet-DECb9whB.js";
2
2
  import { S as r, b as s, a, s as h } from "./sheet.service-lXqUf6n5.js";
3
3
  export {
4
4
  r as SchmancySheetPosition,
@@ -2,8 +2,8 @@ import { fromEvent as g } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
4
  import { property as d, customElement as f, state as x, query as y } from "lit/decorators.js";
5
- import "./tailwind.mixin-DXMWx0zN.js";
6
- import { $ as m } from "./litElement.mixin-BjvDNbpd.js";
5
+ import "./tailwind.mixin-CZKT1dUr.js";
6
+ import { $ as m } from "./litElement.mixin-B0Rsd4Km.js";
7
7
  import { css as v, html as c } from "lit";
8
8
  import { cache as S } from "lit/directives/cache.js";
9
9
  import { throttleTime as w } from "rxjs/operators";
@@ -158,4 +158,4 @@ export {
158
158
  i as S,
159
159
  h as a
160
160
  };
161
- //# sourceMappingURL=slider-B5sg-McD.js.map
161
+ //# sourceMappingURL=slider-BhFc1oRj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-B5sg-McD.js","sources":["../src/slider/slide.ts","../src/slider/slider.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\n\n/**\n * Supported slide \"types.\"\n * - 'image': Renders an <img>\n * - 'video': Renders a <video>\n * - 'content': Renders a <slot> (the default)\n */\ntype SlideType = 'image' | 'video' | 'content'\n\n/**\n * Allowed values for the 'fit' property,\n * which maps to CSS object-fit.\n */\ntype ObjectFit = 'cover' | 'contain' | 'fill' | 'scale-down' | 'none'\n\n@customElement('schmancy-slide')\nexport class SchmancySlide extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tscroll-snap-align: center; /* If your slider uses scroll-snap */\n\t}\n\n\t.slide {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tobject-fit: var(--object-fit, cover);\n\t}\n`) {\n\t/**\n\t * Determines how this slide should be rendered.\n\t * Defaults to 'content' if not provided.\n\t */\n\t@property({ type: String }) type: SlideType = 'content'\n\n\t/**\n\t * Source for images or videos (if `type` is 'image' or 'video').\n\t */\n\t@property({ type: String }) src: string = ''\n\n\t/**\n\t * Alternate text for images.\n\t */\n\t@property({ type: String }) alt: string = ''\n\n\t/**\n\t * Whether to show default video controls (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) controls = true\n\n\t/**\n\t * Whether the video should autoplay (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) autoplay = false\n\n\t/**\n\t * Whether the video should loop (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Whether the video is muted (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) muted = false\n\n\t/**\n\t * CSS `object-fit` property, applied to images/videos.\n\t */\n\t@property({ type: String }) fit: ObjectFit = 'cover'\n\n\trender() {\n\t\treturn html` <div style=\"--object-fit: ${this.fit}\">${cache(this.renderSlide())}</div> `\n\t}\n\n\tprivate renderSlide() {\n\t\tswitch (this.type) {\n\t\t\tcase 'image':\n\t\t\t\treturn html` <img class=\"slide\" src=\"${this.src}\" alt=\"${this.alt}\" loading=\"lazy\" /> `\n\t\t\tcase 'video':\n\t\t\t\treturn html`\n\t\t\t\t\t<video\n\t\t\t\t\t\tclass=\"slide\"\n\t\t\t\t\t\tsrc=\"${this.src}\"\n\t\t\t\t\t\t?controls=\"${this.controls}\"\n\t\t\t\t\t\t?autoplay=\"${this.autoplay}\"\n\t\t\t\t\t\t?loop=\"${this.loop}\"\n\t\t\t\t\t\t?muted=\"${this.muted}\"\n\t\t\t\t\t>\n\t\t\t\t\t\tYour browser does not support HTML video.\n\t\t\t\t\t</video>\n\t\t\t\t`\n\t\t\tcase 'content':\n\t\t\tdefault:\n\t\t\t\treturn html`<slot></slot>`\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slide': SchmancySlide\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { fromEvent } from 'rxjs'\nimport { throttleTime } from 'rxjs/operators'\n\n@customElement('schmancy-slider')\nexport class SchmancySlider extends $LitElement(css`\n\t.slider {\n\t\t/* Lay out slides horizontally, one after another */\n\t\tdisplay: flex;\n\t\toverflow-x: auto;\n\n\t\t/* Optional: scroll snapping */\n\t\tscroll-snap-type: x mandatory;\n\n\t\t/* Hide scrollbars */\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.slider::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, Opera */\n\t}\n\n\t/* \n Ensure each slide takes up the full slider width.\n \"schmancy-slide\" is the child custom element.\n */\n\t::slotted(schmancy-slide) {\n\t\tflex: 0 0 100%;\n\t\tbox-sizing: border-box;\n\t}\n`) {\n\t/**\n\t * Currently centered slide index\n\t */\n\t@state() private selectedIndex: number = 0\n\n\t/**\n\t * If true, renders next/prev buttons\n\t */\n\t@property({ type: Boolean }) showArrows: boolean = true\n\n\t@query('#slider') private slider!: HTMLDivElement\n\t@query('slot') private defaultSlot!: HTMLSlotElement\n\n\tprotected firstUpdated() {\n\t\t// Start at leftmost position\n\t\tthis.slider.scrollLeft = 0\n\n\t\t// Throttle scroll events to update selected index\n\t\tfromEvent(this.slider, 'scroll')\n\t\t\t.pipe(throttleTime(100, undefined, { trailing: true }))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.updateSelectedIndexOnScroll()\n\t\t\t})\n\t}\n\n\tprivate updateSelectedIndexOnScroll() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides.length) return\n\n\t\tconst oldIndex = this.selectedIndex\n\n\t\t// Center of the slider’s visible area\n\t\tconst sliderCenter = this.slider.scrollLeft + this.slider.clientWidth / 2\n\n\t\tlet closestIndex = 0\n\t\tlet closestDistance = Infinity\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst itemStart = (slide as HTMLElement).offsetLeft\n\t\t\tconst itemCenter = itemStart + slide.clientWidth / 2\n\t\t\tconst distance = Math.abs(sliderCenter - itemCenter)\n\n\t\t\tif (distance < closestDistance) {\n\t\t\t\tclosestDistance = distance\n\t\t\t\tclosestIndex = index\n\t\t\t}\n\t\t})\n\n\t\tthis.selectedIndex = closestIndex\n\n\t\t// If the index changed, dispatch event\n\t\tif (this.selectedIndex !== oldIndex) {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('slide-changed', {\n\t\t\t\t\tdetail: { index: this.selectedIndex },\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate goToSlide(newIndex: number) {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides[newIndex]) return\n\n\t\tthis.slider.scrollTo({\n\t\t\tleft: (slides[newIndex] as HTMLElement).offsetLeft,\n\t\t\tbehavior: 'smooth',\n\t\t})\n\t}\n\n\tprivate onPrevClick() {\n\t\tthis.goToSlide(this.selectedIndex - 1)\n\t}\n\n\tprivate onNextClick() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (this.selectedIndex < slides.length - 1) {\n\t\t\tthis.goToSlide(this.selectedIndex + 1)\n\t\t}\n\t}\n\n\trender() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0\">\n\t\t\t\t<!-- The scrollable track -->\n\t\t\t\t<div class=\"slider\" id=\"slider\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Next/Prev Buttons (Optional) -->\n\t\t\t\t${this.showArrows\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute left-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onPrevClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === 0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_left\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute right-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onNextClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === slides.length - 1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_right\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: null}\n\n\t\t\t\t<!-- Dots / indicators -->\n\t\t\t\t<div class=\"absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2\">\n\t\t\t\t\t${slides.map((_, index) => {\n\t\t\t\t\t\tconst isSelected = index === this.selectedIndex\n\t\t\t\t\t\treturn html`\n\t\t\t\t\t\t\t<schmancy-button .variant=${isSelected ? 'filled tonal' : 'outlined'} class=\"rounded-full \">\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slider': SchmancySlider\n\t}\n}\n"],"names":["SchmancySlide","$LitElement","css","constructor","super","arguments","this","type","src","alt","controls","autoplay","loop","muted","fit","render","html","cache","renderSlide","__decorateClass","property","String","prototype","Boolean","customElement","SchmancySlider","selectedIndex","showArrows","slider","scrollLeft","fromEvent","pipe","throttleTime","trailing","subscribe","updateSelectedIndexOnScroll","slides","defaultSlot","assignedElements","flatten","length","oldIndex","sliderCenter","clientWidth","closestIndex","closestDistance","Infinity","forEach","slide","index","itemCenter","offsetLeft","distance","Math","abs","dispatchEvent","CustomEvent","detail","newIndex","scrollTo","left","behavior","onPrevClick","goToSlide","onNextClick","map","_","isSelected","state","query"],"mappings":";;;;;;;;;;;;;AAoBO,IAAMA,IAAN,cAA4BC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAAxC,cAAAC;AAAAC,UAAAA,GAAAC,SAAAA,GAiBsBC,KAAAC,OAAkB,WAKlBD,KAAAE,MAAc,IAKdF,KAAAG,MAAc,IAKbH,KAAAI,eAKAJ,KAAAK,WAAAA,IAKAL,KAAAM,OAAAA,IAKAN,KAAAO,QAAAA,IAKDP,KAAAQ,MAAiB;AAAA,EAAA;AAAA,EAE7C,SAAAC;AACC,WAAOC,+BAAkCV,KAAKQ,GAAAA,KAAQG,EAAMX,KAAKY,YAAAA,CAAAA,CAAAA;AAAAA,EAClE;AAAA,EAEQ,cAAAA;AACP,YAAQZ,KAAKC;MACZ,KAAK;AACJ,eAAOS,6BAAgCV,KAAKE,GAAAA,UAAaF,KAAKG,GAAAA;AAAAA,MAC/D,KAAK;AACJ,eAAOO;AAAAA;AAAAA;AAAAA,aAGEV,KAAKE,GAAAA;AAAAA,mBACCF,KAAKI,QAAAA;AAAAA,mBACLJ,KAAKK,QAAAA;AAAAA,eACTL,KAAKM,IAAAA;AAAAA,gBACJN,KAAKO,KAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAMlB;AACC,eAAOG;AAAAA,IAAA;AAAA,EAEV;AAAA;AA9D4BG,EAAA,CAA3BC,EAAS,EAAEb,MAAMc,OAAAA,CAAAA,CAAAA,GAjBNrB,EAiBgBsB,WAAA,QAAA,IAKAH,EAAA,CAA3BC,EAAS,EAAEb,MAAMc,OAAAA,CAAAA,CAAAA,GAtBNrB,EAsBgBsB,WAAA,OAAA,CAAA,GAKAH,EAAA,CAA3BC,EAAS,EAAEb,MAAMc,OAAAA,CAAAA,CAAAA,GA3BNrB,EA2BgBsB,WAAA,OAAA,CAAA,GAKCH,EAAA,CAA5BC,EAAS,EAAEb,MAAMgB,QAAAA,CAAAA,CAAAA,GAhCNvB,EAgCiBsB,WAAA,YAAA,CAAA,GAKAH,EAAA,CAA5BC,EAAS,EAAEb,MAAMgB,QAAAA,CAAAA,CAAAA,GArCNvB,EAqCiBsB,WAAA,YAAA,CAAA,GAKAH,EAAA,CAA5BC,EAAS,EAAEb,MAAMgB,QAAAA,CAAAA,CAAAA,GA1CNvB,EA0CiBsB,WAAA,QAAA,CAAA,GAKAH,EAAA,CAA5BC,EAAS,EAAEb,MAAMgB,QAAAA,CAAAA,CAAAA,GA/CNvB,EA+CiBsB,WAAA,SAAA,CAAA,GAKDH,EAAA,CAA3BC,EAAS,EAAEb,MAAMc,YApDNrB,EAoDgBsB,WAAA,OAAA,CAAA,GApDhBtB,IAANmB,EAAA,CADNK,EAAc,oBACFxB,CAAAA;;;;;ACbN,IAAMyB,IAAN,cAA6BxB,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzC,EAAA;AAAA,EAAA;AAAAE,UAAAA,GAAAC,SAAAA,GA6BGC,KAAQoB,gBAAwB,GAKZpB,KAAAqB,aAAAA;AAAAA,EAAsB;AAAA,EAKzC;AAETrB,SAAKsB,OAAOC,aAAa,GAGzBC,EAAUxB,KAAKsB,QAAQ,QAAA,EACrBG,KAAKC,EAAa,aAAgB,EAAEC,aAAU,CAAA,CAAA,EAC9CC,UAAU;AACV5B,WAAK6B,4BAAAA;AAAAA,IAAAA,CAAAA;AAAAA,EAER;AAAA,EAEQ;AACP,UAAMC,IAAS9B,KAAK+B,aAAaC,iBAAiB,EAAEC,SAAAA,GAAS,CAAA,KAAW,CAAA;AACxE,QAAA,CAAKH,EAAOI,OAAQ;AAEpB,UAAMC,IAAWnC,KAAKoB,eAGhBgB,IAAepC,KAAKsB,OAAOC,aAAavB,KAAKsB,OAAOe,cAAc;AAExE,QAAIC,IAAe,GACfC,IAAkBC;AAEtBV,IAAAA,EAAOW,QAAQ,CAACC,GAAOC,MAAAA;AACtB,YACMC,IADaF,EAAsBG,aACVH,EAAML,cAAc,GAC7CS,IAAWC,KAAKC,IAAIZ,IAAeQ;AAErCE,MAAAA,IAAWP,MACdA,IAAkBO,GAClBR,IAAeK;AAAAA,IAAAA,CAAAA,GAIjB3C,KAAKoB,gBAAgBkB,GAGjBtC,KAAKoB,kBAAkBe,KAC1BnC,KAAKiD,cACJ,IAAIC,YAAY,iBAAiB,EAChCC,QAAQ,EAAER,OAAO3C,KAAKoB,cAAAA,EAAAA,CAAAA,CAAAA;AAAAA,EAI1B;AAAA,EAEQ,UAAUgC,GAAAA;AACjB,UAAMtB,IAAS9B,KAAK+B,aAAaC,iBAAiB,EAAEC,SAAAA,GAAS,CAAA,KAAW;AACnEH,MAAOsB,CAAAA,KAEZpD,KAAKsB,OAAO+B,SAAS,EACpBC,MAAOxB,EAAOsB,CAAAA,EAA0BP,YACxCU,UAAU,SAAA,CAAA;AAAA,EAEZ;AAAA,EAEQ,cAAAC;AACPxD,SAAKyD,UAAUzD,KAAKoB,gBAAgB,CAAA;AAAA,EACrC;AAAA,EAEQ,cAAAsC;AACP,UAAM5B,IAAS9B,KAAK+B,aAAaC,iBAAiB,EAAEC,YAAS,CAAA,KAAW,CAAA;AACpEjC,SAAKoB,gBAAgBU,EAAOI,SAAS,KACxClC,KAAKyD,UAAUzD,KAAKoB,gBAAgB,CAAA;AAAA,EAEtC;AAAA,EAEA,SAAAX;AACC,UAAMqB,IAAS9B,KAAK+B,aAAaC,iBAAiB,EAAEC,YAAS,CAAA,KAAW,CAAA;AAExE,WAAOvB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAQHV,KAAKqB,aACJX;AAAAA;AAAAA;AAAAA,iBAGUV,KAAKwD,WAAAA;AAAAA,oBACFxD,KAAKoB,kBAAkB,CAAlBA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAMRpB,KAAK0D,WAAAA;AAAAA,oBACF1D,KAAKoB,kBAAkBU,EAAOI,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA,UAKpD,IAAA;AAAA;AAAA;AAAA;AAAA,OAIAJ,EAAO6B,IAAI,CAACC,GAAGjB,MAAAA;AAChB,YAAMkB,IAAalB,MAAU3C,KAAKoB;AAClC,aAAOV;AAAAA,mCACsBmD,IAAa,iBAAiB,UAAA;AAAA;AAAA;AAAA;;;;EAOhE;AAAA;AAxHiBhD,EAAA,CAAhBiD,EAAAA,CAAAA,GA7BW3C,EA6BKH,WAAA,iBAAA,CAAA,GAKYH,EAAA,CAA5BC,EAAS,EAAEb,MAAMgB,QAAAA,CAAAA,CAAAA,GAlCNE,EAkCiBH,WAAA,cAAA,IAEHH,EAAA,CAAzBkD,EAAM,SAAA,CAAA,GApCK5C,EAoCcH,WAAA,UAAA,IACHH,EAAA,CAAtBkD,EAAM,MAAA,CAAA,GArCK5C,EAqCWH,WAAA,eAAA,IArCXG,IAANN,EAAA,CADNK,EAAc,iBAAA,CAAA,GACFC;"}
1
+ {"version":3,"file":"slider-BhFc1oRj.js","sources":["../src/slider/slide.ts","../src/slider/slider.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\n\n/**\n * Supported slide \"types.\"\n * - 'image': Renders an <img>\n * - 'video': Renders a <video>\n * - 'content': Renders a <slot> (the default)\n */\ntype SlideType = 'image' | 'video' | 'content'\n\n/**\n * Allowed values for the 'fit' property,\n * which maps to CSS object-fit.\n */\ntype ObjectFit = 'cover' | 'contain' | 'fill' | 'scale-down' | 'none'\n\n@customElement('schmancy-slide')\nexport class SchmancySlide extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tscroll-snap-align: center; /* If your slider uses scroll-snap */\n\t}\n\n\t.slide {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tobject-fit: var(--object-fit, cover);\n\t}\n`) {\n\t/**\n\t * Determines how this slide should be rendered.\n\t * Defaults to 'content' if not provided.\n\t */\n\t@property({ type: String }) type: SlideType = 'content'\n\n\t/**\n\t * Source for images or videos (if `type` is 'image' or 'video').\n\t */\n\t@property({ type: String }) src: string = ''\n\n\t/**\n\t * Alternate text for images.\n\t */\n\t@property({ type: String }) alt: string = ''\n\n\t/**\n\t * Whether to show default video controls (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) controls = true\n\n\t/**\n\t * Whether the video should autoplay (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) autoplay = false\n\n\t/**\n\t * Whether the video should loop (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Whether the video is muted (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) muted = false\n\n\t/**\n\t * CSS `object-fit` property, applied to images/videos.\n\t */\n\t@property({ type: String }) fit: ObjectFit = 'cover'\n\n\trender() {\n\t\treturn html` <div style=\"--object-fit: ${this.fit}\">${cache(this.renderSlide())}</div> `\n\t}\n\n\tprivate renderSlide() {\n\t\tswitch (this.type) {\n\t\t\tcase 'image':\n\t\t\t\treturn html` <img class=\"slide\" src=\"${this.src}\" alt=\"${this.alt}\" loading=\"lazy\" /> `\n\t\t\tcase 'video':\n\t\t\t\treturn html`\n\t\t\t\t\t<video\n\t\t\t\t\t\tclass=\"slide\"\n\t\t\t\t\t\tsrc=\"${this.src}\"\n\t\t\t\t\t\t?controls=\"${this.controls}\"\n\t\t\t\t\t\t?autoplay=\"${this.autoplay}\"\n\t\t\t\t\t\t?loop=\"${this.loop}\"\n\t\t\t\t\t\t?muted=\"${this.muted}\"\n\t\t\t\t\t>\n\t\t\t\t\t\tYour browser does not support HTML video.\n\t\t\t\t\t</video>\n\t\t\t\t`\n\t\t\tcase 'content':\n\t\t\tdefault:\n\t\t\t\treturn html`<slot></slot>`\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slide': SchmancySlide\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { fromEvent } from 'rxjs'\nimport { throttleTime } from 'rxjs/operators'\n\n@customElement('schmancy-slider')\nexport class SchmancySlider extends $LitElement(css`\n\t.slider {\n\t\t/* Lay out slides horizontally, one after another */\n\t\tdisplay: flex;\n\t\toverflow-x: auto;\n\n\t\t/* Optional: scroll snapping */\n\t\tscroll-snap-type: x mandatory;\n\n\t\t/* Hide scrollbars */\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.slider::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, Opera */\n\t}\n\n\t/* \n Ensure each slide takes up the full slider width.\n \"schmancy-slide\" is the child custom element.\n */\n\t::slotted(schmancy-slide) {\n\t\tflex: 0 0 100%;\n\t\tbox-sizing: border-box;\n\t}\n`) {\n\t/**\n\t * Currently centered slide index\n\t */\n\t@state() private selectedIndex: number = 0\n\n\t/**\n\t * If true, renders next/prev buttons\n\t */\n\t@property({ type: Boolean }) showArrows: boolean = true\n\n\t@query('#slider') private slider!: HTMLDivElement\n\t@query('slot') private defaultSlot!: HTMLSlotElement\n\n\tprotected firstUpdated() {\n\t\t// Start at leftmost position\n\t\tthis.slider.scrollLeft = 0\n\n\t\t// Throttle scroll events to update selected index\n\t\tfromEvent(this.slider, 'scroll')\n\t\t\t.pipe(throttleTime(100, undefined, { trailing: true }))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.updateSelectedIndexOnScroll()\n\t\t\t})\n\t}\n\n\tprivate updateSelectedIndexOnScroll() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides.length) return\n\n\t\tconst oldIndex = this.selectedIndex\n\n\t\t// Center of the slider’s visible area\n\t\tconst sliderCenter = this.slider.scrollLeft + this.slider.clientWidth / 2\n\n\t\tlet closestIndex = 0\n\t\tlet closestDistance = Infinity\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst itemStart = (slide as HTMLElement).offsetLeft\n\t\t\tconst itemCenter = itemStart + slide.clientWidth / 2\n\t\t\tconst distance = Math.abs(sliderCenter - itemCenter)\n\n\t\t\tif (distance < closestDistance) {\n\t\t\t\tclosestDistance = distance\n\t\t\t\tclosestIndex = index\n\t\t\t}\n\t\t})\n\n\t\tthis.selectedIndex = closestIndex\n\n\t\t// If the index changed, dispatch event\n\t\tif (this.selectedIndex !== oldIndex) {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('slide-changed', {\n\t\t\t\t\tdetail: { index: this.selectedIndex },\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate goToSlide(newIndex: number) {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides[newIndex]) return\n\n\t\tthis.slider.scrollTo({\n\t\t\tleft: (slides[newIndex] as HTMLElement).offsetLeft,\n\t\t\tbehavior: 'smooth',\n\t\t})\n\t}\n\n\tprivate onPrevClick() {\n\t\tthis.goToSlide(this.selectedIndex - 1)\n\t}\n\n\tprivate onNextClick() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (this.selectedIndex < slides.length - 1) {\n\t\t\tthis.goToSlide(this.selectedIndex + 1)\n\t\t}\n\t}\n\n\trender() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0\">\n\t\t\t\t<!-- The scrollable track -->\n\t\t\t\t<div class=\"slider\" id=\"slider\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Next/Prev Buttons (Optional) -->\n\t\t\t\t${this.showArrows\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute left-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onPrevClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === 0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_left\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute right-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onNextClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === slides.length - 1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_right\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: null}\n\n\t\t\t\t<!-- Dots / indicators -->\n\t\t\t\t<div class=\"absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2\">\n\t\t\t\t\t${slides.map((_, index) => {\n\t\t\t\t\t\tconst isSelected = index === this.selectedIndex\n\t\t\t\t\t\treturn html`\n\t\t\t\t\t\t\t<schmancy-button .variant=${isSelected ? 'filled tonal' : 'outlined'} class=\"rounded-full \">\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slider': SchmancySlider\n\t}\n}\n"],"names":["SchmancySlide","$LitElement","css","constructor","super","arguments","this","type","src","alt","controls","autoplay","loop","muted","fit","render","html","cache","renderSlide","__decorateClass","property","String","prototype","Boolean","customElement","SchmancySlider","selectedIndex","showArrows","slider","scrollLeft","fromEvent","pipe","throttleTime","trailing","subscribe","updateSelectedIndexOnScroll","slides","defaultSlot","assignedElements","flatten","length","oldIndex","sliderCenter","clientWidth","closestIndex","closestDistance","Infinity","forEach","slide","index","itemCenter","offsetLeft","distance","Math","abs","dispatchEvent","CustomEvent","detail","newIndex","scrollTo","left","behavior","onPrevClick","goToSlide","onNextClick","map","_","isSelected","state","query"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const u=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const o=require("lit/decorators.js");require("./tailwind.mixin-CvLC4LGm.cjs");const p=require("./litElement.mixin-wU3TW8NU.cjs"),d=require("lit"),m=require("lit/directives/cache.js"),S=require("rxjs/operators");var f=Object.defineProperty,v=Object.getOwnPropertyDescriptor,c=(t,s,i,l)=>{for(var r,e=l>1?void 0:l?v(s,i):s,n=t.length-1;n>=0;n--)(r=t[n])&&(e=(l?r(s,i,e):r(e))||e);return l&&e&&f(s,i,e),e};exports.SchmancySlide=class extends p.$LitElement(d.css`
1
+ "use strict";const u=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const o=require("lit/decorators.js");require("./tailwind.mixin-CFrLBtkD.cjs");const p=require("./litElement.mixin-DUiUa087.cjs"),d=require("lit"),m=require("lit/directives/cache.js"),S=require("rxjs/operators");var f=Object.defineProperty,v=Object.getOwnPropertyDescriptor,c=(t,s,i,l)=>{for(var r,e=l>1?void 0:l?v(s,i):s,n=t.length-1;n>=0;n--)(r=t[n])&&(e=(l?r(s,i,e):r(e))||e);return l&&e&&f(s,i,e),e};exports.SchmancySlide=class extends p.$LitElement(d.css`
2
2
  :host {
3
3
  display: block;
4
4
  scroll-snap-align: center; /* If your slider uses scroll-snap */
@@ -80,4 +80,4 @@
80
80
  </div>
81
81
  </div>
82
82
  `}},a([o.state()],exports.SchmancySlider.prototype,"selectedIndex",2),a([o.property({type:Boolean})],exports.SchmancySlider.prototype,"showArrows",2),a([o.query("#slider")],exports.SchmancySlider.prototype,"slider",2),a([o.query("slot")],exports.SchmancySlider.prototype,"defaultSlot",2),exports.SchmancySlider=a([o.customElement("schmancy-slider")],exports.SchmancySlider);
83
- //# sourceMappingURL=slider-C34Lp0Ns.cjs.map
83
+ //# sourceMappingURL=slider-CP3JRaWR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-C34Lp0Ns.cjs","sources":["../src/slider/slide.ts","../src/slider/slider.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\n\n/**\n * Supported slide \"types.\"\n * - 'image': Renders an <img>\n * - 'video': Renders a <video>\n * - 'content': Renders a <slot> (the default)\n */\ntype SlideType = 'image' | 'video' | 'content'\n\n/**\n * Allowed values for the 'fit' property,\n * which maps to CSS object-fit.\n */\ntype ObjectFit = 'cover' | 'contain' | 'fill' | 'scale-down' | 'none'\n\n@customElement('schmancy-slide')\nexport class SchmancySlide extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tscroll-snap-align: center; /* If your slider uses scroll-snap */\n\t}\n\n\t.slide {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tobject-fit: var(--object-fit, cover);\n\t}\n`) {\n\t/**\n\t * Determines how this slide should be rendered.\n\t * Defaults to 'content' if not provided.\n\t */\n\t@property({ type: String }) type: SlideType = 'content'\n\n\t/**\n\t * Source for images or videos (if `type` is 'image' or 'video').\n\t */\n\t@property({ type: String }) src: string = ''\n\n\t/**\n\t * Alternate text for images.\n\t */\n\t@property({ type: String }) alt: string = ''\n\n\t/**\n\t * Whether to show default video controls (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) controls = true\n\n\t/**\n\t * Whether the video should autoplay (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) autoplay = false\n\n\t/**\n\t * Whether the video should loop (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Whether the video is muted (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) muted = false\n\n\t/**\n\t * CSS `object-fit` property, applied to images/videos.\n\t */\n\t@property({ type: String }) fit: ObjectFit = 'cover'\n\n\trender() {\n\t\treturn html` <div style=\"--object-fit: ${this.fit}\">${cache(this.renderSlide())}</div> `\n\t}\n\n\tprivate renderSlide() {\n\t\tswitch (this.type) {\n\t\t\tcase 'image':\n\t\t\t\treturn html` <img class=\"slide\" src=\"${this.src}\" alt=\"${this.alt}\" loading=\"lazy\" /> `\n\t\t\tcase 'video':\n\t\t\t\treturn html`\n\t\t\t\t\t<video\n\t\t\t\t\t\tclass=\"slide\"\n\t\t\t\t\t\tsrc=\"${this.src}\"\n\t\t\t\t\t\t?controls=\"${this.controls}\"\n\t\t\t\t\t\t?autoplay=\"${this.autoplay}\"\n\t\t\t\t\t\t?loop=\"${this.loop}\"\n\t\t\t\t\t\t?muted=\"${this.muted}\"\n\t\t\t\t\t>\n\t\t\t\t\t\tYour browser does not support HTML video.\n\t\t\t\t\t</video>\n\t\t\t\t`\n\t\t\tcase 'content':\n\t\t\tdefault:\n\t\t\t\treturn html`<slot></slot>`\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slide': SchmancySlide\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { fromEvent } from 'rxjs'\nimport { throttleTime } from 'rxjs/operators'\n\n@customElement('schmancy-slider')\nexport class SchmancySlider extends $LitElement(css`\n\t.slider {\n\t\t/* Lay out slides horizontally, one after another */\n\t\tdisplay: flex;\n\t\toverflow-x: auto;\n\n\t\t/* Optional: scroll snapping */\n\t\tscroll-snap-type: x mandatory;\n\n\t\t/* Hide scrollbars */\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.slider::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, Opera */\n\t}\n\n\t/* \n Ensure each slide takes up the full slider width.\n \"schmancy-slide\" is the child custom element.\n */\n\t::slotted(schmancy-slide) {\n\t\tflex: 0 0 100%;\n\t\tbox-sizing: border-box;\n\t}\n`) {\n\t/**\n\t * Currently centered slide index\n\t */\n\t@state() private selectedIndex: number = 0\n\n\t/**\n\t * If true, renders next/prev buttons\n\t */\n\t@property({ type: Boolean }) showArrows: boolean = true\n\n\t@query('#slider') private slider!: HTMLDivElement\n\t@query('slot') private defaultSlot!: HTMLSlotElement\n\n\tprotected firstUpdated() {\n\t\t// Start at leftmost position\n\t\tthis.slider.scrollLeft = 0\n\n\t\t// Throttle scroll events to update selected index\n\t\tfromEvent(this.slider, 'scroll')\n\t\t\t.pipe(throttleTime(100, undefined, { trailing: true }))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.updateSelectedIndexOnScroll()\n\t\t\t})\n\t}\n\n\tprivate updateSelectedIndexOnScroll() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides.length) return\n\n\t\tconst oldIndex = this.selectedIndex\n\n\t\t// Center of the slider’s visible area\n\t\tconst sliderCenter = this.slider.scrollLeft + this.slider.clientWidth / 2\n\n\t\tlet closestIndex = 0\n\t\tlet closestDistance = Infinity\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst itemStart = (slide as HTMLElement).offsetLeft\n\t\t\tconst itemCenter = itemStart + slide.clientWidth / 2\n\t\t\tconst distance = Math.abs(sliderCenter - itemCenter)\n\n\t\t\tif (distance < closestDistance) {\n\t\t\t\tclosestDistance = distance\n\t\t\t\tclosestIndex = index\n\t\t\t}\n\t\t})\n\n\t\tthis.selectedIndex = closestIndex\n\n\t\t// If the index changed, dispatch event\n\t\tif (this.selectedIndex !== oldIndex) {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('slide-changed', {\n\t\t\t\t\tdetail: { index: this.selectedIndex },\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate goToSlide(newIndex: number) {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides[newIndex]) return\n\n\t\tthis.slider.scrollTo({\n\t\t\tleft: (slides[newIndex] as HTMLElement).offsetLeft,\n\t\t\tbehavior: 'smooth',\n\t\t})\n\t}\n\n\tprivate onPrevClick() {\n\t\tthis.goToSlide(this.selectedIndex - 1)\n\t}\n\n\tprivate onNextClick() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (this.selectedIndex < slides.length - 1) {\n\t\t\tthis.goToSlide(this.selectedIndex + 1)\n\t\t}\n\t}\n\n\trender() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0\">\n\t\t\t\t<!-- The scrollable track -->\n\t\t\t\t<div class=\"slider\" id=\"slider\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Next/Prev Buttons (Optional) -->\n\t\t\t\t${this.showArrows\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute left-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onPrevClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === 0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_left\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute right-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onNextClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === slides.length - 1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_right\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: null}\n\n\t\t\t\t<!-- Dots / indicators -->\n\t\t\t\t<div class=\"absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2\">\n\t\t\t\t\t${slides.map((_, index) => {\n\t\t\t\t\t\tconst isSelected = index === this.selectedIndex\n\t\t\t\t\t\treturn html`\n\t\t\t\t\t\t\t<schmancy-button .variant=${isSelected ? 'filled tonal' : 'outlined'} class=\"rounded-full \">\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slider': SchmancySlider\n\t}\n}\n"],"names":["SchmancySlide","$LitElement","css","constructor","super","arguments","this","type","src","alt","controls","autoplay","loop","muted","fit","render","html","cache","renderSlide","__decorateClass","property","String","prototype","Boolean","customElement","SchmancySlider","selectedIndex","showArrows","slider","scrollLeft","fromEvent","pipe","throttleTime","trailing","subscribe","updateSelectedIndexOnScroll","slides","defaultSlot","assignedElements","flatten","length","oldIndex","sliderCenter","clientWidth","closestIndex","closestDistance","Infinity","forEach","slide","index","itemCenter","offsetLeft","distance","Math","abs","dispatchEvent","CustomEvent","detail","newIndex","scrollTo","left","behavior","onPrevClick","goToSlide","onNextClick","map","_","isSelected","state","query"],"mappings":"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"}
1
+ {"version":3,"file":"slider-CP3JRaWR.cjs","sources":["../src/slider/slide.ts","../src/slider/slider.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { cache } from 'lit/directives/cache.js'\n\n/**\n * Supported slide \"types.\"\n * - 'image': Renders an <img>\n * - 'video': Renders a <video>\n * - 'content': Renders a <slot> (the default)\n */\ntype SlideType = 'image' | 'video' | 'content'\n\n/**\n * Allowed values for the 'fit' property,\n * which maps to CSS object-fit.\n */\ntype ObjectFit = 'cover' | 'contain' | 'fill' | 'scale-down' | 'none'\n\n@customElement('schmancy-slide')\nexport class SchmancySlide extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tscroll-snap-align: center; /* If your slider uses scroll-snap */\n\t}\n\n\t.slide {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tobject-fit: var(--object-fit, cover);\n\t}\n`) {\n\t/**\n\t * Determines how this slide should be rendered.\n\t * Defaults to 'content' if not provided.\n\t */\n\t@property({ type: String }) type: SlideType = 'content'\n\n\t/**\n\t * Source for images or videos (if `type` is 'image' or 'video').\n\t */\n\t@property({ type: String }) src: string = ''\n\n\t/**\n\t * Alternate text for images.\n\t */\n\t@property({ type: String }) alt: string = ''\n\n\t/**\n\t * Whether to show default video controls (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) controls = true\n\n\t/**\n\t * Whether the video should autoplay (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) autoplay = false\n\n\t/**\n\t * Whether the video should loop (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) loop = false\n\n\t/**\n\t * Whether the video is muted (if `type` is 'video').\n\t */\n\t@property({ type: Boolean }) muted = false\n\n\t/**\n\t * CSS `object-fit` property, applied to images/videos.\n\t */\n\t@property({ type: String }) fit: ObjectFit = 'cover'\n\n\trender() {\n\t\treturn html` <div style=\"--object-fit: ${this.fit}\">${cache(this.renderSlide())}</div> `\n\t}\n\n\tprivate renderSlide() {\n\t\tswitch (this.type) {\n\t\t\tcase 'image':\n\t\t\t\treturn html` <img class=\"slide\" src=\"${this.src}\" alt=\"${this.alt}\" loading=\"lazy\" /> `\n\t\t\tcase 'video':\n\t\t\t\treturn html`\n\t\t\t\t\t<video\n\t\t\t\t\t\tclass=\"slide\"\n\t\t\t\t\t\tsrc=\"${this.src}\"\n\t\t\t\t\t\t?controls=\"${this.controls}\"\n\t\t\t\t\t\t?autoplay=\"${this.autoplay}\"\n\t\t\t\t\t\t?loop=\"${this.loop}\"\n\t\t\t\t\t\t?muted=\"${this.muted}\"\n\t\t\t\t\t>\n\t\t\t\t\t\tYour browser does not support HTML video.\n\t\t\t\t\t</video>\n\t\t\t\t`\n\t\t\tcase 'content':\n\t\t\tdefault:\n\t\t\t\treturn html`<slot></slot>`\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slide': SchmancySlide\n\t}\n}\n","import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { fromEvent } from 'rxjs'\nimport { throttleTime } from 'rxjs/operators'\n\n@customElement('schmancy-slider')\nexport class SchmancySlider extends $LitElement(css`\n\t.slider {\n\t\t/* Lay out slides horizontally, one after another */\n\t\tdisplay: flex;\n\t\toverflow-x: auto;\n\n\t\t/* Optional: scroll snapping */\n\t\tscroll-snap-type: x mandatory;\n\n\t\t/* Hide scrollbars */\n\t\t-ms-overflow-style: none; /* IE and Edge */\n\t\tscrollbar-width: none; /* Firefox */\n\t}\n\t.slider::-webkit-scrollbar {\n\t\tdisplay: none; /* Chrome, Safari, Opera */\n\t}\n\n\t/* \n Ensure each slide takes up the full slider width.\n \"schmancy-slide\" is the child custom element.\n */\n\t::slotted(schmancy-slide) {\n\t\tflex: 0 0 100%;\n\t\tbox-sizing: border-box;\n\t}\n`) {\n\t/**\n\t * Currently centered slide index\n\t */\n\t@state() private selectedIndex: number = 0\n\n\t/**\n\t * If true, renders next/prev buttons\n\t */\n\t@property({ type: Boolean }) showArrows: boolean = true\n\n\t@query('#slider') private slider!: HTMLDivElement\n\t@query('slot') private defaultSlot!: HTMLSlotElement\n\n\tprotected firstUpdated() {\n\t\t// Start at leftmost position\n\t\tthis.slider.scrollLeft = 0\n\n\t\t// Throttle scroll events to update selected index\n\t\tfromEvent(this.slider, 'scroll')\n\t\t\t.pipe(throttleTime(100, undefined, { trailing: true }))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.updateSelectedIndexOnScroll()\n\t\t\t})\n\t}\n\n\tprivate updateSelectedIndexOnScroll() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides.length) return\n\n\t\tconst oldIndex = this.selectedIndex\n\n\t\t// Center of the slider’s visible area\n\t\tconst sliderCenter = this.slider.scrollLeft + this.slider.clientWidth / 2\n\n\t\tlet closestIndex = 0\n\t\tlet closestDistance = Infinity\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst itemStart = (slide as HTMLElement).offsetLeft\n\t\t\tconst itemCenter = itemStart + slide.clientWidth / 2\n\t\t\tconst distance = Math.abs(sliderCenter - itemCenter)\n\n\t\t\tif (distance < closestDistance) {\n\t\t\t\tclosestDistance = distance\n\t\t\t\tclosestIndex = index\n\t\t\t}\n\t\t})\n\n\t\tthis.selectedIndex = closestIndex\n\n\t\t// If the index changed, dispatch event\n\t\tif (this.selectedIndex !== oldIndex) {\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent('slide-changed', {\n\t\t\t\t\tdetail: { index: this.selectedIndex },\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate goToSlide(newIndex: number) {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (!slides[newIndex]) return\n\n\t\tthis.slider.scrollTo({\n\t\t\tleft: (slides[newIndex] as HTMLElement).offsetLeft,\n\t\t\tbehavior: 'smooth',\n\t\t})\n\t}\n\n\tprivate onPrevClick() {\n\t\tthis.goToSlide(this.selectedIndex - 1)\n\t}\n\n\tprivate onNextClick() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\t\tif (this.selectedIndex < slides.length - 1) {\n\t\t\tthis.goToSlide(this.selectedIndex + 1)\n\t\t}\n\t}\n\n\trender() {\n\t\tconst slides = this.defaultSlot?.assignedElements({ flatten: true }) ?? []\n\n\t\treturn html`\n\t\t\t<div class=\"relative inset-0\">\n\t\t\t\t<!-- The scrollable track -->\n\t\t\t\t<div class=\"slider\" id=\"slider\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Next/Prev Buttons (Optional) -->\n\t\t\t\t${this.showArrows\n\t\t\t\t\t? html`\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute left-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onPrevClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === 0}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_left\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t\tclass=\"absolute right-2 top-1/2 -translate-y-1/2\"\n\t\t\t\t\t\t\t\t@click=${this.onNextClick}\n\t\t\t\t\t\t\t\t?disabled=${this.selectedIndex === slides.length - 1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tchevron_right\n\t\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t: null}\n\n\t\t\t\t<!-- Dots / indicators -->\n\t\t\t\t<div class=\"absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2\">\n\t\t\t\t\t${slides.map((_, index) => {\n\t\t\t\t\t\tconst isSelected = index === this.selectedIndex\n\t\t\t\t\t\treturn html`\n\t\t\t\t\t\t\t<schmancy-button .variant=${isSelected ? 'filled tonal' : 'outlined'} class=\"rounded-full \">\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t`\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-slider': SchmancySlider\n\t}\n}\n"],"names":["SchmancySlide","$LitElement","css","constructor","super","arguments","this","type","src","alt","controls","autoplay","loop","muted","fit","render","html","cache","renderSlide","__decorateClass","property","String","prototype","Boolean","customElement","SchmancySlider","selectedIndex","showArrows","slider","scrollLeft","fromEvent","pipe","throttleTime","trailing","subscribe","updateSelectedIndexOnScroll","slides","defaultSlot","assignedElements","flatten","length","oldIndex","sliderCenter","clientWidth","closestIndex","closestDistance","Infinity","forEach","slide","index","itemCenter","offsetLeft","distance","Math","abs","dispatchEvent","CustomEvent","detail","newIndex","scrollTo","left","behavior","onPrevClick","goToSlide","onNextClick","map","_","isSelected","state","query"],"mappings":"sgBAoBaA,QAAAA,cAAN,cAA4BC,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAxC,CAAA,CAAA,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAiBsBC,KAAAC,KAAkB,UAKlBD,KAAAE,IAAc,GAKdF,KAAAG,IAAc,GAKbH,KAAAI,SAAAA,GAKAJ,KAAAK,SAAAA,GAKAL,KAAAM,KAAAA,GAKAN,KAAAO,MAAAA,GAKDP,KAAAQ,IAAiB,OAAA,CAE7C,QAAAC,CACC,OAAOC,oCAAkCV,KAAKQ,GAAAA,KAAQG,EAAAA,MAAMX,KAAKY,YAAAA,CAAAA,CAAAA,SAClE,CAEQ,aAAAA,CACP,OAAQZ,KAAKC,KAAAA,CACZ,IAAK,QACJ,OAAOS,EAAAA,gCAAgCV,KAAKE,GAAAA,UAAaF,KAAKG,GAAAA,uBAC/D,IAAK,QACJ,OAAOO,EAAAA;AAAAA;AAAAA;AAAAA,aAGEV,KAAKE,GAAAA;AAAAA,mBACCF,KAAKI,QAAAA;AAAAA,mBACLJ,KAAKK,QAAAA;AAAAA,eACTL,KAAKM,IAAAA;AAAAA,gBACJN,KAAKO,KAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAMlB,QACC,OAAOG,EAAAA,mBAAA,CAEV,CAAA,EA9D4BG,EAAA,CAA3BC,WAAS,CAAEb,KAAMc,MAAAA,CAAAA,CAAAA,EAjBNrB,sBAiBgBsB,UAAA,OAAA,GAKAH,EAAA,CAA3BC,WAAS,CAAEb,KAAMc,MAAAA,CAAAA,CAAAA,EAtBNrB,sBAsBgBsB,UAAA,MAAA,CAAA,EAKAH,EAAA,CAA3BC,WAAS,CAAEb,KAAMc,UA3BNrB,sBA2BgBsB,UAAA,MAAA,CAAA,EAKCH,EAAA,CAA5BC,WAAS,CAAEb,KAAMgB,OAAAA,CAAAA,CAAAA,EAhCNvB,sBAgCiBsB,UAAA,WAAA,CAAA,EAKAH,EAAA,CAA5BC,WAAS,CAAEb,KAAMgB,WArCNvB,sBAqCiBsB,UAAA,WAAA,GAKAH,EAAA,CAA5BC,WAAS,CAAEb,KAAMgB,OAAAA,CAAAA,CAAAA,EA1CNvB,sBA0CiBsB,UAAA,OAAA,CAAA,EAKAH,EAAA,CAA5BC,WAAS,CAAEb,KAAMgB,OAAAA,CAAAA,CAAAA,EA/CNvB,sBA+CiBsB,UAAA,QAAA,CAAA,EAKDH,EAAA,CAA3BC,WAAS,CAAEb,KAAMc,MAAAA,CAAAA,CAAAA,EApDNrB,sBAoDgBsB,UAAA,MAAA,CAAA,EApDhBtB,QAAAA,cAANmB,EAAA,CADNK,EAAAA,cAAc,mBACFxB,uNCbAyB,QAAAA,eAAN,cAA6BxB,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAAzC,CAAA,CAAA,cAAAE,MAAAA,GAAAC,SAAAA,EA6BGC,KAAQoB,cAAwB,EAKZpB,KAAAqB,WAAAA,EAAsB,CAKzC,eAETrB,KAAKsB,OAAOC,WAAa,EAGzBC,EAAAA,UAAUxB,KAAKsB,OAAQ,QAAA,EACrBG,KAAKC,EAAAA,aAAa,IAAA,OAAgB,CAAEC,SAAAA,MACpCC,UAAU,IAAA,CACV5B,KAAK6B,4BAAAA,CAAAA,CAAAA,CAER,CAEQ,6BAAAA,CACP,MAAMC,EAAS9B,KAAK+B,aAAaC,iBAAiB,CAAEC,QAAAA,EAAS,CAAA,GAAW,GACxE,GAAA,CAAKH,EAAOI,OAAQ,OAEpB,MAAMC,EAAWnC,KAAKoB,cAGhBgB,EAAepC,KAAKsB,OAAOC,WAAavB,KAAKsB,OAAOe,YAAc,EAExE,IAAIC,EAAe,EACfC,EAAkBC,IAEtBV,EAAOW,QAAQ,CAACC,EAAOC,IAAAA,CACtB,MACMC,EADaF,EAAsBG,WACVH,EAAML,YAAc,EAC7CS,EAAWC,KAAKC,IAAIZ,EAAeQ,CAAAA,EAErCE,EAAWP,IACdA,EAAkBO,EAClBR,EAAeK,EAAAA,CAAAA,EAIjB3C,KAAKoB,cAAgBkB,EAGjBtC,KAAKoB,gBAAkBe,GAC1BnC,KAAKiD,cACJ,IAAIC,YAAY,gBAAiB,CAChCC,OAAQ,CAAER,MAAO3C,KAAKoB,aAAAA,CAAAA,CAAAA,CAAAA,CAI1B,CAEQ,UAAUgC,EAAAA,CACjB,MAAMtB,EAAS9B,KAAK+B,aAAaC,iBAAiB,CAAEC,QAAAA,MAAoB,CAAA,EACnEH,EAAOsB,IAEZpD,KAAKsB,OAAO+B,SAAS,CACpBC,KAAOxB,EAAOsB,CAAAA,EAA0BP,WACxCU,SAAU,QAAA,CAAA,CAEZ,CAEQ,aAAAC,CACPxD,KAAKyD,UAAUzD,KAAKoB,cAAgB,CAAA,CACrC,CAEQ,aAAAsC,CACP,MAAM5B,EAAS9B,KAAK+B,aAAaC,iBAAiB,CAAEC,UAAS,CAAA,GAAW,CAAA,EACpEjC,KAAKoB,cAAgBU,EAAOI,OAAS,GACxClC,KAAKyD,UAAUzD,KAAKoB,cAAgB,CAAA,CAEtC,CAEA,QAAAX,CACC,MAAMqB,EAAS9B,KAAK+B,aAAaC,iBAAiB,CAAEC,QAAAA,MAAoB,CAAA,EAExE,OAAOvB,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAQHV,KAAKqB,WACJX,EAAAA;AAAAA;AAAAA;AAAAA,iBAGUV,KAAKwD,WAAAA;AAAAA,oBACFxD,KAAKoB,gBAAkB,CAAlBA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAMRpB,KAAK0D,WAAAA;AAAAA,oBACF1D,KAAKoB,gBAAkBU,EAAOI,OAAS,CAAA;AAAA;AAAA;AAAA;AAAA,QAKpD,IAAA;AAAA;AAAA;AAAA;AAAA,OAIAJ,EAAO6B,IAAI,CAACC,EAAGjB,IAAAA,CAChB,MAAMkB,EAAalB,IAAU3C,KAAKoB,cAClC,OAAOV,EAAAA;AAAAA,mCACsBmD,EAAa,eAAiB,UAAA;AAAA;AAAA;;;GAOhE,CAAA,EAxHiBhD,EAAA,CAAhBiD,EAAAA,MAAAA,CAAAA,EA7BW3C,uBA6BKH,UAAA,gBAAA,CAAA,EAKYH,EAAA,CAA5BC,WAAS,CAAEb,KAAMgB,OAAAA,CAAAA,CAAAA,EAlCNE,uBAkCiBH,UAAA,aAAA,CAAA,EAEHH,EAAA,CAAzBkD,EAAAA,MAAM,SAAA,CAAA,EApCK5C,uBAoCcH,UAAA,SAAA,GACHH,EAAA,CAAtBkD,EAAAA,MAAM,MAAA,CAAA,EArCK5C,uBAqCWH,UAAA,cAAA,GArCXG,QAAAA,eAANN,EAAA,CADNK,EAAAA,cAAc,iBAAA,CAAA,EACFC"}
package/dist/slider.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./slider-C34Lp0Ns.cjs");Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>e.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>e.SchmancySlider});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./slider-CP3JRaWR.cjs");Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>e.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>e.SchmancySlider});
2
2
  //# sourceMappingURL=slider.cjs.map
package/dist/slider.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as c, a as e } from "./slider-B5sg-McD.js";
1
+ import { S as c, a as e } from "./slider-BhFc1oRj.js";
2
2
  export {
3
3
  c as SchmancySlide,
4
4
  e as SchmancySlider
@@ -1,4 +1,4 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("lit/decorators.js"),d=require("./tailwind.mixin-CvLC4LGm.cjs"),i=require("lit");var p=Object.getOwnPropertyDescriptor;let y=class extends d.TailwindElement(i.css`
1
+ "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const l=require("lit/decorators.js"),d=require("./tailwind.mixin-CFrLBtkD.cjs"),i=require("lit");var p=Object.getOwnPropertyDescriptor;let y=class extends d.TailwindElement(i.css`
2
2
  :host {
3
3
  display: inline;
4
4
  position: absolute;
@@ -132,4 +132,4 @@
132
132
  </svg>
133
133
  </div>
134
134
  `}};h([l.property({type:String,reflect:!0})],n.prototype,"color",2),h([l.property({type:Number})],n.prototype,"size",2),h([l.property({type:Boolean})],n.prototype,"glass",2),n=h([l.customElement("schmancy-spinner")],n);
135
- //# sourceMappingURL=spinner-D2zUun1n.cjs.map
135
+ //# sourceMappingURL=spinner-BD8cXVK_.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner-D2zUun1n.cjs","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tpointer-events: all;\n\t\tz-index: 50;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<!-- Clean overlay with subtle backdrop -->\n\t\t\t<div class=\"absolute inset-0 flex items-center justify-center bg-surface-container/10 backdrop-blur-xs rounded-[inherit]\">\n\t\t\t\t<!-- Content container with clean surface -->\n\t\t\t\t<div class=\"relative flex items-center justify-center p-4\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- Content slot -->\n\t\t\t\t\t<div class=\"relative z-10\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<!-- Default spinner if no content provided -->\n\t\t\t\t\t\t\t<schmancy-spinner size=\"32px\"></schmancy-spinner>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tcolor: inherit; /* Inherit from parent by default */\n\t}\n\n\t/* Explicit color options when needed */\n\t:host([color=\"primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\n\t:host([color=\"on-primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t}\n\n\t:host([color=\"secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-default);\n\t}\n\n\t:host([color=\"on-secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-on);\n\t}\n\n\t:host([color=\"tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\n\t:host([color=\"on-tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-on);\n\t}\n\n\t:host([color=\"error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-default);\n\t}\n\n\t:host([color=\"on-error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-on);\n\t}\n\n\t:host([color=\"success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-default);\n\t}\n\n\t:host([color=\"on-success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-on);\n\t}\n\n\t:host([color=\"surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-default);\n\t}\n\n\t:host([color=\"on-surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t:host([color=\"surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-variant-default);\n\t}\n\n\t:host([color=\"on-surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tcolor?: 'primary' | 'on-primary' | 'secondary' | 'on-secondary' |\n\t 'tertiary' | 'on-tertiary' | 'error' | 'on-error' |\n\t 'success' | 'on-success' | 'surface' | 'on-surface' |\n\t 'surface-variant' | 'on-surface-variant'\n\t@property({ type: Number }) size: number = 6\n\t@property({ type: Boolean }) glass: boolean = false\n\n\tprotected render(): unknown {\n\t\t// Use Tailwind sizing system: size-4 = 1rem = 16px\n\t\t// Each unit is 0.25rem, so size 4 = 1rem, size 6 = 1.5rem, etc.\n\t\t// Fallback to size 6 (24px) if value is invalid\n\t\tconst validSize = typeof this.size === 'number' && !isNaN(this.size) ? this.size : 6\n\t\tconst sizeInRem = `${validSize * 0.25}rem`\n\t\tconst style = {\n\t\t\twidth: sizeInRem,\n\t\t\theight: sizeInRem,\n\t\t}\n\t\t\n\t\treturn this.glass ? html`\n\t\t\t<div class=\"spinner relative\" style=${this.styleMap(style)}>\n\t\t\t\t<!-- Glass container with Apple-style effect -->\n\t\t\t\t<div class=\"absolute inset-0 rounded-full backdrop-blur-xl backdrop-saturate-150\n\t\t\t\t\t\t\tbg-surface-container/20\n\t\t\t\t\t\t\tshadow-[inset_0_1px_1px_0_rgba(255,255,255,0.2)]\n\t\t\t\t\t\t\tborder border-outline-variant/30\"></div>\n\t\t\t\t\n\t\t\t\t<!-- Spinner SVG -->\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" \n\t\t\t\t\t style=\"width: 100%; height: 100%;\" class=\"relative z-10\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".7\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\" opacity=\"0.8\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t` : html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" style=\"width: 100%; height: 100%;\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","customElement","SchmnacySpinner","constructor","super","arguments","this","size","glass","sizeInRem","isNaN","style","width","height","styleMap","__decorateClass","property","type","String","reflect","prototype","Number","Boolean"],"mappings":"kPAKA,IAAqBA,EAArB,cAA0CC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAS/C,QAAAC,CACT,OAAOC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAgBR,CAAA,EA1BoBJ,wGAArB,CADCK,EAAAA,cAAc,eAAA,CAAA,EACML,mMCArB,IAAqBM,EAArB,cAA6CL,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA7D,CAAA,CAAA,aAAAK,CAAAC,MAAAA,GAAAC,SAAAA,EAkF6BC,KAAAC,KAAe,EACdD,KAAAE,MAAAA,EAAiB,CAEpC,QAAAT,CAIT,MACMU,EAA2B,KADM,OAAdH,KAAKC,MAAS,UAAaG,MAAMJ,KAAKC,IAAAA,EAAoB,EAAZD,KAAKC,MAC1D,MACZI,EAAQ,CACbC,MAAOH,EACPI,OAAQJ,CAAAA,EAGT,OAAOH,KAAKE,MAAQR,EAAAA;AAAAA,yCACmBM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAoBjDX,EAAAA;AAAAA,gCAC0BM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAa7C,CAAA,EArDAI,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA7EfjB,EA8EpBkB,UAAA,QAAA,CAAA,EAI4BL,EAAA,CAA3BC,WAAS,CAAEC,KAAMI,MAAAA,CAAAA,CAAAA,EAlFEnB,EAkFQkB,UAAA,OAAA,CAAA,EACCL,EAAA,CAA5BC,WAAS,CAAEC,KAAMK,OAAAA,CAAAA,CAAAA,EAnFEpB,EAmFSkB,UAAA,QAAA,CAAA,EAnFTlB,EAArBa,EAAA,CADCd,EAAAA,cAAc,kBAAA,CAAA,EACMC,CAAAA"}
1
+ {"version":3,"file":"spinner-BD8cXVK_.cjs","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tpointer-events: all;\n\t\tz-index: 50;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<!-- Clean overlay with subtle backdrop -->\n\t\t\t<div class=\"absolute inset-0 flex items-center justify-center bg-surface-container/10 backdrop-blur-xs rounded-[inherit]\">\n\t\t\t\t<!-- Content container with clean surface -->\n\t\t\t\t<div class=\"relative flex items-center justify-center p-4\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- Content slot -->\n\t\t\t\t\t<div class=\"relative z-10\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<!-- Default spinner if no content provided -->\n\t\t\t\t\t\t\t<schmancy-spinner size=\"32px\"></schmancy-spinner>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tcolor: inherit; /* Inherit from parent by default */\n\t}\n\n\t/* Explicit color options when needed */\n\t:host([color=\"primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\n\t:host([color=\"on-primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t}\n\n\t:host([color=\"secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-default);\n\t}\n\n\t:host([color=\"on-secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-on);\n\t}\n\n\t:host([color=\"tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\n\t:host([color=\"on-tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-on);\n\t}\n\n\t:host([color=\"error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-default);\n\t}\n\n\t:host([color=\"on-error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-on);\n\t}\n\n\t:host([color=\"success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-default);\n\t}\n\n\t:host([color=\"on-success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-on);\n\t}\n\n\t:host([color=\"surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-default);\n\t}\n\n\t:host([color=\"on-surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t:host([color=\"surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-variant-default);\n\t}\n\n\t:host([color=\"on-surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tcolor?: 'primary' | 'on-primary' | 'secondary' | 'on-secondary' |\n\t 'tertiary' | 'on-tertiary' | 'error' | 'on-error' |\n\t 'success' | 'on-success' | 'surface' | 'on-surface' |\n\t 'surface-variant' | 'on-surface-variant'\n\t@property({ type: Number }) size: number = 6\n\t@property({ type: Boolean }) glass: boolean = false\n\n\tprotected render(): unknown {\n\t\t// Use Tailwind sizing system: size-4 = 1rem = 16px\n\t\t// Each unit is 0.25rem, so size 4 = 1rem, size 6 = 1.5rem, etc.\n\t\t// Fallback to size 6 (24px) if value is invalid\n\t\tconst validSize = typeof this.size === 'number' && !isNaN(this.size) ? this.size : 6\n\t\tconst sizeInRem = `${validSize * 0.25}rem`\n\t\tconst style = {\n\t\t\twidth: sizeInRem,\n\t\t\theight: sizeInRem,\n\t\t}\n\t\t\n\t\treturn this.glass ? html`\n\t\t\t<div class=\"spinner relative\" style=${this.styleMap(style)}>\n\t\t\t\t<!-- Glass container with Apple-style effect -->\n\t\t\t\t<div class=\"absolute inset-0 rounded-full backdrop-blur-xl backdrop-saturate-150\n\t\t\t\t\t\t\tbg-surface-container/20\n\t\t\t\t\t\t\tshadow-[inset_0_1px_1px_0_rgba(255,255,255,0.2)]\n\t\t\t\t\t\t\tborder border-outline-variant/30\"></div>\n\t\t\t\t\n\t\t\t\t<!-- Spinner SVG -->\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" \n\t\t\t\t\t style=\"width: 100%; height: 100%;\" class=\"relative z-10\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".7\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\" opacity=\"0.8\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t` : html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" style=\"width: 100%; height: 100%;\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","customElement","SchmnacySpinner","constructor","super","arguments","this","size","glass","sizeInRem","isNaN","style","width","height","styleMap","__decorateClass","property","type","String","reflect","prototype","Number","Boolean"],"mappings":"kPAKA,IAAqBA,EAArB,cAA0CC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAS/C,QAAAC,CACT,OAAOC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAgBR,CAAA,EA1BoBJ,wGAArB,CADCK,EAAAA,cAAc,eAAA,CAAA,EACML,mMCArB,IAAqBM,EAArB,cAA6CL,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA7D,CAAA,CAAA,aAAAK,CAAAC,MAAAA,GAAAC,SAAAA,EAkF6BC,KAAAC,KAAe,EACdD,KAAAE,MAAAA,EAAiB,CAEpC,QAAAT,CAIT,MACMU,EAA2B,KADM,OAAdH,KAAKC,MAAS,UAAaG,MAAMJ,KAAKC,IAAAA,EAAoB,EAAZD,KAAKC,MAC1D,MACZI,EAAQ,CACbC,MAAOH,EACPI,OAAQJ,CAAAA,EAGT,OAAOH,KAAKE,MAAQR,EAAAA;AAAAA,yCACmBM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAoBjDX,EAAAA;AAAAA,gCAC0BM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAa7C,CAAA,EArDAI,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAAA,EAAS,CAAA,CAAA,EA7EfjB,EA8EpBkB,UAAA,QAAA,CAAA,EAI4BL,EAAA,CAA3BC,WAAS,CAAEC,KAAMI,MAAAA,CAAAA,CAAAA,EAlFEnB,EAkFQkB,UAAA,OAAA,CAAA,EACCL,EAAA,CAA5BC,WAAS,CAAEC,KAAMK,OAAAA,CAAAA,CAAAA,EAnFEpB,EAmFSkB,UAAA,QAAA,CAAA,EAnFTlB,EAArBa,EAAA,CADCd,EAAAA,cAAc,kBAAA,CAAA,EACMC,CAAAA"}
@@ -2,7 +2,7 @@ import "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
4
  import { customElement as y, property as l } from "lit/decorators.js";
5
- import { T as d } from "./tailwind.mixin-DXMWx0zN.js";
5
+ import { T as d } from "./tailwind.mixin-CZKT1dUr.js";
6
6
  import { css as u, html as h } from "lit";
7
7
  var v = Object.getOwnPropertyDescriptor;
8
8
  let p = class extends d(u`
@@ -161,4 +161,4 @@ let n = class extends d(u`
161
161
  }
162
162
  };
163
163
  i([l({ type: String, reflect: !0 })], n.prototype, "color", 2), i([l({ type: Number })], n.prototype, "size", 2), i([l({ type: Boolean })], n.prototype, "glass", 2), n = i([y("schmancy-spinner")], n);
164
- //# sourceMappingURL=spinner-CsdQec_Y.js.map
164
+ //# sourceMappingURL=spinner-DGyRYqUZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner-CsdQec_Y.js","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tpointer-events: all;\n\t\tz-index: 50;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<!-- Clean overlay with subtle backdrop -->\n\t\t\t<div class=\"absolute inset-0 flex items-center justify-center bg-surface-container/10 backdrop-blur-xs rounded-[inherit]\">\n\t\t\t\t<!-- Content container with clean surface -->\n\t\t\t\t<div class=\"relative flex items-center justify-center p-4\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- Content slot -->\n\t\t\t\t\t<div class=\"relative z-10\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<!-- Default spinner if no content provided -->\n\t\t\t\t\t\t\t<schmancy-spinner size=\"32px\"></schmancy-spinner>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tcolor: inherit; /* Inherit from parent by default */\n\t}\n\n\t/* Explicit color options when needed */\n\t:host([color=\"primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\n\t:host([color=\"on-primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t}\n\n\t:host([color=\"secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-default);\n\t}\n\n\t:host([color=\"on-secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-on);\n\t}\n\n\t:host([color=\"tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\n\t:host([color=\"on-tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-on);\n\t}\n\n\t:host([color=\"error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-default);\n\t}\n\n\t:host([color=\"on-error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-on);\n\t}\n\n\t:host([color=\"success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-default);\n\t}\n\n\t:host([color=\"on-success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-on);\n\t}\n\n\t:host([color=\"surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-default);\n\t}\n\n\t:host([color=\"on-surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t:host([color=\"surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-variant-default);\n\t}\n\n\t:host([color=\"on-surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tcolor?: 'primary' | 'on-primary' | 'secondary' | 'on-secondary' |\n\t 'tertiary' | 'on-tertiary' | 'error' | 'on-error' |\n\t 'success' | 'on-success' | 'surface' | 'on-surface' |\n\t 'surface-variant' | 'on-surface-variant'\n\t@property({ type: Number }) size: number = 6\n\t@property({ type: Boolean }) glass: boolean = false\n\n\tprotected render(): unknown {\n\t\t// Use Tailwind sizing system: size-4 = 1rem = 16px\n\t\t// Each unit is 0.25rem, so size 4 = 1rem, size 6 = 1.5rem, etc.\n\t\t// Fallback to size 6 (24px) if value is invalid\n\t\tconst validSize = typeof this.size === 'number' && !isNaN(this.size) ? this.size : 6\n\t\tconst sizeInRem = `${validSize * 0.25}rem`\n\t\tconst style = {\n\t\t\twidth: sizeInRem,\n\t\t\theight: sizeInRem,\n\t\t}\n\t\t\n\t\treturn this.glass ? html`\n\t\t\t<div class=\"spinner relative\" style=${this.styleMap(style)}>\n\t\t\t\t<!-- Glass container with Apple-style effect -->\n\t\t\t\t<div class=\"absolute inset-0 rounded-full backdrop-blur-xl backdrop-saturate-150\n\t\t\t\t\t\t\tbg-surface-container/20\n\t\t\t\t\t\t\tshadow-[inset_0_1px_1px_0_rgba(255,255,255,0.2)]\n\t\t\t\t\t\t\tborder border-outline-variant/30\"></div>\n\t\t\t\t\n\t\t\t\t<!-- Spinner SVG -->\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" \n\t\t\t\t\t style=\"width: 100%; height: 100%;\" class=\"relative z-10\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".7\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\" opacity=\"0.8\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t` : html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" style=\"width: 100%; height: 100%;\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","customElement","SchmnacySpinner","constructor","super","arguments","this","size","glass","sizeInRem","isNaN","style","width","height","styleMap","__decorateClass","property","type","String","reflect","prototype","Number","Boolean"],"mappings":";;;;;;;AAKA,IAAqBA,IAArB,cAA0CC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAS/C,SAAAC;AACT,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAgBR;AAAA;AA1BoBJ;;;GAArB,CADCK,EAAc,mBACML,CAAAA;;;;;ACArB,IAAqBM,IAArB,cAA6CL,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA7D,EAAA;AAAA,EAAA,cAAAK;AAAAC,UAAAA,GAAAC,SAAAA,GAkF6BC,KAAAC,OAAe,GACdD,KAAAE,QAAAA;AAAAA,EAAiB;AAAA,EAEpC,SAAAT;AAIT,UACMU,IAA2B,QADM,OAAdH,KAAKC,QAAS,YAAaG,MAAMJ,KAAKC,IAAAA,IAAoB,IAAZD,KAAKC,QAC1D,OACZI,IAAQ,EACbC,OAAOH,GACPI,QAAQJ,EAAAA;AAGT,WAAOH,KAAKE,QAAQR;AAAAA,yCACmBM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBjDX;AAAAA,gCAC0BM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAa7C;AAAA;AArDAI,EAAA,CADCC,EAAS,EAAEC,MAAMC,QAAQC,SAAAA,GAAS,CAAA,CAAA,GA7EfjB,EA8EpBkB,WAAA,SAAA,CAAA,GAI4BL,EAAA,CAA3BC,EAAS,EAAEC,MAAMI,OAAAA,CAAAA,CAAAA,GAlFEnB,EAkFQkB,WAAA,QAAA,CAAA,GACCL,EAAA,CAA5BC,EAAS,EAAEC,MAAMK,QAAAA,CAAAA,CAAAA,GAnFEpB,EAmFSkB,WAAA,SAAA,CAAA,GAnFTlB,IAArBa,EAAA,CADCd,EAAc,kBAAA,CAAA,GACMC,CAAAA;"}
1
+ {"version":3,"file":"spinner-DGyRYqUZ.js","sources":["../src/busy/busy.ts","../src/busy/spinner.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('schmancy-busy')\nexport default class SchmancyBusy extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tpointer-events: all;\n\t\tz-index: 50;\n\t}\n`) {\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<!-- Clean overlay with subtle backdrop -->\n\t\t\t<div class=\"absolute inset-0 flex items-center justify-center bg-surface-container/10 backdrop-blur-xs rounded-[inherit]\">\n\t\t\t\t<!-- Content container with clean surface -->\n\t\t\t\t<div class=\"relative flex items-center justify-center p-4\">\n\t\t\t\t\t\n\t\t\t\t\t<!-- Content slot -->\n\t\t\t\t\t<div class=\"relative z-10\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<!-- Default spinner if no content provided -->\n\t\t\t\t\t\t\t<schmancy-spinner size=\"32px\"></schmancy-spinner>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-busy': SchmancyBusy\n\t}\n}","import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('schmancy-spinner')\nexport default class SchmnacySpinner extends TailwindElement(css`\n\t:host {\n\t\tdisplay: inline-block;\n\t\tcolor: inherit; /* Inherit from parent by default */\n\t}\n\n\t/* Explicit color options when needed */\n\t:host([color=\"primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-default);\n\t}\n\n\t:host([color=\"on-primary\"]) {\n\t\tcolor: var(--schmancy-sys-color-primary-on);\n\t}\n\n\t:host([color=\"secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-default);\n\t}\n\n\t:host([color=\"on-secondary\"]) {\n\t\tcolor: var(--schmancy-sys-color-secondary-on);\n\t}\n\n\t:host([color=\"tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-default);\n\t}\n\n\t:host([color=\"on-tertiary\"]) {\n\t\tcolor: var(--schmancy-sys-color-tertiary-on);\n\t}\n\n\t:host([color=\"error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-default);\n\t}\n\n\t:host([color=\"on-error\"]) {\n\t\tcolor: var(--schmancy-sys-color-error-on);\n\t}\n\n\t:host([color=\"success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-default);\n\t}\n\n\t:host([color=\"on-success\"]) {\n\t\tcolor: var(--schmancy-sys-color-success-on);\n\t}\n\n\t:host([color=\"surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-default);\n\t}\n\n\t:host([color=\"on-surface\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-on);\n\t}\n\n\t:host([color=\"surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-variant-default);\n\t}\n\n\t:host([color=\"on-surface-variant\"]) {\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\n\t}\n\n\t.spinner {\n\t\tanimation: spin 1s linear infinite;\n\t\tanimation-direction: reverse;\n\t}\n\n\t@keyframes spin {\n\t\tfrom {\n\t\t\ttransform: rotate(0deg);\n\t\t}\n\t\tto {\n\t\t\ttransform: rotate(360deg);\n\t\t}\n\t}\n`) {\n\t@property({ type: String, reflect: true })\n\tcolor?: 'primary' | 'on-primary' | 'secondary' | 'on-secondary' |\n\t 'tertiary' | 'on-tertiary' | 'error' | 'on-error' |\n\t 'success' | 'on-success' | 'surface' | 'on-surface' |\n\t 'surface-variant' | 'on-surface-variant'\n\t@property({ type: Number }) size: number = 6\n\t@property({ type: Boolean }) glass: boolean = false\n\n\tprotected render(): unknown {\n\t\t// Use Tailwind sizing system: size-4 = 1rem = 16px\n\t\t// Each unit is 0.25rem, so size 4 = 1rem, size 6 = 1.5rem, etc.\n\t\t// Fallback to size 6 (24px) if value is invalid\n\t\tconst validSize = typeof this.size === 'number' && !isNaN(this.size) ? this.size : 6\n\t\tconst sizeInRem = `${validSize * 0.25}rem`\n\t\tconst style = {\n\t\t\twidth: sizeInRem,\n\t\t\theight: sizeInRem,\n\t\t}\n\t\t\n\t\treturn this.glass ? html`\n\t\t\t<div class=\"spinner relative\" style=${this.styleMap(style)}>\n\t\t\t\t<!-- Glass container with Apple-style effect -->\n\t\t\t\t<div class=\"absolute inset-0 rounded-full backdrop-blur-xl backdrop-saturate-150\n\t\t\t\t\t\t\tbg-surface-container/20\n\t\t\t\t\t\t\tshadow-[inset_0_1px_1px_0_rgba(255,255,255,0.2)]\n\t\t\t\t\t\t\tborder border-outline-variant/30\"></div>\n\t\t\t\t\n\t\t\t\t<!-- Spinner SVG -->\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" \n\t\t\t\t\t style=\"width: 100%; height: 100%;\" class=\"relative z-10\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".7\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\" opacity=\"0.8\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t` : html`\n\t\t\t<div class=\"spinner\" style=${this.styleMap(style)}>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 16 16\" aria-hidden=\"true\" role=\"img\" style=\"width: 100%; height: 100%;\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\".5\"\n\t\t\t\t\t\td=\"M8 15A7 7 0 108 1a7 7 0 000 14v0z\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path d=\"M15 8a7 7 0 01-7 7\" stroke=\"currentColor\" stroke-width=\"2\"></path>\n\t\t\t\t\t<path d=\"M8 12a4 4 0 100-8 4 4 0 000 8z\" fill=\"currentColor\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-spinner': SchmnacySpinner\n\t}\n}\n"],"names":["SchmancyBusy","TailwindElement","css","render","html","customElement","SchmnacySpinner","constructor","super","arguments","this","size","glass","sizeInRem","isNaN","style","width","height","styleMap","__decorateClass","property","type","String","reflect","prototype","Number","Boolean"],"mappings":";;;;;;;AAKA,IAAqBA,IAArB,cAA0CC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAS/C,SAAAC;AACT,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAgBR;AAAA;AA1BoBJ;;;GAArB,CADCK,EAAc,mBACML,CAAAA;;;;;ACArB,IAAqBM,IAArB,cAA6CL,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA7D,EAAA;AAAA,EAAA,cAAAK;AAAAC,UAAAA,GAAAC,SAAAA,GAkF6BC,KAAAC,OAAe,GACdD,KAAAE,QAAAA;AAAAA,EAAiB;AAAA,EAEpC,SAAAT;AAIT,UACMU,IAA2B,QADM,OAAdH,KAAKC,QAAS,YAAaG,MAAMJ,KAAKC,IAAAA,IAAoB,IAAZD,KAAKC,QAC1D,OACZI,IAAQ,EACbC,OAAOH,GACPI,QAAQJ,EAAAA;AAGT,WAAOH,KAAKE,QAAQR;AAAAA,yCACmBM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAoBjDX;AAAAA,gCAC0BM,KAAKQ,SAASH,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAa7C;AAAA;AArDAI,EAAA,CADCC,EAAS,EAAEC,MAAMC,QAAQC,SAAAA,GAAS,CAAA,CAAA,GA7EfjB,EA8EpBkB,WAAA,SAAA,CAAA,GAI4BL,EAAA,CAA3BC,EAAS,EAAEC,MAAMI,OAAAA,CAAAA,CAAAA,GAlFEnB,EAkFQkB,WAAA,QAAA,CAAA,GACCL,EAAA,CAA5BC,EAAS,EAAEC,MAAMK,QAAAA,CAAAA,CAAAA,GAnFEpB,EAmFSkB,WAAA,SAAA,CAAA,GAnFTlB,IAArBa,EAAA,CADCd,EAAc,kBAAA,CAAA,GACMC,CAAAA;"}
package/dist/steps.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./schmancy-steps-container-DCIjNVl9.cjs");Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>e.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>e.SchmancyStepsContainer}),exports.StepsController=e.StepsController,exports.stepsContext=e.stepsContext;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./schmancy-steps-container-CQY1zmws.cjs");Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>e.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>e.SchmancyStepsContainer}),exports.StepsController=e.StepsController,exports.stepsContext=e.stepsContext;
2
2
  //# sourceMappingURL=steps.cjs.map
package/dist/steps.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as a, a as e, b as n, s as o } from "./schmancy-steps-container-fxA9vvA6.js";
1
+ import { S as a, a as e, b as n, s as o } from "./schmancy-steps-container-vW7r1ZTL.js";
2
2
  export {
3
3
  a as SchmancyStep,
4
4
  e as SchmancyStepsContainer,
@@ -1,4 +1,4 @@
1
- "use strict";const f=require("./tailwind.mixin-CvLC4LGm.cjs"),a=require("lit"),n=require("lit/decorators.js"),g=require("lit/directives/class-map.js"),h=require("rxjs"),m=require("rxjs/operators");require("lit/directives/style-map.js");const $=require("./litElement.mixin-wU3TW8NU.cjs"),w=require("lit/directives/when.js");var x=Object.defineProperty,S=Object.getOwnPropertyDescriptor,d=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?S(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&x(e,s,i),i};exports.SchmancyAssistChip=class extends f.TailwindElement(a.css`
1
+ "use strict";const f=require("./tailwind.mixin-CFrLBtkD.cjs"),a=require("lit"),n=require("lit/decorators.js"),g=require("lit/directives/class-map.js"),h=require("rxjs"),d=require("rxjs/operators");require("lit/directives/style-map.js");const $=require("./litElement.mixin-DUiUa087.cjs"),w=require("lit/directives/when.js");var x=Object.defineProperty,S=Object.getOwnPropertyDescriptor,p=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?S(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&x(e,s,i),i};exports.SchmancyAssistChip=class extends f.TailwindElement(a.css`
2
2
  :host {
3
3
  display: inline-block;
4
4
  outline: none;
@@ -47,7 +47,7 @@
47
47
  :host(:not([disabled])) button:active .state-layer {
48
48
  opacity: 0.1;
49
49
  }
50
- `){constructor(){super(...arguments),this.value="",this.icon="",this.href="",this.target="",this.disabled=!1,this.elevated=!0,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=t=>{if(this.disabled)return;const e=this.shadowRoot?.querySelector("button");if(e){const s=e.getBoundingClientRect(),o=t.clientX-s.left,l=t.clientY-s.top,i=this.nextRippleId++;this.ripples=[...this.ripples,{x:o,y:l,id:i}],setTimeout(()=>{this.ripples=this.ripples.filter(r=>r.id!==i)},600)}this.href&&(this.target==="_blank"?window.open(this.href,"_blank"):window.location.href=this.href),this.dispatchEvent(new CustomEvent("action",{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=t=>{if(!this.disabled&&(t.key==="Enter"||t.key===" ")){t.preventDefault(),this.pressed$.next(!0);const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(e),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(m.takeUntil(this.disconnecting)).subscribe()}render(){const t=!!this.icon,e={relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":t,"pl-4":!t,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"shadow-sm":this.elevated&&!this.disabled,"hover:shadow-md":this.elevated&&!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
50
+ `){constructor(){super(...arguments),this.value="",this.icon="",this.href="",this.target="",this.disabled=!1,this.elevated=!0,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=t=>{if(this.disabled)return;const e=this.shadowRoot?.querySelector("button");if(e){const s=e.getBoundingClientRect(),o=t.clientX-s.left,l=t.clientY-s.top,i=this.nextRippleId++;this.ripples=[...this.ripples,{x:o,y:l,id:i}],setTimeout(()=>{this.ripples=this.ripples.filter(r=>r.id!==i)},600)}this.href&&(this.target==="_blank"?window.open(this.href,"_blank"):window.location.href=this.href),this.dispatchEvent(new CustomEvent("action",{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=t=>{if(!this.disabled&&(t.key==="Enter"||t.key===" ")){t.preventDefault(),this.pressed$.next(!0);const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(e),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(d.takeUntil(this.disconnecting)).subscribe()}render(){const t=!!this.icon,e={relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,"pl-2":t,"pl-4":!t,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"shadow-sm":this.elevated&&!this.disabled,"hover:shadow-md":this.elevated&&!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
51
51
  <button
52
52
  type="button"
53
53
  class=${g.classMap(e)}
@@ -83,25 +83,35 @@
83
83
  <!-- State layer for M3 hover/focus/pressed states -->
84
84
  <div class="state-layer"></div>
85
85
  </button>
86
- `}},exports.SchmancyAssistChip.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},d([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"value",2),d([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"icon",2),d([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"href",2),d([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"target",2),d([n.property({type:Boolean,reflect:!0})],exports.SchmancyAssistChip.prototype,"disabled",2),d([n.property({type:Boolean,reflect:!0})],exports.SchmancyAssistChip.prototype,"elevated",2),d([n.state()],exports.SchmancyAssistChip.prototype,"ripples",2),exports.SchmancyAssistChip=d([n.customElement("schmancy-assist-chip")],exports.SchmancyAssistChip);var C=Object.defineProperty,k=Object.getOwnPropertyDescriptor,v=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?k(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&C(e,s,i),i};let u=class extends $.$LitElement(a.css`
87
- :host{
88
- display:block;
86
+ `}},exports.SchmancyAssistChip.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},p([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"value",2),p([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"icon",2),p([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"href",2),p([n.property({reflect:!0})],exports.SchmancyAssistChip.prototype,"target",2),p([n.property({type:Boolean,reflect:!0})],exports.SchmancyAssistChip.prototype,"disabled",2),p([n.property({type:Boolean,reflect:!0})],exports.SchmancyAssistChip.prototype,"elevated",2),p([n.state()],exports.SchmancyAssistChip.prototype,"ripples",2),exports.SchmancyAssistChip=p([n.customElement("schmancy-assist-chip")],exports.SchmancyAssistChip);var C=Object.defineProperty,k=Object.getOwnPropertyDescriptor,y=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?k(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&C(e,s,i),i};let b=class extends $.$LitElement(a.css`
87
+ :host {
88
+ display: block;
89
+ }
90
+
91
+ :host([wrap]) section {
92
+ flex-wrap: wrap;
89
93
  }
90
94
 
91
- .scrollbar-hide {
95
+ :host(:not([wrap])) section {
96
+ overflow-x: auto;
92
97
  -ms-overflow-style: none; /* IE and Edge */
93
98
  scrollbar-width: none; /* Firefox */
94
99
  }
95
- .scrollbar-hide::-webkit-scrollbar {
100
+
101
+ :host(:not([wrap])) section::-webkit-scrollbar {
96
102
  display: none; /* Chrome, Safari, and Opera */
97
103
  }
98
- `){constructor(){super(...arguments),this.value$=new h.BehaviorSubject(""),this.values$=new h.BehaviorSubject([]),this._value="",this._values=[],this._multi=!1,this._valueSet=!1,this._valuesSet=!1,this.wrap=!1}get multi(){return this._multi}set multi(t){this._multi=t}get mode(){return this._valuesSet?"multi":this._valueSet?"single":this.hasAttribute("values")?"multi":this.hasAttribute("value")?"single":this._multi===!0?"multi":"none"}get values(){return this._values}set values(t){this._values=t||[],this._valuesSet=!0,this.values$.next(this._values)}get value(){return this._value}set value(t){this._value=t||"",this._valueSet=!0,this.value$.next(this._value)}connectedCallback(){super.connectedCallback(),this.value$.next(this._value),this.values$.next(this._values),h.combineLatest([this.value$.pipe(m.distinctUntilChanged()),this.values$.pipe(m.distinctUntilChanged((t,e)=>t.length===e.length&&t.every((s,o)=>s===e[o])))]).pipe(m.debounceTime(0),m.takeUntil(this.disconnecting)).subscribe(([t,e])=>{this.updateChipStates(this.mode,t,e)})}updateChipStates(t,e,s){this.chips&&t!=="none"&&this.chips.forEach(o=>{if("value"in o&&"selected"in o){const l=o;t==="multi"?l.selected=s.length>0&&s.includes(l.value):t==="single"&&(l.selected=e!==""&&e===l.value)}})}async change(t){if(t.preventDefault(),t.stopPropagation(),this.mode==="none")return;const{value:e,selected:s}=t.detail;this.mode==="multi"?s?this._values.includes(e)||(this._values=[...this._values,e],this.values$.next(this._values)):(this._values=this._values.filter(o=>o!==e),this.values$.next(this._values)):this.mode==="single"&&(this._value=s?e:"",this.value$.next(this._value)),this.requestUpdate(),this.dispatchEvent(new CustomEvent("change",{detail:this.mode==="multi"?this._values:this._value,bubbles:!0}))}firstUpdated(t){super.firstUpdated(t),this.updateChipStates(this.mode,this._value,this._values)}render(){const t=this.classMap({"flex auto-cols-max":!0,"items-center":!0,"flex-wrap":this.wrap,"overflow-x-auto":!this.wrap,"scrollbar-hide":!this.wrap,"gap-2":!0});return a.html`
99
- <section class=${t} @change=${this.change}>
100
- <slot
101
- @slotchange=${()=>{this.updateChipStates(this.mode,this._value,this._values)}}
102
- ></slot>
104
+
105
+ section {
106
+ display: flex;
107
+ align-items: center;
108
+ gap: 0.5rem;
109
+ }
110
+ `){constructor(){super(...arguments),this.value$=new h.BehaviorSubject(""),this.values$=new h.BehaviorSubject([]),this._value="",this._values=[],this._multi=!1,this.wrap=!1}get multi(){return this._multi}set multi(t){this._multi=t}get mode(){return this._values.length>0||this.hasAttribute("values")?"multi":this._value||this.hasAttribute("value")?"single":this._multi?"multi":"none"}get values(){return this._values}set values(t){this._values=t||[],this.values$.next(this._values)}get value(){return this._value}set value(t){this._value=t||"",this.value$.next(this._value)}connectedCallback(){super.connectedCallback(),this.value$.next(this._value),this.values$.next(this._values);const t=this.mode;t==="multi"?this.values$.pipe(d.distinctUntilChanged((e,s)=>e.length===s.length&&e.every((o,l)=>o===s[l])),d.debounceTime(0),d.takeUntil(this.disconnecting)).subscribe(e=>this.updateChipStates(e)):t==="single"&&this.value$.pipe(d.distinctUntilChanged(),d.debounceTime(0),d.takeUntil(this.disconnecting)).subscribe(e=>this.updateChipStates(e))}updateChipStates(t){if(!this.chips)return;const e=this.mode;e!=="none"&&this.chips.forEach(s=>{if(!("value"in s)||!("selected"in s))return;const o=s;if(e==="multi"){const l=t;o.selected=l.length>0&&l.includes(o.value)}else o.selected=t!==""&&t===o.value})}change(t){t.preventDefault(),t.stopPropagation();const e=this.mode;if(e==="none")return;const{value:s,selected:o}=t.detail;e==="multi"?(this._values=o?[...new Set([...this._values,s])]:this._values.filter(l=>l!==s),this.values$.next(this._values)):(this._value=o?s:"",this.value$.next(this._value)),this.dispatchEvent(new CustomEvent("change",{detail:e==="multi"?this._values:this._value,bubbles:!0}))}firstUpdated(t){super.firstUpdated(t);const e=this.mode;e==="multi"?this.updateChipStates(this._values):e==="single"&&this.updateChipStates(this._value)}render(){return a.html`
111
+ <section @change=${this.change}>
112
+ <slot @slotchange=${()=>{const t=this.mode;t==="multi"?this.updateChipStates(this._values):t==="single"&&this.updateChipStates(this._value)}}></slot>
103
113
  </section>
104
- `}};v([n.property({type:Boolean,reflect:!0})],u.prototype,"multi",1),v([n.property({type:Array,reflect:!0})],u.prototype,"values",1),v([n.property({type:String,reflect:!0})],u.prototype,"value",1),v([n.queryAssignedElements({selector:"schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip",flatten:!0})],u.prototype,"chips",2),v([n.property({type:Boolean,reflect:!0})],u.prototype,"wrap",2),u=v([n.customElement("schmancy-chips")],u);var _=Object.defineProperty,E=Object.getOwnPropertyDescriptor,b=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?E(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&_(e,s,i),i};const y=class y extends f.TailwindElement(a.css`
114
+ `}};y([n.property({type:Boolean,reflect:!0})],b.prototype,"multi",1),y([n.property({type:Array,reflect:!0})],b.prototype,"values",1),y([n.property({type:String,reflect:!0})],b.prototype,"value",1),y([n.queryAssignedElements({selector:"schmancy-chip, schmancy-filter-chip, schmancy-assist-chip, schmancy-input-chip, schmancy-suggestion-chip",flatten:!0})],b.prototype,"chips",2),y([n.property({type:Boolean,reflect:!0})],b.prototype,"wrap",2),b=y([n.customElement("schmancy-chips")],b);var _=Object.defineProperty,E=Object.getOwnPropertyDescriptor,m=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?E(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&_(e,s,i),i};const v=class v extends f.TailwindElement(a.css`
105
115
  :host {
106
116
  display: inline-block;
107
117
  outline: none;
@@ -110,7 +120,8 @@
110
120
 
111
121
  :host([disabled]) {
112
122
  pointer-events: none;
113
- opacity: 0.5;
123
+ /* M3 disabled state opacity */
124
+ opacity: var(--schmancy-sys-state-disabled-opacity);
114
125
  }
115
126
 
116
127
  button {
@@ -136,7 +147,7 @@
136
147
  font-feature-settings: 'liga';
137
148
  vertical-align: middle;
138
149
  }
139
- `){constructor(){super(),this.value="",this._selected=!1,this.icon="",this.removable=!1,this.disabled=!1,this.elevated=!1,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.handleClick=()=>{this.disabled||this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0}))},this.handleRemove=e=>{this.disabled||(e.stopPropagation(),this.dispatchEvent(new CustomEvent("remove",{detail:{value:this.value},bubbles:!0,composed:!0})))},this.handleKeyDown=e=>{this.disabled||e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0})))},this.handleMouseEnter=()=>{this.hover$.next(!0)},this.handleMouseLeave=()=>{this.hover$.next(!1),this.pressed$.next(!1)},this.handleMouseDown=()=>{this.pressed$.next(!0)},this.handleMouseUp=()=>{this.pressed$.next(!1)},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)};try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get selected(){return this._selected}set selected(e){const s=this._selected;this._selected=e,this.requestUpdate("selected",s)}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(m.takeUntil(this.disconnecting)).subscribe()}render(){const e={"inline-flex":!0,"items-center":!0,"gap-2":!0,"rounded-full":!0,"h-8 px-4":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"text-sm":!0,"font-medium":!0,border:!0,relative:!0,"min-h-[32px]":!0,"bg-secondary-container":this._selected,"text-secondary-onContainer":this._selected,"border-secondary-container":this._selected,"bg-surface-container":!this._selected,"text-surface-on":!this._selected,"border-outline-variant":!this._selected,"hover:brightness-95":this._selected&&!this.disabled,"hover:bg-surface-containerHigh":!this._selected&&!this.disabled,"active:scale-95":!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"focus-visible:outline-primary-default":!this.disabled,"shadow-md":this.elevated&&!this.disabled,"hover:shadow-lg":this.elevated&&!this.disabled,"opacity-50":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
150
+ `){constructor(){super(),this.value="",this._selected=!1,this.icon="",this.removable=!1,this.disabled=!1,this.elevated=!1,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.handleClick=()=>{this.disabled||this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0}))},this.handleRemove=e=>{this.disabled||(e.stopPropagation(),this.dispatchEvent(new CustomEvent("remove",{detail:{value:this.value},bubbles:!0,composed:!0})))},this.handleKeyDown=e=>{this.disabled||e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value,selected:!this._selected},bubbles:!0,composed:!0})))},this.handleMouseEnter=()=>{this.hover$.next(!0)},this.handleMouseLeave=()=>{this.hover$.next(!1),this.pressed$.next(!1)},this.handleMouseDown=()=>{this.pressed$.next(!0)},this.handleMouseUp=()=>{this.pressed$.next(!1)},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)};try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get selected(){return this._selected}set selected(e){const s=this._selected;this._selected=e,this.requestUpdate("selected",s)}get form(){return this.internals?.form}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(d.takeUntil(this.disconnecting)).subscribe()}render(){const e={"inline-flex":!0,"items-center":!0,"gap-2":!0,"rounded-lg":!0,"h-8 px-4":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"text-sm":!0,"font-medium":!0,border:!0,relative:!0,"min-h-[32px]":!0,"bg-secondary-container":this._selected,"text-secondary-onContainer":this._selected,"border-secondary-container":this._selected,"bg-surface-container":!this._selected,"text-surface-on":!this._selected,"border-outline-variant":!this._selected,"hover:brightness-95":this._selected&&!this.disabled,"hover:bg-surface-container-high":!this._selected&&!this.disabled,"active:brightness-90":!this.disabled,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"focus-visible:outline-primary-default":!this.disabled,"shadow-md":this.elevated&&!this.disabled,"hover:shadow-lg":this.elevated&&!this.disabled,"opacity-[var(--schmancy-sys-state-disabled-opacity)]":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
140
151
  <button
141
152
  class=${this.classMap(e)}
142
153
  @click=${this.handleClick}
@@ -175,7 +186,7 @@
175
186
  <!-- Remove button (if removable) -->
176
187
  ${this.removable?a.html`
177
188
  <button
178
- class="ml-1 -mr-1 p-0.5 rounded-full hover:bg-surface-containerHighest transition-colors"
189
+ class="ml-1 -mr-1 p-0.5 rounded-full hover:bg-surface-container-highest transition-colors duration-200"
179
190
  @click=${this.handleRemove}
180
191
  aria-label="Remove filter"
181
192
  tabindex="-1"
@@ -186,7 +197,7 @@
186
197
  </button>
187
198
  `:""}
188
199
  </button>
189
- `}};y.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},y.formAssociated=!0;let c=y;if(b([n.property({type:String,reflect:!0})],c.prototype,"value",2),b([n.property({type:Boolean,reflect:!0})],c.prototype,"selected",1),b([n.property({type:String,reflect:!0})],c.prototype,"icon",2),b([n.property({type:Boolean,reflect:!0})],c.prototype,"removable",2),b([n.property({type:Boolean,reflect:!0})],c.prototype,"disabled",2),b([n.property({type:Boolean,reflect:!0})],c.prototype,"elevated",2),b([n.queryAssignedElements({slot:"icon"})],c.prototype,"iconSlotElements",2),customElements.get("schmancy-filter-chip")||customElements.define("schmancy-filter-chip",c),!customElements.get("schmancy-chip")){class t extends c{}customElements.define("schmancy-chip",t)}var B=Object.defineProperty,j=Object.getOwnPropertyDescriptor,p=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?j(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&B(e,s,i),i};exports.SchmancySuggestionChip=class extends f.TailwindElement(a.css`
200
+ `}};v.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},v.formAssociated=!0;let c=v;if(m([n.property({type:String,reflect:!0})],c.prototype,"value",2),m([n.property({type:Boolean,reflect:!0})],c.prototype,"selected",1),m([n.property({type:String,reflect:!0})],c.prototype,"icon",2),m([n.property({type:Boolean,reflect:!0})],c.prototype,"removable",2),m([n.property({type:Boolean,reflect:!0})],c.prototype,"disabled",2),m([n.property({type:Boolean,reflect:!0})],c.prototype,"elevated",2),m([n.queryAssignedElements({slot:"icon"})],c.prototype,"iconSlotElements",2),customElements.get("schmancy-filter-chip")||customElements.define("schmancy-filter-chip",c),!customElements.get("schmancy-chip")){class t extends c{}customElements.define("schmancy-chip",t)}var B=Object.defineProperty,j=Object.getOwnPropertyDescriptor,u=(t,e,s,o)=>{for(var l,i=o>1?void 0:o?j(e,s):e,r=t.length-1;r>=0;r--)(l=t[r])&&(i=(o?l(e,s,i):l(i))||i);return o&&i&&B(e,s,i),i};exports.SchmancySuggestionChip=class extends f.TailwindElement(a.css`
190
201
  :host {
191
202
  display: inline-block;
192
203
  outline: none;
@@ -235,7 +246,7 @@
235
246
  :host(:not([disabled])) button:active .state-layer {
236
247
  opacity: 0.1;
237
248
  }
238
- `){constructor(){super(...arguments),this.value="",this.icon="",this.href="",this.target="",this.disabled=!1,this.elevated=!1,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=t=>{if(this.disabled)return;const e=this.shadowRoot?.querySelector("button");if(e){const s=e.getBoundingClientRect(),o=t.clientX-s.left,l=t.clientY-s.top,i=this.nextRippleId++;this.ripples=[...this.ripples,{x:o,y:l,id:i}],setTimeout(()=>{this.ripples=this.ripples.filter(r=>r.id!==i)},600)}this.href&&(this.target==="_blank"?window.open(this.href,"_blank"):window.location.href=this.href),this.dispatchEvent(new CustomEvent("action",{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=t=>{if(!this.disabled&&(t.key==="Enter"||t.key===" ")){t.preventDefault(),this.pressed$.next(!0);const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(e),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(m.takeUntil(this.disconnecting)).subscribe()}render(){const t=!!this.icon,e={relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,border:!0,"pl-2":t,"pl-4":!t,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"border-outline":!0,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
249
+ `){constructor(){super(...arguments),this.value="",this.icon="",this.href="",this.target="",this.disabled=!1,this.elevated=!1,this.hover$=new h.BehaviorSubject(!1),this.pressed$=new h.BehaviorSubject(!1),this.focused$=new h.BehaviorSubject(!1),this.ripples=[],this.nextRippleId=0,this.handleClick=t=>{if(this.disabled)return;const e=this.shadowRoot?.querySelector("button");if(e){const s=e.getBoundingClientRect(),o=t.clientX-s.left,l=t.clientY-s.top,i=this.nextRippleId++;this.ripples=[...this.ripples,{x:o,y:l,id:i}],setTimeout(()=>{this.ripples=this.ripples.filter(r=>r.id!==i)},600)}this.href&&(this.target==="_blank"?window.open(this.href,"_blank"):window.location.href=this.href),this.dispatchEvent(new CustomEvent("action",{detail:{value:this.value},bubbles:!0,composed:!0}))},this.handleKeyDown=t=>{if(!this.disabled&&(t.key==="Enter"||t.key===" ")){t.preventDefault(),this.pressed$.next(!0);const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,clientX:0,clientY:0});this.handleClick(e),setTimeout(()=>this.pressed$.next(!1),100)}},this.handleFocus=()=>{this.focused$.next(!0)},this.handleBlur=()=>{this.focused$.next(!1)}}connectedCallback(){super.connectedCallback(),h.combineLatest([this.hover$,this.pressed$,this.focused$]).pipe(d.takeUntil(this.disconnecting)).subscribe()}render(){const t=!!this.icon,e={relative:!0,"inline-flex":!0,"items-center":!0,"gap-2":!0,"h-8":!0,"min-h-[32px]":!0,"rounded-full":!0,"cursor-pointer":!this.disabled,"transition-all":!0,"duration-200":!0,"select-none":!0,"overflow-hidden":!0,border:!0,"pl-2":t,"pl-4":!t,"pr-4":!0,"bg-surface-containerLow":!0,"text-surface-onVariant":!0,"border-outline":!0,"focus-visible:outline":!this.disabled,"focus-visible:outline-2":!this.disabled,"focus-visible:outline-primary":!this.disabled,"focus-visible:outline-offset-2":!this.disabled,"opacity-38":this.disabled,"cursor-not-allowed":this.disabled};return a.html`
239
250
  <button
240
251
  type="button"
241
252
  class=${g.classMap(e)}
@@ -271,5 +282,5 @@
271
282
  <!-- State layer for M3 hover/focus/pressed states -->
272
283
  <div class="state-layer"></div>
273
284
  </button>
274
- `}},exports.SchmancySuggestionChip.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},p([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"value",2),p([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"icon",2),p([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"href",2),p([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"target",2),p([n.property({type:Boolean,reflect:!0})],exports.SchmancySuggestionChip.prototype,"disabled",2),p([n.property({type:Boolean,reflect:!0})],exports.SchmancySuggestionChip.prototype,"elevated",2),p([n.state()],exports.SchmancySuggestionChip.prototype,"ripples",2),exports.SchmancySuggestionChip=p([n.customElement("schmancy-suggestion-chip")],exports.SchmancySuggestionChip),exports.SchmancyFilterChip=c;
275
- //# sourceMappingURL=suggestion-chip-jPIhloJG.cjs.map
285
+ `}},exports.SchmancySuggestionChip.shadowRootOptions={...a.LitElement.shadowRootOptions,delegatesFocus:!0},u([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"value",2),u([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"icon",2),u([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"href",2),u([n.property({reflect:!0})],exports.SchmancySuggestionChip.prototype,"target",2),u([n.property({type:Boolean,reflect:!0})],exports.SchmancySuggestionChip.prototype,"disabled",2),u([n.property({type:Boolean,reflect:!0})],exports.SchmancySuggestionChip.prototype,"elevated",2),u([n.state()],exports.SchmancySuggestionChip.prototype,"ripples",2),exports.SchmancySuggestionChip=u([n.customElement("schmancy-suggestion-chip")],exports.SchmancySuggestionChip),exports.SchmancyFilterChip=c;
286
+ //# sourceMappingURL=suggestion-chip-C1n2VYBG.cjs.map