@mhmo91/schmancy 0.2.37 → 0.2.39

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 (252) hide show
  1. package/dist/{animated-text-C5zM-91H.cjs → animated-text-B3UYCBgB.cjs} +2 -2
  2. package/dist/{animated-text-C5zM-91H.cjs.map → animated-text-B3UYCBgB.cjs.map} +1 -1
  3. package/dist/{animated-text-IHZ7LNnc.js → animated-text-D6s-YOrx.js} +3 -3
  4. package/dist/{animated-text-IHZ7LNnc.js.map → animated-text-D6s-YOrx.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-DCLLi1YA.cjs → area.component-CNHbzqRX.cjs} +2 -2
  9. package/dist/{area.component-DCLLi1YA.cjs.map → area.component-CNHbzqRX.cjs.map} +1 -1
  10. package/dist/{area.component-BrPf_qdG.js → area.component-xeDLv_CE.js} +3 -3
  11. package/dist/{area.component-BrPf_qdG.js.map → area.component-xeDLv_CE.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/autocomplete-Cz4oZQBB.js +225 -0
  14. package/dist/autocomplete-Cz4oZQBB.js.map +1 -0
  15. package/dist/autocomplete-D71XBwSj.cjs +48 -0
  16. package/dist/autocomplete-D71XBwSj.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-BdsGj_z6.cjs → checkbox-CQvBkjyb.cjs} +2 -2
  26. package/dist/{checkbox-BdsGj_z6.cjs.map → checkbox-CQvBkjyb.cjs.map} +1 -1
  27. package/dist/{checkbox-DV8tPYX0.js → checkbox-DCRZj150.js} +2 -2
  28. package/dist/{checkbox-DV8tPYX0.js.map → checkbox-DCRZj150.js.map} +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.js +1 -1
  31. package/dist/{chips-Z8e_rQtM.cjs → chips-BUDT0jpL.cjs} +12 -12
  32. package/dist/{chips-Z8e_rQtM.cjs.map → chips-BUDT0jpL.cjs.map} +1 -1
  33. package/dist/{chips-Ca-SY6mg.js → chips-DStbVgUo.js} +36 -36
  34. package/dist/{chips-Ca-SY6mg.js.map → chips-DStbVgUo.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-BjIt4Ocb.cjs +72 -0
  42. package/dist/date-range-BjIt4Ocb.cjs.map +1 -0
  43. package/dist/date-range-D_zg5C9O.js +148 -0
  44. package/dist/date-range-D_zg5C9O.js.map +1 -0
  45. package/dist/date-range.cjs +1 -1
  46. package/dist/date-range.js +1 -1
  47. package/dist/{delay-DsFVHHw2.cjs → delay-D8wCtScV.cjs} +2 -2
  48. package/dist/{delay-DsFVHHw2.cjs.map → delay-D8wCtScV.cjs.map} +1 -1
  49. package/dist/{delay-BWLlCMKV.js → delay-LxXCSBHq.js} +2 -2
  50. package/dist/{delay-BWLlCMKV.js.map → delay-LxXCSBHq.js.map} +1 -1
  51. package/dist/delay.cjs +1 -1
  52. package/dist/delay.js +1 -1
  53. package/dist/{divider-B7kWs-q5.js → divider-BSEoJ09J.js} +3 -3
  54. package/dist/{divider-B7kWs-q5.js.map → divider-BSEoJ09J.js.map} +1 -1
  55. package/dist/{divider-CjgOM462.cjs → divider-lCnFIhkp.cjs} +2 -2
  56. package/dist/{divider-CjgOM462.cjs.map → divider-lCnFIhkp.cjs.map} +1 -1
  57. package/dist/divider.cjs +1 -1
  58. package/dist/divider.js +1 -1
  59. package/dist/{form-DyYGOlOR.cjs → form-Bf2BlAqE.cjs} +2 -2
  60. package/dist/{form-DyYGOlOR.cjs.map → form-Bf2BlAqE.cjs.map} +1 -1
  61. package/dist/{form-BUV1hUzI.js → form-C-1W3Aqc.js} +2 -2
  62. package/dist/{form-BUV1hUzI.js.map → form-C-1W3Aqc.js.map} +1 -1
  63. package/dist/form.cjs +1 -1
  64. package/dist/form.js +1 -1
  65. package/dist/{icon-CWvUTBIP.js → icon-CXD3W__G.js} +3 -3
  66. package/dist/{icon-CWvUTBIP.js.map → icon-CXD3W__G.js.map} +1 -1
  67. package/dist/{icon-DPN7kWO0.cjs → icon-Wj9hmgVr.cjs} +2 -2
  68. package/dist/{icon-DPN7kWO0.cjs.map → icon-Wj9hmgVr.cjs.map} +1 -1
  69. package/dist/{icon-button-DHiO0w8J.cjs → icon-button-C0bTDyZI.cjs} +2 -2
  70. package/dist/{icon-button-DHiO0w8J.cjs.map → icon-button-C0bTDyZI.cjs.map} +1 -1
  71. package/dist/{icon-button-CbEs8eyS.js → icon-button-CRWWdZ-S.js} +3 -3
  72. package/dist/{icon-button-CbEs8eyS.js.map → icon-button-CRWWdZ-S.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-BQtGX-Fg.js +137 -0
  78. package/dist/input-BQtGX-Fg.js.map +1 -0
  79. package/dist/input-DRhsCSxi.cjs +53 -0
  80. package/dist/input-DRhsCSxi.cjs.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-D3m-rd6d.js → list-CUpWM7R0.js} +2 -2
  86. package/dist/{list-D3m-rd6d.js.map → list-CUpWM7R0.js.map} +1 -1
  87. package/dist/{list-Cq9RDYF_.cjs → list-bbSGS1sE.cjs} +2 -2
  88. package/dist/{list-Cq9RDYF_.cjs.map → list-bbSGS1sE.cjs.map} +1 -1
  89. package/dist/list.cjs +1 -1
  90. package/dist/list.js +1 -1
  91. package/dist/{litElement.mixin-DWxwPXWQ.cjs → litElement.mixin-CYwiYZyZ.cjs} +2 -2
  92. package/dist/{litElement.mixin-DWxwPXWQ.cjs.map → litElement.mixin-CYwiYZyZ.cjs.map} +1 -1
  93. package/dist/{litElement.mixin-CjxO_zfv.js → litElement.mixin-DoKCdkhO.js} +2 -2
  94. package/dist/{litElement.mixin-CjxO_zfv.js.map → litElement.mixin-DoKCdkhO.js.map} +1 -1
  95. package/dist/menu-CXDFSHgu.cjs +29 -0
  96. package/dist/menu-CXDFSHgu.cjs.map +1 -0
  97. package/dist/{menu-CCQYHiy2.js → menu-DGFcpetb.js} +29 -27
  98. package/dist/menu-DGFcpetb.js.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-BKHQU-_I.cjs +18 -0
  106. package/dist/option-BKHQU-_I.cjs.map +1 -0
  107. package/dist/option-Cr7OiYc5.js +45 -0
  108. package/dist/option-Cr7OiYc5.js.map +1 -0
  109. package/dist/option.cjs +1 -1
  110. package/dist/option.js +1 -1
  111. package/dist/{outlet-u1_Qa8Li.cjs → outlet-BZSpbcNh.cjs} +2 -2
  112. package/dist/{outlet-u1_Qa8Li.cjs.map → outlet-BZSpbcNh.cjs.map} +1 -1
  113. package/dist/{outlet-BsrhXTEg.js → outlet-D39IYQgF.js} +2 -2
  114. package/dist/{outlet-BsrhXTEg.js.map → outlet-D39IYQgF.js.map} +1 -1
  115. package/dist/{payment-card-form-CTZsSGOB.js → payment-card-form-MU2rWtCN.js} +3 -3
  116. package/dist/{payment-card-form-CTZsSGOB.js.map → payment-card-form-MU2rWtCN.js.map} +1 -1
  117. package/dist/{payment-card-form-B7tV2ttW.cjs → payment-card-form-jktK4YkR.cjs} +2 -2
  118. package/dist/{payment-card-form-B7tV2ttW.cjs.map → payment-card-form-jktK4YkR.cjs.map} +1 -1
  119. package/dist/{radio-group-dN2lWcFu.js → radio-group-Cbcn7M8H.js} +2 -2
  120. package/dist/{radio-group-dN2lWcFu.js.map → radio-group-Cbcn7M8H.js.map} +1 -1
  121. package/dist/{radio-group-m5Swl5cq.cjs → radio-group-DnpFVpBo.cjs} +2 -2
  122. package/dist/{radio-group-m5Swl5cq.cjs.map → radio-group-DnpFVpBo.cjs.map} +1 -1
  123. package/dist/radio-group.cjs +1 -1
  124. package/dist/radio-group.js +1 -1
  125. package/dist/scroll-DNj5rrzc.cjs +33 -0
  126. package/dist/scroll-DNj5rrzc.cjs.map +1 -0
  127. package/dist/{scroll-CYzhWpN5.js → scroll-moSwU3Ry.js} +29 -29
  128. package/dist/scroll-moSwU3Ry.js.map +1 -0
  129. package/dist/select-DEOnUayG.cjs +52 -0
  130. package/dist/select-DEOnUayG.cjs.map +1 -0
  131. package/dist/select-Dmhiq26e.js +156 -0
  132. package/dist/select-Dmhiq26e.js.map +1 -0
  133. package/dist/select.cjs +1 -1
  134. package/dist/select.js +4 -1
  135. package/dist/{sheet-BGNoewvS.js → sheet-BDPiwpWN.js} +3 -3
  136. package/dist/{sheet-BGNoewvS.js.map → sheet-BDPiwpWN.js.map} +1 -1
  137. package/dist/{sheet-DPHbRnXg.cjs → sheet-CgaQ6pVJ.cjs} +2 -2
  138. package/dist/{sheet-DPHbRnXg.cjs.map → sheet-CgaQ6pVJ.cjs.map} +1 -1
  139. package/dist/sheet.cjs +1 -1
  140. package/dist/sheet.js +1 -1
  141. package/dist/{slider-FTwWTvKi.js → slider-D-cIdjqg.js} +3 -3
  142. package/dist/{slider-FTwWTvKi.js.map → slider-D-cIdjqg.js.map} +1 -1
  143. package/dist/{slider-ds6hnN7n.cjs → slider-Dbz2ehmj.cjs} +2 -2
  144. package/dist/{slider-ds6hnN7n.cjs.map → slider-Dbz2ehmj.cjs.map} +1 -1
  145. package/dist/slider.cjs +1 -1
  146. package/dist/slider.js +1 -1
  147. package/dist/{spinner-8GhT-bLm.cjs → spinner-COoBI2kA.cjs} +2 -2
  148. package/dist/{spinner-8GhT-bLm.cjs.map → spinner-COoBI2kA.cjs.map} +1 -1
  149. package/dist/{spinner-zxOxMm7j.js → spinner-qHgA76_k.js} +3 -3
  150. package/dist/{spinner-zxOxMm7j.js.map → spinner-qHgA76_k.js.map} +1 -1
  151. package/dist/surface-BALOUsnP.js +46 -0
  152. package/dist/surface-BALOUsnP.js.map +1 -0
  153. package/dist/surface-DI4R4vjx.cjs +13 -0
  154. package/dist/surface-DI4R4vjx.cjs.map +1 -0
  155. package/dist/surface.cjs +1 -1
  156. package/dist/surface.js +1 -1
  157. package/dist/{table-6bRKgCJ9.js → table-C3YCvbyA.js} +2 -2
  158. package/dist/{table-6bRKgCJ9.js.map → table-C3YCvbyA.js.map} +1 -1
  159. package/dist/{table-BDIhXdSA.cjs → table-DVqYwon7.cjs} +2 -2
  160. package/dist/{table-BDIhXdSA.cjs.map → table-DVqYwon7.cjs.map} +1 -1
  161. package/dist/table.cjs +1 -1
  162. package/dist/table.js +1 -1
  163. package/dist/{tabs-group-CHAAr7Wl.cjs → tabs-group-CM9Hd80d.cjs} +2 -2
  164. package/dist/{tabs-group-CHAAr7Wl.cjs.map → tabs-group-CM9Hd80d.cjs.map} +1 -1
  165. package/dist/{tabs-group-DBybIi8n.js → tabs-group-DtvVC_nM.js} +2 -2
  166. package/dist/{tabs-group-DBybIi8n.js.map → tabs-group-DtvVC_nM.js.map} +1 -1
  167. package/dist/tabs.cjs +1 -1
  168. package/dist/tabs.js +1 -1
  169. package/dist/{tailwind.mixin-_mD_GeAp.cjs → tailwind.mixin-BmIP1Qzo.cjs} +2 -2
  170. package/dist/{tailwind.mixin-_mD_GeAp.cjs.map → tailwind.mixin-BmIP1Qzo.cjs.map} +1 -1
  171. package/dist/{tailwind.mixin-DtR4DQvn.js → tailwind.mixin-CHPxMV8E.js} +14 -14
  172. package/dist/{tailwind.mixin-DtR4DQvn.js.map → tailwind.mixin-CHPxMV8E.js.map} +1 -1
  173. package/dist/teleport.cjs +1 -1
  174. package/dist/{teleport.component-7icDz3cN.js → teleport.component-BQTFUlsF.js} +35 -35
  175. package/dist/{teleport.component-7icDz3cN.js.map → teleport.component-BQTFUlsF.js.map} +1 -1
  176. package/dist/{teleport.component-D0RU6Zml.cjs → teleport.component-hBN2zB0w.cjs} +2 -2
  177. package/dist/{teleport.component-D0RU6Zml.cjs.map → teleport.component-hBN2zB0w.cjs.map} +1 -1
  178. package/dist/teleport.js +1 -1
  179. package/dist/{textarea-CJhi4hDu.cjs → textarea-C8bsVuSe.cjs} +2 -2
  180. package/dist/{textarea-CJhi4hDu.cjs.map → textarea-C8bsVuSe.cjs.map} +1 -1
  181. package/dist/{textarea-BchwVUAo.js → textarea-D7ZLtbVj.js} +2 -2
  182. package/dist/{textarea-BchwVUAo.js.map → textarea-D7ZLtbVj.js.map} +1 -1
  183. package/dist/textarea.cjs +1 -1
  184. package/dist/textarea.js +1 -1
  185. package/dist/{theme-button-dxTV0k03.js → theme-button-CcHxfORU.js} +2 -2
  186. package/dist/{theme-button-dxTV0k03.js.map → theme-button-CcHxfORU.js.map} +1 -1
  187. package/dist/{theme-button-DoIFEVSv.cjs → theme-button-fUwuhdHz.cjs} +2 -2
  188. package/dist/{theme-button-DoIFEVSv.cjs.map → theme-button-fUwuhdHz.cjs.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-Dhm3MpVW.cjs → theme.component-ByOov4NR.cjs} +2 -2
  193. package/dist/{theme.component-Dhm3MpVW.cjs.map → theme.component-ByOov4NR.cjs.map} +1 -1
  194. package/dist/{theme.component-DwZx0sdk.js → theme.component-D4gPoycY.js} +2 -2
  195. package/dist/{theme.component-DwZx0sdk.js.map → theme.component-D4gPoycY.js.map} +1 -1
  196. package/dist/theme.js +1 -1
  197. package/dist/{tree-BkhYPaz6.cjs → tree-DJQKaG-K.cjs} +2 -2
  198. package/dist/{tree-BkhYPaz6.cjs.map → tree-DJQKaG-K.cjs.map} +1 -1
  199. package/dist/{tree-C7GnGCWU.js → tree-DW_S-LL9.js} +2 -2
  200. package/dist/{tree-C7GnGCWU.js.map → tree-DW_S-LL9.js.map} +1 -1
  201. package/dist/tree.cjs +1 -1
  202. package/dist/tree.js +1 -1
  203. package/dist/{typewriter-DfOKVMWh.js → typewriter-_3w-aV-9.js} +4 -4
  204. package/dist/{typewriter-DfOKVMWh.js.map → typewriter-_3w-aV-9.js.map} +1 -1
  205. package/dist/{typewriter-DGIW1V_b.cjs → typewriter-jDCMhixI.cjs} +2 -2
  206. package/dist/{typewriter-DGIW1V_b.cjs.map → typewriter-jDCMhixI.cjs.map} +1 -1
  207. package/dist/typewriter.cjs +1 -1
  208. package/dist/typewriter.js +1 -1
  209. package/dist/{typography-DQHpwRFR.cjs → typography-BhqtMVYz.cjs} +2 -2
  210. package/dist/{typography-DQHpwRFR.cjs.map → typography-BhqtMVYz.cjs.map} +1 -1
  211. package/dist/{typography-En0tk2d5.js → typography-GzUb3OWl.js} +2 -2
  212. package/dist/{typography-En0tk2d5.js.map → typography-GzUb3OWl.js.map} +1 -1
  213. package/dist/typography.cjs +1 -1
  214. package/dist/typography.js +1 -1
  215. package/package.json +2 -2
  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-CcDfKbfJ.js +0 -212
  224. package/dist/autocomplete-CcDfKbfJ.js.map +0 -1
  225. package/dist/autocomplete-Dfq-Rhjy.cjs +0 -43
  226. package/dist/autocomplete-Dfq-Rhjy.cjs.map +0 -1
  227. package/dist/date-range-CDX0VlcK.cjs +0 -58
  228. package/dist/date-range-CDX0VlcK.cjs.map +0 -1
  229. package/dist/date-range-DdGaWGVn.js +0 -130
  230. package/dist/date-range-DdGaWGVn.js.map +0 -1
  231. package/dist/input-2kqgsr0S.cjs +0 -43
  232. package/dist/input-2kqgsr0S.cjs.map +0 -1
  233. package/dist/input-D3hti5wB.js +0 -124
  234. package/dist/input-D3hti5wB.js.map +0 -1
  235. package/dist/menu-CCQYHiy2.js.map +0 -1
  236. package/dist/menu-ifiBMg-F.cjs +0 -31
  237. package/dist/menu-ifiBMg-F.cjs.map +0 -1
  238. package/dist/option-CM24cDF6.js +0 -40
  239. package/dist/option-CM24cDF6.js.map +0 -1
  240. package/dist/option-DOBWmGE5.cjs +0 -14
  241. package/dist/option-DOBWmGE5.cjs.map +0 -1
  242. package/dist/scroll-CCExKwoj.cjs +0 -33
  243. package/dist/scroll-CCExKwoj.cjs.map +0 -1
  244. package/dist/scroll-CYzhWpN5.js.map +0 -1
  245. package/dist/select-BakBo7W1.js +0 -99
  246. package/dist/select-BakBo7W1.js.map +0 -1
  247. package/dist/select-ljp7-IxH.cjs +0 -46
  248. package/dist/select-ljp7-IxH.cjs.map +0 -1
  249. package/dist/surface-AT93K5Zv.cjs +0 -7
  250. package/dist/surface-AT93K5Zv.cjs.map +0 -1
  251. package/dist/surface-DJMJ2MOG.js +0 -40
  252. package/dist/surface-DJMJ2MOG.js.map +0 -1
@@ -1,130 +0,0 @@
1
- import "rxjs";
2
- import "lit/directives/class-map.js";
3
- import "lit/directives/style-map.js";
4
- import { $ as u } from "./litElement.mixin-CjxO_zfv.js";
5
- import "./tailwind.mixin-DtR4DQvn.js";
6
- import { html as p } from "lit";
7
- import { property as d, query as m, state as y, customElement as g } from "lit/decorators.js";
8
- import { ifDefined as l } from "lit/directives/if-defined.js";
9
- import a from "moment";
10
- var f = Object.defineProperty, D = Object.getOwnPropertyDescriptor, n = (t, e, s, r) => {
11
- for (var c, i = r > 1 ? void 0 : r ? D(e, s) : e, h = t.length - 1; h >= 0; h--) (c = t[h]) && (i = (r ? c(e, s, i) : c(i)) || i);
12
- return r && i && f(e, s, i), i;
13
- };
14
- let o = class extends u() {
15
- constructor() {
16
- super(...arguments), this.type = "date", this.selectedDateRange = "Today";
17
- }
18
- connectedCallback() {
19
- super.connectedCallback(), this.initPresetRanges(), this.updateSelectedDateRange();
20
- }
21
- updated(t) {
22
- t.has("type") && (this.initPresetRanges(), this.updateSelectedDateRange());
23
- }
24
- getDateFormat() {
25
- return this.type === "date" ? "YYYY-MM-DD" : "YYYY-MM-DDTHH:mm";
26
- }
27
- getDisplayFormat() {
28
- return this.type === "date" ? "MMM DD, YYYY" : "MMM DD, YYYY hh:mm A";
29
- }
30
- initPresetRanges() {
31
- const t = this.getDateFormat();
32
- this.presetRanges = [{ label: "Yesterday", range: { dateFrom: a().subtract(1, "days").startOf("day").format(t), dateTo: a().subtract(1, "days").endOf("day").format(t) }, step: "day" }, { label: "Today", range: { dateFrom: a().startOf("day").format(t), dateTo: a().endOf("day").format(t) }, step: "day" }, { label: "Tomorrow", range: { dateFrom: a().add(1, "days").startOf("day").format(t), dateTo: a().add(1, "days").endOf("day").format(t) }, step: "day" }, { label: "This Week", range: { dateFrom: a().startOf("isoWeek").format(t), dateTo: a().endOf("isoWeek").format(t) }, step: "week" }, { label: "Last Week", range: { dateFrom: a().subtract(1, "weeks").startOf("isoWeek").format(t), dateTo: a().subtract(1, "weeks").endOf("isoWeek").format(t) }, step: "week" }, { label: "This Month", range: { dateFrom: a().startOf("month").format(t), dateTo: a().endOf("month").format(t) }, step: "month" }];
33
- }
34
- updateSelectedDateRange() {
35
- const t = this.presetRanges.find((e) => e.range.dateFrom === this.dateFrom.value && e.range.dateTo === this.dateTo.value);
36
- this.selectedDateRange = t ? t.label : `${a(this.dateFrom.value).format(this.getDisplayFormat())} - ${a(this.dateTo.value).format(this.getDisplayFormat())}`;
37
- }
38
- setDateRange(t, e) {
39
- this.dateFrom.value = t, this.dateTo.value = e, this.dispatchEvent(new CustomEvent("change", { detail: { dateFrom: t, dateTo: e } })), this.requestUpdate();
40
- }
41
- handlePresetChange(t) {
42
- const e = this.presetRanges.find((s) => s.label === t);
43
- if (e) {
44
- const { dateFrom: s, dateTo: r } = e.range;
45
- this.setDateRange(s, r), this.selectedDateRange = t, this.schmancyMenu.open = !1;
46
- }
47
- }
48
- handleDateRangeChange() {
49
- this.setDateRange(this.dateFrom.value, this.dateTo.value), this.updateSelectedDateRange(), this.schmancyMenu.open = !1;
50
- }
51
- shiftDateRange(t) {
52
- const e = this.getDateFormat(), s = a(this.dateTo.value).diff(a(this.dateFrom.value), "days") || 1, r = a(this.dateFrom.value).add(t * s, "days").format(e), c = a(this.dateTo.value).add(t * s, "days").format(e);
53
- this.setDateRange(r, c), this.updateSelectedDateRange();
54
- }
55
- render() {
56
- return p`
57
- <div class="date-range-selector relative">
58
- <schmancy-menu class="z-100 w-max">
59
- <!-- The button slot: left/right arrows and the display text -->
60
- <schmancy-grid slot="button" align="center" cols="auto 1fr auto">
61
- <schmancy-icon-button
62
- @click=${(t) => {
63
- t.preventDefault(), t.stopPropagation(), this.shiftDateRange(-1);
64
- }}
65
- >
66
- arrow_left
67
- </schmancy-icon-button>
68
- <schmancy-button class="w-max" variant="outlined" type="button">
69
- ${this.selectedDateRange || "Date range"}
70
- </schmancy-button>
71
- <schmancy-icon-button
72
- @click=${(t) => {
73
- t.preventDefault(), t.stopPropagation(), this.shiftDateRange(1);
74
- }}
75
- >
76
- arrow_right
77
- </schmancy-icon-button>
78
- </schmancy-grid>
79
-
80
- <!-- The menu surface -->
81
- <schmancy-surface elevation="2">
82
- ${this.presetRanges.map((t) => p`
83
- <schmancy-menu-item class="w-full" @click=${() => this.handlePresetChange(t.label)}>
84
- <schmancy-grid class="w-full" align="center" cols="auto 1fr auto"> ${t.label} </schmancy-grid>
85
- </schmancy-menu-item>
86
- `)}
87
- <schmancy-grid gap="sm" flow="row" class="p-4">
88
- <schmancy-input
89
- id="checkin"
90
- min=${l(this.minDate)}
91
- .type=${this.type}
92
- label="${this.dateFrom.label}"
93
- .value=${this.dateFrom.value}
94
- @change=${(t) => {
95
- t.preventDefault(), t.stopPropagation();
96
- const e = this.getDateFormat(), s = a(t.detail.value, e).format(e);
97
- this.dateFrom.value = s, this.checkOutInput.setAttribute("min", s);
98
- }}
99
- ></schmancy-input>
100
- <schmancy-input
101
- id="checkout"
102
- min=${l(this.dateFrom.value)}
103
- max=${l(this.maxDate)}
104
- .type=${this.type}
105
- label="${this.dateTo.label}"
106
- .value=${this.dateTo.value}
107
- @change=${(t) => {
108
- t.preventDefault(), t.stopPropagation();
109
- const e = this.getDateFormat(), s = a(t.detail.value, e).format(e);
110
- this.dateTo.value = s;
111
- }}
112
- ></schmancy-input>
113
-
114
- <schmancy-button
115
- variant="outlined"
116
- @click=${(t) => {
117
- t.preventDefault(), t.stopPropagation(), this.handleDateRangeChange();
118
- }}
119
- >
120
- Apply
121
- </schmancy-button>
122
- </schmancy-grid>
123
- </schmancy-surface>
124
- </schmancy-menu>
125
- </div>
126
- `;
127
- }
128
- };
129
- n([d({ type: String })], o.prototype, "type", 2), n([d({ type: Object })], o.prototype, "dateFrom", 2), n([d({ type: Object })], o.prototype, "dateTo", 2), n([d({ type: String })], o.prototype, "minDate", 2), n([d({ type: String })], o.prototype, "maxDate", 2), n([m("#checkin")], o.prototype, "checkInInput", 2), n([m("#checkout")], o.prototype, "checkOutInput", 2), n([m("schmancy-menu")], o.prototype, "schmancyMenu", 2), n([y()], o.prototype, "selectedDateRange", 2), o = n([g("schmancy-date-range")], o);
130
- //# sourceMappingURL=date-range-DdGaWGVn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-DdGaWGVn.js","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","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,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-_mD_GeAp.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-2kqgsr0S.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-2kqgsr0S.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,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-DtR4DQvn.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-D3hti5wB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-D3hti5wB.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 +0,0 @@
1
- {"version":3,"file":"menu-CCQYHiy2.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,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-DWxwPXWQ.cjs"),b=require("./tailwind.mixin-_mD_GeAp.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-ifiBMg-F.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-ifiBMg-F.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,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-DtR4DQvn.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-CM24cDF6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-CM24cDF6.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-_mD_GeAp.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-DOBWmGE5.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"option-DOBWmGE5.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"}