@mhmo91/schmancy 0.2.38 → 0.2.40

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 (250) hide show
  1. package/dist/{animated-text-Daeoe5sn.cjs → animated-text-CaUJr-yL.cjs} +2 -2
  2. package/dist/{animated-text-Daeoe5sn.cjs.map → animated-text-CaUJr-yL.cjs.map} +1 -1
  3. package/dist/{animated-text-BVwxMOPR.js → animated-text-D8LhwMLu.js} +3 -3
  4. package/dist/{animated-text-BVwxMOPR.js.map → animated-text-D8LhwMLu.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-xmbcsTJK.cjs → area.component-DJYgP8NP.cjs} +2 -2
  9. package/dist/{area.component-xmbcsTJK.cjs.map → area.component-DJYgP8NP.cjs.map} +1 -1
  10. package/dist/{area.component-ByLp5c79.js → area.component-FgfXnOUF.js} +3 -3
  11. package/dist/{area.component-ByLp5c79.js.map → area.component-FgfXnOUF.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/autocomplete-C36FPrMT.js +225 -0
  14. package/dist/autocomplete-C36FPrMT.js.map +1 -0
  15. package/dist/autocomplete-CFcZcrJm.cjs +48 -0
  16. package/dist/autocomplete-CFcZcrJm.cjs.map +1 -0
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/busy.cjs +1 -1
  20. package/dist/busy.js +1 -1
  21. package/dist/button.cjs +1 -1
  22. package/dist/button.js +1 -1
  23. package/dist/card.cjs +1 -1
  24. package/dist/card.js +1 -1
  25. package/dist/{checkbox-D9vaaSjw.cjs → checkbox-Drf8MwrJ.cjs} +2 -2
  26. package/dist/{checkbox-D9vaaSjw.cjs.map → checkbox-Drf8MwrJ.cjs.map} +1 -1
  27. package/dist/{checkbox-DkJYbF64.js → checkbox-Sf2HtMs9.js} +2 -2
  28. package/dist/{checkbox-DkJYbF64.js.map → checkbox-Sf2HtMs9.js.map} +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.js +1 -1
  31. package/dist/{chips-UBgldDF5.cjs → chips-8SMj1Siq.cjs} +12 -12
  32. package/dist/{chips-UBgldDF5.cjs.map → chips-8SMj1Siq.cjs.map} +1 -1
  33. package/dist/{chips-Cy9spfrp.js → chips-CA-B5JGD.js} +36 -36
  34. package/dist/{chips-Cy9spfrp.js.map → chips-CA-B5JGD.js.map} +1 -1
  35. package/dist/chips.cjs +1 -1
  36. package/dist/chips.js +1 -1
  37. package/dist/components.cjs +1 -1
  38. package/dist/components.js +1 -1
  39. package/dist/content-drawer.cjs +1 -1
  40. package/dist/content-drawer.js +1 -1
  41. package/dist/date-range-BFW0xGWz.js +148 -0
  42. package/dist/date-range-BFW0xGWz.js.map +1 -0
  43. package/dist/date-range-CAFOX_Sm.cjs +72 -0
  44. package/dist/date-range-CAFOX_Sm.cjs.map +1 -0
  45. package/dist/date-range.cjs +1 -1
  46. package/dist/date-range.js +1 -1
  47. package/dist/{delay-CpK5RGux.js → delay-DbaKftdS.js} +2 -2
  48. package/dist/{delay-CpK5RGux.js.map → delay-DbaKftdS.js.map} +1 -1
  49. package/dist/{delay-C0n9lJNW.cjs → delay-_LA9VzS1.cjs} +2 -2
  50. package/dist/{delay-C0n9lJNW.cjs.map → delay-_LA9VzS1.cjs.map} +1 -1
  51. package/dist/delay.cjs +1 -1
  52. package/dist/delay.js +1 -1
  53. package/dist/{divider-D85c35Sw.js → divider-Ba1jSOh5.js} +3 -3
  54. package/dist/{divider-D85c35Sw.js.map → divider-Ba1jSOh5.js.map} +1 -1
  55. package/dist/{divider-C4xBD1JH.cjs → divider-DUvuIyeA.cjs} +2 -2
  56. package/dist/{divider-C4xBD1JH.cjs.map → divider-DUvuIyeA.cjs.map} +1 -1
  57. package/dist/divider.cjs +1 -1
  58. package/dist/divider.js +1 -1
  59. package/dist/{form-B_0fvoO0.cjs → form-Dga1_eim.cjs} +2 -2
  60. package/dist/{form-B_0fvoO0.cjs.map → form-Dga1_eim.cjs.map} +1 -1
  61. package/dist/{form-Bau_XA_e.js → form-H0pfjyGl.js} +2 -2
  62. package/dist/{form-Bau_XA_e.js.map → form-H0pfjyGl.js.map} +1 -1
  63. package/dist/form.cjs +1 -1
  64. package/dist/form.js +1 -1
  65. package/dist/{icon-Bit7fi8d.cjs → icon-Dr1MeHJo.cjs} +2 -2
  66. package/dist/{icon-Bit7fi8d.cjs.map → icon-Dr1MeHJo.cjs.map} +1 -1
  67. package/dist/{icon-button-Dh6iR7gO.cjs → icon-button-B1Hzc1qy.cjs} +2 -2
  68. package/dist/{icon-button-Dh6iR7gO.cjs.map → icon-button-B1Hzc1qy.cjs.map} +1 -1
  69. package/dist/{icon-button-CEGE-KQJ.js → icon-button-BFdAiGNP.js} +3 -3
  70. package/dist/{icon-button-CEGE-KQJ.js.map → icon-button-BFdAiGNP.js.map} +1 -1
  71. package/dist/{icon-B-QZ23xF.js → icon-pvbFfBbz.js} +3 -3
  72. package/dist/{icon-B-QZ23xF.js.map → icon-pvbFfBbz.js.map} +1 -1
  73. package/dist/icons.cjs +1 -1
  74. package/dist/icons.js +1 -1
  75. package/dist/index.cjs +1 -1
  76. package/dist/index.js +98 -97
  77. package/dist/input-1-LnDYbT.cjs +53 -0
  78. package/dist/input-1-LnDYbT.cjs.map +1 -0
  79. package/dist/input-CBjD2PL8.js +137 -0
  80. package/dist/input-CBjD2PL8.js.map +1 -0
  81. package/dist/input.cjs +1 -1
  82. package/dist/input.js +1 -1
  83. package/dist/layout.cjs +1 -1
  84. package/dist/layout.js +1 -1
  85. package/dist/{list-ClV9Qdme.js → list-BdN19pT0.js} +2 -2
  86. package/dist/{list-ClV9Qdme.js.map → list-BdN19pT0.js.map} +1 -1
  87. package/dist/{list-CRW6i-kf.cjs → list-DSyxyPI_.cjs} +2 -2
  88. package/dist/{list-CRW6i-kf.cjs.map → list-DSyxyPI_.cjs.map} +1 -1
  89. package/dist/list.cjs +1 -1
  90. package/dist/list.js +1 -1
  91. package/dist/{litElement.mixin-d9rhslEw.cjs → litElement.mixin-B9kSOE4x.cjs} +2 -2
  92. package/dist/{litElement.mixin-d9rhslEw.cjs.map → litElement.mixin-B9kSOE4x.cjs.map} +1 -1
  93. package/dist/{litElement.mixin-COSnyAru.js → litElement.mixin-D9kneJpW.js} +2 -2
  94. package/dist/{litElement.mixin-COSnyAru.js.map → litElement.mixin-D9kneJpW.js.map} +1 -1
  95. package/dist/{menu-n_bI-TFp.js → menu-DjWA-lYK.js} +29 -27
  96. package/dist/menu-DjWA-lYK.js.map +1 -0
  97. package/dist/menu-XffIwQSn.cjs +29 -0
  98. package/dist/menu-XffIwQSn.cjs.map +1 -0
  99. package/dist/menu.cjs +1 -1
  100. package/dist/menu.js +1 -1
  101. package/dist/nav-drawer.cjs +1 -1
  102. package/dist/nav-drawer.js +1 -1
  103. package/dist/notification.cjs +1 -1
  104. package/dist/notification.js +1 -1
  105. package/dist/option-C4fWPkxl.js +45 -0
  106. package/dist/option-C4fWPkxl.js.map +1 -0
  107. package/dist/option-Dcuv7dNV.cjs +18 -0
  108. package/dist/option-Dcuv7dNV.cjs.map +1 -0
  109. package/dist/option.cjs +1 -1
  110. package/dist/option.js +1 -1
  111. package/dist/{outlet-hu2yX7iS.cjs → outlet-881x1gpm.cjs} +2 -2
  112. package/dist/{outlet-hu2yX7iS.cjs.map → outlet-881x1gpm.cjs.map} +1 -1
  113. package/dist/{outlet-DuFKgg_g.js → outlet-oc58T2jq.js} +2 -2
  114. package/dist/{outlet-DuFKgg_g.js.map → outlet-oc58T2jq.js.map} +1 -1
  115. package/dist/{payment-card-form-Bpa9jVym.cjs → payment-card-form-BlusjI2Q.cjs} +2 -2
  116. package/dist/{payment-card-form-Bpa9jVym.cjs.map → payment-card-form-BlusjI2Q.cjs.map} +1 -1
  117. package/dist/{payment-card-form-D6chLUG-.js → payment-card-form-D2NiZkJM.js} +3 -3
  118. package/dist/{payment-card-form-D6chLUG-.js.map → payment-card-form-D2NiZkJM.js.map} +1 -1
  119. package/dist/{radio-group-9wWEjibY.js → radio-group-BALwJIFj.js} +2 -2
  120. package/dist/{radio-group-9wWEjibY.js.map → radio-group-BALwJIFj.js.map} +1 -1
  121. package/dist/{radio-group-CekbhNf-.cjs → radio-group-DE6ao3xB.cjs} +2 -2
  122. package/dist/{radio-group-CekbhNf-.cjs.map → radio-group-DE6ao3xB.cjs.map} +1 -1
  123. package/dist/radio-group.cjs +1 -1
  124. package/dist/radio-group.js +1 -1
  125. package/dist/{scroll-B-tqDDOP.js → scroll-BbqxMyDc.js} +29 -29
  126. package/dist/scroll-BbqxMyDc.js.map +1 -0
  127. package/dist/scroll-BqLesKK7.cjs +33 -0
  128. package/dist/scroll-BqLesKK7.cjs.map +1 -0
  129. package/dist/select-CaBI5TrW.js +156 -0
  130. package/dist/select-CaBI5TrW.js.map +1 -0
  131. package/dist/select-N1WX3mjc.cjs +52 -0
  132. package/dist/select-N1WX3mjc.cjs.map +1 -0
  133. package/dist/select.cjs +1 -1
  134. package/dist/select.js +4 -1
  135. package/dist/{sheet-DeE5_yNQ.cjs → sheet-BLzXXxJz.cjs} +2 -2
  136. package/dist/{sheet-DeE5_yNQ.cjs.map → sheet-BLzXXxJz.cjs.map} +1 -1
  137. package/dist/{sheet-yFj2S1UP.js → sheet-CrFAERdT.js} +3 -3
  138. package/dist/{sheet-yFj2S1UP.js.map → sheet-CrFAERdT.js.map} +1 -1
  139. package/dist/sheet.cjs +1 -1
  140. package/dist/sheet.js +1 -1
  141. package/dist/{slider-PwJTXAJc.js → slider-BAQ6ue43.js} +3 -3
  142. package/dist/{slider-PwJTXAJc.js.map → slider-BAQ6ue43.js.map} +1 -1
  143. package/dist/{slider-BN-GC2a_.cjs → slider-Ck3rrBuj.cjs} +2 -2
  144. package/dist/{slider-BN-GC2a_.cjs.map → slider-Ck3rrBuj.cjs.map} +1 -1
  145. package/dist/slider.cjs +1 -1
  146. package/dist/slider.js +1 -1
  147. package/dist/{spinner-Calk9CE7.cjs → spinner-B1iL6lg7.cjs} +2 -2
  148. package/dist/{spinner-Calk9CE7.cjs.map → spinner-B1iL6lg7.cjs.map} +1 -1
  149. package/dist/{spinner-CA6KEbfu.js → spinner-Dp-BlzFE.js} +3 -3
  150. package/dist/{spinner-CA6KEbfu.js.map → spinner-Dp-BlzFE.js.map} +1 -1
  151. package/dist/{surface-VBotYgOg.js → surface-C-5hXuc0.js} +2 -2
  152. package/dist/{surface-VBotYgOg.js.map → surface-C-5hXuc0.js.map} +1 -1
  153. package/dist/{surface-QvhZSMt5.cjs → surface-KIYOpqYN.cjs} +2 -2
  154. package/dist/{surface-QvhZSMt5.cjs.map → surface-KIYOpqYN.cjs.map} +1 -1
  155. package/dist/surface.cjs +1 -1
  156. package/dist/surface.js +1 -1
  157. package/dist/{table-n4ftE_xg.cjs → table-COiGzwHG.cjs} +2 -2
  158. package/dist/{table-n4ftE_xg.cjs.map → table-COiGzwHG.cjs.map} +1 -1
  159. package/dist/{table-Da6LJPGK.js → table-D5Y7TtBM.js} +2 -2
  160. package/dist/{table-Da6LJPGK.js.map → table-D5Y7TtBM.js.map} +1 -1
  161. package/dist/table.cjs +1 -1
  162. package/dist/table.js +1 -1
  163. package/dist/{tabs-group-BK5fJqpY.js → tabs-group-DIv7H3ii.js} +2 -2
  164. package/dist/{tabs-group-BK5fJqpY.js.map → tabs-group-DIv7H3ii.js.map} +1 -1
  165. package/dist/{tabs-group-DThZAKqa.cjs → tabs-group-Dzw-rYWP.cjs} +2 -2
  166. package/dist/{tabs-group-DThZAKqa.cjs.map → tabs-group-Dzw-rYWP.cjs.map} +1 -1
  167. package/dist/tabs.cjs +1 -1
  168. package/dist/tabs.js +1 -1
  169. package/dist/tailwind.mixin-BBKdEPAU.js +43 -0
  170. package/dist/{tailwind.mixin-DNlFmovi.js.map → tailwind.mixin-BBKdEPAU.js.map} +1 -1
  171. package/dist/tailwind.mixin-gE-6eUQA.cjs +2 -0
  172. package/dist/{tailwind.mixin-DYx3IacW.cjs.map → tailwind.mixin-gE-6eUQA.cjs.map} +1 -1
  173. package/dist/teleport.cjs +1 -1
  174. package/dist/{teleport.component-Dose4RDi.js → teleport.component-DldJv9J6.js} +35 -35
  175. package/dist/{teleport.component-Dose4RDi.js.map → teleport.component-DldJv9J6.js.map} +1 -1
  176. package/dist/{teleport.component-D5v1j4mw.cjs → teleport.component-I1DFKmWM.cjs} +2 -2
  177. package/dist/{teleport.component-D5v1j4mw.cjs.map → teleport.component-I1DFKmWM.cjs.map} +1 -1
  178. package/dist/teleport.js +1 -1
  179. package/dist/{textarea-DHrkcyt8.cjs → textarea-Cm_0BDw5.cjs} +2 -2
  180. package/dist/{textarea-DHrkcyt8.cjs.map → textarea-Cm_0BDw5.cjs.map} +1 -1
  181. package/dist/{textarea-JWBhOVdN.js → textarea-DWBpogxd.js} +2 -2
  182. package/dist/{textarea-JWBhOVdN.js.map → textarea-DWBpogxd.js.map} +1 -1
  183. package/dist/textarea.cjs +1 -1
  184. package/dist/textarea.js +1 -1
  185. package/dist/{theme-button-DBPnjBHL.cjs → theme-button-B7JR-68y.cjs} +2 -2
  186. package/dist/{theme-button-DBPnjBHL.cjs.map → theme-button-B7JR-68y.cjs.map} +1 -1
  187. package/dist/{theme-button-BL3unPDt.js → theme-button-CdjTjQE-.js} +2 -2
  188. package/dist/{theme-button-BL3unPDt.js.map → theme-button-CdjTjQE-.js.map} +1 -1
  189. package/dist/theme-button.cjs +1 -1
  190. package/dist/theme-button.js +1 -1
  191. package/dist/theme.cjs +1 -1
  192. package/dist/{theme.component-BNRB5zlE.cjs → theme.component-D0pi4zH5.cjs} +2 -2
  193. package/dist/{theme.component-BNRB5zlE.cjs.map → theme.component-D0pi4zH5.cjs.map} +1 -1
  194. package/dist/{theme.component-iZ2Ty0WM.js → theme.component-DWRFe6NX.js} +2 -2
  195. package/dist/{theme.component-iZ2Ty0WM.js.map → theme.component-DWRFe6NX.js.map} +1 -1
  196. package/dist/theme.js +1 -1
  197. package/dist/{tree-DK6ii57L.js → tree-COFA9Z7I.js} +2 -2
  198. package/dist/{tree-DK6ii57L.js.map → tree-COFA9Z7I.js.map} +1 -1
  199. package/dist/{tree-BU8SHE74.cjs → tree-D8SHnBQ7.cjs} +2 -2
  200. package/dist/{tree-BU8SHE74.cjs.map → tree-D8SHnBQ7.cjs.map} +1 -1
  201. package/dist/tree.cjs +1 -1
  202. package/dist/tree.js +1 -1
  203. package/dist/{typewriter-BcUBG7Dc.cjs → typewriter-B254asJ6.cjs} +2 -2
  204. package/dist/{typewriter-BcUBG7Dc.cjs.map → typewriter-B254asJ6.cjs.map} +1 -1
  205. package/dist/{typewriter-BUNcKCUM.js → typewriter-CKloAbr2.js} +4 -4
  206. package/dist/{typewriter-BUNcKCUM.js.map → typewriter-CKloAbr2.js.map} +1 -1
  207. package/dist/typewriter.cjs +1 -1
  208. package/dist/typewriter.js +1 -1
  209. package/dist/{typography-CLlDUD5O.cjs → typography-BjmgtlSe.cjs} +2 -2
  210. package/dist/{typography-CLlDUD5O.cjs.map → typography-BjmgtlSe.cjs.map} +1 -1
  211. package/dist/{typography-CasDFLVv.js → typography-C0__6Aqk.js} +2 -2
  212. package/dist/{typography-CasDFLVv.js.map → typography-C0__6Aqk.js.map} +1 -1
  213. package/dist/typography.cjs +1 -1
  214. package/dist/typography.js +1 -1
  215. package/package.json +6 -6
  216. package/types/src/autocomplete/autocomplete.d.ts +16 -93
  217. package/types/src/chips/chip.d.ts +0 -2
  218. package/types/src/date-range/date-range.d.ts +14 -15
  219. package/types/src/input/input.d.ts +60 -80
  220. package/types/src/layout/flex/flex.d.ts +24 -1
  221. package/types/src/option/option.d.ts +2 -2
  222. package/types/src/select/select.d.ts +37 -15
  223. package/dist/autocomplete-8-xYgb2e.js +0 -212
  224. package/dist/autocomplete-8-xYgb2e.js.map +0 -1
  225. package/dist/autocomplete-CtUz_AlC.cjs +0 -43
  226. package/dist/autocomplete-CtUz_AlC.cjs.map +0 -1
  227. package/dist/date-range-Cvdpxn2J.js +0 -130
  228. package/dist/date-range-Cvdpxn2J.js.map +0 -1
  229. package/dist/date-range-DTUXT0Lf.cjs +0 -58
  230. package/dist/date-range-DTUXT0Lf.cjs.map +0 -1
  231. package/dist/input-6NTzj_Bn.js +0 -124
  232. package/dist/input-6NTzj_Bn.js.map +0 -1
  233. package/dist/input-CnvK8HG2.cjs +0 -43
  234. package/dist/input-CnvK8HG2.cjs.map +0 -1
  235. package/dist/menu-C4mb1XXA.cjs +0 -31
  236. package/dist/menu-C4mb1XXA.cjs.map +0 -1
  237. package/dist/menu-n_bI-TFp.js.map +0 -1
  238. package/dist/option-CxhioQ_d.js +0 -40
  239. package/dist/option-CxhioQ_d.js.map +0 -1
  240. package/dist/option-lA0IV4VJ.cjs +0 -14
  241. package/dist/option-lA0IV4VJ.cjs.map +0 -1
  242. package/dist/scroll-B-tqDDOP.js.map +0 -1
  243. package/dist/scroll-B7q9TYhV.cjs +0 -33
  244. package/dist/scroll-B7q9TYhV.cjs.map +0 -1
  245. package/dist/select-DAQdBUSl.cjs +0 -46
  246. package/dist/select-DAQdBUSl.cjs.map +0 -1
  247. package/dist/select-DUctHAIZ.js +0 -99
  248. package/dist/select-DUctHAIZ.js.map +0 -1
  249. package/dist/tailwind.mixin-DNlFmovi.js +0 -43
  250. package/dist/tailwind.mixin-DYx3IacW.cjs +0 -2
@@ -1,58 +0,0 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("./litElement.mixin-d9rhslEw.cjs");require("./tailwind.mixin-DYx3IacW.cjs");const m=require("lit"),r=require("lit/decorators.js"),l=require("lit/directives/if-defined.js"),a=require("moment");var p=Object.defineProperty,y=Object.getOwnPropertyDescriptor,o=(e,t,s,i)=>{for(var d,c=i>1?void 0:i?y(t,s):t,h=e.length-1;h>=0;h--)(d=e[h])&&(c=(i?d(t,s,c):d(c))||c);return i&&c&&p(t,s,c),c};let n=class extends u.$LitElement(){constructor(){super(...arguments),this.type="date",this.selectedDateRange="Today"}connectedCallback(){super.connectedCallback(),this.initPresetRanges(),this.updateSelectedDateRange()}updated(e){e.has("type")&&(this.initPresetRanges(),this.updateSelectedDateRange())}getDateFormat(){return this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"}getDisplayFormat(){return this.type==="date"?"MMM DD, YYYY":"MMM DD, YYYY hh:mm A"}initPresetRanges(){const e=this.getDateFormat();this.presetRanges=[{label:"Yesterday",range:{dateFrom:a().subtract(1,"days").startOf("day").format(e),dateTo:a().subtract(1,"days").endOf("day").format(e)},step:"day"},{label:"Today",range:{dateFrom:a().startOf("day").format(e),dateTo:a().endOf("day").format(e)},step:"day"},{label:"Tomorrow",range:{dateFrom:a().add(1,"days").startOf("day").format(e),dateTo:a().add(1,"days").endOf("day").format(e)},step:"day"},{label:"This Week",range:{dateFrom:a().startOf("isoWeek").format(e),dateTo:a().endOf("isoWeek").format(e)},step:"week"},{label:"Last Week",range:{dateFrom:a().subtract(1,"weeks").startOf("isoWeek").format(e),dateTo:a().subtract(1,"weeks").endOf("isoWeek").format(e)},step:"week"},{label:"This Month",range:{dateFrom:a().startOf("month").format(e),dateTo:a().endOf("month").format(e)},step:"month"}]}updateSelectedDateRange(){const e=this.presetRanges.find(t=>t.range.dateFrom===this.dateFrom.value&&t.range.dateTo===this.dateTo.value);this.selectedDateRange=e?e.label:`${a(this.dateFrom.value).format(this.getDisplayFormat())} - ${a(this.dateTo.value).format(this.getDisplayFormat())}`}setDateRange(e,t){this.dateFrom.value=e,this.dateTo.value=t,this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:e,dateTo:t}})),this.requestUpdate()}handlePresetChange(e){const t=this.presetRanges.find(s=>s.label===e);if(t){const{dateFrom:s,dateTo:i}=t.range;this.setDateRange(s,i),this.selectedDateRange=e,this.schmancyMenu.open=!1}}handleDateRangeChange(){this.setDateRange(this.dateFrom.value,this.dateTo.value),this.updateSelectedDateRange(),this.schmancyMenu.open=!1}shiftDateRange(e){const t=this.getDateFormat(),s=a(this.dateTo.value).diff(a(this.dateFrom.value),"days")||1,i=a(this.dateFrom.value).add(e*s,"days").format(t),d=a(this.dateTo.value).add(e*s,"days").format(t);this.setDateRange(i,d),this.updateSelectedDateRange()}render(){return m.html`
2
- <div class="date-range-selector relative">
3
- <schmancy-menu class="z-100 w-max">
4
- <!-- The button slot: left/right arrows and the display text -->
5
- <schmancy-grid slot="button" align="center" cols="auto 1fr auto">
6
- <schmancy-icon-button
7
- @click=${e=>{e.preventDefault(),e.stopPropagation(),this.shiftDateRange(-1)}}
8
- >
9
- arrow_left
10
- </schmancy-icon-button>
11
- <schmancy-button class="w-max" variant="outlined" type="button">
12
- ${this.selectedDateRange||"Date range"}
13
- </schmancy-button>
14
- <schmancy-icon-button
15
- @click=${e=>{e.preventDefault(),e.stopPropagation(),this.shiftDateRange(1)}}
16
- >
17
- arrow_right
18
- </schmancy-icon-button>
19
- </schmancy-grid>
20
-
21
- <!-- The menu surface -->
22
- <schmancy-surface elevation="2">
23
- ${this.presetRanges.map(e=>m.html`
24
- <schmancy-menu-item class="w-full" @click=${()=>this.handlePresetChange(e.label)}>
25
- <schmancy-grid class="w-full" align="center" cols="auto 1fr auto"> ${e.label} </schmancy-grid>
26
- </schmancy-menu-item>
27
- `)}
28
- <schmancy-grid gap="sm" flow="row" class="p-4">
29
- <schmancy-input
30
- id="checkin"
31
- min=${l.ifDefined(this.minDate)}
32
- .type=${this.type}
33
- label="${this.dateFrom.label}"
34
- .value=${this.dateFrom.value}
35
- @change=${e=>{e.preventDefault(),e.stopPropagation();const t=this.getDateFormat(),s=a(e.detail.value,t).format(t);this.dateFrom.value=s,this.checkOutInput.setAttribute("min",s)}}
36
- ></schmancy-input>
37
- <schmancy-input
38
- id="checkout"
39
- min=${l.ifDefined(this.dateFrom.value)}
40
- max=${l.ifDefined(this.maxDate)}
41
- .type=${this.type}
42
- label="${this.dateTo.label}"
43
- .value=${this.dateTo.value}
44
- @change=${e=>{e.preventDefault(),e.stopPropagation();const t=this.getDateFormat(),s=a(e.detail.value,t).format(t);this.dateTo.value=s}}
45
- ></schmancy-input>
46
-
47
- <schmancy-button
48
- variant="outlined"
49
- @click=${e=>{e.preventDefault(),e.stopPropagation(),this.handleDateRangeChange()}}
50
- >
51
- Apply
52
- </schmancy-button>
53
- </schmancy-grid>
54
- </schmancy-surface>
55
- </schmancy-menu>
56
- </div>
57
- `}};o([r.property({type:String})],n.prototype,"type",2),o([r.property({type:Object})],n.prototype,"dateFrom",2),o([r.property({type:Object})],n.prototype,"dateTo",2),o([r.property({type:String})],n.prototype,"minDate",2),o([r.property({type:String})],n.prototype,"maxDate",2),o([r.query("#checkin")],n.prototype,"checkInInput",2),o([r.query("#checkout")],n.prototype,"checkOutInput",2),o([r.query("schmancy-menu")],n.prototype,"schmancyMenu",2),o([r.state()],n.prototype,"selectedDateRange",2),n=o([r.customElement("schmancy-date-range")],n);
58
- //# sourceMappingURL=date-range-DTUXT0Lf.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-DTUXT0Lf.cjs","sources":["../src/date-range/date-range.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport moment from 'moment'\n\n/**\n * A date range selector that supports presets and manual date input.\n */\n@customElement('schmancy-date-range')\nexport default class SchmancyDateRange extends $LitElement() {\n\t// The input type – either \"date\" or \"datetime-local\".\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\n\t// The date range properties.\n\t@property({ type: Object }) dateFrom!: { label: string; value: string }\n\t@property({ type: Object }) dateTo!: { label: string; value: string }\n\n\t// Optional minimum and maximum dates.\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Query elements from the rendered template.\n\t@query('#checkin') checkInInput!: HTMLInputElement\n\t@query('#checkout') checkOutInput!: HTMLInputElement\n\t@query('schmancy-menu') schmancyMenu!: SchmancyMenu\n\n\t// The currently selected preset or custom date range display text.\n\t@state() selectedDateRange: string = 'Today'\n\n\t// Array of preset date ranges.\n\tpresetRanges!: Array<{\n\t\tlabel: string\n\t\trange: { dateFrom: string; dateTo: string }\n\t\tstep: moment.unitOfTime.DurationConstructor\n\t\tselected?: boolean\n\t}>\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\tupdated(changedProps: Map<string, unknown>) {\n\t\tif (changedProps.has('type')) {\n\t\t\t// Reinitialize presets if the date input type changes.\n\t\t\tthis.initPresetRanges()\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\t/**\n\t * Returns the date format string based on the current type.\n\t */\n\tprivate getDateFormat(): string {\n\t\treturn this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t}\n\n\t/**\n\t * Returns the display format for showing dates.\n\t */\n\tprivate getDisplayFormat(): string {\n\t\treturn this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A'\n\t}\n\n\t/**\n\t * Initializes the preset date ranges.\n\t */\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tthis.presetRanges = [\n\t\t\t{\n\t\t\t\tlabel: 'Yesterday',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Today',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Tomorrow',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().add(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().add(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Week',\n\t\t\t\t// Use ISO week boundaries for consistency.\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Last Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'weeks').startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'weeks').endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Month',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('month').format(format),\n\t\t\t\t\tdateTo: moment().endOf('month').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'month',\n\t\t\t},\n\t\t\t// You can add a \"Custom\" option here if needed.\n\t\t]\n\t}\n\n\t/**\n\t * Updates the selectedDateRange state based on the current dateFrom and dateTo values.\n\t */\n\tprivate updateSelectedDateRange() {\n\t\tconst preset = this.presetRanges.find(\n\t\t\trange => range.range.dateFrom === this.dateFrom.value && range.range.dateTo === this.dateTo.value,\n\t\t)\n\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\tthis.selectedDateRange = `${moment(this.dateFrom.value).format(\n\t\t\t\tthis.getDisplayFormat(),\n\t\t\t)} - ${moment(this.dateTo.value).format(this.getDisplayFormat())}`\n\t\t}\n\t}\n\n\t/**\n\t * Updates the internal date range state and dispatches a change event.\n\t */\n\tsetDateRange(fromDate: string, toDate: string) {\n\t\tthis.dateFrom.value = fromDate\n\t\tthis.dateTo.value = toDate\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TSchmancDateRangePayload>('change', {\n\t\t\t\tdetail: { dateFrom: fromDate, dateTo: toDate },\n\t\t\t}),\n\t\t)\n\t\tthis.requestUpdate()\n\t}\n\n\t/**\n\t * Called when a preset is selected. Updates the date range and closes the menu.\n\t */\n\thandlePresetChange(presetLabel: string) {\n\t\tconst preset = this.presetRanges.find(range => range.label === presetLabel)\n\t\tif (preset) {\n\t\t\tconst { dateFrom, dateTo } = preset.range\n\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\tthis.selectedDateRange = presetLabel\n\t\t\t// Close the menu after a preset selection.\n\t\t\tthis.schmancyMenu.open = false\n\t\t}\n\t}\n\n\t/**\n\t * Called when the user applies a manual date change.\n\t */\n\thandleDateRangeChange() {\n\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\tthis.updateSelectedDateRange()\n\t\t// Close the menu after applying manual changes.\n\t\tthis.schmancyMenu.open = false\n\t}\n\n\t/**\n\t * Shifts the current date range by multiplying the range length with the given factor.\n\t * Use a negative factor to shift backward.\n\t */\n\tprivate shiftDateRange(factor: number) {\n\t\tconst format = this.getDateFormat()\n\t\tconst currentDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\t\tconst newDateFrom = moment(this.dateFrom.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tconst newDateTo = moment(this.dateTo.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tthis.setDateRange(newDateFrom, newDateTo)\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"date-range-selector relative\">\n\t\t\t\t<schmancy-menu class=\"z-100 w-max\">\n\t\t\t\t\t<!-- The button slot: left/right arrows and the display text -->\n\t\t\t\t\t<schmancy-grid slot=\"button\" align=\"center\" cols=\"auto 1fr auto\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.shiftDateRange(-1)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t\t<schmancy-button class=\"w-max\" variant=\"outlined\" type=\"button\">\n\t\t\t\t\t\t\t${this.selectedDateRange || 'Date range'}\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\tthis.shiftDateRange(1)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t\t</schmancy-grid>\n\n\t\t\t\t\t<!-- The menu surface -->\n\t\t\t\t\t<schmancy-surface elevation=\"2\">\n\t\t\t\t\t\t${this.presetRanges.map(\n\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t<schmancy-menu-item class=\"w-full\" @click=${() => this.handlePresetChange(preset.label)}>\n\t\t\t\t\t\t\t\t\t<schmancy-grid class=\"w-full\" align=\"center\" cols=\"auto 1fr auto\"> ${preset.label} </schmancy-grid>\n\t\t\t\t\t\t\t\t</schmancy-menu-item>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<schmancy-grid gap=\"sm\" flow=\"row\" class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkin\"\n\t\t\t\t\t\t\t\tmin=${ifDefined(this.minDate)}\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\tlabel=\"${this.dateFrom.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tconst format = this.getDateFormat()\n\t\t\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, format).format(format)\n\t\t\t\t\t\t\t\t\tthis.dateFrom.value = selectedDate\n\t\t\t\t\t\t\t\t\t// Update the checkout input's minimum date.\n\t\t\t\t\t\t\t\t\tthis.checkOutInput.setAttribute('min', selectedDate)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkout\"\n\t\t\t\t\t\t\t\tmin=${ifDefined(this.dateFrom.value)}\n\t\t\t\t\t\t\t\tmax=${ifDefined(this.maxDate)}\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\tlabel=\"${this.dateTo.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tconst format = this.getDateFormat()\n\t\t\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, format).format(format)\n\t\t\t\t\t\t\t\t\tthis.dateTo.value = selectedDate\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</schmancy-grid>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-menu>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\n/**\n * The payload for a date range change event.\n */\nexport type TSchmancDateRangePayload = {\n\tdateFrom?: string\n\tdateTo?: string\n}\n\n/**\n * A custom event fired when the date range is updated.\n */\nexport type SchmancyDateRangeChangeEvent = CustomEvent<TSchmancDateRangePayload>\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SchmancyDateRange\n\t}\n}\n"],"names":["SchmancyDateRange","$LitElement","constructor","super","arguments","this","type","selectedDateRange","connectedCallback","initPresetRanges","updateSelectedDateRange","changedProps","has","format","getDateFormat","presetRanges","label","range","dateFrom","moment","subtract","startOf","dateTo","endOf","step","add","preset","find","value","getDisplayFormat","fromDate","toDate","dispatchEvent","CustomEvent","detail","requestUpdate","presetLabel","setDateRange","schmancyMenu","open","factor","currentDiff","diff","newDateFrom","newDateTo","render","html","e","preventDefault","stopPropagation","shiftDateRange","map","handlePresetChange","ifDefined","minDate","event","selectedDate","checkOutInput","setAttribute","maxDate","handleDateRangeChange","__decorateClass","property","String","prototype","Object","query","state","customElement"],"mappings":"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"}
@@ -1,124 +0,0 @@
1
- import { html as d, LitElement as $ } from "lit";
2
- import { property as r, query as x, customElement as E } from "lit/decorators.js";
3
- import { classMap as y } from "lit/directives/class-map.js";
4
- import { ifDefined as a } from "lit/directives/if-defined.js";
5
- import { createRef as k, ref as w } from "lit/directives/ref.js";
6
- import { when as f } from "lit/directives/when.js";
7
- import { fromEvent as n, map as b, distinctUntilChanged as v, filter as g } from "rxjs";
8
- import "lit/directives/style-map.js";
9
- import { T as R } from "./tailwind.mixin-DNlFmovi.js";
10
- import { c as m } from "./ripple-BumgqsDT.js";
11
- import { S as p } from "./theme.interface-C5Kj6WjD.js";
12
- var C = Object.defineProperty, V = Object.getOwnPropertyDescriptor, i = (t, o, h, l) => {
13
- for (var u, s = l > 1 ? void 0 : l ? V(o, h) : o, c = t.length - 1; c >= 0; c--) (u = t[c]) && (s = (l ? u(o, h, s) : u(s)) || s);
14
- return l && s && C(o, h, s), s;
15
- };
16
- let e = class extends R() {
17
- constructor() {
18
- if (super(), this.label = "", this.type = "text", this.clickable = !1, this.name = "name_" + Date.now(), this.placeholder = "", this.value = "", this.required = !1, this.disabled = !1, this.readonly = !1, this.spellcheck = !1, this.align = "left", this.autofocus = !1, this.autocomplete = "off", this.tabIndex = 0, this.error = !1, this.inputRef = k(), "attachInternals" in this) try {
19
- this.internals = this.attachInternals();
20
- } catch {
21
- this.internals = void 0;
22
- }
23
- }
24
- get form() {
25
- var t;
26
- return ((t = this.internals) == null ? void 0 : t.form) ?? null;
27
- }
28
- updated(t) {
29
- var o;
30
- super.updated(t), t.has("value") && ((o = this.internals) == null || o.setFormValue(this.value));
31
- }
32
- reportValidity() {
33
- var t;
34
- return (t = this.inputRef.value) == null ? void 0 : t.reportValidity();
35
- }
36
- checkValidity() {
37
- var t;
38
- return (t = this.inputRef.value) == null ? void 0 : t.checkValidity();
39
- }
40
- setCustomValidity(t) {
41
- var o;
42
- (o = this.inputRef.value) == null || o.setCustomValidity(t);
43
- }
44
- firstUpdated() {
45
- this.autofocus && this.focus(), n(this.inputElement, "input").pipe(b((t) => t.target.value), v()).subscribe((t) => {
46
- this.value = t, this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 }));
47
- }), n(this.inputElement, "change").pipe(b((t) => t.target.value), v()).subscribe((t) => {
48
- this.value = t, this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 }));
49
- }), n(this.inputElement, "keyup").pipe(g((t) => t.key === "Enter")).subscribe((t) => {
50
- const { value: o } = t.target;
51
- this.value = o, this.dispatchEvent(new CustomEvent("change", { detail: { value: o }, bubbles: !0, composed: !0 })), this.dispatchEvent(new CustomEvent("enter", { detail: { value: o }, bubbles: !0, composed: !0 }));
52
- }), n(this.inputElement, "animationstart").pipe(g((t) => t.animationName === "onAutoFillStart")).subscribe((t) => {
53
- const { value: o } = t.target;
54
- this.value = o, this.dispatchEvent(new CustomEvent("change", { detail: { value: o }, bubbles: !0, composed: !0 }));
55
- });
56
- }
57
- select() {
58
- var t;
59
- return (t = this.inputRef.value) == null ? void 0 : t.select();
60
- }
61
- getValidity() {
62
- var t;
63
- return (t = this.inputRef.value) == null ? void 0 : t.validity;
64
- }
65
- focus(t) {
66
- var o;
67
- (o = this.inputRef.value) == null || o.focus(t), this.dispatchEvent(new Event("focus"));
68
- }
69
- click() {
70
- var t;
71
- (t = this.inputRef.value) == null || t.click(), this.dispatchEvent(new Event("click"));
72
- }
73
- blur() {
74
- var t;
75
- (t = this.inputRef.value) == null || t.blur(), this.dispatchEvent(new Event("blur"));
76
- }
77
- render() {
78
- const t = { "w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]": !0, "disabled:opacity-40 disabled:cursor-not-allowed": !0, "placeholder:text-muted": !0, "ring-0 ring-inset focus:ring-1 focus:ring-inset": !0, "ring-primary-default ring-outline focus:ring-primary-default": !this.error, "ring-error-default focus:ring-error-default": this.error, "caret-transparent focus:outline-hidden cursor-pointer text-select-none": this.readonly, "cursor-pointer": this.clickable, "text-center": this.align === "center", "text-right": this.align === "right" }, o = { "opacity-40": this.disabled, "block mb-[4px]": !0 };
79
- return d`
80
- ${f(this.label, () => d`
81
- <label
82
- ${m({ color: this.error ? p.sys.color.error.default : p.sys.color.primary.default })}
83
- class="${y(o)}"
84
- for=${this.id}
85
- >
86
- <schmancy-typography type="label" token="lg">${this.label}</schmancy-typography>
87
- </label>
88
- `)}
89
- <input
90
- ${m({ bgColor: p.sys.color.surface.highest, color: p.sys.color.surface.on })}
91
- ${w(this.inputRef)}
92
- .value=${this.value}
93
- id=${this.id}
94
- name=${this.name}
95
- .type=${this.type}
96
- step=${a(this.step)}
97
- .autocomplete=${this.autocomplete}
98
- placeholder=${this.placeholder}
99
- ?required=${this.required}
100
- inputmode=${a(this.inputmode)}
101
- class=${y(t)}
102
- ?disabled=${this.disabled}
103
- ?readOnly=${this.readonly}
104
- minlength=${a(this.minlength)}
105
- maxlength=${a(this.maxlength)}
106
- min=${a(this.min)}
107
- max=${a(this.max)}
108
- pattern=${a(this.pattern)}
109
- />
110
- ${f(this.hint, () => d`
111
- <schmancy-typography
112
- ${m({ color: this.error ? p.sys.color.error.default : p.sys.color.primary.default })}
113
- class="pt-[4px]"
114
- type="body"
115
- token="sm"
116
- >
117
- ${this.hint}
118
- </schmancy-typography>
119
- `)}
120
- `;
121
- }
122
- };
123
- e.formAssociated = !0, e.shadowRootOptions = { ...$.shadowRootOptions, delegatesFocus: !0 }, i([r()], e.prototype, "label", 2), i([r({ reflect: !0 })], e.prototype, "type", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "clickable", 2), i([r()], e.prototype, "name", 2), i([r()], e.prototype, "placeholder", 2), i([r({ type: String, reflect: !0 })], e.prototype, "value", 2), i([r({ type: String, reflect: !0 })], e.prototype, "pattern", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "required", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "disabled", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "readonly", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "spellcheck", 2), i([r({ type: String, reflect: !0 })], e.prototype, "align", 2), i([r()], e.prototype, "inputmode", 2), i([r({ type: Number })], e.prototype, "minlength", 2), i([r({ type: Number })], e.prototype, "maxlength", 2), i([r()], e.prototype, "min", 2), i([r()], e.prototype, "max", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "step", 2), i([r({ type: Boolean })], e.prototype, "autofocus", 2), i([r({ type: String })], e.prototype, "autocomplete", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "tabIndex", 2), i([r()], e.prototype, "hint", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "error", 2), i([x("input")], e.prototype, "inputElement", 2), e = i([E("schmancy-input")], e);
124
- //# sourceMappingURL=input-6NTzj_Bn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-6NTzj_Bn.js","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","constructor","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","validity","options","Event","click","blur","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- "use strict";const h=require("lit"),r=require("lit/decorators.js"),m=require("lit/directives/class-map.js"),n=require("lit/directives/if-defined.js"),f=require("lit/directives/ref.js"),b=require("lit/directives/when.js"),p=require("rxjs");require("lit/directives/style-map.js");const v=require("./tailwind.mixin-DYx3IacW.cjs"),d=require("./ripple-C2BHbhcS.cjs"),a=require("./theme.interface-Xg5Zi46a.cjs");var g=Object.defineProperty,E=Object.getOwnPropertyDescriptor,i=(e,o,c,l)=>{for(var u,s=l>1?void 0:l?E(o,c):o,y=e.length-1;y>=0;y--)(u=e[y])&&(s=(l?u(o,c,s):u(s))||s);return l&&s&&g(o,c,s),s};let t=class extends v.TailwindElement(){constructor(){if(super(),this.label="",this.type="text",this.clickable=!1,this.name="name_"+Date.now(),this.placeholder="",this.value="",this.required=!1,this.disabled=!1,this.readonly=!1,this.spellcheck=!1,this.align="left",this.autofocus=!1,this.autocomplete="off",this.tabIndex=0,this.error=!1,this.inputRef=f.createRef(),"attachInternals"in this)try{this.internals=this.attachInternals()}catch{this.internals=void 0}}get form(){var e;return((e=this.internals)==null?void 0:e.form)??null}updated(e){var o;super.updated(e),e.has("value")&&((o=this.internals)==null||o.setFormValue(this.value))}reportValidity(){var e;return(e=this.inputRef.value)==null?void 0:e.reportValidity()}checkValidity(){var e;return(e=this.inputRef.value)==null?void 0:e.checkValidity()}setCustomValidity(e){var o;(o=this.inputRef.value)==null||o.setCustomValidity(e)}firstUpdated(){this.autofocus&&this.focus(),p.fromEvent(this.inputElement,"input").pipe(p.map(e=>e.target.value),p.distinctUntilChanged()).subscribe(e=>{this.value=e,this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}),p.fromEvent(this.inputElement,"change").pipe(p.map(e=>e.target.value),p.distinctUntilChanged()).subscribe(e=>{this.value=e,this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}),p.fromEvent(this.inputElement,"keyup").pipe(p.filter(e=>e.key==="Enter")).subscribe(e=>{const{value:o}=e.target;this.value=o,this.dispatchEvent(new CustomEvent("change",{detail:{value:o},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("enter",{detail:{value:o},bubbles:!0,composed:!0}))}),p.fromEvent(this.inputElement,"animationstart").pipe(p.filter(e=>e.animationName==="onAutoFillStart")).subscribe(e=>{const{value:o}=e.target;this.value=o,this.dispatchEvent(new CustomEvent("change",{detail:{value:o},bubbles:!0,composed:!0}))})}select(){var e;return(e=this.inputRef.value)==null?void 0:e.select()}getValidity(){var e;return(e=this.inputRef.value)==null?void 0:e.validity}focus(e){var o;(o=this.inputRef.value)==null||o.focus(e),this.dispatchEvent(new Event("focus"))}click(){var e;(e=this.inputRef.value)==null||e.click(),this.dispatchEvent(new Event("click"))}blur(){var e;(e=this.inputRef.value)==null||e.blur(),this.dispatchEvent(new Event("blur"))}render(){const e={"w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]":!0,"disabled:opacity-40 disabled:cursor-not-allowed":!0,"placeholder:text-muted":!0,"ring-0 ring-inset focus:ring-1 focus:ring-inset":!0,"ring-primary-default ring-outline focus:ring-primary-default":!this.error,"ring-error-default focus:ring-error-default":this.error,"caret-transparent focus:outline-hidden cursor-pointer text-select-none":this.readonly,"cursor-pointer":this.clickable,"text-center":this.align==="center","text-right":this.align==="right"},o={"opacity-40":this.disabled,"block mb-[4px]":!0};return h.html`
2
- ${b.when(this.label,()=>h.html`
3
- <label
4
- ${d.color({color:this.error?a.SchmancyTheme.sys.color.error.default:a.SchmancyTheme.sys.color.primary.default})}
5
- class="${m.classMap(o)}"
6
- for=${this.id}
7
- >
8
- <schmancy-typography type="label" token="lg">${this.label}</schmancy-typography>
9
- </label>
10
- `)}
11
- <input
12
- ${d.color({bgColor:a.SchmancyTheme.sys.color.surface.highest,color:a.SchmancyTheme.sys.color.surface.on})}
13
- ${f.ref(this.inputRef)}
14
- .value=${this.value}
15
- id=${this.id}
16
- name=${this.name}
17
- .type=${this.type}
18
- step=${n.ifDefined(this.step)}
19
- .autocomplete=${this.autocomplete}
20
- placeholder=${this.placeholder}
21
- ?required=${this.required}
22
- inputmode=${n.ifDefined(this.inputmode)}
23
- class=${m.classMap(e)}
24
- ?disabled=${this.disabled}
25
- ?readOnly=${this.readonly}
26
- minlength=${n.ifDefined(this.minlength)}
27
- maxlength=${n.ifDefined(this.maxlength)}
28
- min=${n.ifDefined(this.min)}
29
- max=${n.ifDefined(this.max)}
30
- pattern=${n.ifDefined(this.pattern)}
31
- />
32
- ${b.when(this.hint,()=>h.html`
33
- <schmancy-typography
34
- ${d.color({color:this.error?a.SchmancyTheme.sys.color.error.default:a.SchmancyTheme.sys.color.primary.default})}
35
- class="pt-[4px]"
36
- type="body"
37
- token="sm"
38
- >
39
- ${this.hint}
40
- </schmancy-typography>
41
- `)}
42
- `}};t.formAssociated=!0,t.shadowRootOptions={...h.LitElement.shadowRootOptions,delegatesFocus:!0},i([r.property()],t.prototype,"label",2),i([r.property({reflect:!0})],t.prototype,"type",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"clickable",2),i([r.property()],t.prototype,"name",2),i([r.property()],t.prototype,"placeholder",2),i([r.property({type:String,reflect:!0})],t.prototype,"value",2),i([r.property({type:String,reflect:!0})],t.prototype,"pattern",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"required",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"disabled",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"readonly",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"spellcheck",2),i([r.property({type:String,reflect:!0})],t.prototype,"align",2),i([r.property()],t.prototype,"inputmode",2),i([r.property({type:Number})],t.prototype,"minlength",2),i([r.property({type:Number})],t.prototype,"maxlength",2),i([r.property()],t.prototype,"min",2),i([r.property()],t.prototype,"max",2),i([r.property({type:Number,reflect:!0})],t.prototype,"step",2),i([r.property({type:Boolean})],t.prototype,"autofocus",2),i([r.property({type:String})],t.prototype,"autocomplete",2),i([r.property({type:Number,reflect:!0})],t.prototype,"tabIndex",2),i([r.property()],t.prototype,"hint",2),i([r.property({type:Boolean,reflect:!0})],t.prototype,"error",2),i([r.query("input")],t.prototype,"inputElement",2),t=i([r.customElement("schmancy-input")],t);
43
- //# sourceMappingURL=input-CnvK8HG2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-CnvK8HG2.cjs","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","getValidity","validity","options","Event","click","blur","render","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- "use strict";const i=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./litElement.mixin-d9rhslEw.cjs"),b=require("./tailwind.mixin-DYx3IacW.cjs"),p=require("lit"),l=require("lit/decorators.js"),m=require("@floating-ui/dom");var y=Object.defineProperty,f=Object.getOwnPropertyDescriptor;let h=class extends d.$LitElement(p.css`
2
- :host {
3
- display: block;
4
- }
5
- `){connectedCallback(){super.connectedCallback(),i.fromEvent(this,"click").pipe(i.takeUntil(this.disconnecting)).subscribe(e=>{e.stopPropagation(),this.dispatchEvent(new CustomEvent("schmancy-menu-item-click",{bubbles:!0,composed:!0}))})}render(){return p.html`
6
- <schmancy-list-item>
7
- <slot></slot>
8
- </schmancy-list-item>
9
- `}};h=((e,t,s,o)=>{for(var r,n=o>1?void 0:o?f(t,s):t,a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o?r(t,s,n):r(n))||n);return o&&n&&y(t,s,n),n})([l.customElement("schmancy-menu-item")],h);var E=Object.defineProperty,g=Object.getOwnPropertyDescriptor,u=(e,t,s,o)=>{for(var r,n=o>1?void 0:o?g(t,s):t,a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o?r(t,s,n):r(n))||n);return o&&n&&E(t,s,n),n};let c=class extends b.TailwindElement(p.css`
10
- :host {
11
- position: relative;
12
- display: inline-block;
13
- }
14
- `){constructor(){super(...arguments),this.open=!1}openMenu(){this.open=!0,this.positionMenu();const e=this.menuElement.animate([{opacity:0,transform:"scale(0.95)"},{opacity:1,transform:"scale(1)"}],{duration:100,easing:"cubic-bezier(0.55, 0.085, 0.68, 0.53)"});return new Promise(t=>{e.onfinish=()=>t()})}closeMenu(e){e&&e instanceof Event&&(e.preventDefault(),e.stopPropagation());const t=this.menuElement.animate([{opacity:1,transform:"scale(1)"},{opacity:0,transform:"scale(0.95)"}],{duration:75,easing:"cubic-bezier(0.55, 0.085, 0.68, 0.53)"});return new Promise(s=>{t.onfinish=()=>{this.open=!1,s()}})}async positionMenu(){if(this.buttonElement.length&&this.menuElement){const{x:e,y:t}=await m.computePosition(this.buttonElement[0],this.menuElement,{placement:"bottom-start",middleware:[m.offset(5),m.flip(),m.shift({padding:5})]});Object.assign(this.menuElement.style,{left:`${e}px`,top:`${t}px`,position:"absolute"})}}firstUpdated(){i.fromEvent(this.buttonElement,"click").pipe(i.tap(e=>e.stopPropagation()),i.takeUntil(this.disconnecting),i.switchMap(()=>i.from(this.openMenu()))).subscribe(),i.fromEvent(this,"schmancy-menu-item-click").pipe(i.tap(e=>e.stopPropagation()),i.takeUntil(this.disconnecting),i.switchMap(()=>i.from(this.closeMenu()))).subscribe()}render(){return p.html`
15
- <slot name="button">
16
- <schmancy-icon-button> more_vert</schmancy-icon-button>
17
- </slot>
18
- <div class="fixed inset-0 z-50" .hidden=${!this.open} @click=${this.closeMenu}></div>
19
- <schmancy-list
20
- id="menu"
21
- .hidden=${!this.open}
22
- class="absolute z-50 border-outlineVariant rounded-md
23
- min-w-[160px] max-w-[320px] w-max bg-surface-default"
24
- role="menu"
25
- aria-orientation="vertical"
26
- aria-labelledby="options-menu-4-button"
27
- >
28
- <slot></slot>
29
- </schmancy-list>
30
- `}};u([l.state()],c.prototype,"open",2),u([l.queryAssignedElements({flatten:!0,slot:"button"})],c.prototype,"buttonElement",2),u([l.query("#menu")],c.prototype,"menuElement",2),c=u([l.customElement("schmancy-menu")],c);
31
- //# sourceMappingURL=menu-C4mb1XXA.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-C4mb1XXA.cjs","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","html","customElement","SchmancyMenu","TailwindElement","constructor","arguments","open","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","openMenu","closeMenu","render","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-n_bI-TFp.js","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","html","customElement","SchmancyMenu","TailwindElement","arguments","open","openMenu","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","closeMenu","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import "rxjs";
2
- import "lit/directives/class-map.js";
3
- import "lit/directives/style-map.js";
4
- import { T as c } from "./tailwind.mixin-DNlFmovi.js";
5
- import { html as h } from "lit";
6
- import { property as p, customElement as u } from "lit/decorators.js";
7
- var d = Object.defineProperty, y = Object.getOwnPropertyDescriptor, i = (t, e, n, s) => {
8
- for (var a, o = s > 1 ? void 0 : s ? y(e, n) : e, l = t.length - 1; l >= 0; l--) (a = t[l]) && (o = (s ? a(e, n, o) : a(o)) || o);
9
- return s && o && d(e, n, o), o;
10
- };
11
- let r = class extends c() {
12
- constructor() {
13
- super(...arguments), this.value = "", this.selected = !1;
14
- }
15
- handleOptionClick(t) {
16
- this.value = t, this.dispatchEvent(new CustomEvent("click", { detail: { value: t, label: this.label ?? this.innerText }, bubbles: !0, composed: !0 }));
17
- }
18
- render() {
19
- const t = { "font-semibold relative cursor-pointer py-2 px-3": !0, "bg-secondary-container text-secondery-onContainer": this.selected };
20
- return h` <li
21
- tabindex="0"
22
- class="${this.classMap(t)}"
23
- role="option"
24
- @click=${(e) => {
25
- e.stopPropagation(), e.preventDefault(), this.handleOptionClick(this.value);
26
- }}
27
- @keydown=${(e) => {
28
- e.key !== "Enter" && e.key !== " " || (e.stopPropagation(), e.preventDefault(), this.handleOptionClick(this.value));
29
- }}
30
- >
31
- <div class="${this.classMap({ "duration-500 transition-opacity": !0, "hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0": !0 })}"></div>
32
- <schmancy-flex align="center" justify="between">
33
- <slot></slot>
34
- <slot name="support"></slot>
35
- </schmancy-flex>
36
- </li>`;
37
- }
38
- };
39
- i([p({ type: String, reflect: !0 })], r.prototype, "value", 2), i([p({ type: String, reflect: !0 })], r.prototype, "label", 2), i([p({ type: Boolean })], r.prototype, "selected", 2), r = i([u("schmancy-option")], r);
40
- //# sourceMappingURL=option-CxhioQ_d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-CxhioQ_d.js","sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nexport type SchmancyOptionChangeEvent = CustomEvent<{\n\tvalue: string\n\tlabel: string\n}>\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement() {\n\t@property({ type: String, reflect: true }) value: string = ''\n\t@property({ type: String, reflect: true }) label: string | undefined\n\t@property({ type: Boolean }) selected: boolean = false\n\n\thandleOptionClick(option: string) {\n\t\tthis.value = option\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('click', {\n\t\t\t\tdetail: { value: option, label: this.label ?? this.innerText },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}) as SchmancyOptionChangeEvent,\n\t\t)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'font-semibold relative cursor-pointer py-2 px-3': true,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\t\tconst stateLayerClasses = {\n\t\t\t'duration-500 transition-opacity': true,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0': true,\n\t\t}\n\n\t\treturn html` <li\n\t\t\ttabindex=\"0\"\n\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\trole=\"option\"\n\t\t\t@click=${e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.handleOptionClick(this.value)\n\t\t\t}}\n\t\t\t@keydown=${e => {\n\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis.handleOptionClick(this.value)\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div class=\"${this.classMap(stateLayerClasses)}\"></div>\n\t\t\t<schmancy-flex align=\"center\" justify=\"between\">\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"support\"></slot>\n\t\t\t</schmancy-flex>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"names":["SchmancyOption","TailwindElement","super","arguments","this","value","selected","option","dispatchEvent","CustomEvent","detail","label","innerText","bubbles","composed","classes","html","classMap","e","stopPropagation","preventDefault","handleOptionClick","key","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":";;;;;;;;;;AAQA,IAAqBA,IAArB,cAA4CC,EAA5C,EAAA;AAAA,EAAA,cAAAC;AAAAA,UAAAA,GAAAC,SAC4DC,GAAAA,KAAAC,QAAA,IAEVD,KAAAE,WAAA;AAAA,EAAA;AAAA,EAEjD,kBAAkBC,GAAAA;AACjBH,SAAKC,QAAQE,GACRH,KAAAI,cACJ,IAAIC,YAAY,SAAS,EACxBC,QAAQ,EAAEL,OAAOE,GAAQI,OAAOP,KAAKO,SAASP,KAAKQ,UACnDC,GAAAA,SAAAA,IACAC,UAAAA;EAEF;AAAA,EAGS,SACT;AAAA,UAAMC,IAAU,EACf,mDAAmD,IACnD,qDAAqDX,KAAKE,SAOpD;AAAA,WAAAU;AAAAA;AAAAA,YAEGZ,KAAKa,SAASF,CAAAA,CAAAA;AAAAA;AAAAA,YAETG,CAAAA,MAAAA;AACbA,MAAAA,EAAEC,gBACFD,GAAAA,EAAEE,kBACGhB,KAAAiB,kBAAkBjB,KAAKC,KAAK;AAAA,IAAA,CAAA;AAAA,cAElBa,CAAAA,MAAAA;AACD,MAAVA,EAAEI,QAAQ,WAAWJ,EAAEI,QAAQ,QAClCJ,EAAEC,gBAAAA,GACFD,EAAEE,eAAAA,GACGhB,KAAAiB,kBAAkBjB,KAAKC,KAAK;AAAA,IAAA,CAAA;AAAA;AAAA,iBAIrBD,KAAKa,SAtBM,EACzB,mCAAmC,IACnC,sEAAsE,GAAA,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBxB;AAAA;AA1CLM,EAAA,CAA1CC,EAAS,EAAEC,MAAMC,QAAQC,SAAS,GAAA,CAAA,CAAA,GADf3B,EACuB4B,WAAA,SAAA,CACAL,GAAAA,EAAA,CAA1CC,EAAS,EAAEC,MAAMC,QAAQC,SAAAA,GAFN3B,CAAAA,CAAAA,GAAAA,EAEuB4B,WAAA,SAAA,CAAA,GACdL,EAAA,CAA5BC,EAAS,EAAEC,MAAMI,QAHE7B,CAAAA,CAAAA,GAAAA,EAGS4B,WAAA,YAAA,CAAA,GAHT5B,IAArBuB,EAAA,CADCO,EAAc,iBACM9B,CAAAA,GAAAA,CAAAA;"}
@@ -1,14 +0,0 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const c=require("./tailwind.mixin-DYx3IacW.cjs"),u=require("lit"),i=require("lit/decorators.js");var h=Object.defineProperty,y=Object.getOwnPropertyDescriptor,n=(t,e,a,s)=>{for(var l,r=s>1?void 0:s?y(e,a):e,p=t.length-1;p>=0;p--)(l=t[p])&&(r=(s?l(e,a,r):l(r))||r);return s&&r&&h(e,a,r),r};let o=class extends c.TailwindElement(){constructor(){super(...arguments),this.value="",this.selected=!1}handleOptionClick(t){this.value=t,this.dispatchEvent(new CustomEvent("click",{detail:{value:t,label:this.label??this.innerText},bubbles:!0,composed:!0}))}render(){const t={"font-semibold relative cursor-pointer py-2 px-3":!0,"bg-secondary-container text-secondery-onContainer":this.selected};return u.html` <li
2
- tabindex="0"
3
- class="${this.classMap(t)}"
4
- role="option"
5
- @click=${e=>{e.stopPropagation(),e.preventDefault(),this.handleOptionClick(this.value)}}
6
- @keydown=${e=>{e.key!=="Enter"&&e.key!==" "||(e.stopPropagation(),e.preventDefault(),this.handleOptionClick(this.value))}}
7
- >
8
- <div class="${this.classMap({"duration-500 transition-opacity":!0,"hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0":!0})}"></div>
9
- <schmancy-flex align="center" justify="between">
10
- <slot></slot>
11
- <slot name="support"></slot>
12
- </schmancy-flex>
13
- </li>`}};n([i.property({type:String,reflect:!0})],o.prototype,"value",2),n([i.property({type:String,reflect:!0})],o.prototype,"label",2),n([i.property({type:Boolean})],o.prototype,"selected",2),o=n([i.customElement("schmancy-option")],o);
14
- //# sourceMappingURL=option-lA0IV4VJ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-lA0IV4VJ.cjs","sources":["../src/option/option.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nexport type SchmancyOptionChangeEvent = CustomEvent<{\n\tvalue: string\n\tlabel: string\n}>\n@customElement('schmancy-option')\nexport default class SchmancyOption extends TailwindElement() {\n\t@property({ type: String, reflect: true }) value: string = ''\n\t@property({ type: String, reflect: true }) label: string | undefined\n\t@property({ type: Boolean }) selected: boolean = false\n\n\thandleOptionClick(option: string) {\n\t\tthis.value = option\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent('click', {\n\t\t\t\tdetail: { value: option, label: this.label ?? this.innerText },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}) as SchmancyOptionChangeEvent,\n\t\t)\n\t}\n\n\tprotected render(): unknown {\n\t\tconst classes = {\n\t\t\t'font-semibold relative cursor-pointer py-2 px-3': true,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\t\tconst stateLayerClasses = {\n\t\t\t'duration-500 transition-opacity': true,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0': true,\n\t\t}\n\n\t\treturn html` <li\n\t\t\ttabindex=\"0\"\n\t\t\tclass=\"${this.classMap(classes)}\"\n\t\t\trole=\"option\"\n\t\t\t@click=${e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.handleOptionClick(this.value)\n\t\t\t}}\n\t\t\t@keydown=${e => {\n\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\te.stopPropagation()\n\t\t\t\t\te.preventDefault()\n\t\t\t\t\tthis.handleOptionClick(this.value)\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<div class=\"${this.classMap(stateLayerClasses)}\"></div>\n\t\t\t<schmancy-flex align=\"center\" justify=\"between\">\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"support\"></slot>\n\t\t\t</schmancy-flex>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-option': SchmancyOption\n\t}\n}\n"],"names":["SchmancyOption","TailwindElement","super","arguments","this","value","selected","option","dispatchEvent","CustomEvent","detail","label","innerText","bubbles","composed","render","classes","html","classMap","e","stopPropagation","preventDefault","handleOptionClick","key","__decorateClass","property","type","String","reflect","prototype","Boolean","customElement"],"mappings":"4YAQA,IAAqBA,EAArB,cAA4CC,EAAAA,gBAA5C,CAAA,CAAA,aAAAC,CAAAA,MAAAA,GAAAC,SAC4DC,EAAAA,KAAAC,MAAA,GAEVD,KAAAE,SAAAA,EAAA,CAEjD,kBAAkBC,EACjBH,CAAAA,KAAKC,MAAQE,EACRH,KAAAI,cACJ,IAAIC,YAAY,QAAS,CACxBC,OAAQ,CAAEL,MAAOE,EAAQI,MAAOP,KAAKO,OAASP,KAAKQ,SACnDC,EAAAA,QAAAA,GACAC,SAAAA,EAEF,CAAA,CAAA,CAAA,CAGS,QAAAC,CACT,MAAMC,EAAU,CACf,kDAAA,GACA,oDAAqDZ,KAAKE,QAAAA,EAOpD,OAAAW;;YAEGb,KAAKc,SAASF,CAAAA,CAAAA;AAAAA;AAAAA,YAETG,GAAAA,CACbA,EAAEC,gBACFD,EAAAA,EAAEE,iBACGjB,KAAAkB,kBAAkBlB,KAAKC,KAAK,CAAA,CAAA;AAAA,cAElBc,GAAAA,CACXA,EAAEI,MAAQ,SAAWJ,EAAEI,MAAQ,MAClCJ,EAAEC,gBAAAA,EACFD,EAAEE,eAAAA,EACGjB,KAAAkB,kBAAkBlB,KAAKC,KAAK,EAAA,CAAA;AAAA;AAAA,iBAIrBD,KAAKc,SAtBM,CACzB,kCAAmC,GACnC,qEAAsE,EAAA,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAoBxB,CAAA,EA1CLM,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAS,EAAA,CAAA,CAAA,EADf5B,EACuB6B,UAAA,QAAA,GACAL,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMC,OAAQC,QAAAA,EAFN5B,CAAAA,CAAAA,EAAAA,EAEuB6B,UAAA,QAAA,CAAA,EACdL,EAAA,CAA5BC,WAAS,CAAEC,KAAMI,WAHE9B,EAGS6B,UAAA,WAAA,CAHT7B,EAAAA,EAArBwB,EAAA,CADCO,EAAAA,cAAc,iBACM/B,CAAAA,EAAAA,CAAAA"}