@mhmo91/schmancy 0.2.114 → 0.2.116

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 (305) hide show
  1. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Bold.woff +0 -0
  2. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Light.woff +0 -0
  3. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Medium.woff +0 -0
  4. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Regular.woff +0 -0
  5. package/dist/GT-Eesti/GT-Eesti-Pro-Display-Thin.woff +0 -0
  6. package/dist/GT-Eesti/GT-Eesti-Pro-Display-UBold.woff +0 -0
  7. package/dist/GT-Eesti/GT-Eesti-Pro-Display-ULight.woff +0 -0
  8. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold-Italic.woff +0 -0
  9. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Bold.woff +0 -0
  10. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book-Italic.woff +0 -0
  11. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Book.woff +0 -0
  12. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Light.woff +0 -0
  13. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium-Italic.woff +0 -0
  14. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Medium.woff +0 -0
  15. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Regular.woff +0 -0
  16. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin-Italic.woff +0 -0
  17. package/dist/GT-Eesti/GT-Eesti-Pro-Text-Thin.woff +0 -0
  18. package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight-Italic.woff +0 -0
  19. package/dist/GT-Eesti/GT-Eesti-Pro-Text-ULight.woff +0 -0
  20. package/dist/GT-Eesti/GT-Eesti-Text-Regular.woff2 +0 -0
  21. package/dist/{animated-text-B576YswO.cjs → animated-text-DmtCT-2q.cjs} +2 -2
  22. package/dist/{animated-text-B576YswO.cjs.map → animated-text-DmtCT-2q.cjs.map} +1 -1
  23. package/dist/{animated-text-BuRbVM-X.js → animated-text-DrH4Miy7.js} +3 -3
  24. package/dist/{animated-text-BuRbVM-X.js.map → animated-text-DrH4Miy7.js.map} +1 -1
  25. package/dist/animated-text.cjs +1 -1
  26. package/dist/animated-text.js +1 -1
  27. package/dist/area.cjs +1 -1
  28. package/dist/{area.component-BFj0Dvfb.cjs → area.component-Bg1zJKiZ.cjs} +2 -2
  29. package/dist/{area.component-BFj0Dvfb.cjs.map → area.component-Bg1zJKiZ.cjs.map} +1 -1
  30. package/dist/{area.component-Bo5aB8BH.js → area.component-CmsssAq_.js} +10 -10
  31. package/dist/{area.component-Bo5aB8BH.js.map → area.component-CmsssAq_.js.map} +1 -1
  32. package/dist/area.js +1 -1
  33. package/dist/autocomplete-BFj0YUYW.cjs +57 -0
  34. package/dist/autocomplete-BFj0YUYW.cjs.map +1 -0
  35. package/dist/autocomplete-BsrWuTsP.js +295 -0
  36. package/dist/autocomplete-BsrWuTsP.js.map +1 -0
  37. package/dist/autocomplete.cjs +1 -1
  38. package/dist/autocomplete.js +1 -1
  39. package/dist/busy.cjs +1 -1
  40. package/dist/busy.js +1 -1
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.js +1 -1
  43. package/dist/card.cjs +1 -1
  44. package/dist/card.js +1 -1
  45. package/dist/{checkbox-FM06WS9G.cjs → checkbox-Cb7nmI6P.cjs} +2 -2
  46. package/dist/{checkbox-FM06WS9G.cjs.map → checkbox-Cb7nmI6P.cjs.map} +1 -1
  47. package/dist/{checkbox-DQYRlKod.js → checkbox-DUP_qnel.js} +2 -2
  48. package/dist/{checkbox-DQYRlKod.js.map → checkbox-DUP_qnel.js.map} +1 -1
  49. package/dist/checkbox.cjs +1 -1
  50. package/dist/checkbox.js +1 -1
  51. package/dist/{chips-DTDFQDv-.js → chips-0hsW-Rxx.js} +14 -14
  52. package/dist/{chips-DTDFQDv-.js.map → chips-0hsW-Rxx.js.map} +1 -1
  53. package/dist/{chips-CJZbtp-O.cjs → chips-CiesiXpI.cjs} +2 -2
  54. package/dist/{chips-CJZbtp-O.cjs.map → chips-CiesiXpI.cjs.map} +1 -1
  55. package/dist/chips.cjs +1 -1
  56. package/dist/chips.js +1 -1
  57. package/dist/color-D8r6dpWm.cjs +2 -0
  58. package/dist/color-D8r6dpWm.cjs.map +1 -0
  59. package/dist/color-DrgmL7QT.js +19 -0
  60. package/dist/color-DrgmL7QT.js.map +1 -0
  61. package/dist/components.cjs +1 -1
  62. package/dist/components.js +1 -1
  63. package/dist/content-drawer.cjs +1 -1
  64. package/dist/content-drawer.js +1 -1
  65. package/dist/{date-range-CZiZR3OZ.js → date-range-DF_kjOLs.js} +3 -3
  66. package/dist/{date-range-CZiZR3OZ.js.map → date-range-DF_kjOLs.js.map} +1 -1
  67. package/dist/{date-range-FxAO_oqk.cjs → date-range-DvTXqD8e.cjs} +2 -2
  68. package/dist/{date-range-FxAO_oqk.cjs.map → date-range-DvTXqD8e.cjs.map} +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-gZOjfjX_.js → delay-Cmf_vIaJ.js} +2 -2
  72. package/dist/{delay-gZOjfjX_.js.map → delay-Cmf_vIaJ.js.map} +1 -1
  73. package/dist/{delay-Dzei5ynQ.cjs → delay-DhV8MSPZ.cjs} +2 -2
  74. package/dist/{delay-Dzei5ynQ.cjs.map → delay-DhV8MSPZ.cjs.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/directives.cjs +1 -1
  78. package/dist/directives.js +5 -4
  79. package/dist/directives.js.map +1 -1
  80. package/dist/{divider-nNk0E_jZ.cjs → divider-4ev5A0v0.cjs} +2 -2
  81. package/dist/{divider-nNk0E_jZ.cjs.map → divider-4ev5A0v0.cjs.map} +1 -1
  82. package/dist/{divider-B-JF8gre.js → divider-B7GoicdG.js} +3 -3
  83. package/dist/{divider-B-JF8gre.js.map → divider-B7GoicdG.js.map} +1 -1
  84. package/dist/divider.cjs +1 -1
  85. package/dist/divider.js +1 -1
  86. package/dist/extra.cjs +1 -1
  87. package/dist/extra.js +1 -1
  88. package/dist/{flex-INEcbqBe.cjs → flex-DFHDHleC.cjs} +2 -2
  89. package/dist/{flex-INEcbqBe.cjs.map → flex-DFHDHleC.cjs.map} +1 -1
  90. package/dist/{flex-CieqpOUS.js → flex-t4F0-R-c.js} +2 -2
  91. package/dist/{flex-CieqpOUS.js.map → flex-t4F0-R-c.js.map} +1 -1
  92. package/dist/{form-CKMp4UzU.cjs → form-D_ShigQq.cjs} +2 -2
  93. package/dist/{form-CKMp4UzU.cjs.map → form-D_ShigQq.cjs.map} +1 -1
  94. package/dist/{form-lcamXnkd.js → form-dVHTERy3.js} +2 -2
  95. package/dist/{form-lcamXnkd.js.map → form-dVHTERy3.js.map} +1 -1
  96. package/dist/form.cjs +1 -1
  97. package/dist/form.js +1 -1
  98. package/dist/{icon-BZqH7sp7.cjs → icon-BNyFKp0p.cjs} +2 -2
  99. package/dist/{icon-BZqH7sp7.cjs.map → icon-BNyFKp0p.cjs.map} +1 -1
  100. package/dist/{icon-CJrmUGTm.js → icon-C3PI8GgN.js} +3 -3
  101. package/dist/{icon-CJrmUGTm.js.map → icon-C3PI8GgN.js.map} +1 -1
  102. package/dist/{icon-button-nMHz4MDw.cjs → icon-button-D4D5bXCm.cjs} +2 -2
  103. package/dist/{icon-button-nMHz4MDw.cjs.map → icon-button-D4D5bXCm.cjs.map} +1 -1
  104. package/dist/{icon-button-BNn0qRfC.js → icon-button-Dr_-8Ey5.js} +3 -3
  105. package/dist/{icon-button-BNn0qRfC.js.map → icon-button-Dr_-8Ey5.js.map} +1 -1
  106. package/dist/icons.cjs +1 -1
  107. package/dist/icons.js +1 -1
  108. package/dist/index.cjs +1 -1
  109. package/dist/index.js +77 -74
  110. package/dist/index.js.map +1 -1
  111. package/dist/input-BHgBONgn.cjs +98 -0
  112. package/dist/input-BHgBONgn.cjs.map +1 -0
  113. package/dist/input-BgmQpY14.js +205 -0
  114. package/dist/input-BgmQpY14.js.map +1 -0
  115. package/dist/input-Bk7EZhOl.cjs +51 -0
  116. package/dist/input-Bk7EZhOl.cjs.map +1 -0
  117. package/dist/{input-CZX1sxBe.js → input-_XU4ILwo.js} +25 -24
  118. package/dist/input-_XU4ILwo.js.map +1 -0
  119. package/dist/input.cjs +1 -1
  120. package/dist/input.js +1 -1
  121. package/dist/layout.cjs +1 -1
  122. package/dist/layout.js +1 -1
  123. package/dist/{list-D4y-Mkap.cjs → list-CCrSL1bZ.cjs} +2 -2
  124. package/dist/{list-D4y-Mkap.cjs.map → list-CCrSL1bZ.cjs.map} +1 -1
  125. package/dist/{list-CjrF4M5H.js → list-r6mo_zcT.js} +2 -2
  126. package/dist/{list-CjrF4M5H.js.map → list-r6mo_zcT.js.map} +1 -1
  127. package/dist/list.cjs +1 -1
  128. package/dist/list.js +1 -1
  129. package/dist/{litElement.mixin-djlKJ0lX.cjs → litElement.mixin-CAXeI5RY.cjs} +2 -2
  130. package/dist/{litElement.mixin-djlKJ0lX.cjs.map → litElement.mixin-CAXeI5RY.cjs.map} +1 -1
  131. package/dist/{litElement.mixin-NzkxESus.js → litElement.mixin-DfYInjJd.js} +2 -2
  132. package/dist/{litElement.mixin-NzkxESus.js.map → litElement.mixin-DfYInjJd.js.map} +1 -1
  133. package/dist/{menu-DAtFS31a.cjs → menu-B6x8xZng.cjs} +2 -2
  134. package/dist/{menu-DAtFS31a.cjs.map → menu-B6x8xZng.cjs.map} +1 -1
  135. package/dist/{menu-Cb5kUAvU.js → menu-yboJ8_V4.js} +3 -3
  136. package/dist/{menu-Cb5kUAvU.js.map → menu-yboJ8_V4.js.map} +1 -1
  137. package/dist/menu.cjs +1 -1
  138. package/dist/menu.js +1 -1
  139. package/dist/mixins/formField.mixin.ts +223 -0
  140. package/dist/nav-drawer.cjs +1 -1
  141. package/dist/nav-drawer.js +1 -1
  142. package/dist/notification.cjs +1 -1
  143. package/dist/notification.js +1 -1
  144. package/dist/{option-CxalubCR.js → option-CmZo8fXU.js} +29 -13
  145. package/dist/option-CmZo8fXU.js.map +1 -0
  146. package/dist/option-gnBrhD_1.cjs +18 -0
  147. package/dist/option-gnBrhD_1.cjs.map +1 -0
  148. package/dist/option.cjs +1 -1
  149. package/dist/option.js +1 -1
  150. package/dist/{outlet-6HZp4fo1.js → outlet-BgJ_WOwi.js} +2 -2
  151. package/dist/{outlet-6HZp4fo1.js.map → outlet-BgJ_WOwi.js.map} +1 -1
  152. package/dist/{outlet-DofHDlGH.cjs → outlet-CSduKjEi.cjs} +2 -2
  153. package/dist/{outlet-DofHDlGH.cjs.map → outlet-CSduKjEi.cjs.map} +1 -1
  154. package/dist/payment-card-form-CVW9uWum.cjs +74 -0
  155. package/dist/{payment-card-form-Bi3yNg4b.cjs.map → payment-card-form-CVW9uWum.cjs.map} +1 -1
  156. package/dist/{payment-card-form-C8FxRlh4.js → payment-card-form-NUTic2b3.js} +183 -134
  157. package/dist/{payment-card-form-C8FxRlh4.js.map → payment-card-form-NUTic2b3.js.map} +1 -1
  158. package/dist/{radio-group-BapuNl8y.js → radio-group-Bl5nhDCh.js} +2 -2
  159. package/dist/{radio-group-BapuNl8y.js.map → radio-group-Bl5nhDCh.js.map} +1 -1
  160. package/dist/{radio-group-A5QxSGOr.cjs → radio-group-CTCnzxmZ.cjs} +2 -2
  161. package/dist/{radio-group-A5QxSGOr.cjs.map → radio-group-CTCnzxmZ.cjs.map} +1 -1
  162. package/dist/radio-group.cjs +1 -1
  163. package/dist/radio-group.js +1 -1
  164. package/dist/ripple-3indJ14o.js +64 -0
  165. package/dist/ripple-3indJ14o.js.map +1 -0
  166. package/dist/ripple-B_wT0zgD.cjs +16 -0
  167. package/dist/ripple-B_wT0zgD.cjs.map +1 -0
  168. package/dist/rxjs-utils.js +4 -4
  169. package/dist/{select-8AjN6LbM.js → select-C2TJxenH.js} +66 -41
  170. package/dist/select-C2TJxenH.js.map +1 -0
  171. package/dist/select-D3yrgnVD.cjs +56 -0
  172. package/dist/select-D3yrgnVD.cjs.map +1 -0
  173. package/dist/select.cjs +1 -1
  174. package/dist/select.js +1 -1
  175. package/dist/sheet-CwzonocJ.cjs +62 -0
  176. package/dist/sheet-CwzonocJ.cjs.map +1 -0
  177. package/dist/sheet-DHyy-OIH.js +244 -0
  178. package/dist/sheet-DHyy-OIH.js.map +1 -0
  179. package/dist/sheet.cjs +1 -1
  180. package/dist/sheet.js +1 -1
  181. package/dist/{slider-BakU-Bdw.js → slider-2mhXBUIM.js} +3 -3
  182. package/dist/{slider-BakU-Bdw.js.map → slider-2mhXBUIM.js.map} +1 -1
  183. package/dist/{slider-B4OCBlQg.cjs → slider-DCJHcXt1.cjs} +2 -2
  184. package/dist/{slider-B4OCBlQg.cjs.map → slider-DCJHcXt1.cjs.map} +1 -1
  185. package/dist/slider.cjs +1 -1
  186. package/dist/slider.js +1 -1
  187. package/dist/{spinner-BDx3SZsl.js → spinner-B9JHqmoP.js} +12 -11
  188. package/dist/{spinner-BDx3SZsl.js.map → spinner-B9JHqmoP.js.map} +1 -1
  189. package/dist/{spinner-C3VJtLgk.cjs → spinner-D-vtqMqq.cjs} +4 -4
  190. package/dist/{spinner-C3VJtLgk.cjs.map → spinner-D-vtqMqq.cjs.map} +1 -1
  191. package/dist/{surface-kjOrb8TO.cjs → surface-DLHFSFU6.cjs} +2 -2
  192. package/dist/{surface-kjOrb8TO.cjs.map → surface-DLHFSFU6.cjs.map} +1 -1
  193. package/dist/{surface-YiaJJQ5m.js → surface-O_-YGi6T.js} +2 -2
  194. package/dist/{surface-YiaJJQ5m.js.map → surface-O_-YGi6T.js.map} +1 -1
  195. package/dist/surface.cjs +1 -1
  196. package/dist/surface.js +1 -1
  197. package/dist/{table-BguYeeBH.js → table-Bvb_ZG7b.js} +2 -2
  198. package/dist/{table-BguYeeBH.js.map → table-Bvb_ZG7b.js.map} +1 -1
  199. package/dist/{table-BZV2dBD5.cjs → table-CdkLZM2b.cjs} +2 -2
  200. package/dist/{table-BZV2dBD5.cjs.map → table-CdkLZM2b.cjs.map} +1 -1
  201. package/dist/table.cjs +1 -1
  202. package/dist/table.js +1 -1
  203. package/dist/{tabs-group-BZFBZ1_G.cjs → tabs-group-B-KvImY2.cjs} +2 -2
  204. package/dist/{tabs-group-BZFBZ1_G.cjs.map → tabs-group-B-KvImY2.cjs.map} +1 -1
  205. package/dist/{tabs-group-H3C6ZnQn.js → tabs-group-CVZ2SEq3.js} +2 -2
  206. package/dist/{tabs-group-H3C6ZnQn.js.map → tabs-group-CVZ2SEq3.js.map} +1 -1
  207. package/dist/tabs.cjs +1 -1
  208. package/dist/tabs.js +1 -1
  209. package/dist/tailwind.mixin-BvhzMkqK.js +43 -0
  210. package/dist/{tailwind.mixin-DklgfhB4.js.map → tailwind.mixin-BvhzMkqK.js.map} +1 -1
  211. package/dist/tailwind.mixin-csgxM8P_.cjs +2 -0
  212. package/dist/{tailwind.mixin-CBhPue3q.cjs.map → tailwind.mixin-csgxM8P_.cjs.map} +1 -1
  213. package/dist/teleport.cjs +1 -1
  214. package/dist/{teleport.component-DY1Q8ilK.js → teleport.component-BRm0yYbM.js} +43 -41
  215. package/dist/{teleport.component-DY1Q8ilK.js.map → teleport.component-BRm0yYbM.js.map} +1 -1
  216. package/dist/{teleport.component-C9Q1WHQe.cjs → teleport.component-D9xuyN_z.cjs} +19 -19
  217. package/dist/{teleport.component-C9Q1WHQe.cjs.map → teleport.component-D9xuyN_z.cjs.map} +1 -1
  218. package/dist/teleport.js +1 -1
  219. package/dist/textarea-BaTTXEtZ.cjs +42 -0
  220. package/dist/{textarea-BCWPb0Sn.cjs.map → textarea-BaTTXEtZ.cjs.map} +1 -1
  221. package/dist/{textarea-D7bTMerW.js → textarea-txN6-t64.js} +9 -8
  222. package/dist/{textarea-D7bTMerW.js.map → textarea-txN6-t64.js.map} +1 -1
  223. package/dist/textarea.cjs +1 -1
  224. package/dist/textarea.js +1 -1
  225. package/dist/{theme-button-CP2_aq__.js → theme-button-C2oB9OCM.js} +2 -2
  226. package/dist/{theme-button-CP2_aq__.js.map → theme-button-C2oB9OCM.js.map} +1 -1
  227. package/dist/{theme-button-DHuXg7vh.cjs → theme-button-qFLBZi0_.cjs} +2 -2
  228. package/dist/{theme-button-DHuXg7vh.cjs.map → theme-button-qFLBZi0_.cjs.map} +1 -1
  229. package/dist/theme-button.cjs +1 -1
  230. package/dist/theme-button.js +1 -1
  231. package/dist/theme.cjs +1 -1
  232. package/dist/{theme.component-Ly2C_fQ8.cjs → theme.component-C-055F7V.cjs} +2 -2
  233. package/dist/{theme.component-Ly2C_fQ8.cjs.map → theme.component-C-055F7V.cjs.map} +1 -1
  234. package/dist/{theme.component-BtBosXb1.js → theme.component-UVrnuMPb.js} +47 -47
  235. package/dist/{theme.component-BtBosXb1.js.map → theme.component-UVrnuMPb.js.map} +1 -1
  236. package/dist/theme.js +1 -1
  237. package/dist/timezone-CvS7opKc.cjs +34 -0
  238. package/dist/timezone-CvS7opKc.cjs.map +1 -0
  239. package/dist/{timezone-EDGZdfbO.js → timezone-DUYp8qD3.js} +93 -41
  240. package/dist/timezone-DUYp8qD3.js.map +1 -0
  241. package/dist/{tree-Y2B7yK7L.js → tree-Cxgw_mi9.js} +2 -2
  242. package/dist/{tree-Y2B7yK7L.js.map → tree-Cxgw_mi9.js.map} +1 -1
  243. package/dist/{tree-CG9B3uQP.cjs → tree-DYLlgF1F.cjs} +2 -2
  244. package/dist/{tree-CG9B3uQP.cjs.map → tree-DYLlgF1F.cjs.map} +1 -1
  245. package/dist/tree.cjs +1 -1
  246. package/dist/tree.js +1 -1
  247. package/dist/{typewriter-C1Ij3c--.js → typewriter-DUdvh6VO.js} +4 -4
  248. package/dist/{typewriter-C1Ij3c--.js.map → typewriter-DUdvh6VO.js.map} +1 -1
  249. package/dist/{typewriter-DtWpV0Xd.cjs → typewriter-DoGLma1z.cjs} +2 -2
  250. package/dist/{typewriter-DtWpV0Xd.cjs.map → typewriter-DoGLma1z.cjs.map} +1 -1
  251. package/dist/typewriter.cjs +1 -1
  252. package/dist/typewriter.js +1 -1
  253. package/dist/{typography-CSQByhJF.js → typography-BnQJ5TWy.js} +2 -2
  254. package/dist/{typography-CSQByhJF.js.map → typography-BnQJ5TWy.js.map} +1 -1
  255. package/dist/{typography-D-a-z23R.cjs → typography-DFREXmBg.cjs} +2 -2
  256. package/dist/{typography-D-a-z23R.cjs.map → typography-DFREXmBg.cjs.map} +1 -1
  257. package/dist/typography.cjs +1 -1
  258. package/dist/typography.js +1 -1
  259. package/dist/v2.cjs +2 -0
  260. package/dist/v2.cjs.map +1 -0
  261. package/dist/v2.js +5 -0
  262. package/dist/v2.js.map +1 -0
  263. package/package.json +3 -4
  264. package/types/mixins/formField.mixin.d.ts +48 -0
  265. package/types/src/autocomplete/autocomplete.d.ts +17 -7
  266. package/types/src/components/form-elements/payment-card-form.d.ts +57 -4
  267. package/types/src/extra/countries/countries.d.ts +13 -0
  268. package/types/src/extra/timezone/timezone.d.ts +13 -0
  269. package/types/src/index.d.ts +1 -0
  270. package/types/src/option/option.d.ts +3 -0
  271. package/types/src/select/select.d.ts +9 -1
  272. package/types/src/sheet/header.d.ts +0 -1
  273. package/types/src/sheet/sheet.d.ts +120 -1
  274. package/types/src/utils/search.d.ts +10 -0
  275. package/types/src/v2/form.d.ts +51 -0
  276. package/types/src/v2/index.d.ts +2 -0
  277. package/types/src/v2/input.d.ts +71 -0
  278. package/dist/autocomplete-BU0sC_l-.cjs +0 -49
  279. package/dist/autocomplete-BU0sC_l-.cjs.map +0 -1
  280. package/dist/autocomplete-u76bIDqg.js +0 -264
  281. package/dist/autocomplete-u76bIDqg.js.map +0 -1
  282. package/dist/input-CTC1BTOb.cjs +0 -51
  283. package/dist/input-CTC1BTOb.cjs.map +0 -1
  284. package/dist/input-CZX1sxBe.js.map +0 -1
  285. package/dist/option-CxalubCR.js.map +0 -1
  286. package/dist/option-DJLLszO6.cjs +0 -18
  287. package/dist/option-DJLLszO6.cjs.map +0 -1
  288. package/dist/payment-card-form-Bi3yNg4b.cjs +0 -48
  289. package/dist/ripple-BumgqsDT.js +0 -78
  290. package/dist/ripple-BumgqsDT.js.map +0 -1
  291. package/dist/ripple-C2BHbhcS.cjs +0 -16
  292. package/dist/ripple-C2BHbhcS.cjs.map +0 -1
  293. package/dist/select-8AjN6LbM.js.map +0 -1
  294. package/dist/select-BdU6KcPX.cjs +0 -54
  295. package/dist/select-BdU6KcPX.cjs.map +0 -1
  296. package/dist/sheet-CQFdHSwJ.cjs +0 -43
  297. package/dist/sheet-CQFdHSwJ.cjs.map +0 -1
  298. package/dist/sheet-xR13xD2A.js +0 -182
  299. package/dist/sheet-xR13xD2A.js.map +0 -1
  300. package/dist/tailwind.mixin-CBhPue3q.cjs +0 -2
  301. package/dist/tailwind.mixin-DklgfhB4.js +0 -43
  302. package/dist/textarea-BCWPb0Sn.cjs +0 -42
  303. package/dist/timezone-Cv2QSsl4.cjs +0 -24
  304. package/dist/timezone-Cv2QSsl4.cjs.map +0 -1
  305. package/dist/timezone-EDGZdfbO.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ import { Subject as c, fromEvent as d, debounceTime as m, startWith as h, takeUntil as y } from "rxjs";
2
+ import { directive as l, PartType as p } from "lit/directive.js";
3
+ import { AsyncDirective as a } from "lit/async-directive.js";
4
+ const i = new c();
5
+ d(window, "resize").pipe(m(10), h(window)).subscribe({ next: () => {
6
+ i.next(window);
7
+ } });
8
+ const g = l(class extends a {
9
+ constructor(e) {
10
+ super(e), this.disconnecting = new c(), i.pipe(y(this.disconnecting)).subscribe(() => {
11
+ this.element.style.setProperty("height", `${window.innerHeight}px`), setTimeout(() => {
12
+ this.element.style.setProperty("height", `${window.innerHeight}px`);
13
+ });
14
+ });
15
+ }
16
+ render() {
17
+ }
18
+ update(e) {
19
+ if (e.type !== p.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
20
+ this.element = e.element, i.next(window);
21
+ }
22
+ disconnected() {
23
+ this.disconnecting.next(!0);
24
+ }
25
+ reconnected() {
26
+ }
27
+ }), E = l(class extends a {
28
+ render() {
29
+ }
30
+ addRippleEffect(e) {
31
+ const t = e.target, n = document.createElement("span"), s = Math.max(t.clientWidth, t.clientHeight), r = s / 2;
32
+ n.style.width = n.style.height = `${s}px`, n.style.left = e.clientX - t.getBoundingClientRect().left - r + "px", n.style.top = e.clientY - t.getBoundingClientRect().top - r + "px", n.classList.add("ripple");
33
+ const o = t.getElementsByClassName("ripple")[0];
34
+ o && o.remove(), t.appendChild(n);
35
+ }
36
+ update(e) {
37
+ if (e.type !== p.ELEMENT) throw new Error("The `ripple` directive can only be used on elements");
38
+ this.element = e.element;
39
+ const t = document.createElement("style");
40
+ t.append(`.ripple {
41
+ position: absolute;
42
+ border-radius: 50%;
43
+ background: var(--schmancy-sys-color-surface-high);
44
+ transform: scale(0);
45
+ animation: ripple 600ms linear;
46
+ }
47
+
48
+ @keyframes ripple {
49
+ to {
50
+ transform: scale(4);
51
+ opacity: 0;
52
+ }
53
+ }
54
+ `), this.element.append(t), this.element.addEventListener("click", this.addRippleEffect);
55
+ }
56
+ disconnected() {
57
+ this.element && this.element.removeEventListener("click", this.addRippleEffect);
58
+ }
59
+ });
60
+ export {
61
+ g as f,
62
+ E as r
63
+ };
64
+ //# sourceMappingURL=ripple-3indJ14o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ripple-3indJ14o.js","sources":["../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["import { Subject, debounceTime, fromEvent, startWith, takeUntil } from 'rxjs'\n\nconst $SchmancyResize = new Subject<Window>()\nfromEvent<Event>(window, 'resize')\n\t.pipe(\n\t\tdebounceTime(10), // Adjust the debounce time as needed\n\t\tstartWith(window),\n\t)\n\t.subscribe({\n\t\tnext: () => {\n\t\t\t$SchmancyResize.next(window)\n\t\t},\n\t})\n\nimport { directive, PartInfo, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { LitElement } from 'lit'\n\nclass FullHeight extends AsyncDirective {\n\telement: HTMLElement & LitElement\n\tdisconnecting = new Subject<boolean>()\n\trender() {\n\t\treturn\n\t}\n\n\tconstructor(_partInfo: PartInfo) {\n\t\tsuper(_partInfo)\n\t\t$SchmancyResize.pipe(takeUntil(this.disconnecting)).subscribe(() => {\n\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\t})\n\t\t})\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\t\tthis.element = part.element\n\t\t$SchmancyResize.next(window)\n\t}\n\n\tdisconnected() {\n\t\tthis.disconnecting.next(true)\n\t}\n\n\treconnected() {}\n}\n\nexport const fullHeight = directive(FullHeight)\n","import { directive, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\n\nconst rippleStyle = `.ripple {\n position: absolute;\n border-radius: 50%;\n background: var(--schmancy-sys-color-surface-high);\n transform: scale(0);\n animation: ripple 600ms linear;\n}\n\n@keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n}\n`\nclass RippleDirective extends AsyncDirective {\n\telement: HTMLElement\n\trender() {\n\t\treturn\n\t}\n\n\taddRippleEffect(event) {\n\t\tconst element = event.target\n\t\tconst circle = document.createElement('span')\n\t\tconst diameter = Math.max(element.clientWidth, element.clientHeight)\n\t\tconst radius = diameter / 2\n\t\tcircle.style.width = circle.style.height = `${diameter}px`\n\t\tcircle.style.left = `${event.clientX - element.getBoundingClientRect().left - radius}px`\n\t\tcircle.style.top = `${event.clientY - element.getBoundingClientRect().top - radius}px`\n\t\tcircle.classList.add('ripple')\n\n\t\tconst ripple = element.getElementsByClassName('ripple')[0]\n\t\tif (ripple) {\n\t\t\tripple.remove()\n\t\t}\n\n\t\telement.appendChild(circle)\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\n\t\tthis.element = part.element\n\t\tconst style = document.createElement('style')\n\t\tstyle.append(rippleStyle)\n\t\tthis.element.append(style)\n\t\tthis.element.addEventListener('click', this.addRippleEffect)\n\t}\n\n\tdisconnected() {\n\t\tif (this.element) {\n\t\t\tthis.element.removeEventListener('click', this.addRippleEffect)\n\t\t}\n\t}\n}\n\nexport const ripple = directive(RippleDirective)\n"],"names":["$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","fullHeight","directive","AsyncDirective","_partInfo","super","this","disconnecting","takeUntil","element","style","setProperty","innerHeight","setTimeout","render","part","type","PartType","ELEMENT","Error","disconnected","reconnected","ripple","event","target","circle","document","createElement","diameter","Math","max","clientWidth","clientHeight","radius","width","height","left","clientX","getBoundingClientRect","top","clientY","classList","add","getElementsByClassName","remove","appendChild","append","addEventListener","addRippleEffect","removeEventListener"],"mappings":";;;AAEA,MAAMA,IAAkB,IAAIC;AAC5BC,EAAiBC,QAAQ,QAAA,EACvBC,KACAC,EAAa,KACbC,EAAUH,MAAAA,CAAAA,EAEVI,UAAU,EACVC,MAAM,MAAA;AACLR,EAAAA,EAAgBQ,KAAKL,MAAAA;AAAM,EAwCjB,CAAA;AAAA,MAAAM,IAAaC,EAhC1B,cAAyBC,EAOxB;AAAA,EAAA,YAAYC,GAAAA;AACXC,UAAMD,CAAAA,GANPE,KAAAC,gBAAgB,IAAId,KAOnBD,EAAgBI,KAAKY,EAAUF,KAAKC,aAAAA,CAAAA,EAAgBR,UAAU,MAAA;AAC7DO,WAAKG,QAAQC,MAAMC,YAAY,UAAU,GAAGhB,OAAOiB,WACnDC,IAAAA,GAAAA,WAAW,MACVP;AAAAA,aAAKG,QAAQC,MAAMC,YAAY,UAAU,GAAGhB,OAAOiB,WAAAA,IAAAA;AAAAA,MAAe;IAClE,CACD;AAAA,EAAA;AAAA,EAXF,SAAAE;AAAAA,EACC;AAAA,EAaD,OAAOC,GACF;AAAA,QAAAA,EAAKC,SAASC,EAASC,QACpB,OAAA,IAAIC,MAAM,qDAEjBb;AAAAA,SAAKG,UAAUM,EAAKN,SACpBjB,EAAgBQ,KAAKL,MAAM;AAAA,EAAA;AAAA,EAG5B,eAAAyB;AACMd,SAAAC,cAAcP,KAAAA,EAAS;AAAA,EAAA;AAAA,EAG7B,cAAAqB;AAAAA,EAAc;ACcF,CAAA,GAAAC,IAASpB,EA3CtB,cAA8BC,EAAAA;AAAAA,EAE7B,SAAAW;AAAAA,EACC;AAAA,EAGD,gBAAgBS,GACf;AAAA,UAAMd,IAAUc,EAAMC,QAChBC,IAASC,SAASC,cAAc,MAAA,GAChCC,IAAWC,KAAKC,IAAIrB,EAAQsB,aAAatB,EAAQuB,YAAAA,GACjDC,IAASL,IAAW;AAC1BH,IAAAA,EAAOf,MAAMwB,QAAQT,EAAOf,MAAMyB,SAAS,GAAGP,CACvCH,MAAAA,EAAAf,MAAM0B,OAAUb,EAAMc,UAAU5B,EAAQ6B,sBAAwBF,EAAAA,OAAOH,IAA1D,MACbR,EAAAf,MAAM6B,MAAShB,EAAMiB,UAAU/B,EAAQ6B,sBAAAA,EAAwBC,MAAMN,IAAzD,MACZR,EAAAgB,UAAUC,IAAI,QAErB;AAAA,UAAMpB,IAASb,EAAQkC,uBAAuB,QAAU,EAAA,CAAA;AACpDrB,IAAAA,KACHA,EAAOsB,OAGRnC,GAAAA,EAAQoC,YAAYpB,CAAM;AAAA,EAAA;AAAA,EAG3B,OAAOV,GACF;AAAA,QAAAA,EAAKC,SAASC,EAASC,QACpB,OAAA,IAAIC,MAAM,qDAGjBb;AAAAA,SAAKG,UAAUM,EAAKN;AACd,UAAAC,IAAQgB,SAASC,cAAc,OACrCjB;AAAAA,IAAAA,EAAMoC,OA9CY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,GA+CbxC,KAAAG,QAAQqC,OAAOpC,CACpBJ,GAAAA,KAAKG,QAAQsC,iBAAiB,SAASzC,KAAK0C;EAAe;AAAA,EAG5D,eACK1C;AAAAA,SAAKG,WACRH,KAAKG,QAAQwC,oBAAoB,SAAS3C,KAAK0C,eAChD;AAAA,EAAA;AAAA,CAAA;"}
@@ -0,0 +1,16 @@
1
+ "use strict";const i=require("rxjs"),s=require("lit/directive.js"),p=require("lit/async-directive.js"),r=new i.Subject;i.fromEvent(window,"resize").pipe(i.debounceTime(10),i.startWith(window)).subscribe({next:()=>{r.next(window)}});class a extends p.AsyncDirective{constructor(e){super(e),this.disconnecting=new i.Subject,r.pipe(i.takeUntil(this.disconnecting)).subscribe(()=>{this.element.style.setProperty("height",`${window.innerHeight}px`),setTimeout(()=>{this.element.style.setProperty("height",`${window.innerHeight}px`)})})}render(){}update(e){if(e.type!==s.PartType.ELEMENT)throw new Error("The `ripple` directive can only be used on elements");this.element=e.element,r.next(window)}disconnected(){this.disconnecting.next(!0)}reconnected(){}}const h=s.directive(a);class m extends p.AsyncDirective{render(){}addRippleEffect(e){const t=e.target,n=document.createElement("span"),c=Math.max(t.clientWidth,t.clientHeight),l=c/2;n.style.width=n.style.height=`${c}px`,n.style.left=e.clientX-t.getBoundingClientRect().left-l+"px",n.style.top=e.clientY-t.getBoundingClientRect().top-l+"px",n.classList.add("ripple");const o=t.getElementsByClassName("ripple")[0];o&&o.remove(),t.appendChild(n)}update(e){if(e.type!==s.PartType.ELEMENT)throw new Error("The `ripple` directive can only be used on elements");this.element=e.element;const t=document.createElement("style");t.append(`.ripple {
2
+ position: absolute;
3
+ border-radius: 50%;
4
+ background: var(--schmancy-sys-color-surface-high);
5
+ transform: scale(0);
6
+ animation: ripple 600ms linear;
7
+ }
8
+
9
+ @keyframes ripple {
10
+ to {
11
+ transform: scale(4);
12
+ opacity: 0;
13
+ }
14
+ }
15
+ `),this.element.append(t),this.element.addEventListener("click",this.addRippleEffect)}disconnected(){this.element&&this.element.removeEventListener("click",this.addRippleEffect)}}const u=s.directive(m);exports.fullHeight=h,exports.ripple=u;
16
+ //# sourceMappingURL=ripple-B_wT0zgD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ripple-B_wT0zgD.cjs","sources":["../src/directives/height.ts","../src/directives/ripple.ts"],"sourcesContent":["import { Subject, debounceTime, fromEvent, startWith, takeUntil } from 'rxjs'\n\nconst $SchmancyResize = new Subject<Window>()\nfromEvent<Event>(window, 'resize')\n\t.pipe(\n\t\tdebounceTime(10), // Adjust the debounce time as needed\n\t\tstartWith(window),\n\t)\n\t.subscribe({\n\t\tnext: () => {\n\t\t\t$SchmancyResize.next(window)\n\t\t},\n\t})\n\nimport { directive, PartInfo, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\nimport { LitElement } from 'lit'\n\nclass FullHeight extends AsyncDirective {\n\telement: HTMLElement & LitElement\n\tdisconnecting = new Subject<boolean>()\n\trender() {\n\t\treturn\n\t}\n\n\tconstructor(_partInfo: PartInfo) {\n\t\tsuper(_partInfo)\n\t\t$SchmancyResize.pipe(takeUntil(this.disconnecting)).subscribe(() => {\n\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.element.style.setProperty('height', `${window.innerHeight}px`)\n\t\t\t})\n\t\t})\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\t\tthis.element = part.element\n\t\t$SchmancyResize.next(window)\n\t}\n\n\tdisconnected() {\n\t\tthis.disconnecting.next(true)\n\t}\n\n\treconnected() {}\n}\n\nexport const fullHeight = directive(FullHeight)\n","import { directive, PartType } from 'lit/directive.js'\nimport { AsyncDirective } from 'lit/async-directive.js'\n\nconst rippleStyle = `.ripple {\n position: absolute;\n border-radius: 50%;\n background: var(--schmancy-sys-color-surface-high);\n transform: scale(0);\n animation: ripple 600ms linear;\n}\n\n@keyframes ripple {\n to {\n transform: scale(4);\n opacity: 0;\n }\n}\n`\nclass RippleDirective extends AsyncDirective {\n\telement: HTMLElement\n\trender() {\n\t\treturn\n\t}\n\n\taddRippleEffect(event) {\n\t\tconst element = event.target\n\t\tconst circle = document.createElement('span')\n\t\tconst diameter = Math.max(element.clientWidth, element.clientHeight)\n\t\tconst radius = diameter / 2\n\t\tcircle.style.width = circle.style.height = `${diameter}px`\n\t\tcircle.style.left = `${event.clientX - element.getBoundingClientRect().left - radius}px`\n\t\tcircle.style.top = `${event.clientY - element.getBoundingClientRect().top - radius}px`\n\t\tcircle.classList.add('ripple')\n\n\t\tconst ripple = element.getElementsByClassName('ripple')[0]\n\t\tif (ripple) {\n\t\t\tripple.remove()\n\t\t}\n\n\t\telement.appendChild(circle)\n\t}\n\n\tupdate(part) {\n\t\tif (part.type !== PartType.ELEMENT) {\n\t\t\tthrow new Error('The `ripple` directive can only be used on elements')\n\t\t}\n\n\t\tthis.element = part.element\n\t\tconst style = document.createElement('style')\n\t\tstyle.append(rippleStyle)\n\t\tthis.element.append(style)\n\t\tthis.element.addEventListener('click', this.addRippleEffect)\n\t}\n\n\tdisconnected() {\n\t\tif (this.element) {\n\t\t\tthis.element.removeEventListener('click', this.addRippleEffect)\n\t\t}\n\t}\n}\n\nexport const ripple = directive(RippleDirective)\n"],"names":["$SchmancyResize","Subject","fromEvent","window","pipe","debounceTime","startWith","subscribe","next","FullHeight","AsyncDirective","_partInfo","super","this","disconnecting","takeUntil","element","style","setProperty","innerHeight","setTimeout","part","type","PartType","ELEMENT","Error","disconnected","fullHeight","directive","RippleDirective","event","target","circle","document","createElement","diameter","Math","max","clientWidth","clientHeight","radius","width","height","left","clientX","getBoundingClientRect","top","clientY","classList","add","ripple","getElementsByClassName","remove","appendChild","append","addEventListener","addRippleEffect","removeEventListener"],"mappings":"qGAEMA,EAAAA,EAAkB,IAAIC,EAAAA,QAC5BC,EAAAA,UAAiBC,OAAQ,QACvBC,EAAAA,KACAC,EAAAA,aAAa,EACbC,EAAAA,EAAAA,UAAUH,MAAAA,CAAAA,EAEVI,UAAU,CACVC,KAAM,IAAA,CACLR,EAAgBQ,KAAKL,MAAAA,CAAM,CAQ9B,CAAA,EAAA,MAAMM,UAAmBC,EAAAA,cAOxB,CAAA,YAAYC,EAAAA,CACXC,MAAMD,CAAAA,EANPE,KAAAC,cAAgB,IAAIb,UAOnBD,EAAgBI,KAAKW,YAAUF,KAAKC,aAAgBP,CAAAA,EAAAA,UAAU,IAC7DM,CAAAA,KAAKG,QAAQC,MAAMC,YAAY,SAAU,GAAGf,OAAOgB,WAAAA,IAAAA,EACnDC,WAAW,IAAA,CACVP,KAAKG,QAAQC,MAAMC,YAAY,SAAU,GAAGf,OAAOgB,WAAAA,IAAAA,CAAe,CAClE,CAAA,CAAA,CACD,CAXF,QACC,CAAA,CAaD,OAAOE,EACF,CAAA,GAAAA,EAAKC,OAASC,EAAAA,SAASC,QACpB,MAAA,IAAIC,MAAM,uDAEjBZ,KAAKG,QAAUK,EAAKL,QACpBhB,EAAgBQ,KAAKL,MAAM,CAAA,CAG5B,cAAAuB,CACMb,KAAAC,cAAcN,KAAK,EAAA,CAAI,CAG7B,aAAc,CAAA,CAAA,CAGF,MAAAmB,EAAaC,YAAUnB,CChCpC,EAAA,MAAMoB,UAAwBnB,EAAAA,cAE7B,CAAA,QACC,CAAA,CAGD,gBAAgBoB,EAAAA,CACf,MAAMd,EAAUc,EAAMC,OAChBC,EAASC,SAASC,cAAc,MAAA,EAChCC,EAAWC,KAAKC,IAAIrB,EAAQsB,YAAatB,EAAQuB,YACjDC,EAAAA,EAASL,EAAW,EAC1BH,EAAOf,MAAMwB,MAAQT,EAAOf,MAAMyB,OAAS,GAAGP,CAAAA,KACvCH,EAAAf,MAAM0B,KAAUb,EAAMc,QAAU5B,EAAQ6B,sBAAAA,EAAwBF,KAAOH,EAA1D,KACbR,EAAAf,MAAM6B,IAAShB,EAAMiB,QAAU/B,EAAQ6B,sBAAAA,EAAwBC,IAAMN,EAAzD,KACZR,EAAAgB,UAAUC,IAAI,QAErB,EAAA,MAAMC,EAASlC,EAAQmC,uBAAuB,QAAA,EAAU,CACpDD,EAAAA,GACHA,EAAOE,OAAAA,EAGRpC,EAAQqC,YAAYrB,CAAAA,CAAM,CAG3B,OAAOX,EAAAA,CACF,GAAAA,EAAKC,OAASC,EAAAA,SAASC,QACpB,MAAA,IAAIC,MAAM,qDAAA,EAGjBZ,KAAKG,QAAUK,EAAKL,QACd,MAAAC,EAAQgB,SAASC,cAAc,OACrCjB,EAAAA,EAAMqC,OA9CY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,EA+CbzC,KAAAG,QAAQsC,OAAOrC,CACpBJ,EAAAA,KAAKG,QAAQuC,iBAAiB,QAAS1C,KAAK2C,eAAe,CAAA,CAG5D,cAAA9B,CACKb,KAAKG,SACRH,KAAKG,QAAQyC,oBAAoB,QAAS5C,KAAK2C,eAAAA,CAChD,CAIW,CAAA,MAAAN,EAAStB,YAAUC,CAAAA"}
@@ -1,8 +1,8 @@
1
- import { Observable as n } from "rxjs";
1
+ import { Observable as o } from "rxjs";
2
2
  import "./index-CuY8m6ta.js";
3
- const a = (e, r = { attributes: !0, childList: !0, subtree: !0 }) => new n((s) => {
4
- const t = new MutationObserver((o) => {
5
- s.next(o);
3
+ const a = (e, r = { attributes: !0, childList: !0, subtree: !0 }) => new o((s) => {
4
+ const t = new MutationObserver((n) => {
5
+ s.next(n);
6
6
  });
7
7
  return t.observe(e, r), () => {
8
8
  t.disconnect();
@@ -1,18 +1,19 @@
1
1
  import { autoUpdate as d, computePosition as u, offset as y, flip as v, shift as m } from "@floating-ui/dom";
2
2
  import "rxjs";
3
- import { classMap as b } from "lit/directives/class-map.js";
3
+ import { classMap as f } from "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
- import { $ as f } from "./litElement.mixin-NzkxESus.js";
6
- import "./tailwind.mixin-DklgfhB4.js";
7
- import { c as g } from "./ripple-BumgqsDT.js";
5
+ import { $ as b } from "./litElement.mixin-DfYInjJd.js";
6
+ import "./tailwind.mixin-BvhzMkqK.js";
7
+ import { c as g } from "./color-DrgmL7QT.js";
8
+ import "./ripple-3indJ14o.js";
8
9
  import { S as w } from "./theme.interface-C5Kj6WjD.js";
9
- import { css as O, html as A } from "lit";
10
- import { property as r, state as p, query as c, queryAssignedElements as $, customElement as D } from "lit/decorators.js";
11
- var x = Object.defineProperty, S = Object.getOwnPropertyDescriptor, a = (t, e, i, s) => {
12
- for (var l, n = s > 1 ? void 0 : s ? S(e, i) : e, h = t.length - 1; h >= 0; h--) (l = t[h]) && (n = (s ? l(e, i, n) : l(n)) || n);
13
- return s && n && x(e, i, n), n;
10
+ import { css as A, html as O } from "lit";
11
+ import { property as n, state as h, query as c, queryAssignedElements as $, customElement as D } from "lit/decorators.js";
12
+ var V = Object.defineProperty, x = Object.getOwnPropertyDescriptor, o = (t, e, i, s) => {
13
+ for (var l, r = s > 1 ? void 0 : s ? x(e, i) : e, p = t.length - 1; p >= 0; p--) (l = t[p]) && (r = (s ? l(e, i, r) : l(r)) || r);
14
+ return s && r && V(e, i, r), r;
14
15
  };
15
- let o = class extends f(O`
16
+ let a = class extends b(A`
16
17
  :host {
17
18
  display: block;
18
19
  position: relative;
@@ -24,7 +25,33 @@ let o = class extends f(O`
24
25
  }
25
26
  `) {
26
27
  constructor() {
27
- super(...arguments), this.required = !1, this.placeholder = "", this.value = "", this.multi = !1, this.label = "", this.isOpen = !1, this.valueLabel = "", this.isValid = !0, this.validationMessage = "";
28
+ super(), this.required = !1, this.placeholder = "", this.value = "", this.multi = !1, this.label = "", this.hint = "", this.isOpen = !1, this.valueLabel = "", this.isValid = !0, this.validationMessage = "", this._userInteracted = !1, this.handleKeyDown = (t) => {
29
+ if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.openDropdown(!1)));
30
+ const e = this.options.findIndex((i) => i.matches(":focus")) ?? -1;
31
+ switch (t.key) {
32
+ case "Escape":
33
+ case "Tab":
34
+ this.closeDropdown();
35
+ break;
36
+ case "ArrowDown":
37
+ t.preventDefault(), this.focusOption(this.options, Math.min(e + 1, this.options.length - 1));
38
+ break;
39
+ case "ArrowUp":
40
+ t.preventDefault(), this.focusOption(this.options, Math.max(e - 1, 0));
41
+ break;
42
+ case "Enter":
43
+ case " ":
44
+ t.preventDefault(), e >= 0 && this.handleOptionSelect(this.options[e].value);
45
+ }
46
+ };
47
+ try {
48
+ this.internals = this.attachInternals();
49
+ } catch {
50
+ }
51
+ }
52
+ get form() {
53
+ var t;
54
+ return (t = this.internals) == null ? void 0 : t.form;
28
55
  }
29
56
  connectedCallback() {
30
57
  super.connectedCallback(), this.id || (this.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`), this.addEventListener("keydown", this.handleKeyDown);
@@ -36,6 +63,13 @@ let o = class extends f(O`
36
63
  firstUpdated() {
37
64
  this.syncSelection(), this.setupOptionsAccessibility();
38
65
  }
66
+ updated(t) {
67
+ var e;
68
+ if (super.updated(t), t.has("value")) {
69
+ const i = Array.isArray(this.value) ? this.value.join(",") : this.value;
70
+ (e = this.internals) == null || e.setFormValue(i), this.required && this.hasUpdated && this._userInteracted && this.checkValidity();
71
+ }
72
+ }
39
73
  syncSelection() {
40
74
  if (this.multi) {
41
75
  const t = Array.isArray(this.value) ? this.value : [];
@@ -61,25 +95,6 @@ let o = class extends f(O`
61
95
  Object.assign(this.ul.style, { left: `${i}px`, top: `${s}px`, position: "absolute" });
62
96
  });
63
97
  }
64
- handleKeyDown(t) {
65
- if (!this.isOpen) return void (["Enter", " ", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.openDropdown(!1)));
66
- const e = this.options.findIndex((i) => i.matches(":focus")) ?? -1;
67
- switch (t.key) {
68
- case "Escape":
69
- case "Tab":
70
- this.closeDropdown();
71
- break;
72
- case "ArrowDown":
73
- t.preventDefault(), this.focusOption(this.options, Math.min(e + 1, this.options.length - 1));
74
- break;
75
- case "ArrowUp":
76
- t.preventDefault(), this.focusOption(this.options, Math.max(e - 1, 0));
77
- break;
78
- case "Enter":
79
- case " ":
80
- t.preventDefault(), e >= 0 && this.handleOptionSelect(this.options[e].value);
81
- }
82
- }
83
98
  focusOption(t, e) {
84
99
  const i = t[e];
85
100
  if (i) {
@@ -101,29 +116,37 @@ let o = class extends f(O`
101
116
  }
102
117
  handleOptionSelect(t) {
103
118
  var e;
104
- if (this.multi) {
119
+ if (this._userInteracted = !0, this.multi) {
105
120
  const i = this.options.find((l) => l.value === t);
106
121
  if (!i) return;
107
122
  i.selected = !i.selected;
108
123
  let s = Array.isArray(this.value) ? [...this.value] : [];
109
124
  s = i.selected ? [...s, t] : s.filter((l) => l !== t), this.value = s, this.valueLabel = s.length > 0 ? this.options.filter((l) => s.includes(l.value)).map((l) => l.label).join(", ") : this.placeholder, this.dispatchChange(s);
110
125
  } else this.options.forEach((i) => i.selected = i.value === t), this.value = t, this.valueLabel = ((e = this.options.find((i) => i.value === t)) == null ? void 0 : e.label) || this.placeholder, this.dispatchChange(t), this.closeDropdown();
111
- this.setupOptionsAccessibility();
126
+ this.setupOptionsAccessibility(), this.checkValidity();
112
127
  }
113
128
  dispatchChange(t) {
114
- this.isValid = !0, this.validationMessage = "", this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 }));
129
+ this.isValid = !0, this.validationMessage = "", this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
115
130
  }
116
131
  checkValidity() {
117
- return this.isValid = this.multi ? Array.isArray(this.value) && this.value.length > 0 : !!this.value, this.validationMessage = this.isValid ? "" : "Please select an option.", this.isValid;
132
+ var e, i;
133
+ const t = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value;
134
+ return this.isValid = !(this.required && t), this.isValid ? (this.validationMessage = "", (e = this.internals) == null || e.setValidity({})) : (this.validationMessage = "Please select an option.", (i = this.internals) == null || i.setValidity({ valueMissing: !0 }, "Please select an option.", this.inputRef)), this.isValid;
118
135
  }
119
136
  reportValidity() {
120
- return !this.required || (this.checkValidity(), this.inputRef.required = !0, this.isValid ? (this.inputRef.reportValidity(), !0) : (this.openDropdown(), this.inputRef.reportValidity(), !1));
137
+ const t = this.checkValidity();
138
+ return !t && this.required && (this.inputRef.required = !0, this.inputRef.reportValidity(), this.isOpen || this.openDropdown(!1)), t;
121
139
  }
122
140
  setCustomValidity(t) {
123
- this.validationMessage = t;
141
+ var e;
142
+ this.validationMessage = t, (e = this.internals) == null || e.setValidity(t ? { customError: !0 } : {}, t, this.inputRef);
143
+ }
144
+ reset() {
145
+ var t;
146
+ this.value = "", this.valueLabel = this.placeholder, this.isValid = !0, this.validationMessage = "", (t = this.internals) == null || t.setValidity({}), this.options.forEach((e) => e.selected = !1);
124
147
  }
125
148
  render() {
126
- return A`
149
+ return O`
127
150
  <div class="relative">
128
151
  <schmancy-input
129
152
  .name=${this.name}
@@ -139,6 +162,8 @@ let o = class extends f(O`
139
162
  .placeholder=${this.placeholder}
140
163
  .value=${this.valueLabel}
141
164
  .required=${this.required}
165
+ .hint=${this.hint || this.validationMessage}
166
+ .error=${!this.isValid}
142
167
  readonly
143
168
  @click=${() => this.isOpen ? this.closeDropdown() : this.openDropdown(!0)}
144
169
  ></schmancy-input>
@@ -156,7 +181,7 @@ let o = class extends f(O`
156
181
  id="options"
157
182
  role="listbox"
158
183
  aria-multiselectable=${this.multi}
159
- class=${b({ "absolute z-[1000] mt-1 w-full rounded-md shadow-sm": !0, hidden: !this.isOpen })}
184
+ class=${f({ "absolute z-[1000] mt-1 w-full rounded-md shadow-sm": !0, hidden: !this.isOpen })}
160
185
  ${g({ bgColor: w.sys.color.surface.container })}
161
186
  @click=${(t) => {
162
187
  var s;
@@ -174,8 +199,8 @@ let o = class extends f(O`
174
199
  `;
175
200
  }
176
201
  };
177
- a([r({ type: String })], o.prototype, "name", 2), a([r({ type: Boolean })], o.prototype, "required", 2), a([r({ type: String })], o.prototype, "placeholder", 2), a([r({ type: String })], o.prototype, "value", 2), a([r({ type: Boolean })], o.prototype, "multi", 2), a([r({ type: String })], o.prototype, "label", 2), a([p()], o.prototype, "isOpen", 2), a([p()], o.prototype, "valueLabel", 2), a([p()], o.prototype, "isValid", 2), a([r({ type: String })], o.prototype, "validationMessage", 2), a([c("ul")], o.prototype, "ul", 2), a([c("schmancy-input")], o.prototype, "inputRef", 2), a([$({ flatten: !0 })], o.prototype, "options", 2), o = a([D("schmancy-select")], o);
202
+ a.formAssociated = !0, o([n({ type: String })], a.prototype, "name", 2), o([n({ type: Boolean, reflect: !0 })], a.prototype, "required", 2), o([n({ type: String })], a.prototype, "placeholder", 2), o([n({ type: String, reflect: !0 })], a.prototype, "value", 2), o([n({ type: Boolean })], a.prototype, "multi", 2), o([n({ type: String })], a.prototype, "label", 2), o([n({ type: String })], a.prototype, "hint", 2), o([h()], a.prototype, "isOpen", 2), o([h()], a.prototype, "valueLabel", 2), o([h()], a.prototype, "isValid", 2), o([n({ type: String })], a.prototype, "validationMessage", 2), o([c("ul")], a.prototype, "ul", 2), o([c("schmancy-input")], a.prototype, "inputRef", 2), o([$({ flatten: !0 })], a.prototype, "options", 2), o([h()], a.prototype, "_userInteracted", 2), a = o([D("schmancy-select")], a);
178
203
  export {
179
- o as S
204
+ a as S
180
205
  };
181
- //# sourceMappingURL=select-8AjN6LbM.js.map
206
+ //# sourceMappingURL=select-C2TJxenH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-C2TJxenH.js","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() private _userInteracted = false\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Only check validity if this isn't the first render\n\t\t\t// and the component has been interacted with\n\t\t\tif (this.required && this.hasUpdated && this._userInteracted) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\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.ul.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\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\t// Also dispatch a standard change event for better form compatibility\n\t\tthis.dispatchEvent(new Event('change', { bubbles: true }))\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\tthis.isValid = !(this.required && isEmpty)\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tconst valid = this.checkValidity()\n\n\t\tif (!valid && this.required) {\n\t\t\t// If invalid, make sure the input shows it\n\t\t\tthis.inputRef.required = true\n\t\t\tthis.inputRef.reportValidity()\n\n\t\t\t// Optionally open the dropdown to show options\n\t\t\tif (!this.isOpen) {\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tthis.internals?.setValidity(message ? { customError: true } : {}, message, this.inputRef)\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\n\t}\n\n\trender(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.hint=${this.hint || this.validationMessage}\n\t\t\t\t\t.error=${!this.isValid}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","this","required","placeholder","value","multi","label","hint","isOpen","valueLabel","isValid","validationMessage","_userInteracted","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","disconnectedCallback","removeEventListener","cleanupPositioner","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","hasUpdated","checkValidity","selectedValues","forEach","selected","filter","map","selectedOption","find","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Event","isEmpty","setValidity","valueMissing","inputRef","valid","message","customError","render","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ "use strict";const r=require("@floating-ui/dom");require("rxjs");const p=require("lit/directives/class-map.js");require("lit/directives/style-map.js");const u=require("./litElement.mixin-CAXeI5RY.cjs");require("./tailwind.mixin-csgxM8P_.cjs");const d=require("./color-D8r6dpWm.cjs");require("./ripple-B_wT0zgD.cjs");const y=require("./theme.interface-Xg5Zi46a.cjs"),h=require("lit"),a=require("lit/decorators.js");var v=Object.defineProperty,m=Object.getOwnPropertyDescriptor,o=(e,t,i,s)=>{for(var n,l=s>1?void 0:s?m(t,i):t,c=e.length-1;c>=0;c--)(n=e[c])&&(l=(s?n(t,i,l):n(l))||l);return s&&l&&v(t,i,l),l};exports.SchmancySelect=class extends u.$LitElement(h.css`
2
+ :host {
3
+ display: block;
4
+ position: relative;
5
+ }
6
+
7
+ [role='listbox'] {
8
+ overflow-y: auto;
9
+ outline: none;
10
+ }
11
+ `){constructor(){super(),this.required=!1,this.placeholder="",this.value="",this.multi=!1,this.label="",this.hint="",this.isOpen=!1,this.valueLabel="",this.isValid=!0,this.validationMessage="",this._userInteracted=!1,this.handleKeyDown=e=>{if(!this.isOpen)return void(["Enter"," ","ArrowDown"].includes(e.key)&&(e.preventDefault(),this.openDropdown(!1)));const t=this.options.findIndex(i=>i.matches(":focus"))??-1;switch(e.key){case"Escape":case"Tab":this.closeDropdown();break;case"ArrowDown":e.preventDefault(),this.focusOption(this.options,Math.min(t+1,this.options.length-1));break;case"ArrowUp":e.preventDefault(),this.focusOption(this.options,Math.max(t-1,0));break;case"Enter":case" ":e.preventDefault(),t>=0&&this.handleOptionSelect(this.options[t].value)}};try{this.internals=this.attachInternals()}catch{}}get form(){var e;return(e=this.internals)==null?void 0:e.form}connectedCallback(){super.connectedCallback(),this.id||(this.id=`schmancy-select-${Math.random().toString(36).substr(2,9)}`),this.addEventListener("keydown",this.handleKeyDown)}disconnectedCallback(){var e;super.disconnectedCallback(),this.removeEventListener("keydown",this.handleKeyDown),(e=this.cleanupPositioner)==null||e.call(this)}firstUpdated(){this.syncSelection(),this.setupOptionsAccessibility()}updated(e){var t;if(super.updated(e),e.has("value")){const i=Array.isArray(this.value)?this.value.join(","):this.value;(t=this.internals)==null||t.setFormValue(i),this.required&&this.hasUpdated&&this._userInteracted&&this.checkValidity()}}syncSelection(){if(this.multi){const e=Array.isArray(this.value)?this.value:[];this.options.forEach(t=>t.selected=e.includes(t.value)),this.valueLabel=e.length>0?this.options.filter(t=>e.includes(t.value)).map(t=>t.label).join(", "):this.placeholder}else{const e=this.options.find(t=>t.value===this.value);this.valueLabel=(e==null?void 0:e.label)||this.placeholder}}setupOptionsAccessibility(){this.options.forEach((e,t)=>{e.setAttribute("role","option"),e.id||(e.id=`${this.id}-option-${t}`),e.tabIndex=-1;const i=Array.isArray(this.value)?this.value:[];e.setAttribute("aria-selected",String(this.multi?i.includes(e.value):e.value===this.value))})}async positionDropdown(){const e=this.renderRoot.querySelector(".trigger");if(!e||!this.ul)return;const t=window.innerHeight-e.getBoundingClientRect().bottom-10;this.ul.style.maxHeight=`${t}px`,this.cleanupPositioner=r.autoUpdate(e,this.ul,async()=>{const{x:i,y:s}=await r.computePosition(e,this.ul,{placement:"bottom-start",middleware:[r.offset(5),r.flip(),r.shift({padding:5})]});Object.assign(this.ul.style,{left:`${i}px`,top:`${s}px`,position:"absolute"})})}focusOption(e,t){const i=e[t];if(i){i.focus();const s=this.renderRoot.querySelector(".trigger");s==null||s.setAttribute("aria-activedescendant",i.id)}}async openDropdown(e=!1){this.isOpen=!0,await this.updateComplete,this.positionDropdown(),this.setupOptionsAccessibility();const t=Array.from(this.ul.querySelectorAll('[role="option"]')),i=this.multi?0:t.findIndex(s=>s.getAttribute("value")===this.value);this.focusOption(t,Math.max(i,0)),e&&this.reportValidity()}closeDropdown(){var t;this.isOpen=!1,(t=this.cleanupPositioner)==null||t.call(this);const e=this.renderRoot.querySelector(".trigger");e==null||e.removeAttribute("aria-activedescendant"),e==null||e.focus()}handleOptionSelect(e){var t;if(this._userInteracted=!0,this.multi){const i=this.options.find(n=>n.value===e);if(!i)return;i.selected=!i.selected;let s=Array.isArray(this.value)?[...this.value]:[];s=i.selected?[...s,e]:s.filter(n=>n!==e),this.value=s,this.valueLabel=s.length>0?this.options.filter(n=>s.includes(n.value)).map(n=>n.label).join(", "):this.placeholder,this.dispatchChange(s)}else this.options.forEach(i=>i.selected=i.value===e),this.value=e,this.valueLabel=((t=this.options.find(i=>i.value===e))==null?void 0:t.label)||this.placeholder,this.dispatchChange(e),this.closeDropdown();this.setupOptionsAccessibility(),this.checkValidity()}dispatchChange(e){this.isValid=!0,this.validationMessage="",this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0}))}checkValidity(){var t,i;const e=this.multi?!Array.isArray(this.value)||this.value.length===0:!this.value;return this.isValid=!(this.required&&e),this.isValid?(this.validationMessage="",(t=this.internals)==null||t.setValidity({})):(this.validationMessage="Please select an option.",(i=this.internals)==null||i.setValidity({valueMissing:!0},"Please select an option.",this.inputRef)),this.isValid}reportValidity(){const e=this.checkValidity();return!e&&this.required&&(this.inputRef.required=!0,this.inputRef.reportValidity(),this.isOpen||this.openDropdown(!1)),e}setCustomValidity(e){var t;this.validationMessage=e,(t=this.internals)==null||t.setValidity(e?{customError:!0}:{},e,this.inputRef)}reset(){var e;this.value="",this.valueLabel=this.placeholder,this.isValid=!0,this.validationMessage="",(e=this.internals)==null||e.setValidity({}),this.options.forEach(t=>t.selected=!1)}render(){return h.html`
12
+ <div class="relative">
13
+ <schmancy-input
14
+ .name=${this.name}
15
+ tabIndex="0"
16
+ class="trigger"
17
+ role="combobox"
18
+ aria-haspopup="listbox"
19
+ aria-expanded=${this.isOpen}
20
+ aria-controls="options"
21
+ aria-autocomplete="none"
22
+ aria-required=${this.required}
23
+ .label=${this.label}
24
+ .placeholder=${this.placeholder}
25
+ .value=${this.valueLabel}
26
+ .required=${this.required}
27
+ .hint=${this.hint||this.validationMessage}
28
+ .error=${!this.isValid}
29
+ readonly
30
+ @click=${()=>this.isOpen?this.closeDropdown():this.openDropdown(!0)}
31
+ ></schmancy-input>
32
+
33
+ <div
34
+ id="overlay"
35
+ class="fixed inset-0"
36
+ ?hidden=${!this.isOpen}
37
+ @click=${this.closeDropdown}
38
+ tabindex="-1"
39
+ aria-hidden="true"
40
+ ></div>
41
+
42
+ <ul
43
+ id="options"
44
+ role="listbox"
45
+ aria-multiselectable=${this.multi}
46
+ class=${p.classMap({"absolute z-[1000] mt-1 w-full rounded-md shadow-sm":!0,hidden:!this.isOpen})}
47
+ ${d.color({bgColor:y.SchmancyTheme.sys.color.surface.container})}
48
+ @click=${e=>{var s;const t=e,i=(s=t.detail)==null?void 0:s.value;i&&this.handleOptionSelect(i)}}
49
+ >
50
+ <slot
51
+ @slotchange=${()=>{this.syncSelection(),this.setupOptionsAccessibility()}}
52
+ ></slot>
53
+ </ul>
54
+ </div>
55
+ `}},exports.SchmancySelect.formAssociated=!0,o([a.property({type:String})],exports.SchmancySelect.prototype,"name",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancySelect.prototype,"required",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"placeholder",2),o([a.property({type:String,reflect:!0})],exports.SchmancySelect.prototype,"value",2),o([a.property({type:Boolean})],exports.SchmancySelect.prototype,"multi",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"label",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"hint",2),o([a.state()],exports.SchmancySelect.prototype,"isOpen",2),o([a.state()],exports.SchmancySelect.prototype,"valueLabel",2),o([a.state()],exports.SchmancySelect.prototype,"isValid",2),o([a.property({type:String})],exports.SchmancySelect.prototype,"validationMessage",2),o([a.query("ul")],exports.SchmancySelect.prototype,"ul",2),o([a.query("schmancy-input")],exports.SchmancySelect.prototype,"inputRef",2),o([a.queryAssignedElements({flatten:!0})],exports.SchmancySelect.prototype,"options",2),o([a.state()],exports.SchmancySelect.prototype,"_userInteracted",2),exports.SchmancySelect=o([a.customElement("schmancy-select")],exports.SchmancySelect);
56
+ //# sourceMappingURL=select-D3yrgnVD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-D3yrgnVD.cjs","sources":["../src/select/select.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { css, html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nexport type SchmancySelectChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-select')\nexport class SchmancySelect extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t}\n\n\t[role='listbox'] {\n\t\toverflow-y: auto;\n\t\toutline: none;\n\t}\n`) {\n\t// Form association setup\n\tstatic formAssociated = true\n\tprivate internals?: ElementInternals\n\n\t// API\n\t@property({ type: String }) name: string | undefined\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value: string | string[] = '' // for single-select or multi-select\n\t@property({ type: Boolean }) multi = false\n\t@property({ type: String }) label = ''\n\t@property({ type: String }) hint = ''\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private valueLabel = ''\n\t@state() private isValid = true\n\t@property({ type: String }) validationMessage = ''\n\n\t@query('ul') private ul!: HTMLUListElement\n\t@query('schmancy-input') private inputRef!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\tprivate cleanupPositioner?: () => void\n\t@state() private _userInteracted = false\n\n\tconstructor() {\n\t\tsuper()\n\t\t// Initialize ElementInternals for form association\n\t\ttry {\n\t\t\tthis.internals = this.attachInternals()\n\t\t} catch (e) {\n\t\t\tconsole.warn('FormAssociated elements not supported in this browser', e)\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-select-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\t\tthis.addEventListener('keydown', this.handleKeyDown)\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis.removeEventListener('keydown', this.handleKeyDown)\n\t\tthis.cleanupPositioner?.()\n\t}\n\n\tfirstUpdated() {\n\t\tthis.syncSelection()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (changedProps.has('value')) {\n\t\t\t// Update form value when component value changes\n\t\t\tconst formValue = Array.isArray(this.value) ? this.value.join(',') : this.value\n\t\t\tthis.internals?.setFormValue(formValue)\n\n\t\t\t// Only check validity if this isn't the first render\n\t\t\t// and the component has been interacted with\n\t\t\tif (this.required && this.hasUpdated && this._userInteracted) {\n\t\t\t\tthis.checkValidity()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate syncSelection() {\n\t\tif (this.multi) {\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\t\t\tthis.options.forEach(o => (o.selected = selectedValues.includes(o.value))) // Update option selected state\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\t\t} else {\n\t\t\tconst selectedOption = this.options.find(o => o.value === this.value)\n\t\t\tthis.valueLabel = selectedOption?.label || this.placeholder\n\t\t}\n\t}\n\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\tconst selectedValues = Array.isArray(this.value) ? this.value : []\n\n\t\t\toption.setAttribute(\n\t\t\t\t'aria-selected',\n\t\t\t\tString(this.multi ? selectedValues.includes(option.value) : option.value === this.value),\n\t\t\t)\n\t\t})\n\t}\n\n\tprivate async positionDropdown() {\n\t\tconst reference = this.renderRoot.querySelector('.trigger') as HTMLElement\n\t\tif (!reference || !this.ul) return\n\n\t\t// Get the available height\n\t\tconst availableHeight = window.innerHeight - reference.getBoundingClientRect().bottom - 10 // 10px buffer\n\t\tthis.ul.style.maxHeight = `${availableHeight}px` // Set max height\n\n\t\tthis.cleanupPositioner = autoUpdate(reference, this.ul, async () => {\n\t\t\tconst { x, y } = await computePosition(reference, this.ul, {\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.ul.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\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\tif (!this.isOpen) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tconst current = this.options.findIndex(o => o.matches(':focus')) ?? -1\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.min(current + 1, this.options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(this.options, Math.max(current - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (current >= 0) this.handleOptionSelect(this.options[current].value)\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\tthis.closeDropdown()\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\tconst combobox = this.renderRoot.querySelector('.trigger')\n\t\t\tcombobox?.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\n\tprivate async openDropdown(report = false) {\n\t\tthis.isOpen = true\n\t\tawait this.updateComplete\n\n\t\tthis.positionDropdown()\n\t\tthis.setupOptionsAccessibility()\n\n\t\tconst options = Array.from(this.ul.querySelectorAll('[role=\"option\"]')) as HTMLElement[]\n\t\tconst selectedIndex = this.multi ? 0 : options.findIndex(o => o.getAttribute('value') === this.value)\n\t\tthis.focusOption(options, Math.max(selectedIndex, 0))\n\t\tif (report) this.reportValidity()\n\t}\n\n\tprivate closeDropdown() {\n\t\tthis.isOpen = false\n\t\tthis.cleanupPositioner?.()\n\t\tconst combobox = this.renderRoot.querySelector<HTMLElement>('.trigger')\n\t\tcombobox?.removeAttribute('aria-activedescendant')\n\t\tcombobox?.focus()\n\t}\n\n\tprivate handleOptionSelect(value: string) {\n\t\tthis._userInteracted = true\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (!option) return\n\n\t\t\toption.selected = !option.selected\n\t\t\tlet selectedValues = Array.isArray(this.value) ? [...this.value] : []\n\n\t\t\tif (option.selected) {\n\t\t\t\tselectedValues = [...selectedValues, value]\n\t\t\t} else {\n\t\t\t\tselectedValues = selectedValues.filter(v => v !== value)\n\t\t\t}\n\n\t\t\tthis.value = selectedValues\n\n\t\t\tthis.valueLabel =\n\t\t\t\tselectedValues.length > 0\n\t\t\t\t\t? this.options\n\t\t\t\t\t\t\t.filter(o => selectedValues.includes(o.value))\n\t\t\t\t\t\t\t.map(o => o.label)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: this.placeholder\n\n\t\t\tthis.dispatchChange(selectedValues)\n\t\t} else {\n\t\t\tthis.options.forEach(o => (o.selected = o.value === value))\n\t\t\tthis.value = value\n\t\t\tthis.valueLabel = this.options.find(o => o.value === value)?.label || this.placeholder\n\t\t\tthis.dispatchChange(value)\n\t\t\tthis.closeDropdown()\n\t\t}\n\n\t\tthis.setupOptionsAccessibility()\n\t\tthis.checkValidity()\n\t}\n\n\tprivate dispatchChange(value: string | string[]) {\n\t\tthis.isValid = true // Reset validation on change\n\t\tthis.validationMessage = ''\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<SchmancySelectChangeEvent['detail']>('change', {\n\t\t\t\tdetail: { value },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\n\t\t// Also dispatch a standard change event for better form compatibility\n\t\tthis.dispatchEvent(new Event('change', { bubbles: true }))\n\t}\n\n\tpublic checkValidity(): boolean {\n\t\tconst isEmpty = this.multi ? !Array.isArray(this.value) || this.value.length === 0 : !this.value\n\n\t\tthis.isValid = !(this.required && isEmpty)\n\n\t\tif (!this.isValid) {\n\t\t\tthis.validationMessage = 'Please select an option.'\n\t\t\tthis.internals?.setValidity({ valueMissing: true }, 'Please select an option.', this.inputRef)\n\t\t} else {\n\t\t\tthis.validationMessage = ''\n\t\t\tthis.internals?.setValidity({})\n\t\t}\n\n\t\treturn this.isValid\n\t}\n\n\tpublic reportValidity(): boolean {\n\t\tconst valid = this.checkValidity()\n\n\t\tif (!valid && this.required) {\n\t\t\t// If invalid, make sure the input shows it\n\t\t\tthis.inputRef.required = true\n\t\t\tthis.inputRef.reportValidity()\n\n\t\t\t// Optionally open the dropdown to show options\n\t\t\tif (!this.isOpen) {\n\t\t\t\tthis.openDropdown(false)\n\t\t\t}\n\t\t}\n\n\t\treturn valid\n\t}\n\n\tpublic setCustomValidity(message: string) {\n\t\tthis.validationMessage = message\n\t\tthis.internals?.setValidity(message ? { customError: true } : {}, message, this.inputRef)\n\t}\n\n\tpublic reset() {\n\t\tthis.value = ''\n\t\tthis.valueLabel = this.placeholder\n\t\tthis.isValid = true\n\t\tthis.validationMessage = ''\n\t\tthis.internals?.setValidity({})\n\t\tthis.options.forEach(o => (o.selected = false))\n\t}\n\n\trender(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<schmancy-input\n\t\t\t\t\t.name=${this.name}\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\tclass=\"trigger\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\taria-required=${this.required}\n\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t.value=${this.valueLabel}\n\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t.hint=${this.hint || this.validationMessage}\n\t\t\t\t\t.error=${!this.isValid}\n\t\t\t\t\treadonly\n\t\t\t\t\t@click=${() => (this.isOpen ? this.closeDropdown() : this.openDropdown(true))}\n\t\t\t\t></schmancy-input>\n\n\t\t\t\t<div\n\t\t\t\t\tid=\"overlay\"\n\t\t\t\t\tclass=\"fixed inset-0\"\n\t\t\t\t\t?hidden=${!this.isOpen}\n\t\t\t\t\t@click=${this.closeDropdown}\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t></div>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi}\n\t\t\t\t\tclass=${classMap({\n\t\t\t\t\t\t'absolute z-[1000] mt-1 w-full rounded-md shadow-sm': true,\n\t\t\t\t\t\thidden: !this.isOpen,\n\t\t\t\t\t})}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\tconst customEvt = e as CustomEvent\n\t\t\t\t\t\tconst detailVal = customEvt.detail?.value\n\t\t\t\t\t\tif (detailVal) {\n\t\t\t\t\t\t\tthis.handleOptionSelect(detailVal)\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\t\tthis.syncSelection()\n\t\t\t\t\t\t\tthis.setupOptionsAccessibility()\n\t\t\t\t\t\t}}\n\t\t\t\t\t></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-select': SchmancySelect\n\t}\n}\n"],"names":["SchmancySelect","$LitElement","css","super","this","required","placeholder","value","multi","label","hint","isOpen","valueLabel","isValid","validationMessage","_userInteracted","handleKeyDown","e","includes","key","preventDefault","openDropdown","current","options","findIndex","o","matches","closeDropdown","focusOption","Math","min","length","max","handleOptionSelect","internals","attachInternals","form","connectedCallback","id","random","toString","substr","addEventListener","disconnectedCallback","removeEventListener","cleanupPositioner","firstUpdated","syncSelection","setupOptionsAccessibility","changedProps","updated","has","formValue","Array","isArray","join","setFormValue","hasUpdated","checkValidity","selectedValues","forEach","selected","filter","map","selectedOption","find","option","index","setAttribute","tabIndex","String","reference","renderRoot","querySelector","ul","availableHeight","window","innerHeight","getBoundingClientRect","bottom","style","maxHeight","autoUpdate","async","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","left","top","position","focus","combobox","report","updateComplete","positionDropdown","from","querySelectorAll","selectedIndex","getAttribute","reportValidity","removeAttribute","v","dispatchChange","dispatchEvent","CustomEvent","detail","bubbles","composed","Event","isEmpty","setValidity","valueMissing","inputRef","valid","message","customError","html","name","classMap","hidden","color","bgColor","SchmancyTheme","sys","surface","container","customEvt","detailVal","formAssociated","__decorateClass","property","type","prototype","Boolean","reflect","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
package/dist/select.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-BdU6KcPX.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./select-D3yrgnVD.cjs");Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>e.SchmancySelect});
2
2
  //# sourceMappingURL=select.cjs.map
package/dist/select.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S } from "./select-8AjN6LbM.js";
1
+ import { S } from "./select-C2TJxenH.js";
2
2
  export {
3
3
  S as SchmancySelect
4
4
  };
@@ -0,0 +1,62 @@
1
+ "use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const w=require("./tailwind.mixin-csgxM8P_.cjs"),u=require("lit"),a=require("lit/decorators.js"),E=require("./litElement.mixin-CAXeI5RY.cjs"),v=require("lit/directives/if-defined.js"),f=require("lit/directives/when.js");var S=Object.getOwnPropertyDescriptor;let g=class extends w.TailwindElement(u.css``){render(){return u.html`
2
+ <sch-flex class="absolute top-0 left-0 md:left-[unset] md:right-0">
3
+ <div class="block md:hidden flex-1 justify-start items-start">
4
+ <slot name="back">
5
+ <schmancy-button
6
+ @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
7
+ >
8
+ <span class="text-[24px]">&#8592; </span>
9
+ </schmancy-button>
10
+ </slot>
11
+ </div>
12
+
13
+ <div class="hidden md:block flex-1 justify-end items-end">
14
+ <slot name="actions">
15
+ <schmancy-icon-button
16
+ @click=${()=>{this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))}}
17
+ >
18
+ close
19
+ </schmancy-icon-button>
20
+ </slot>
21
+ </div>
22
+ </sch-flex>
23
+ `}};g=((t,e,i,o)=>{for(var c,h=o>1?void 0:o?S(e,i):e,l=t.length-1;l>=0;l--)(c=t[l])&&(h=c(h)||h);return h})([a.customElement("schmancy-sheet-header")],g);var d=(t=>(t.Side="side",t.Bottom="bottom",t.BottomCenter="bottom-center",t.TopRight="top-right",t.BottomRight="bottom-right",t))(d||{});const y="are-you-there-sheet",b="yes-here",x=new class{constructor(){this.bottomSheet=new s.Subject,this.$dismiss=new s.Subject,this.bottomSheet.pipe(s.switchMap(t=>s.forkJoin([s.fromEvent(window,b).pipe(s.takeUntil(s.timer(0)),s.map(e=>e.detail.sheet),s.defaultIfEmpty(void 0)),s.of(t).pipe(s.tap(()=>{window.dispatchEvent(new CustomEvent(y,{detail:{uid:t.uid??t.component.tagName}}))}))])),s.map(([t,e])=>{t||(t=document.createElement("schmancy-sheet"),document.body.appendChild(t)),t.setAttribute("uid",e.uid??e.component.tagName);const i=e.position||(window.innerWidth>=768?"side":"bottom");return t.setAttribute("position",i),t.setAttribute("allowOverlyDismiss",e.allowOverlyDismiss===!1?"false":"true"),e.title&&t.setAttribute("title",e.title),e.persist&&t.setAttribute("persist",e.persist??!1),e.header&&t.setAttribute("header",e.header),document.body.style.overflow="hidden",{target:e,sheet:t}}),s.delay(20),s.filter(({target:t,sheet:e})=>{var i,o;return!t.persist||!((o=(i=e==null?void 0:e.shadowRoot)==null?void 0:i.querySelector("slot"))!=null&&o.assignedElements().find(c=>c.tagName===t.component.tagName))||(e==null||e.setAttribute("open","true"),!1)}),s.tap(({target:t,sheet:e})=>{e==null||e.appendChild(t.component)}),s.delay(1),s.tap(({sheet:t})=>{t==null||t.setAttribute("open","true")}),s.tap(({sheet:t})=>{s.fromEvent(t,"close").pipe(s.take(1)).pipe(s.delay(300)).subscribe(e=>{const i=e.target;i!=null&&i.persist||(i==null||i.remove()),document.body.style.overflow="auto"})})).subscribe(),this.$dismiss.pipe(s.mergeMap(t=>s.forkJoin([s.fromEvent(window,b).pipe(s.takeUntil(s.timer(100)),s.map(e=>e.detail.sheet),s.defaultIfEmpty(void 0)),s.of(t).pipe(s.tap(()=>{window.dispatchEvent(new CustomEvent(y,{detail:{uid:t}}))}))])),s.tap(([t])=>{t==null||t.closeSheet()})).subscribe()}dismiss(t){this.$dismiss.next(t)}open(t){this.bottomSheet.next(t)}};var k=Object.defineProperty,C=Object.getOwnPropertyDescriptor,r=(t,e,i,o)=>{for(var c,h=o>1?void 0:o?C(e,i):e,l=t.length-1;l>=0;l--)(c=t[l])&&(h=(o?c(e,i,h):c(h))||h);return o&&h&&k(e,i,h),h};let n=class extends E.$LitElement(':host{--overlay-color: var(--schmancy-sys-color-surface-dim);--transition-duration: .2s;--transition-timing: ease-in-out;--sheet-radius: 0;--max-height: 100vh}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;visibility:visible;transition:visibility var(--transition-duration) var(--transition-timing)}.sheet[aria-hidden=true]{visibility:hidden;pointer-events:none}.sheet[aria-hidden=true] .content{transform:translateY(100%)}.sheet[aria-hidden=true] .content[data-position=side]{transform:translate(100%)}.sheet[aria-hidden=true] .overlay{opacity:0}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-color);opacity:.8;transition:opacity var(--transition-duration) var(--transition-timing)}.content{z-index:1;transition:transform var(--transition-duration) var(--transition-timing);overflow:hidden}.content[data-position=side]{height:100vh;height:100%;min-width:320px;max-width:90vw;width:fit-content;margin-left:auto}.content[data-position=side] #body{max-height:100vh}.content[data-position=bottom]{width:100%;margin-top:auto;border-radius:16px 16px 0 0;max-height:90vh}.content[data-position=bottom] #body{max-height:90vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}[data-position=bottom]:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background-color:var(--schmancy-sys-color-surface-onVariant);opacity:.3;border-radius:2px;z-index:10}'){constructor(){super(...arguments),this.open=!1,this.header="visible",this.position=d.Side,this.persist=!1,this.allowOverlayDismiss=!0,this.preventBackdropClick=!1,this.title="",this.animationDuration=200,this.animationEasing="ease-in-out",this.focusAttribute="autofocus",this.lastFocusedElement=null,this.startY=0,this.currentY=0,this.resizeObserver=null,this.handleFocusIn=t=>{var e;(e=this.sheet)!=null&&e.contains(t.target)||this.focus()},this.handleScroll=()=>{},this.handleTouchStart=t=>{this.position===d.Bottom&&(this.startY=t.touches[0].clientY,this.currentY=this.startY)},this.handleTouchMove=t=>{if(this.position===d.Bottom){this.currentY=t.touches[0].clientY;const e=this.currentY-this.startY;e>0&&(t.currentTarget.style.transform=`translateY(${e}px)`,t.preventDefault())}},this.handleTouchEnd=t=>{if(this.position===d.Bottom){const e=t.currentTarget,i=this.currentY-this.startY;e.style.transform="",i>Math.min(100,.3*e.offsetHeight)&&this.closeSheet()}}}onOpenChange(t,e){var i;e?(this.lastFocusedElement=document.activeElement,this.addFocusTrap(),this.focus(),this.fireEvent("open")):(this.removeFocusTrap(),(i=this.lastFocusedElement)==null||i.focus(),this.lastFocusedElement=null),this.updateCssVariables()}connectedCallback(){super.connectedCallback(),this.setupEventListeners(),this.resizeObserver=new ResizeObserver(()=>{this.open&&this.updateSheetDimensions()}),this.resizeObserver.observe(document.body),this.updateCssVariables()}firstUpdated(){var t;(t=this.bodyElement)==null||t.addEventListener("scroll",this.handleScroll,{passive:!0})}updated(t){(t.has("animationDuration")||t.has("animationEasing"))&&this.updateCssVariables()}disconnectedCallback(){var t,e;super.disconnectedCallback(),this.disconnecting.next(!0),(t=this.bodyElement)==null||t.removeEventListener("scroll",this.handleScroll),(e=this.resizeObserver)==null||e.disconnect()}updateCssVariables(){this.style.setProperty("--transition-duration",`${this.animationDuration}ms`),this.style.setProperty("--transition-timing",this.animationEasing)}setupEventListeners(){const t=s.fromEvent(window,"popstate").pipe(s.tap(o=>{o.preventDefault(),this.closeSheet()})),e=s.fromEvent(window,"keyup").pipe(s.tap(o=>{o.key!=="Escape"||this.sheetContainsFocus()||this.closeSheet()})),i=s.fromEvent(window,y).pipe(s.tap(o=>{o.detail.uid===this.uid&&this.announcePresence()}));s.merge(t,e,i).pipe(s.takeUntil(this.disconnecting)).subscribe()}sheetContainsFocus(){var t;return((t=this.sheet)==null?void 0:t.contains(document.activeElement))??!1}announcePresence(){this.dispatchEvent(new CustomEvent(b,{detail:{sheet:this},bubbles:!0,composed:!0}))}addFocusTrap(){document.addEventListener("focusin",this.handleFocusIn)}removeFocusTrap(){document.removeEventListener("focusin",this.handleFocusIn)}setIsSheetShown(t){var e,i;(e=this.sheet)==null||e.setAttribute("aria-hidden",String(!t)),(i=this.sheet)==null||i.setAttribute("aria-modal",String(t))}closeSheet(){const t=new CustomEvent("before-close",{bubbles:!0,composed:!0,cancelable:!0});this.dispatchEvent(t)&&(this.open=!1,this.fireEvent("close"))}updateSheetDimensions(){var t;if(this.position===d.Bottom){const e=(t=this.shadowRoot)==null?void 0:t.querySelector(".content");e&&(e.style.maxHeight=.9*window.innerHeight+"px")}}getFocusElement(){var e;if(this.initialFocusSelector){const i=(e=this.shadowRoot)==null?void 0:e.querySelector(this.initialFocusSelector);if(i)return i}const t=`[${this.focusAttribute}]`;return this.assignedElements.find(i=>i.matches(t)||i.querySelector(t))??null}focus(){var t;(t=this.getFocusElement())==null||t.focus()}fireEvent(t,e={}){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}render(){return u.html`
24
+ <div
25
+ class="sheet"
26
+ role="dialog"
27
+ aria-labelledby=${v.ifDefined(this.title?"sheet-title":this.ariaLabel?"sheet-aria-label":void 0)}
28
+ aria-describedby=${v.ifDefined(this.ariaDescribedBy)}
29
+ aria-hidden=${!this.open}
30
+ aria-modal=${this.open}
31
+ >
32
+ ${f.when(this.ariaLabel&&!this.title,()=>u.html`<span id="sheet-aria-label" class="sr-only">${this.ariaLabel}</span>`)}
33
+
34
+ <div
35
+ class="overlay"
36
+ @click=${t=>{t.stopPropagation(),this.allowOverlayDismiss&&!this.preventBackdropClick&&this.closeSheet()}}
37
+ ></div>
38
+
39
+ <schmancy-grid
40
+ @touchstart=${this.handleTouchStart}
41
+ @touchmove=${this.handleTouchMove}
42
+ @touchend=${this.handleTouchEnd}
43
+ rows=${this.header==="hidden"?"1fr":"auto 1fr"}
44
+ class="content w-full"
45
+ data-position=${this.position}
46
+ >
47
+ ${f.when(this.header!=="hidden",()=>u.html`<schmancy-sheet-header
48
+ class="sticky top-0 z-50 w-full"
49
+ @dismiss=${t=>{t.stopPropagation(),this.closeSheet()}}
50
+ id="sheet-title"
51
+ title=${this.title}
52
+ ></schmancy-sheet-header>`)}
53
+
54
+ <schmancy-surface rounded="left" fill="all" id="body" class="overflow-hidden" type="surface">
55
+ <schmancy-scroll>
56
+ <slot></slot>
57
+ </schmancy-scroll>
58
+ </schmancy-surface>
59
+ </schmancy-grid>
60
+ </div>
61
+ `}};var m,p;r([a.property({type:String,reflect:!0})],n.prototype,"uid",2),r([a.property({type:Boolean,reflect:!0})],n.prototype,"open",2),r([a.property({type:String,reflect:!0})],n.prototype,"header",2),r([a.property({type:String,reflect:!0})],n.prototype,"position",2),r([a.property({type:Boolean,reflect:!0})],n.prototype,"persist",2),r([a.property({type:Boolean,reflect:!0})],n.prototype,"allowOverlayDismiss",2),r([a.property({type:Boolean})],n.prototype,"preventBackdropClick",2),r([a.property({type:String,reflect:!0})],n.prototype,"title",2),r([a.property({type:String})],n.prototype,"ariaLabel",2),r([a.property({type:String})],n.prototype,"ariaDescribedBy",2),r([a.property({type:String})],n.prototype,"initialFocusSelector",2),r([a.property({type:Number})],n.prototype,"animationDuration",2),r([a.property({type:String})],n.prototype,"animationEasing",2),r([a.property()],n.prototype,"focusAttribute",2),r([a.query(".sheet")],n.prototype,"sheet",2),r([a.query("#body")],n.prototype,"bodyElement",2),r([a.queryAssignedElements({flatten:!0})],n.prototype,"assignedElements",2),r([(m="open",(t,e)=>{const{willUpdate:i}=t;p=Object.assign({waitUntilFirstUpdate:!1},p),t.willUpdate=function(o){if(i.call(this,o),o.has(m)){const c=o.get(m),h=this[m];c!==h&&(p!=null&&p.waitUntilFirstUpdate&&!this.hasUpdated||this[e].call(this,c,h))}}})],n.prototype,"onOpenChange",1),n=r([a.customElement("schmancy-sheet")],n),exports.SchmancySheetPosition=d,exports.SheetHereMorty=b,exports.SheetWhereAreYouRicky=y,exports.sheet=x;
62
+ //# sourceMappingURL=sheet-CwzonocJ.cjs.map