@mhmo91/schmancy 0.5.20 → 0.5.22

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 (330) hide show
  1. package/ai/navigation-rail.md +475 -0
  2. package/dist/ai/navigation-rail.md +475 -0
  3. package/dist/{animated-text-D1D0dI8T.cjs → animated-text-Bic7z7SI.cjs} +2 -2
  4. package/dist/{animated-text-D1D0dI8T.cjs.map → animated-text-Bic7z7SI.cjs.map} +1 -1
  5. package/dist/{animated-text-DS9AsLAy.js → animated-text-CLEr78FV.js} +3 -3
  6. package/dist/{animated-text-DS9AsLAy.js.map → animated-text-CLEr78FV.js.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-DZFtLBMV.cjs → area.component-BrvNYy7Z.cjs} +2 -2
  11. package/dist/{area.component-DZFtLBMV.cjs.map → area.component-BrvNYy7Z.cjs.map} +1 -1
  12. package/dist/{area.component-5hv6c-dZ.js → area.component-tIK_P5JR.js} +3 -3
  13. package/dist/{area.component-5hv6c-dZ.js.map → area.component-tIK_P5JR.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-DpGmI06M.cjs → autocomplete-CG2YtfwU.cjs} +2 -2
  16. package/dist/autocomplete-CG2YtfwU.cjs.map +1 -0
  17. package/dist/{autocomplete-Bm_tnRns.js → autocomplete-DzZQusAY.js} +10 -10
  18. package/dist/autocomplete-DzZQusAY.js.map +1 -0
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-DVkOL5_x.js → avatar-39MTGkwX.js} +50 -50
  22. package/dist/{avatar-DVkOL5_x.js.map → avatar-39MTGkwX.js.map} +1 -1
  23. package/dist/{avatar-B0Q9R0jH.cjs → avatar-QYDHa7s3.cjs} +2 -2
  24. package/dist/{avatar-B0Q9R0jH.cjs.map → avatar-QYDHa7s3.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-DDBc--4N.js → boat-BdJ1jyK_.js} +2 -2
  28. package/dist/{boat-DDBc--4N.js.map → boat-BdJ1jyK_.js.map} +1 -1
  29. package/dist/{boat-DpuxxF9v.cjs → boat-DP98_5qG.cjs} +2 -2
  30. package/dist/{boat-DpuxxF9v.cjs.map → boat-DP98_5qG.cjs.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-ByAbf0mX.js → checkbox-4mBWkzKG.js} +2 -2
  40. package/dist/{checkbox-ByAbf0mX.js.map → checkbox-4mBWkzKG.js.map} +1 -1
  41. package/dist/{checkbox-DA355aVd.cjs → checkbox-CIMDI5hW.cjs} +2 -2
  42. package/dist/{checkbox-DA355aVd.cjs.map → checkbox-CIMDI5hW.cjs.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-BEDuv4oc.js → code-preview-CrsExDWj.js} +7 -8
  50. package/dist/{code-preview-BEDuv4oc.js.map → code-preview-CrsExDWj.js.map} +1 -1
  51. package/dist/{code-preview-DXvds6Ik.cjs → code-preview-hWI3erYE.cjs} +6 -7
  52. package/dist/{code-preview-DXvds6Ik.cjs.map → code-preview-hWI3erYE.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-CO96uRfu.cjs → date-range-B0yz-_Zv.cjs} +2 -2
  58. package/dist/{date-range-CO96uRfu.cjs.map → date-range-B0yz-_Zv.cjs.map} +1 -1
  59. package/dist/{date-range-CWwzapvu.js → date-range-CM-5J_JO.js} +3 -3
  60. package/dist/{date-range-CWwzapvu.js.map → date-range-CM-5J_JO.js.map} +1 -1
  61. package/dist/{date-range-inline-DcRJrT7z.js → date-range-inline-CPI4EyL0.js} +3 -3
  62. package/dist/{date-range-inline-DcRJrT7z.js.map → date-range-inline-CPI4EyL0.js.map} +1 -1
  63. package/dist/{date-range-inline-Br8Pkm6Z.cjs → date-range-inline-P8P2ixg1.cjs} +2 -2
  64. package/dist/{date-range-inline-Br8Pkm6Z.cjs.map → date-range-inline-P8P2ixg1.cjs.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-BU66nJyr.cjs → delay-1aTGz1ZH.cjs} +2 -2
  70. package/dist/{delay-BU66nJyr.cjs.map → delay-1aTGz1ZH.cjs.map} +1 -1
  71. package/dist/{delay-4p58-oPM.js → delay-Lg_7K_Vi.js} +2 -2
  72. package/dist/{delay-4p58-oPM.js.map → delay-Lg_7K_Vi.js.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-COgnQWz1.js → details-gUvX6sxc.js} +2 -2
  76. package/dist/{details-COgnQWz1.js.map → details-gUvX6sxc.js.map} +1 -1
  77. package/dist/{details-CoqpAwjh.cjs → details-uxsPpjMp.cjs} +2 -2
  78. package/dist/{details-CoqpAwjh.cjs.map → details-uxsPpjMp.cjs.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-CJUcyFT1.cjs → dialog-content-CvVd9EwS.cjs} +2 -2
  82. package/dist/{dialog-content-CJUcyFT1.cjs.map → dialog-content-CvVd9EwS.cjs.map} +1 -1
  83. package/dist/{dialog-content-naA5eL6T.js → dialog-content-DKLDmgfz.js} +3 -3
  84. package/dist/{dialog-content-naA5eL6T.js.map → dialog-content-DKLDmgfz.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-a2f7N3mc.cjs → divider-CHGffGro.cjs} +2 -2
  88. package/dist/{divider-a2f7N3mc.cjs.map → divider-CHGffGro.cjs.map} +1 -1
  89. package/dist/{divider-DsNchzPn.js → divider-EvBnlb2a.js} +3 -3
  90. package/dist/{divider-DsNchzPn.js.map → divider-EvBnlb2a.js.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-YiOmwoxH.cjs → dropdown-content-FVKimBQR.cjs} +2 -2
  94. package/dist/{dropdown-content-YiOmwoxH.cjs.map → dropdown-content-FVKimBQR.cjs.map} +1 -1
  95. package/dist/{dropdown-content-CARJm72a.js → dropdown-content-NGBIkvdR.js} +3 -3
  96. package/dist/{dropdown-content-CARJm72a.js.map → dropdown-content-NGBIkvdR.js.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-CM41HA4G.js → email-recipients-CXFSIsL-.js} +5 -5
  100. package/dist/{email-recipients-CM41HA4G.js.map → email-recipients-CXFSIsL-.js.map} +1 -1
  101. package/dist/{email-recipients-Dha5jYMG.cjs → email-recipients-DxqCC99q.cjs} +2 -2
  102. package/dist/{email-recipients-Dha5jYMG.cjs.map → email-recipients-DxqCC99q.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-D-oS3wlY.js → flex-Cm4nZM9q.js} +2 -2
  106. package/dist/{flex-D-oS3wlY.js.map → flex-Cm4nZM9q.js.map} +1 -1
  107. package/dist/{flex-zqTHF06u.cjs → flex-DisTVvBI.cjs} +2 -2
  108. package/dist/{flex-zqTHF06u.cjs.map → flex-DisTVvBI.cjs.map} +1 -1
  109. package/dist/{form-DPAzy8Dn.js → form-BU9TBjfk.js} +2 -2
  110. package/dist/{form-DPAzy8Dn.js.map → form-BU9TBjfk.js.map} +1 -1
  111. package/dist/{form-BSlt0E8v.cjs → form-SMbhjYsC.cjs} +2 -2
  112. package/dist/{form-BSlt0E8v.cjs.map → form-SMbhjYsC.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-R7Ddvq3q.cjs → formField.mixin-DYkeOpES.cjs} +2 -2
  116. package/dist/{formField.mixin-R7Ddvq3q.cjs.map → formField.mixin-DYkeOpES.cjs.map} +1 -1
  117. package/dist/{formField.mixin-CVkUNhSX.js → formField.mixin-DxhnL3Kb.js} +2 -2
  118. package/dist/{formField.mixin-CVkUNhSX.js.map → formField.mixin-DxhnL3Kb.js.map} +1 -1
  119. package/dist/{icon-Cm5BKSV4.cjs → icon-BT_1B5_G.cjs} +2 -2
  120. package/dist/{icon-Cm5BKSV4.cjs.map → icon-BT_1B5_G.cjs.map} +1 -1
  121. package/dist/{icon-ave1X5b9.js → icon-Cgd3NUcv.js} +2 -2
  122. package/dist/{icon-ave1X5b9.js.map → icon-Cgd3NUcv.js.map} +1 -1
  123. package/dist/{icon-button-BdB5el84.cjs → icon-button-C5hq1cKD.cjs} +2 -2
  124. package/dist/{icon-button-BdB5el84.cjs.map → icon-button-C5hq1cKD.cjs.map} +1 -1
  125. package/dist/{icon-button-DiNXfJ8u.js → icon-button-DsjqusZz.js} +3 -3
  126. package/dist/{icon-button-DiNXfJ8u.js.map → icon-button-DsjqusZz.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-DPiDmsjt.js → input-Bj4MTOC9.js} +3 -3
  132. package/dist/{input-DPiDmsjt.js.map → input-Bj4MTOC9.js.map} +1 -1
  133. package/dist/{input-B6zwyDBC.cjs → input-D3qmQZ-Y.cjs} +2 -2
  134. package/dist/{input-B6zwyDBC.cjs.map → input-D3qmQZ-Y.cjs.map} +1 -1
  135. package/dist/{input-chip-CkWSf6nV.cjs → input-chip-CbD-eDs-.cjs} +2 -2
  136. package/dist/{input-chip-CkWSf6nV.cjs.map → input-chip-CbD-eDs-.cjs.map} +1 -1
  137. package/dist/{input-chip-C06GAnnC.js → input-chip-DiThsRoi.js} +2 -2
  138. package/dist/{input-chip-C06GAnnC.js.map → input-chip-DiThsRoi.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-BCDPk6mM.cjs → list-5Y_CGGJF.cjs} +2 -2
  144. package/dist/{list-BCDPk6mM.cjs.map → list-5Y_CGGJF.cjs.map} +1 -1
  145. package/dist/{list-vICZQxqV.js → list-CAFpmXsb.js} +2 -2
  146. package/dist/{list-vICZQxqV.js.map → list-CAFpmXsb.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-jTGHsEfH.js → litElement.mixin-Bv6DGuhe.js} +2 -2
  150. package/dist/{litElement.mixin-jTGHsEfH.js.map → litElement.mixin-Bv6DGuhe.js.map} +1 -1
  151. package/dist/{litElement.mixin-DLJYzvsb.cjs → litElement.mixin-rWG9s46P.cjs} +2 -2
  152. package/dist/{litElement.mixin-DLJYzvsb.cjs.map → litElement.mixin-rWG9s46P.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-D6QG9Yzr.cjs → map-bTOQf8Jm.cjs} +2 -2
  156. package/dist/{map-D6QG9Yzr.cjs.map → map-bTOQf8Jm.cjs.map} +1 -1
  157. package/dist/{map-DZt51SfS.js → map-yv8FB9mG.js} +2 -2
  158. package/dist/{map-DZt51SfS.js.map → map-yv8FB9mG.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-BUx20F5U.js → media-CA52MXd3.js} +2 -2
  162. package/dist/{media-BUx20F5U.js.map → media-CA52MXd3.js.map} +1 -1
  163. package/dist/{media-CdPEYBLJ.cjs → media-CPIoKlRw.cjs} +2 -2
  164. package/dist/{media-CdPEYBLJ.cjs.map → media-CPIoKlRw.cjs.map} +1 -1
  165. package/dist/{menu-CvWQC1In.js → menu-BKO9PgJq.js} +3 -3
  166. package/dist/{menu-CvWQC1In.js.map → menu-BKO9PgJq.js.map} +1 -1
  167. package/dist/{menu-2UwBHzr9.cjs → menu-Cak8SbFx.cjs} +2 -2
  168. package/dist/{menu-2UwBHzr9.cjs.map → menu-Cak8SbFx.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-C8OOb0V3.js +564 -0
  176. package/dist/navigation-rail-C8OOb0V3.js.map +1 -0
  177. package/dist/navigation-rail-D1iYDMy2.cjs +415 -0
  178. package/dist/navigation-rail-D1iYDMy2.cjs.map +1 -0
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-BqvWCDoP.cjs → notification-service-DaXxcXyj.cjs} +2 -2
  182. package/dist/{notification-service-BqvWCDoP.cjs.map → notification-service-DaXxcXyj.cjs.map} +1 -1
  183. package/dist/{notification-service-eOCFErH1.js → notification-service-jfBwJ2TN.js} +4 -4
  184. package/dist/{notification-service-eOCFErH1.js.map → notification-service-jfBwJ2TN.js.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-COSA8XRV.js → notify-C5gy3egX.js} +2 -2
  188. package/dist/{notify-COSA8XRV.js.map → notify-C5gy3egX.js.map} +1 -1
  189. package/dist/{notify-BaedZ1y9.cjs → notify-Dd5h2l-v.cjs} +2 -2
  190. package/dist/{notify-BaedZ1y9.cjs.map → notify-Dd5h2l-v.cjs.map} +1 -1
  191. package/dist/{option-CeXe-DCz.cjs → option-C6PwIhut.cjs} +2 -2
  192. package/dist/{option-CeXe-DCz.cjs.map → option-C6PwIhut.cjs.map} +1 -1
  193. package/dist/{option-CplQ_59U.js → option-D7b-uGff.js} +2 -2
  194. package/dist/{option-CplQ_59U.js.map → option-D7b-uGff.js.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-wns1GAaC.cjs → payment-card-form-DTfoZiiN.cjs} +2 -2
  198. package/dist/{payment-card-form-wns1GAaC.cjs.map → payment-card-form-DTfoZiiN.cjs.map} +1 -1
  199. package/dist/{payment-card-form-hVPgM3HO.js → payment-card-form-xwk5dfeQ.js} +3 -3
  200. package/dist/{payment-card-form-hVPgM3HO.js.map → payment-card-form-xwk5dfeQ.js.map} +1 -1
  201. package/dist/{progress-X8hxleUC.js → progress-D-5gThOU.js} +2 -2
  202. package/dist/{progress-X8hxleUC.js.map → progress-D-5gThOU.js.map} +1 -1
  203. package/dist/{progress-CM5lHuCR.cjs → progress-sFt6EeRy.cjs} +2 -2
  204. package/dist/{progress-CM5lHuCR.cjs.map → progress-sFt6EeRy.cjs.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button--uXczpjB.js → radio-button-CZq8Z-V-.js} +3 -3
  208. package/dist/{radio-button--uXczpjB.js.map → radio-button-CZq8Z-V-.js.map} +1 -1
  209. package/dist/{radio-button-D76Qubig.cjs → radio-button-Cc5fCDdU.cjs} +2 -2
  210. package/dist/{radio-button-D76Qubig.cjs.map → radio-button-Cc5fCDdU.cjs.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-Dc_hXgrm.cjs → schmancy-steps-container-Cb-cUZWP.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-Dc_hXgrm.cjs.map → schmancy-steps-container-Cb-cUZWP.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-Csh_Ocoa.js → schmancy-steps-container-DkPckhRw.js} +2 -2
  216. package/dist/{schmancy-steps-container-Csh_Ocoa.js.map → schmancy-steps-container-DkPckhRw.js.map} +1 -1
  217. package/dist/{select-DvjgcI2e.cjs → select-BszKwEA_.cjs} +4 -4
  218. package/dist/select-BszKwEA_.cjs.map +1 -0
  219. package/dist/{select-BrdNXtJK.js → select-CHgsFxnz.js} +14 -14
  220. package/dist/select-CHgsFxnz.js.map +1 -0
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-D6hxqRpX.js → sheet-BscruHZw.js} +3 -3
  224. package/dist/{sheet-D6hxqRpX.js.map → sheet-BscruHZw.js.map} +1 -1
  225. package/dist/{sheet-DrGvhM5D.cjs → sheet-ZHVITumf.cjs} +2 -2
  226. package/dist/{sheet-DrGvhM5D.cjs.map → sheet-ZHVITumf.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-DNqgaGvI.cjs → slider-BKUCiMOV.cjs} +2 -2
  230. package/dist/{slider-DNqgaGvI.cjs.map → slider-BKUCiMOV.cjs.map} +1 -1
  231. package/dist/{slider-ev-R3lWD.js → slider-gBHyj2TC.js} +3 -3
  232. package/dist/{slider-ev-R3lWD.js.map → slider-gBHyj2TC.js.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-BBhBlm_F.cjs → spinner-CiRbCC74.cjs} +2 -2
  236. package/dist/{spinner-BBhBlm_F.cjs.map → spinner-CiRbCC74.cjs.map} +1 -1
  237. package/dist/{spinner-0Be5YjKa.js → spinner-DZ3oE5cQ.js} +2 -2
  238. package/dist/{spinner-0Be5YjKa.js.map → spinner-DZ3oE5cQ.js.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-WW3dScRF.js → suggestion-chip-BTiLUD1d.js} +10 -10
  242. package/dist/suggestion-chip-BTiLUD1d.js.map +1 -0
  243. package/dist/{suggestion-chip-GLpIJvu3.cjs → suggestion-chip-D7izoLhZ.cjs} +8 -8
  244. package/dist/suggestion-chip-D7izoLhZ.cjs.map +1 -0
  245. package/dist/{surface-DmtBge0h.js → surface-C4Lkv6Xu.js} +2 -2
  246. package/dist/{surface-DmtBge0h.js.map → surface-C4Lkv6Xu.js.map} +1 -1
  247. package/dist/{surface-BaMQfpnN.cjs → surface-DTqeD1NX.cjs} +2 -2
  248. package/dist/{surface-BaMQfpnN.cjs.map → surface-DTqeD1NX.cjs.map} +1 -1
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-Bc86ZVfE.cjs → table-CGB_dR8H.cjs} +2 -2
  252. package/dist/{table-Bc86ZVfE.cjs.map → table-CGB_dR8H.cjs.map} +1 -1
  253. package/dist/{table-D00xx57f.js → table-D320TllW.js} +2 -2
  254. package/dist/{table-D00xx57f.js.map → table-D320TllW.js.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-Bo4Z38SO.cjs → tabs-compatibility-C1ifLAs_.cjs} +2 -2
  258. package/dist/{tabs-compatibility-Bo4Z38SO.cjs.map → tabs-compatibility-C1ifLAs_.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BQqS_oQN.js → tabs-compatibility-DNkcL6dE.js} +2 -2
  260. package/dist/{tabs-compatibility-BQqS_oQN.js.map → tabs-compatibility-DNkcL6dE.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-9XFzAXGw.js +43 -0
  264. package/dist/{tailwind.mixin-Dq8FD_xN.js.map → tailwind.mixin-9XFzAXGw.js.map} +1 -1
  265. package/dist/tailwind.mixin-ChrVaJHF.cjs +2 -0
  266. package/dist/{tailwind.mixin-B_-9TcsC.cjs.map → tailwind.mixin-ChrVaJHF.cjs.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-DvfusaL0.cjs → textarea-1QvQzHKm.cjs} +2 -2
  270. package/dist/{textarea-DvfusaL0.cjs.map → textarea-1QvQzHKm.cjs.map} +1 -1
  271. package/dist/{textarea-DpSgcB0q.js → textarea-B2U316Um.js} +2 -2
  272. package/dist/{textarea-DpSgcB0q.js.map → textarea-B2U316Um.js.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-Dj3aS2jG.cjs → theme-button-B0n3kSd_.cjs} +2 -2
  276. package/dist/{theme-button-Dj3aS2jG.cjs.map → theme-button-B0n3kSd_.cjs.map} +1 -1
  277. package/dist/{theme-button-1dnUcGe5.js → theme-button-zUYywyWx.js} +2 -2
  278. package/dist/{theme-button-1dnUcGe5.js.map → theme-button-zUYywyWx.js.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-B2834R93.cjs → theme.component-BLKJxyFX.cjs} +2 -2
  283. package/dist/{theme.component-B2834R93.cjs.map → theme.component-BLKJxyFX.cjs.map} +1 -1
  284. package/dist/{theme.component-DwzieORm.js → theme.component-DpPMKf8l.js} +2 -2
  285. package/dist/{theme.component-DwzieORm.js.map → theme.component-DpPMKf8l.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-CWEqsRA_.cjs → timezone-DRSCR7bi.cjs} +2 -2
  288. package/dist/{timezone-CWEqsRA_.cjs.map → timezone-DRSCR7bi.cjs.map} +1 -1
  289. package/dist/{timezone-YbhVzZRq.js → timezone-DhLUcYcX.js} +3 -3
  290. package/dist/{timezone-YbhVzZRq.js.map → timezone-DhLUcYcX.js.map} +1 -1
  291. package/dist/{tooltip-BZ2fruXd.cjs → tooltip-B4nvmANO.cjs} +2 -2
  292. package/dist/{tooltip-BZ2fruXd.cjs.map → tooltip-B4nvmANO.cjs.map} +1 -1
  293. package/dist/{tooltip-DgLua_UV.js → tooltip-tFxYzDct.js} +2 -2
  294. package/dist/{tooltip-DgLua_UV.js.map → tooltip-tFxYzDct.js.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-Dg-mKO7n.js → tree-C9gLZE_E.js} +2 -2
  298. package/dist/{tree-Dg-mKO7n.js.map → tree-C9gLZE_E.js.map} +1 -1
  299. package/dist/{tree-c9Fcsgxi.cjs → tree-CRjGBeHH.cjs} +2 -2
  300. package/dist/{tree-c9Fcsgxi.cjs.map → tree-CRjGBeHH.cjs.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-Bgp3f7FN.js → typewriter-DN9HiCBW.js} +4 -4
  304. package/dist/{typewriter-Bgp3f7FN.js.map → typewriter-DN9HiCBW.js.map} +1 -1
  305. package/dist/{typewriter-FHkXxEdA.cjs → typewriter-VGsKEZOj.cjs} +2 -2
  306. package/dist/{typewriter-FHkXxEdA.cjs.map → typewriter-VGsKEZOj.cjs.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-B2kH45Vn.js → typography-MN7P8my2.js} +2 -2
  310. package/dist/{typography-B2kH45Vn.js.map → typography-MN7P8my2.js.map} +1 -1
  311. package/dist/{typography-CE_QuH1P.cjs → typography-XN-pEi3Q.cjs} +2 -2
  312. package/dist/{typography-CE_QuH1P.cjs.map → typography-XN-pEi3Q.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/navigation-rail/index.d.ts +1 -1
  317. package/types/src/navigation-rail/navigation-rail-item.d.ts +89 -9
  318. package/types/src/navigation-rail/navigation-rail.d.ts +77 -9
  319. package/dist/autocomplete-Bm_tnRns.js.map +0 -1
  320. package/dist/autocomplete-DpGmI06M.cjs.map +0 -1
  321. package/dist/navigation-rail-item-CIg6-B2G.js +0 -151
  322. package/dist/navigation-rail-item-CIg6-B2G.js.map +0 -1
  323. package/dist/navigation-rail-item-DA7eqAg3.cjs +0 -116
  324. package/dist/navigation-rail-item-DA7eqAg3.cjs.map +0 -1
  325. package/dist/select-BrdNXtJK.js.map +0 -1
  326. package/dist/select-DvjgcI2e.cjs.map +0 -1
  327. package/dist/suggestion-chip-GLpIJvu3.cjs.map +0 -1
  328. package/dist/suggestion-chip-WW3dScRF.js.map +0 -1
  329. package/dist/tailwind.mixin-B_-9TcsC.cjs +0 -2
  330. package/dist/tailwind.mixin-Dq8FD_xN.js +0 -43
@@ -0,0 +1,475 @@
1
+ # Navigation Rail Component
2
+
3
+ **Material Design 3 Reference:** https://m3.material.io/components/navigation-rail/overview
4
+
5
+ A Material Design 3 compliant vertical navigation component that provides access to primary destinations in an application. The navigation rail is positioned on the left side of the screen with a fixed 80px width and offers a compact, ergonomic way to navigate between 3-7 primary sections.
6
+
7
+ ## Installation
8
+
9
+ ```typescript
10
+ import '@schmancy/navigation-rail'
11
+ import '@schmancy/navigation-rail/navigation-rail-item'
12
+
13
+ // Or import from main package
14
+ import { SchmancyNavigationRail, SchmancyNavigationRailItem } from '@schmancy'
15
+ ```
16
+
17
+ ## Basic Usage
18
+
19
+ ```html
20
+ <schmancy-navigation-rail activeIndex="0">
21
+ <schmancy-navigation-rail-item
22
+ icon="home"
23
+ label="Home"
24
+ value="/home">
25
+ </schmancy-navigation-rail-item>
26
+
27
+ <schmancy-navigation-rail-item
28
+ icon="search"
29
+ label="Search"
30
+ value="/search">
31
+ </schmancy-navigation-rail-item>
32
+
33
+ <schmancy-navigation-rail-item
34
+ icon="favorites"
35
+ label="Favorites"
36
+ value="/favorites">
37
+ </schmancy-navigation-rail-item>
38
+ </schmancy-navigation-rail>
39
+ ```
40
+
41
+ ## Navigation Rail Component
42
+
43
+ ### Properties
44
+
45
+ | Property | Type | Default | Description |
46
+ |----------|------|---------|-------------|
47
+ | `activeIndex` | `number` | `-1` | The currently active item index |
48
+ | `activeValue` | `string` | `''` | The currently active item value (for programmatic selection) |
49
+ | `labelVisibility` | `'all' \| 'selected' \| 'none'` | `'all'` | When to show labels for navigation items |
50
+ | `alignment` | `'top' \| 'center' \| 'bottom'` | `'top'` | Vertical alignment of navigation items |
51
+ | `showTooltips` | `boolean` | `true` | Show tooltips when labels are hidden |
52
+ | `keyboardNavigation` | `boolean` | `true` | Enable keyboard navigation with arrow keys |
53
+
54
+ ### Slots
55
+
56
+ | Slot | Description |
57
+ |------|-------------|
58
+ | `fab` | Floating Action Button at the top of the rail |
59
+ | `menu` | Menu button below the FAB |
60
+ | `header` | Custom header content |
61
+ | `footer` | Custom footer content |
62
+ | (default) | Navigation rail items |
63
+
64
+ ### Events
65
+
66
+ | Event | Detail | Description |
67
+ |-------|--------|-------------|
68
+ | `navigate` | `string` | Fired when a navigation item is selected, detail contains the value |
69
+ | `fab-click` | `void` | Fired when the FAB is clicked |
70
+ | `menu-click` | `void` | Fired when the menu button is clicked |
71
+
72
+ ### CSS Custom Properties
73
+
74
+ | Property | Default | Description |
75
+ |----------|---------|-------------|
76
+ | `--rail-width` | `80px` | Fixed width of the rail |
77
+ | `--rail-width-mobile` | `56px` | Width on mobile devices |
78
+
79
+ ### Methods
80
+
81
+ | Method | Description |
82
+ |--------|-------------|
83
+ | None | Component is controlled via properties and events |
84
+
85
+ ## Navigation Rail Item Component
86
+
87
+ ### Properties
88
+
89
+ | Property | Type | Default | Description |
90
+ |----------|------|---------|-------------|
91
+ | `icon` | `string` | `''` | Material Symbols icon name |
92
+ | `label` | `string` | `''` | Label text for the navigation item |
93
+ | `value` | `string` | `''` | Value associated with this item (useful for routing) |
94
+ | `active` | `boolean` | `false` | Whether this item is currently active/selected |
95
+ | `selected` | `boolean` | `false` | Alias for `active` property |
96
+ | `badge` | `string` | `''` | Badge text or number to display |
97
+ | `badgeVariant` | `'error' \| 'primary' \| 'secondary'` | `'error'` | Badge color variant |
98
+ | `showLabel` | `boolean` | `false` | Whether to show the label (controlled by parent rail) |
99
+ | `disabled` | `boolean` | `false` | Whether this item is disabled |
100
+ | `nested` | `boolean` | `false` | Whether this is a nested sub-navigation item |
101
+ | `group` | `boolean` | `false` | Whether this item represents a group separator |
102
+
103
+ ### Slots
104
+
105
+ | Slot | Description |
106
+ |------|-------------|
107
+ | `icon` | Custom icon content (e.g., `<schmancy-icon>`) |
108
+ | `badge` | Custom badge content |
109
+ | (default) | Custom content that replaces the entire item |
110
+
111
+ ### Events
112
+
113
+ | Event | Detail | Description |
114
+ |-------|--------|-------------|
115
+ | `navigate` | `string` | Fired when the item is clicked, detail contains the value |
116
+
117
+ ### CSS Custom Properties
118
+
119
+ | Property | Default | Description |
120
+ |----------|---------|-------------|
121
+ | `--rail-item-height` | `56px` | Item height |
122
+ | `--rail-item-icon-size` | `24px` | Icon size |
123
+ | `--rail-item-padding` | `12px` | Item padding |
124
+ | `--rail-item-gap` | `4px` | Gap between icon and label |
125
+
126
+ ## Examples
127
+
128
+ ### With FAB and Menu Button
129
+
130
+ ```html
131
+ <schmancy-navigation-rail
132
+ activeIndex="0"
133
+ labelVisibility="selected"
134
+ @navigation-change=${this.handleNavigation}
135
+ @fab-click=${this.handleFabClick}
136
+ @menu-click=${this.handleMenuClick}
137
+ >
138
+ <!-- Floating Action Button -->
139
+ <schmancy-button
140
+ slot="fab"
141
+ variant="filled"
142
+ aria-label="Compose"
143
+ >
144
+ <schmancy-icon>edit</schmancy-icon>
145
+ </schmancy-button>
146
+
147
+ <!-- Menu Button -->
148
+ <schmancy-button
149
+ slot="menu"
150
+ variant="text"
151
+ aria-label="Menu"
152
+ >
153
+ <schmancy-icon>menu</schmancy-icon>
154
+ </schmancy-button>
155
+
156
+ <!-- Navigation Items -->
157
+ <schmancy-navigation-rail-item
158
+ icon="inbox"
159
+ label="Inbox"
160
+ value="/inbox"
161
+ badge="12"
162
+ ></schmancy-navigation-rail-item>
163
+
164
+ <schmancy-navigation-rail-item
165
+ icon="send"
166
+ label="Sent"
167
+ value="/sent"
168
+ ></schmancy-navigation-rail-item>
169
+
170
+ <schmancy-navigation-rail-item
171
+ icon="drafts"
172
+ label="Drafts"
173
+ value="/drafts"
174
+ badge="3"
175
+ badgeVariant="secondary"
176
+ ></schmancy-navigation-rail-item>
177
+ </schmancy-navigation-rail>
178
+ ```
179
+
180
+ ### With Groups and Dividers
181
+
182
+ ```html
183
+ <schmancy-navigation-rail activeValue="dashboard">
184
+ <!-- Primary Navigation -->
185
+ <schmancy-navigation-rail-item
186
+ icon="dashboard"
187
+ label="Dashboard"
188
+ value="dashboard"
189
+ ></schmancy-navigation-rail-item>
190
+
191
+ <schmancy-navigation-rail-item
192
+ icon="analytics"
193
+ label="Analytics"
194
+ value="analytics"
195
+ ></schmancy-navigation-rail-item>
196
+
197
+ <!-- Divider -->
198
+ <schmancy-divider></schmancy-divider>
199
+
200
+ <!-- Secondary Navigation -->
201
+ <schmancy-navigation-rail-item
202
+ icon="folder"
203
+ label="Files"
204
+ value="files"
205
+ ></schmancy-navigation-rail-item>
206
+
207
+ <schmancy-navigation-rail-item
208
+ icon="people"
209
+ label="Team"
210
+ value="team"
211
+ ></schmancy-navigation-rail-item>
212
+
213
+ <!-- Footer Items -->
214
+ <div slot="footer">
215
+ <schmancy-navigation-rail-item
216
+ icon="settings"
217
+ label="Settings"
218
+ value="settings"
219
+ ></schmancy-navigation-rail-item>
220
+
221
+ <schmancy-navigation-rail-item
222
+ icon="account_circle"
223
+ label="Profile"
224
+ value="profile"
225
+ ></schmancy-navigation-rail-item>
226
+ </div>
227
+ </schmancy-navigation-rail>
228
+ ```
229
+
230
+ ### Rail with Custom Icons
231
+
232
+ ```html
233
+ <schmancy-navigation-rail
234
+ labelVisibility="selected"
235
+ showTooltips
236
+ >
237
+ <schmancy-navigation-rail-item label="Home">
238
+ <schmancy-icon slot="icon" fill="1">home</schmancy-icon>
239
+ </schmancy-navigation-rail-item>
240
+
241
+ <schmancy-navigation-rail-item label="Explore">
242
+ <schmancy-icon slot="icon" variant="rounded">explore</schmancy-icon>
243
+ </schmancy-navigation-rail-item>
244
+
245
+ <schmancy-navigation-rail-item label="Notifications" badge="New">
246
+ <schmancy-icon slot="icon" weight="600">notifications</schmancy-icon>
247
+ </schmancy-navigation-rail-item>
248
+ </schmancy-navigation-rail>
249
+ ```
250
+
251
+ ### Programmatic Control
252
+
253
+ ```typescript
254
+ import { SchmancyNavigationRail } from '@schmancy/navigation-rail'
255
+
256
+ class MyApp extends LitElement {
257
+ @query('schmancy-navigation-rail')
258
+ navigationRail!: SchmancyNavigationRail
259
+
260
+ // Select by index
261
+ selectHome() {
262
+ this.navigationRail.activeIndex = 0
263
+ }
264
+
265
+ // Select by value
266
+ selectByRoute(route: string) {
267
+ this.navigationRail.activeValue = route
268
+ }
269
+
270
+ // Handle navigation
271
+ handleNavigationChange(event: CustomEvent<string>) {
272
+ const value = event.detail
273
+ console.log(`Navigated to: ${value}`)
274
+
275
+ // Update route
276
+ this.router.navigate(value)
277
+ }
278
+
279
+ // Change label visibility programmatically
280
+ toggleLabels() {
281
+ this.navigationRail.labelVisibility =
282
+ this.navigationRail.labelVisibility === 'all' ? 'none' : 'all'
283
+ }
284
+
285
+ render() {
286
+ return html`
287
+ <schmancy-navigation-rail
288
+ @navigate=${this.handleNavigationChange}
289
+ >
290
+ <!-- items -->
291
+ </schmancy-navigation-rail>
292
+ `
293
+ }
294
+ }
295
+ ```
296
+
297
+ ### With Router Integration
298
+
299
+ ```typescript
300
+ import { Router } from '@vaadin/router'
301
+
302
+ class AppShell extends LitElement {
303
+ @state() currentRoute = '/'
304
+
305
+ firstUpdated() {
306
+ // Listen to router changes
307
+ window.addEventListener('vaadin-router-location-changed', (e) => {
308
+ this.currentRoute = e.detail.location.pathname
309
+ })
310
+ }
311
+
312
+ handleNavigation(event: CustomEvent<string>) {
313
+ Router.go(event.detail)
314
+ }
315
+
316
+ render() {
317
+ return html`
318
+ <schmancy-navigation-rail
319
+ .activeValue=${this.currentRoute}
320
+ @navigate=${this.handleNavigation}
321
+ labelVisibility="selected"
322
+ >
323
+ <schmancy-navigation-rail-item
324
+ icon="home"
325
+ label="Home"
326
+ value="/"
327
+ ></schmancy-navigation-rail-item>
328
+
329
+ <schmancy-navigation-rail-item
330
+ icon="dashboard"
331
+ label="Dashboard"
332
+ value="/dashboard"
333
+ ></schmancy-navigation-rail-item>
334
+
335
+ <schmancy-navigation-rail-item
336
+ icon="settings"
337
+ label="Settings"
338
+ value="/settings"
339
+ ></schmancy-navigation-rail-item>
340
+ </schmancy-navigation-rail>
341
+
342
+ <main>
343
+ <slot></slot> <!-- Router outlet -->
344
+ </main>
345
+ `
346
+ }
347
+ }
348
+ ```
349
+
350
+ ## Accessibility
351
+
352
+ The navigation rail components are fully accessible:
353
+
354
+ - **ARIA Roles**: Navigation container has `role="navigation"`, items have `role="listitem"`
355
+ - **Keyboard Navigation**:
356
+ - `ArrowUp/ArrowDown` - Navigate between items
357
+ - `Home/End` - Jump to first/last item
358
+ - `Enter/Space` - Select focused item
359
+ - `Tab` - Move focus in/out of rail
360
+ - **Screen Readers**: Proper ARIA labels and live regions
361
+ - **Focus Management**: Clear focus indicators and proper tab order
362
+ - **High Contrast**: Supports Windows High Contrast Mode
363
+
364
+ ## Responsive Behavior
365
+
366
+ The navigation rail adapts to different screen sizes:
367
+
368
+ - **Desktop** (>1024px): Full 80px width, shows all features
369
+ - **Tablet** (768-1024px): Reduced padding, optional label visibility
370
+ - **Mobile** (<768px): Collapses to 56px, icons only
371
+ - **Landscape Phone**: Reduced vertical spacing
372
+
373
+ ## Theming
374
+
375
+ The navigation rail uses Schmancy theme tokens:
376
+
377
+ ```css
378
+ /* Custom theming */
379
+ schmancy-navigation-rail {
380
+ /* Colors */
381
+ --schmancy-sys-color-surface-container: #f5f5f5;
382
+ --schmancy-sys-color-secondary-container: #e3f2fd;
383
+
384
+ /* Dimensions */
385
+ --rail-width: 80px;
386
+ --rail-width-mobile: 56px;
387
+ }
388
+
389
+ /* Dark theme */
390
+ @media (prefers-color-scheme: dark) {
391
+ schmancy-navigation-rail {
392
+ --schmancy-sys-color-surface-container: #1e1e1e;
393
+ }
394
+ }
395
+ ```
396
+
397
+ ## Best Practices
398
+
399
+ 1. **Item Count**: Use 3-7 primary destinations for optimal usability
400
+ 2. **Icons**: Use clear, recognizable Material Symbols icons
401
+ 3. **Labels**: Keep labels short and descriptive (1-2 words)
402
+ 4. **Hierarchy**: Place most important items at the top
403
+ 5. **Badges**: Use sparingly for important notifications
404
+ 6. **FAB**: Only include if there's a clear primary action
405
+ 7. **Label Visibility**: Use 'selected' for most cases, 'all' for better discoverability
406
+ 8. **Mobile**: Consider using bottom navigation bar on mobile instead
407
+
408
+ ## Migration Guide
409
+
410
+ ### From Navigation Drawer
411
+
412
+ ```html
413
+ <!-- Before: Navigation Drawer -->
414
+ <schmancy-nav-drawer>
415
+ <div slot="header">App Name</div>
416
+ <schmancy-list>
417
+ <schmancy-list-item>Home</schmancy-list-item>
418
+ </schmancy-list>
419
+ </schmancy-nav-drawer>
420
+
421
+ <!-- After: Navigation Rail -->
422
+ <schmancy-navigation-rail>
423
+ <div slot="header">
424
+ <schmancy-icon>logo</schmancy-icon>
425
+ </div>
426
+ <schmancy-navigation-rail-item
427
+ icon="home"
428
+ label="Home"
429
+ ></schmancy-navigation-rail-item>
430
+ </schmancy-navigation-rail>
431
+ ```
432
+
433
+ ### From Tab Bar
434
+
435
+ ```html
436
+ <!-- Before: Tab Bar -->
437
+ <schmancy-tabs>
438
+ <schmancy-tab>Home</schmancy-tab>
439
+ <schmancy-tab>Search</schmancy-tab>
440
+ </schmancy-tabs>
441
+
442
+ <!-- After: Navigation Rail -->
443
+ <schmancy-navigation-rail labelVisibility="always">
444
+ <schmancy-navigation-rail-item
445
+ icon="home"
446
+ label="Home"
447
+ ></schmancy-navigation-rail-item>
448
+ <schmancy-navigation-rail-item
449
+ icon="search"
450
+ label="Search"
451
+ ></schmancy-navigation-rail-item>
452
+ </schmancy-navigation-rail>
453
+ ```
454
+
455
+ ## Performance Considerations
456
+
457
+ - **Lazy Loading**: Navigation rail supports lazy loading of route components
458
+ - **Virtual Scrolling**: Automatically enabled for rails with many items
459
+ - **CSS Containment**: Uses CSS containment for optimal rendering
460
+ - **Event Delegation**: Efficient event handling for all items
461
+
462
+ ## Browser Support
463
+
464
+ - Chrome 90+
465
+ - Firefox 88+
466
+ - Safari 14+
467
+ - Edge 90+
468
+
469
+ ## Related Components
470
+
471
+ - `schmancy-navigation-bar` - Bottom navigation for mobile
472
+ - `schmancy-nav-drawer` - Full navigation drawer
473
+ - `schmancy-tabs` - Horizontal tab navigation
474
+ - `schmancy-button` - For FAB and menu buttons
475
+ - `schmancy-icon` - For navigation icons
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-B_-9TcsC.cjs");const h=require("./litElement.mixin-DLJYzvsb.cjs"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
1
+ "use strict";const e=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const r=require("lit/decorators.js");require("./tailwind.mixin-ChrVaJHF.cjs");const h=require("./litElement.mixin-rWG9s46P.cjs"),c=require("lit");var d=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=(i,a,p,n)=>{for(var l,o=n>1?void 0:n?u(a,p):a,y=i.length-1;y>=0;y--)(l=i[y])&&(o=(n?l(a,p,o):l(o))||o);return n&&o&&d(a,p,o),o};let t=class extends h.$LitElement(c.css`
2
2
  :host {
3
3
  font-family: inherit;
4
4
  display: block;
@@ -34,4 +34,4 @@
34
34
  </span>
35
35
  </span>
36
36
  `}};s([r.property({type:String})],t.prototype,"ease",2),s([r.property({type:Number})],t.prototype,"delay",2),s([r.property({type:Number})],t.prototype,"stagger",2),s([r.property({type:Number})],t.prototype,"duration",2),s([r.property({type:Array})],t.prototype,"scale",2),s([r.property({type:Array})],t.prototype,"opacity",2),s([r.property({type:Array})],t.prototype,"translateX",2),s([r.property({type:Array})],t.prototype,"translateY",2),s([r.property({type:Array})],t.prototype,"translateZ",2),s([r.property({type:Array})],t.prototype,"rotateZ",2),s([r.property({type:Boolean})],t.prototype,"resetOnScroll",2),s([r.queryAssignedNodes()],t.prototype,"defaultSlot",2),s([r.query(".letters")],t.prototype,"letters",2),s([r.query(".ml7")],t.prototype,"ml7",2),t=s([r.customElement("schmancy-animated-text")],t);
37
- //# sourceMappingURL=animated-text-D1D0dI8T.cjs.map
37
+ //# sourceMappingURL=animated-text-Bic7z7SI.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-D1D0dI8T.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-Bic7z7SI.cjs","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { concat as u, interval as g, startWith as y, filter as h, take as d, fro
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
4
  import { property as a, queryAssignedNodes as x, query as m, customElement as S } from "lit/decorators.js";
5
- import "./tailwind.mixin-Dq8FD_xN.js";
6
- import { $ as Z } from "./litElement.mixin-jTGHsEfH.js";
5
+ import "./tailwind.mixin-9XFzAXGw.js";
6
+ import { $ as Z } from "./litElement.mixin-Bv6DGuhe.js";
7
7
  import { css as v, html as A } from "lit";
8
8
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, e = (r, s, n, i) => {
9
9
  for (var l, o = i > 1 ? void 0 : i ? O(s, n) : s, p = r.length - 1; p >= 0; p--) (l = r[p]) && (o = (i ? l(s, n, o) : l(o)) || o);
@@ -72,4 +72,4 @@ let t = class extends Z(v`
72
72
  }
73
73
  };
74
74
  e([a({ type: String })], t.prototype, "ease", 2), e([a({ type: Number })], t.prototype, "delay", 2), e([a({ type: Number })], t.prototype, "stagger", 2), e([a({ type: Number })], t.prototype, "duration", 2), e([a({ type: Array })], t.prototype, "scale", 2), e([a({ type: Array })], t.prototype, "opacity", 2), e([a({ type: Array })], t.prototype, "translateX", 2), e([a({ type: Array })], t.prototype, "translateY", 2), e([a({ type: Array })], t.prototype, "translateZ", 2), e([a({ type: Array })], t.prototype, "rotateZ", 2), e([a({ type: Boolean })], t.prototype, "resetOnScroll", 2), e([x()], t.prototype, "defaultSlot", 2), e([m(".letters")], t.prototype, "letters", 2), e([m(".ml7")], t.prototype, "ml7", 2), t = e([S("schmancy-animated-text")], t);
75
- //# sourceMappingURL=animated-text-DS9AsLAy.js.map
75
+ //# sourceMappingURL=animated-text-CLEr78FV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-text-DS9AsLAy.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"animated-text-CLEr78FV.js","sources":["../src/animated-text/animated-text.ts"],"sourcesContent":["// Removed: import { createTimeline, stagger } from '@packages/anime-beta-master'\nimport { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedNodes } from 'lit/decorators.js'\nimport {\n\tconcat,\n\tdistinctUntilChanged,\n\tfilter,\n\tfromEvent,\n\tinterval,\n\tmap,\n\tstartWith,\n\ttake,\n\ttap,\n\tthrottleTime,\n} from 'rxjs'\n\n/**\n * @element schmancy-animated-text\n * Inspired by https://tobiasahlin.com/moving-letters/#1\n */\n@customElement('schmancy-animated-text')\nexport default class SchmancyAnimatedText extends $LitElement(css`\n\t:host {\n\t\tfont-family: inherit;\n\t\tdisplay: block;\n\t}\n\t.ml7 {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t}\n\t.ml7 .text-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\toverflow: hidden;\n\t}\n\t.ml7 .letter {\n\t\ttransform-origin: 0 100%;\n\t\tdisplay: inline-block;\n\t\topacity: 0;\n\t}\n`) {\n\t@property({ type: String }) ease = 'outExpo' // not a built-in string for Web Animations\n\t@property({ type: Number }) delay = 0\n\t@property({ type: Number }) stagger = 50\n\t@property({ type: Number }) duration = 750\n\t@property({ type: Array }) scale = [0, 1]\n\t@property({ type: Array }) opacity = [0, 1]\n\t@property({ type: Array }) translateX = ['0.55em', '0em']\n\t@property({ type: Array }) translateY = ['1.1em', '0em']\n\t@property({ type: Array }) translateZ = [0, 0]\n\t@property({ type: Array }) rotateZ = [180, 0]\n\t@property({ type: Boolean }) resetOnScroll = true\n\n\t@queryAssignedNodes() defaultSlot!: HTMLElement[]\n\t@query('.letters') letters!: HTMLElement\n\t@query('.ml7') ml7!: HTMLElement\n\n\t// Function to check if an element is in the viewport\n\tisInViewport(element: HTMLElement) {\n\t\tconst rect = element.getBoundingClientRect()\n\t\treturn (\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t)\n\t}\n\n\tasync firstUpdated() {\n\t\t// Split the text into <span class=\"letter\"> ... </span> elements\n\t\tthis.letters.innerHTML = this.defaultSlot[0].textContent!.replace(/\\S/g, `<span class=\"letter\">$&</span>`)\n\n\t\t// Observe viewport + initial readiness\n\t\tconcat(\n\t\t\t// 1) Wait until the element is rendered (width/height > 0)\n\t\t\tinterval(10).pipe(\n\t\t\t\tstartWith(true),\n\t\t\t\tfilter(() => {\n\t\t\t\t\tconst rect = this.getBoundingClientRect()\n\t\t\t\t\treturn rect.width > 0 && rect.height > 0\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t),\n\t\t\t// 2) Then handle scroll events, throttled\n\t\t\tfromEvent(window, 'scroll').pipe(\n\t\t\t\tthrottleTime(0, undefined, {\n\t\t\t\t\tleading: true,\n\t\t\t\t\ttrailing: true,\n\t\t\t\t}),\n\t\t\t\tstartWith(true),\n\t\t\t\tmap(() => this.isInViewport(this)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(inViewport => {\n\t\t\t\t\t// If leaving viewport and `resetOnScroll` is true, reset letters to opacity 0\n\t\t\t\t\tif (!inViewport && this.resetOnScroll) {\n\t\t\t\t\t\tArray.from(this.letters.children).forEach((letter: HTMLElement) => {\n\t\t\t\t\t\t\tletter.style.opacity = '0'\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfilter(isInViewport => isInViewport),\n\t\t\t\t// If resetOnScroll = false, animate only the first time inView. If true, repeat.\n\t\t\t\tthis.resetOnScroll ? tap() : take(1),\n\t\t\t\ttap({\n\t\t\t\t\tnext: () => {\n\t\t\t\t\t\t// Animate letters with the native Web Animations API\n\t\t\t\t\t\tconst letters = this.shadowRoot!.querySelectorAll<HTMLElement>('.ml7 .letter')\n\n\t\t\t\t\t\tletters.forEach((letter, i) => {\n\t\t\t\t\t\t\t// Combine all transforms into one CSS transform string\n\t\t\t\t\t\t\t// From\n\t\t\t\t\t\t\tconst fromTransform = `\n translate3d(${this.translateX[0]}, ${this.translateY[0]}, ${this.translateZ[0]}px)\n rotateZ(${this.rotateZ[0]}deg)\n scale(${this.scale[0]})\n `\n\t\t\t\t\t\t\t// To\n\t\t\t\t\t\t\tconst toTransform = `\n translate3d(${this.translateX[1]}, ${this.translateY[1]}, ${this.translateZ[1]}px)\n rotateZ(${this.rotateZ[1]}deg)\n scale(${this.scale[1]})\n `\n\t\t\t\t\t\t\t// Approximate `outExpo` or pick a standard easing (like 'ease-out'):\n\t\t\t\t\t\t\t// outExpo often approximated by cubic-bezier(0.19, 1, 0.22, 1)\n\t\t\t\t\t\t\tconst easingMap: Record<string, string> = {\n\t\t\t\t\t\t\t\toutExpo: 'cubic-bezier(0.19, 1, 0.22, 1)',\n\t\t\t\t\t\t\t\t// add more if you want\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst keyframes: Keyframe[] = [\n\t\t\t\t\t\t\t\t{ transform: fromTransform, opacity: String(this.opacity[0]) },\n\t\t\t\t\t\t\t\t{ transform: toTransform, opacity: String(this.opacity[1]) },\n\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\tletter.animate(keyframes, {\n\t\t\t\t\t\t\t\tduration: this.duration,\n\t\t\t\t\t\t\t\teasing: easingMap[this.ease] || 'ease-out',\n\t\t\t\t\t\t\t\tdelay: this.delay + i * this.stagger, // staggered start\n\t\t\t\t\t\t\t\tfill: 'forwards', // so the letters remain visible\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t).subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<span class=\"ml7\">\n\t\t\t\t<span class=\"text-wrapper\">\n\t\t\t\t\t<span class=\"letters\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-animated-text': SchmancyAnimatedText\n\t}\n}\n"],"names":["SchmancyAnimatedText","$LitElement","css","constructor","super","arguments","this","ease","delay","stagger","duration","scale","opacity","translateX","translateY","translateZ","rotateZ","resetOnScroll","element","rect","getBoundingClientRect","top","left","bottom","window","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","firstUpdated","letters","innerHTML","defaultSlot","textContent","replace","concat","interval","pipe","startWith","filter","width","height","take","fromEvent","throttleTime","leading","trailing","map","isInViewport","distinctUntilChanged","tap","inViewport","Array","from","children","forEach","letter","style","next","shadowRoot","querySelectorAll","i","fromTransform","toTransform","keyframes","transform","String","animate","easing","outExpo","fill","subscribe","render","html","__decorateClass","property","type","prototype","Number","Boolean","queryAssignedNodes","query","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./animated-text-D1D0dI8T.cjs");
1
+ "use strict";require("./animated-text-Bic7z7SI.cjs");
2
2
  //# sourceMappingURL=animated-text.cjs.map
@@ -1,2 +1,2 @@
1
- import "./animated-text-DS9AsLAy.js";
1
+ import "./animated-text-CLEr78FV.js";
2
2
  //# sourceMappingURL=animated-text.js.map
package/dist/area.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-DZFtLBMV.cjs"),e=require("./utils-C38P63L6.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>t.SchmancyRoute}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeData=e.decodeData,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeData=e.encodeData,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.lazy=e.lazy,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./area.component-BrvNYy7Z.cjs"),e=require("./utils-C38P63L6.cjs");exports.FINDING_MORTIES=t.FINDING_MORTIES,exports.HERE_RICKY=t.HERE_RICKY,exports.HISTORY_STRATEGY=t.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>t.SchmancyArea}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>t.SchmancyRoute}),exports.area=t.area,exports.routerHistory=t.routerHistory,exports.buildQueryString=e.buildQueryString,exports.compareActiveRoutes=e.compareActiveRoutes,exports.compareCustomElementConstructors=e.compareCustomElementConstructors,exports.compareRouteActions=e.compareRouteActions,exports.createRouteCacheKey=e.createRouteCacheKey,exports.debounce=e.debounce,exports.decodeData=e.decodeData,exports.decodeRouteState=e.decodeRouteState,exports.deepMerge=e.deepMerge,exports.encodeData=e.encodeData,exports.encodeRouteState=e.encodeRouteState,exports.extractQueryParams=e.extractQueryParams,exports.getTagName=e.getTagName,exports.isObject=e.isObject,exports.lazy=e.lazy,exports.normalizeTagName=e.normalizeTagName,exports.sanitizeRouteState=e.sanitizeRouteState;
2
2
  //# sourceMappingURL=area.cjs.map