@mhmo91/schmancy 0.2.16 → 0.2.17

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 (217) hide show
  1. package/dist/{animated-text-BR3J5YzM.js → animated-text-DrjiBStC.js} +3 -3
  2. package/dist/{animated-text-BR3J5YzM.js.map → animated-text-DrjiBStC.js.map} +1 -1
  3. package/dist/{animated-text-B7ot87Yb.cjs → animated-text-VuDSGmJu.cjs} +2 -2
  4. package/dist/{animated-text-B7ot87Yb.cjs.map → animated-text-VuDSGmJu.cjs.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-BlcOhWYn.js → area.component-BLglMVqv.js} +3 -3
  9. package/dist/{area.component-BlcOhWYn.js.map → area.component-BLglMVqv.js.map} +1 -1
  10. package/dist/{area.component-Dvbv9xus.cjs → area.component-qqTF9Cwv.cjs} +2 -2
  11. package/dist/{area.component-Dvbv9xus.cjs.map → area.component-qqTF9Cwv.cjs.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-GCjmIPKP.cjs → autocomplete-B0fc_Nh_.cjs} +2 -2
  14. package/dist/{autocomplete-GCjmIPKP.cjs.map → autocomplete-B0fc_Nh_.cjs.map} +1 -1
  15. package/dist/{autocomplete-vfdJnjAx.js → autocomplete-cGKAFBi1.js} +3 -3
  16. package/dist/{autocomplete-vfdJnjAx.js.map → autocomplete-cGKAFBi1.js.map} +1 -1
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/busy.cjs +1 -1
  20. package/dist/busy.js +1 -1
  21. package/dist/button.cjs +1 -1
  22. package/dist/button.js +1 -1
  23. package/dist/card.cjs +1 -1
  24. package/dist/card.js +1 -1
  25. package/dist/{checkbox-B6wuWHQT.cjs → checkbox-CFRY_WA9.cjs} +2 -2
  26. package/dist/{checkbox-B6wuWHQT.cjs.map → checkbox-CFRY_WA9.cjs.map} +1 -1
  27. package/dist/{checkbox-BrVJwQYt.js → checkbox-D9M3J9G8.js} +2 -2
  28. package/dist/{checkbox-BrVJwQYt.js.map → checkbox-D9M3J9G8.js.map} +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.js +1 -1
  31. package/dist/{chips-iwpEO4yI.js → chips-CCQq31in.js} +3 -3
  32. package/dist/{chips-iwpEO4yI.js.map → chips-CCQq31in.js.map} +1 -1
  33. package/dist/{chips-DW4wk4ns.cjs → chips-DK1t1fX8.cjs} +2 -2
  34. package/dist/{chips-DW4wk4ns.cjs.map → chips-DK1t1fX8.cjs.map} +1 -1
  35. package/dist/chips.cjs +1 -1
  36. package/dist/chips.js +1 -1
  37. package/dist/components.cjs +1 -1
  38. package/dist/components.js +1 -1
  39. package/dist/content-drawer.cjs +1 -1
  40. package/dist/content-drawer.js +1 -1
  41. package/dist/{date-range-Bf_u0TPH.js → date-range-CyPVmgYc.js} +3 -3
  42. package/dist/{date-range-Bf_u0TPH.js.map → date-range-CyPVmgYc.js.map} +1 -1
  43. package/dist/{date-range-C6ObEwpy.cjs → date-range-ojNc9Onw.cjs} +2 -2
  44. package/dist/{date-range-C6ObEwpy.cjs.map → date-range-ojNc9Onw.cjs.map} +1 -1
  45. package/dist/date-range.cjs +1 -1
  46. package/dist/date-range.js +1 -1
  47. package/dist/{delay-DrTqFWuI.js → delay-75ofxuyx.js} +2 -2
  48. package/dist/{delay-DrTqFWuI.js.map → delay-75ofxuyx.js.map} +1 -1
  49. package/dist/{delay-Ci5OBInD.cjs → delay-BdpZfHDc.cjs} +2 -2
  50. package/dist/{delay-Ci5OBInD.cjs.map → delay-BdpZfHDc.cjs.map} +1 -1
  51. package/dist/delay.cjs +1 -1
  52. package/dist/delay.js +1 -1
  53. package/dist/{divider-DE_qGu0Z.js → divider-C9o90_5e.js} +3 -3
  54. package/dist/{divider-DE_qGu0Z.js.map → divider-C9o90_5e.js.map} +1 -1
  55. package/dist/{divider-C-olgct1.cjs → divider-_i9O2PBo.cjs} +2 -2
  56. package/dist/{divider-C-olgct1.cjs.map → divider-_i9O2PBo.cjs.map} +1 -1
  57. package/dist/divider.cjs +1 -1
  58. package/dist/divider.js +1 -1
  59. package/dist/{form-CiopR1cw.js → form-Cmp0Zkgn.js} +2 -2
  60. package/dist/{form-CiopR1cw.js.map → form-Cmp0Zkgn.js.map} +1 -1
  61. package/dist/{form-BftBHIa9.cjs → form-CqnEVlhB.cjs} +2 -2
  62. package/dist/{form-BftBHIa9.cjs.map → form-CqnEVlhB.cjs.map} +1 -1
  63. package/dist/form.cjs +1 -1
  64. package/dist/form.js +1 -1
  65. package/dist/{icon-C3VNzTd2.cjs → icon-CpZBVkRH.cjs} +2 -2
  66. package/dist/{icon-C3VNzTd2.cjs.map → icon-CpZBVkRH.cjs.map} +1 -1
  67. package/dist/{icon-uV29Oo_I.js → icon-DMpNiWR7.js} +3 -3
  68. package/dist/{icon-uV29Oo_I.js.map → icon-DMpNiWR7.js.map} +1 -1
  69. package/dist/{icon-button-CEcYwu6h.cjs → icon-button-BnakhpuT.cjs} +2 -2
  70. package/dist/{icon-button-CEcYwu6h.cjs.map → icon-button-BnakhpuT.cjs.map} +1 -1
  71. package/dist/{icon-button-cThH-HDx.js → icon-button-DX3Zm-2u.js} +3 -3
  72. package/dist/{icon-button-cThH-HDx.js.map → icon-button-DX3Zm-2u.js.map} +1 -1
  73. package/dist/icons.cjs +1 -1
  74. package/dist/icons.js +1 -1
  75. package/dist/index.cjs +1 -1
  76. package/dist/index.js +33 -33
  77. package/dist/{input-Dg9UEyST.cjs → input-B2rV3JCi.cjs} +2 -2
  78. package/dist/{input-Dg9UEyST.cjs.map → input-B2rV3JCi.cjs.map} +1 -1
  79. package/dist/{input-CjHwAdCr.js → input-UMM0G3kS.js} +2 -2
  80. package/dist/{input-CjHwAdCr.js.map → input-UMM0G3kS.js.map} +1 -1
  81. package/dist/input.cjs +1 -1
  82. package/dist/input.js +1 -1
  83. package/dist/layout.cjs +1 -1
  84. package/dist/layout.js +1 -1
  85. package/dist/{list-DLUs5fLg.js → list-C_X_z_54.js} +17 -17
  86. package/dist/list-C_X_z_54.js.map +1 -0
  87. package/dist/{list-CPuuRy-O.cjs → list-CbrHXdaH.cjs} +5 -5
  88. package/dist/list-CbrHXdaH.cjs.map +1 -0
  89. package/dist/list.cjs +1 -1
  90. package/dist/list.js +1 -1
  91. package/dist/{litElement.mixin-CqG5Vzn4.cjs → litElement.mixin-BGFFSTo6.cjs} +2 -2
  92. package/dist/{litElement.mixin-CqG5Vzn4.cjs.map → litElement.mixin-BGFFSTo6.cjs.map} +1 -1
  93. package/dist/{litElement.mixin-Bn8Rl6md.js → litElement.mixin-BnUdikbt.js} +2 -2
  94. package/dist/{litElement.mixin-Bn8Rl6md.js.map → litElement.mixin-BnUdikbt.js.map} +1 -1
  95. package/dist/{menu-CK0Aunqg.js → menu-BXkQgdTe.js} +3 -3
  96. package/dist/{menu-CK0Aunqg.js.map → menu-BXkQgdTe.js.map} +1 -1
  97. package/dist/{menu-BsjLQTfd.cjs → menu-BZyh3Omd.cjs} +2 -2
  98. package/dist/{menu-BsjLQTfd.cjs.map → menu-BZyh3Omd.cjs.map} +1 -1
  99. package/dist/menu.cjs +1 -1
  100. package/dist/menu.js +1 -1
  101. package/dist/nav-drawer.cjs +1 -1
  102. package/dist/nav-drawer.js +1 -1
  103. package/dist/notification.cjs +1 -1
  104. package/dist/notification.js +1 -1
  105. package/dist/{option-CEN9FFeV.cjs → option-DC1BiTB1.cjs} +2 -2
  106. package/dist/{option-CEN9FFeV.cjs.map → option-DC1BiTB1.cjs.map} +1 -1
  107. package/dist/{option-C3ovVy8Q.js → option-DLU4N2ZE.js} +2 -2
  108. package/dist/{option-C3ovVy8Q.js.map → option-DLU4N2ZE.js.map} +1 -1
  109. package/dist/option.cjs +1 -1
  110. package/dist/option.js +1 -1
  111. package/dist/{outlet-BMkGxj9Y.cjs → outlet-B1D2BYCl.cjs} +2 -2
  112. package/dist/{outlet-BMkGxj9Y.cjs.map → outlet-B1D2BYCl.cjs.map} +1 -1
  113. package/dist/{outlet-CbHO2KGb.js → outlet-DuNsi1ZI.js} +2 -2
  114. package/dist/{outlet-CbHO2KGb.js.map → outlet-DuNsi1ZI.js.map} +1 -1
  115. package/dist/{payment-card-form-CSjKMW71.js → payment-card-form-D2wNtJk-.js} +3 -3
  116. package/dist/{payment-card-form-CSjKMW71.js.map → payment-card-form-D2wNtJk-.js.map} +1 -1
  117. package/dist/{payment-card-form-ClNJIflz.cjs → payment-card-form-DT2MgPCZ.cjs} +2 -2
  118. package/dist/{payment-card-form-ClNJIflz.cjs.map → payment-card-form-DT2MgPCZ.cjs.map} +1 -1
  119. package/dist/{radio-group-BaAICOCk.js → radio-group-BAXIANqT.js} +2 -2
  120. package/dist/{radio-group-BaAICOCk.js.map → radio-group-BAXIANqT.js.map} +1 -1
  121. package/dist/{radio-group-Dq8G5fBE.cjs → radio-group-WV66V12S.cjs} +2 -2
  122. package/dist/{radio-group-Dq8G5fBE.cjs.map → radio-group-WV66V12S.cjs.map} +1 -1
  123. package/dist/radio-group.cjs +1 -1
  124. package/dist/radio-group.js +1 -1
  125. package/dist/{scroll-BJ_3vZ-c.js → scroll-BxE0fD2e.js} +2 -2
  126. package/dist/{scroll-BJ_3vZ-c.js.map → scroll-BxE0fD2e.js.map} +1 -1
  127. package/dist/{scroll-CUpYxnFS.cjs → scroll-CD1V-q-_.cjs} +2 -2
  128. package/dist/{scroll-CUpYxnFS.cjs.map → scroll-CD1V-q-_.cjs.map} +1 -1
  129. package/dist/{select-DSOpxxMT.cjs → select-BP6OE_lC.cjs} +2 -2
  130. package/dist/{select-DSOpxxMT.cjs.map → select-BP6OE_lC.cjs.map} +1 -1
  131. package/dist/{select-DzmFjt61.js → select-CV8IdXQf.js} +3 -3
  132. package/dist/{select-DzmFjt61.js.map → select-CV8IdXQf.js.map} +1 -1
  133. package/dist/select.cjs +1 -1
  134. package/dist/select.js +1 -1
  135. package/dist/{sheet-Co0cHr37.js → sheet-CcUHOsPu.js} +3 -3
  136. package/dist/{sheet-Co0cHr37.js.map → sheet-CcUHOsPu.js.map} +1 -1
  137. package/dist/{sheet-BnBjA5tD.cjs → sheet-DQ6oo0bV.cjs} +2 -2
  138. package/dist/{sheet-BnBjA5tD.cjs.map → sheet-DQ6oo0bV.cjs.map} +1 -1
  139. package/dist/sheet.cjs +1 -1
  140. package/dist/sheet.js +1 -1
  141. package/dist/{slider-dtJketj4.js → slider-B12L6AxV.js} +3 -3
  142. package/dist/{slider-dtJketj4.js.map → slider-B12L6AxV.js.map} +1 -1
  143. package/dist/{slider-CJdYHduh.cjs → slider-BEGG7odV.cjs} +2 -2
  144. package/dist/{slider-CJdYHduh.cjs.map → slider-BEGG7odV.cjs.map} +1 -1
  145. package/dist/slider.cjs +1 -1
  146. package/dist/slider.js +1 -1
  147. package/dist/{spinner-BMi71Btm.js → spinner--_IQN93k.js} +3 -3
  148. package/dist/{spinner-BMi71Btm.js.map → spinner--_IQN93k.js.map} +1 -1
  149. package/dist/{spinner-BgwQ5j4w.cjs → spinner-CMxdYix8.cjs} +2 -2
  150. package/dist/{spinner-BgwQ5j4w.cjs.map → spinner-CMxdYix8.cjs.map} +1 -1
  151. package/dist/{surface-DKT0Af0Z.js → surface-DYJn8g9F.js} +2 -2
  152. package/dist/{surface-DKT0Af0Z.js.map → surface-DYJn8g9F.js.map} +1 -1
  153. package/dist/{surface-D6dflZFw.cjs → surface-pByMeeQt.cjs} +2 -2
  154. package/dist/{surface-D6dflZFw.cjs.map → surface-pByMeeQt.cjs.map} +1 -1
  155. package/dist/surface.cjs +1 -1
  156. package/dist/surface.js +1 -1
  157. package/dist/{table-Co0-nm4Y.cjs → table-DduFFvUh.cjs} +2 -2
  158. package/dist/{table-Co0-nm4Y.cjs.map → table-DduFFvUh.cjs.map} +1 -1
  159. package/dist/{table-DZIjJKTT.js → table-DvOkIhMb.js} +2 -2
  160. package/dist/{table-DZIjJKTT.js.map → table-DvOkIhMb.js.map} +1 -1
  161. package/dist/table.cjs +1 -1
  162. package/dist/table.js +1 -1
  163. package/dist/{tabs-group-Doix3mBX.cjs → tabs-group-BBByN_wj.cjs} +2 -2
  164. package/dist/{tabs-group-Doix3mBX.cjs.map → tabs-group-BBByN_wj.cjs.map} +1 -1
  165. package/dist/{tabs-group-JXceC_AX.js → tabs-group-Wohd6x3I.js} +2 -2
  166. package/dist/{tabs-group-JXceC_AX.js.map → tabs-group-Wohd6x3I.js.map} +1 -1
  167. package/dist/tabs.cjs +1 -1
  168. package/dist/tabs.js +1 -1
  169. package/dist/{tailwind.mixin-C3pXEh-C.cjs → tailwind.mixin-bRVZL2lY.cjs} +2 -2
  170. package/dist/{tailwind.mixin-C3pXEh-C.cjs.map → tailwind.mixin-bRVZL2lY.cjs.map} +1 -1
  171. package/dist/{tailwind.mixin-C5OzBKVB.js → tailwind.mixin-jeUK-Doz.js} +2 -2
  172. package/dist/{tailwind.mixin-C5OzBKVB.js.map → tailwind.mixin-jeUK-Doz.js.map} +1 -1
  173. package/dist/teleport.cjs +1 -1
  174. package/dist/{teleport.component-HoGT2W8s.cjs → teleport.component-B4GC8Z5F.cjs} +2 -2
  175. package/dist/{teleport.component-HoGT2W8s.cjs.map → teleport.component-B4GC8Z5F.cjs.map} +1 -1
  176. package/dist/{teleport.component-ChBGmqA6.js → teleport.component-Bq8AON2R.js} +35 -35
  177. package/dist/{teleport.component-ChBGmqA6.js.map → teleport.component-Bq8AON2R.js.map} +1 -1
  178. package/dist/teleport.js +1 -1
  179. package/dist/{textarea-vre0j7PW.js → textarea-BfzMpFnt.js} +2 -2
  180. package/dist/{textarea-vre0j7PW.js.map → textarea-BfzMpFnt.js.map} +1 -1
  181. package/dist/{textarea-BfNvgfZ_.cjs → textarea-DnIefaLe.cjs} +2 -2
  182. package/dist/{textarea-BfNvgfZ_.cjs.map → textarea-DnIefaLe.cjs.map} +1 -1
  183. package/dist/textarea.cjs +1 -1
  184. package/dist/textarea.js +1 -1
  185. package/dist/{theme-button-CQiYi_67.cjs → theme-button-B0kxPZka.cjs} +2 -2
  186. package/dist/{theme-button-CQiYi_67.cjs.map → theme-button-B0kxPZka.cjs.map} +1 -1
  187. package/dist/{theme-button-D8dDywwF.js → theme-button-C5ReoqDx.js} +2 -2
  188. package/dist/{theme-button-D8dDywwF.js.map → theme-button-C5ReoqDx.js.map} +1 -1
  189. package/dist/theme-button.cjs +1 -1
  190. package/dist/theme-button.js +1 -1
  191. package/dist/theme.cjs +1 -1
  192. package/dist/{theme.component-aTBUkNrY.cjs → theme.component-C6K_02NA.cjs} +2 -2
  193. package/dist/{theme.component-aTBUkNrY.cjs.map → theme.component-C6K_02NA.cjs.map} +1 -1
  194. package/dist/{theme.component-DnykGuEm.js → theme.component-VDofRNDt.js} +2 -2
  195. package/dist/{theme.component-DnykGuEm.js.map → theme.component-VDofRNDt.js.map} +1 -1
  196. package/dist/theme.js +1 -1
  197. package/dist/{tree-BGkPGaY8.cjs → tree-BKd26LdC.cjs} +2 -2
  198. package/dist/{tree-BGkPGaY8.cjs.map → tree-BKd26LdC.cjs.map} +1 -1
  199. package/dist/{tree-Dzh0J35T.js → tree-DN5gv8hS.js} +2 -2
  200. package/dist/{tree-Dzh0J35T.js.map → tree-DN5gv8hS.js.map} +1 -1
  201. package/dist/tree.cjs +1 -1
  202. package/dist/tree.js +1 -1
  203. package/dist/{typewriter-8avpGisR.js → typewriter-FnhgAazS.js} +4 -4
  204. package/dist/{typewriter-8avpGisR.js.map → typewriter-FnhgAazS.js.map} +1 -1
  205. package/dist/{typewriter-BodUEEGi.cjs → typewriter-jklG56Kf.cjs} +2 -2
  206. package/dist/{typewriter-BodUEEGi.cjs.map → typewriter-jklG56Kf.cjs.map} +1 -1
  207. package/dist/typewriter.cjs +1 -1
  208. package/dist/typewriter.js +1 -1
  209. package/dist/{typography-BsfF4nMf.js → typography-CPFqZt0d.js} +2 -2
  210. package/dist/{typography-BsfF4nMf.js.map → typography-CPFqZt0d.js.map} +1 -1
  211. package/dist/{typography-NRVaaUrd.cjs → typography-D5hY_euh.cjs} +2 -2
  212. package/dist/{typography-NRVaaUrd.cjs.map → typography-D5hY_euh.cjs.map} +1 -1
  213. package/dist/typography.cjs +1 -1
  214. package/dist/typography.js +1 -1
  215. package/package.json +1 -1
  216. package/dist/list-CPuuRy-O.cjs.map +0 -1
  217. package/dist/list-DLUs5fLg.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"input-Dg9UEyST.cjs","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","getValidity","validity","options","Event","click","blur","render","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"input-B2rV3JCi.cjs","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","getValidity","validity","options","Event","click","blur","render","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"slBAiCA,IAAqBA,EAArB,cAA2CC,EAAAA,gBAAAA,CAAAA,CAqJ1C,aAEC,CAAA,GADMC,MA/IaC,EAAAA,KAAAC,MAAA,GAQpBD,KAAOE,KAcK,OAEgCF,KAAOG,UAAAA,GAOhCH,KAAAI,KAAA,QAAUC,KAAKC,IAAAA,EAORN,KAAAO,YAAA,GAOiBP,KAAOQ,MAAQ,GASHR,KAAAS,SAAA,GACAT,KAAAU,SAAAA,GACAV,KAAAW,SAAAA,GACEX,KAAAY,WAAA,GAEuBZ,KAAAa,MAAA,OAmDhFb,KAAOc,UAAAA,GAOPd,KAAOe,aAAyB,MAMhCf,KAAOgB,SAAW,EAK0BhB,KAAOiB,MAAQ,GAG3DjB,KAAAkB,SAAWC,YAaN,EAAA,oBAAqBnB,KACpB,GAAA,CACEA,KAAAoB,UAAYpB,KAAKqB,gBAAgB,CAAA,MAGtCrB,CAAAA,KAAKoB,gBAAY,CAEnB,CAGD,IAAA,MACQ,OAAA,QAAApB,EAAAA,KAAKoB,YAALpB,YAAAA,EAAgBsB,OAAQ,IAAA,CAOtB,QAAQC,EAAAA,OACjBxB,MAAMyB,QAAQD,CAAAA,EACVA,EAAaE,IAAI,OACfzB,KAAAA,EAAAA,KAAAoB,YAAApB,MAAAA,EAAW0B,aAAa1B,KAAKQ,OACnC,CAIM,gBAAAmB,OACC,OAAA3B,EAAAA,KAAKkB,SAASV,QAAdR,YAAAA,EAAqB2B,gBAAe,CAIrC,eACC,OAAA,OAAA3B,EAAAA,KAAKkB,SAASV,QAAdR,YAAAA,EAAqB4B,eAAc,CAIpC,kBAAkBC,EACnB7B,QAAAA,EAAAA,KAAAkB,SAASV,QAATR,MAAAA,EAAgB8B,kBAAkBD,EAAO,CAG/C,cACK7B,CAAAA,KAAKc,WACRd,KAAK+B,MAIgBC,EAAAA,EAAAA,UAAAhC,KAAKiC,aAAc,OACvCC,EAAAA,KACAC,EAAAA,IAAIC,GAAUA,EAAMC,OAA4B7B,KAAAA,EAChD8B,EAAqBA,qBAAAA,CAAAA,EAErBC,UAAmB/B,GAAAA,CACnBR,KAAKQ,MAAQA,EACRR,KAAAwC,cACJ,IAAIC,YAA0B,SAAU,CACvCC,OAAQ,CAAElC,MAAAA,CAAAA,EACVmC,QAAS,GACTC,WAEF,CAAA,CAAA,CAAA,CAAA,EAIeZ,EAAAA,UAAAhC,KAAKiC,aAAc,QAClCC,EAAAA,KACAC,EAAAA,IAAIC,GAAUA,EAAMC,OAA4B7B,KAAAA,EAChD8B,EAAqBA,qBAErBC,CAAAA,EAAAA,UAAmB/B,GACnBR,CAAAA,KAAKQ,MAAQA,EACRR,KAAAwC,cACJ,IAAIC,YAA0B,SAAU,CACvCC,OAAQ,CAAElC,MACVmC,CAAAA,EAAAA,QAAAA,GACAC,SAAAA,EAEF,CAAA,CAAA,CAAA,CAAA,EAIFZ,EAAAA,UAAyBhC,KAAKiC,aAAc,OAC1CC,EAAAA,KAAKW,EAAAA,OAAgBT,GAAAA,EAAMU,MAAQ,OACnCP,CAAAA,EAAAA,UAAmBH,GACb,CAAA,KAAA,CAAA5B,MAAEA,CAAU4B,EAAAA,EAAMC,OAGxBrC,KAAKQ,MAAQA,EACRR,KAAAwC,cACJ,IAAIC,YAA0B,SAAU,CACvCC,OAAQ,CAAElC,MAAAA,CAAAA,EACVmC,QAAS,GACTC,SAAU,EAAA,CAAA,CAAA,EAGP5C,KAAAwC,cACJ,IAAIC,YAA0B,QAAS,CACtCC,OAAQ,CAAElC,MAAAA,CAAAA,EACVmC,QAAS,GACTC,SAAU,EAAA,CAAA,CAAA,CAEZ,CAIFZ,EAAAA,EAAAA,UAA0BhC,KAAKiC,aAAc,gBAC3CC,EAAAA,KAAKW,EAAAA,OAAaE,GAAAA,EAAGC,gBAAkB,iBAAlBA,CAAAA,EACrBT,UAAmBH,GAAAA,CACb,KAAA5B,CAAAA,MAAEA,CAAU4B,EAAAA,EAAMC,OACxBrC,KAAKQ,MAAQA,EACRR,KAAAwC,cACJ,IAAIC,YAA0B,SAAU,CACvCC,OAAQ,CAAElC,MACVmC,CAAAA,EAAAA,QAAAA,GACAC,SAAU,EAAA,CAAA,CAAA,CAEZ,CACA,CAAA,CAII,QAAAK,OACC,OAAAjD,EAAAA,KAAKkB,SAASV,QAAdR,YAAAA,EAAqBiD,QAAO,CAI7B,aAAAC,OACC,OAAAlD,EAAAA,KAAKkB,SAASV,QAAdR,YAAAA,EAAqBmD,QAAA,CAOb,MAAMC,EAChBpD,QAAAA,EAAAA,KAAAkB,SAASV,QAATR,MAAAA,EAAgB+B,MAAMqB,GAC3BpD,KAAKwC,cAAc,IAAIa,MAAM,OAAA,CAAA,CAAQ,CAMtB,OACVrD,QAAAA,EAAAA,KAAAkB,SAASV,QAATR,MAAAA,EAAgBsD,QACrBtD,KAAKwC,cAAc,IAAIa,MAAM,OAAQ,CAAA,CAAA,CAMtB,MAAAE,QACVvD,EAAAA,KAAAkB,SAASV,QAATR,MAAAA,EAAgBuD,OACrBvD,KAAKwC,cAAc,IAAIa,MAAM,MAAA,CAAA,CAAO,CAGlB,QAAAG,CAClB,MAAMC,EAAe,CACpB,mFAAA,GACA,kDAAA,GACA,yBAAA,GACA,kDAAA,GACA,+DAAA,CAAiEzD,KAAKiB,MACtE,8CAA+CjB,KAAKiB,MACpD,yEAA0EjB,KAAKW,SAC/E,iBAAkBX,KAAKG,UACvB,cAAeH,KAAKa,QAAU,SAC9B,aAAcb,KAAKa,QAAU,OAExB6C,EAAAA,EAAe,CACpB,aAAc1D,KAAKU,SACnB,iBAAkB,EAAA,EAEZ,OAAAiD,EAAAA;AAAAA,KACJC,EAAAA,KACD5D,KAAKC,MACL,IAAM0D,EAAAA;AAAAA;AAAAA,QAEFE,QAAM,CACPA,MAAO7D,KAAKiB,MAAQ6C,EAAAA,cAAcC,IAAIF,MAAM5C,MAAM+C,QAAUF,EAAAA,cAAcC,IAAIF,MAAMI,QAAQD,OAAAA,CAAAA,CAAAA;AAAAA,eAEpFE,EAAAA,SAASR,CAAAA,CAAAA;AAAAA,YACZ1D,KAAKmE,EAAAA;AAAAA;AAAAA,qDAEoCnE,KAAKC,KAAAA;AAAAA;AAAAA;;MAKpD4D,QAAM,CACPO,QAASN,EAAAA,cAAcC,IAAIF,MAAMQ,QAAQC,QACzCT,MAAOC,EAAAA,cAAcC,IAAIF,MAAMQ,QAAQE,EAAAA,CAAAA,CAAAA;AAAAA,MAEtCC,EAAAA,IAAIxE,KAAKkB,QAAAA,CAAAA;AAAAA,aACFlB,KAAKQ,KAAAA;AAAAA,SACTR,KAAKmE,EAAAA;AAAAA,WACHnE,KAAKI,IAAAA;AAAAA,YACJJ,KAAKE,IAAAA;AAAAA,WACNuE,EAAAA,UAAUzE,KAAK0E,IAAAA,CAAAA;AAAAA,oBACN1E,KAAKe,YAAAA;AAAAA,kBACPf,KAAKO,WAAAA;AAAAA,gBACPP,KAAKS,QAAAA;AAAAA,gBACLgE,EAAAA,UAAUzE,KAAK2E,SAAAA,CAAAA;AAAAA,YACnBT,EAAAA,SAAST,CAAAA,CAAAA;AAAAA,gBACLzD,KAAKU,QAAAA;AAAAA,gBACLV,KAAKW,QAAAA;AAAAA,gBACL8D,EAAAA,UAAUzE,KAAK4E,SAAAA,CAAAA;AAAAA,gBACfH,EAAAA,UAAUzE,KAAK6E,SAAAA,CAAAA;AAAAA,UACrBJ,EAAAA,UAAUzE,KAAK8E,GAAAA,CAAAA;AAAAA,UACfL,EAAAA,UAAUzE,KAAK+E,GAAAA,CAAAA;AAAAA,cACXN,EAAAA,UAAUzE,KAAKgF,OAAAA,CAAAA;AAAAA;AAAAA,KAExBpB,EAAAA,KACD5D,KAAKiF,KACL,IAAMtB,EAAAA;AAAAA;AAAAA,QAEFE,QAAM,CACPA,MAAO7D,KAAKiB,MAAQ6C,EAAAA,cAAcC,IAAIF,MAAM5C,MAAM+C,QAAUF,EAAAA,cAAcC,IAAIF,MAAMI,QAAQD,OAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QAM3FhE,KAAKiF,IAAAA;AAAAA;AAAAA;GAGT,CAAA,EAvXiBpF,EA6IbqF,eAAAA,GA7IarF,EA8IHsF,kBAAoB,CAAA,GACjCC,EAAWA,WAAAD,kBACdE,eAAAA,EAzIWC,EAAAA,EAAA,CAAXC,EAASA,SAAAA,CAAAA,EAPU1F,EAOR2F,UAAA,QAAA,CAAA,EAQLF,EAAA,CADNC,WAAS,CAAEE,QAAS,EAAA,CAAA,CAAA,EAdD5F,EAeb2F,UAAA,OAAA,CAAA,EAgB4CF,EAAA,CAAlDC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,QAAS,EAAA,CAAA,CAAA,EA/BhB5F,EA+B+B2F,UAAA,YAAA,CAAA,EAOvCF,EAAA,CAAXC,EAASA,SAAAA,CAAAA,EAtCU1F,EAsCR2F,UAAA,OAAA,CAOAF,EAAAA,EAAA,CAAXC,EAASA,SA7CU1F,CAAAA,EAAAA,EA6CR2F,UAAA,cAAA,CAAA,EAOsCF,EAAA,CAAjDC,EAAAA,SAAS,CAAErF,KAAMyF,OAAQF,QAAS,EAAA,CAAA,CAAA,EApDf5F,EAoD8B2F,UAAA,QAAA,CAAA,EAO3CF,EAAA,CADNC,EAAAA,SAAS,CAAErF,KAAMyF,OAAQF,QAAAA,EA1DN5F,CAAAA,CAAAA,EAAAA,EA2Db2F,UAAA,UAAA,CAAA,EAEqCF,EAAA,CAA3CC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,QAAS,EAAA,CAAA,CAAA,EA7DhB5F,EA6DwB2F,UAAA,WAAA,CAAA,EACAF,EAAA,CAA3CC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,QAAS,EAAA,CAAA,CAAA,EA9DhB5F,EA8DwB2F,UAAA,WAAA,CACAF,EAAAA,EAAA,CAA3CC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,UA/DP5F,CAAAA,CAAAA,EAAAA,EA+DwB2F,UAAA,WAAA,CACAF,EAAAA,EAAA,CAA3CC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,QAAAA,EAhEP5F,CAAAA,CAAAA,EAAAA,EAgEwB2F,UAAA,aAAA,GAEDF,EAAA,CAA1CC,EAAAA,SAAS,CAAErF,KAAMyF,OAAQF,QAAAA,EAlEN5F,CAAAA,CAAAA,EAAAA,EAkEuB2F,UAAA,QAAA,CAQpCF,EAAAA,EAAA,CADNC,EAASA,YAzEU1F,EA0Eb2F,UAAA,YAAA,CAAA,EAOAF,EAAA,CADNC,WAAS,CAAErF,KAAM0F,MAAAA,CAAAA,CAAAA,EAhFE/F,EAiFb2F,UAAA,YAAA,CAAA,EAOAF,EAAA,CADNC,WAAS,CAAErF,KAAM0F,MAAAA,CAAAA,CAAAA,EAvFE/F,EAwFb2F,UAAA,YAAA,CAAA,EAOAF,EAAA,CADNC,EAASA,SA9FU1F,CAAAA,EAAAA,EA+Fb2F,UAAA,MAAA,CAOAF,EAAAA,EAAA,CADNC,EAASA,SAAAA,CAAAA,EArGU1F,EAsGb2F,UAAA,MAAA,CAAA,EAOAF,EAAA,CADNC,EAAAA,SAAS,CAAErF,KAAM0F,OAAQH,QAAS,EAAA,CAAA,CAAA,EA5Gf5F,EA6Gb2F,UAAA,OAAA,CAQAF,EAAAA,EAAA,CADNC,WAAS,CAAErF,KAAMwF,OAAAA,CAAAA,CAAAA,EApHE7F,EAqHb2F,UAAA,YAAA,CAAA,EAOAF,EAAA,CADNC,WAAS,CAAErF,KAAMyF,MAAAA,CAAAA,CAAAA,EA3HE9F,EA4Hb2F,UAAA,eAAA,CAAA,EAMAF,EAAA,CADNC,EAAAA,SAAS,CAAErF,KAAM0F,OAAQH,QAAS,EAAA,CAAA,CAAA,EAjIf5F,EAkIb2F,UAAA,WAAA,CAGPF,EAAAA,EAAA,CADCC,EAASA,SApIU1F,CAAAA,EAAAA,EAqIpB2F,UAAA,OAAA,GAEmDF,EAAA,CAAlDC,EAAAA,SAAS,CAAErF,KAAMwF,QAASD,QAAAA,MAvIP5F,EAuI+B2F,UAAA,QAAA,CAAA,EAEnCF,EAAA,CAAfO,EAAAA,MAAM,UAzIahG,EAyIJ2F,UAAA,eAAA,CAAA,EAzII3F,EAArByF,EAAA,CADCQ,EAAAA,cAAc,gBACMjG,CAAAA,EAAAA,CAAAA"}
@@ -6,7 +6,7 @@ import { createRef as k, ref as w } from "lit/directives/ref.js";
6
6
  import { when as f } from "lit/directives/when.js";
7
7
  import { fromEvent as n, map as b, distinctUntilChanged as v, filter as g } from "rxjs";
8
8
  import "lit/directives/style-map.js";
9
- import { T as R } from "./tailwind.mixin-C5OzBKVB.js";
9
+ import { T as R } from "./tailwind.mixin-jeUK-Doz.js";
10
10
  import { c as m } from "./ripple-BumgqsDT.js";
11
11
  import { S as p } from "./theme.interface-C5Kj6WjD.js";
12
12
  var C = Object.defineProperty, V = Object.getOwnPropertyDescriptor, i = (t, o, h, l) => {
@@ -121,4 +121,4 @@ let e = class extends R() {
121
121
  }
122
122
  };
123
123
  e.formAssociated = !0, e.shadowRootOptions = { ...$.shadowRootOptions, delegatesFocus: !0 }, i([r()], e.prototype, "label", 2), i([r({ reflect: !0 })], e.prototype, "type", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "clickable", 2), i([r()], e.prototype, "name", 2), i([r()], e.prototype, "placeholder", 2), i([r({ type: String, reflect: !0 })], e.prototype, "value", 2), i([r({ type: String, reflect: !0 })], e.prototype, "pattern", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "required", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "disabled", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "readonly", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "spellcheck", 2), i([r({ type: String, reflect: !0 })], e.prototype, "align", 2), i([r()], e.prototype, "inputmode", 2), i([r({ type: Number })], e.prototype, "minlength", 2), i([r({ type: Number })], e.prototype, "maxlength", 2), i([r()], e.prototype, "min", 2), i([r()], e.prototype, "max", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "step", 2), i([r({ type: Boolean })], e.prototype, "autofocus", 2), i([r({ type: String })], e.prototype, "autocomplete", 2), i([r({ type: Number, reflect: !0 })], e.prototype, "tabIndex", 2), i([r()], e.prototype, "hint", 2), i([r({ type: Boolean, reflect: !0 })], e.prototype, "error", 2), i([x("input")], e.prototype, "inputElement", 2), e = i([E("schmancy-input")], e);
124
- //# sourceMappingURL=input-CjHwAdCr.js.map
124
+ //# sourceMappingURL=input-UMM0G3kS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-CjHwAdCr.js","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","constructor","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","validity","options","Event","click","blur","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"input-UMM0G3kS.js","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\t.type=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","constructor","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","validity","options","Event","click","blur","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
package/dist/input.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./input-Dg9UEyST.cjs");
1
+ "use strict";require("./input-B2rV3JCi.cjs");
2
2
  //# sourceMappingURL=input.cjs.map
package/dist/input.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./input-CjHwAdCr.js";
1
+ import "./input-UMM0G3kS.js";
2
2
  //# sourceMappingURL=input.js.map
package/dist/layout.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./scroll-CUpYxnFS.cjs");Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>e.SchmancyFlex}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>e.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>e.SchmancyScroll});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./scroll-CD1V-q-_.cjs");Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>e.SchmancyFlex}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>e.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>e.SchmancyScroll});
2
2
  //# sourceMappingURL=layout.cjs.map
package/dist/layout.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S, a as m, b as r } from "./scroll-BJ_3vZ-c.js";
1
+ import { S, a as m, b as r } from "./scroll-BxE0fD2e.js";
2
2
  export {
3
3
  S as SchmancyFlex,
4
4
  m as SchmancyGrid,
@@ -2,17 +2,17 @@ import { c as g } from "./consume-DSKPc5vj.js";
2
2
  import "rxjs";
3
3
  import "lit/directives/class-map.js";
4
4
  import "lit/directives/style-map.js";
5
- import { T as y } from "./tailwind.mixin-C5OzBKVB.js";
5
+ import { T as h } from "./tailwind.mixin-jeUK-Doz.js";
6
6
  import { S as b } from "./context-5nmahssp.js";
7
- import { css as f, html as c } from "lit";
8
- import { property as d, queryAssignedElements as u, customElement as h } from "lit/decorators.js";
9
- import { when as x } from "lit/directives/when.js";
10
- import { n as v, e as O } from "./provide-kj6-udep.js";
7
+ import { css as m, html as p } from "lit";
8
+ import { property as d, queryAssignedElements as u, customElement as f } from "lit/decorators.js";
9
+ import { when as v } from "lit/directives/when.js";
10
+ import { n as x, e as O } from "./provide-kj6-udep.js";
11
11
  var j = Object.defineProperty, w = Object.getOwnPropertyDescriptor, l = (s, e, o, r) => {
12
12
  for (var n, t = r > 1 ? void 0 : r ? w(e, o) : e, a = s.length - 1; a >= 0; a--) (n = s[a]) && (t = (r ? n(e, o, t) : n(t)) || t);
13
13
  return r && t && j(e, o, t), t;
14
14
  };
15
- let i = class extends y(f`
15
+ let i = class extends h(m`
16
16
  :host {
17
17
  display: block;
18
18
  }
@@ -32,20 +32,20 @@ let i = class extends y(f`
32
32
  });
33
33
  }
34
34
  render() {
35
- const s = { "rounded-none": this.rounded === !1, "rounded-full": this.rounded, "w-full min-h-[56px] relative flex items-center gap-[16px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden": !0, "bg-secondary-container text-secondery-onContainer": this.selected }, e = { "z-0 duration-500 transition-opacity": !0, "rounded-none": this.rounded === !1, "rounded-full": this.rounded, "hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ": !this.readonly };
36
- return c`<li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(s)}>
37
- ${x(!this.readonly, () => c` <div class="${this.classMap(e)}"></div> `)}
35
+ const s = { "rounded-none": this.rounded === !1, "rounded-full": this.rounded, "w-full min-h-[56px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden": !0, "bg-secondary-container text-secondery-onContainer": this.selected }, e = { "z-0 duration-500 transition-opacity": !0, "rounded-none": this.rounded === !1, "rounded-full": this.rounded, "hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ": !this.readonly };
36
+ return p`<li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(s)}>
37
+ ${v(!this.readonly, () => p` <div class="${this.classMap(e)}"></div> `)}
38
38
  <slot></slot>
39
39
  </li>`;
40
40
  }
41
41
  };
42
- l([g({ context: b, subscribe: !0 }), d()], i.prototype, "variant", 2), l([d({ type: Boolean })], i.prototype, "rounded", 2), l([d({ type: Boolean })], i.prototype, "readonly", 2), l([d({ type: Boolean })], i.prototype, "selected", 2), l([u({ slot: "leading", flatten: !0 })], i.prototype, "leading", 2), l([u({ slot: "trailing", flatten: !0 })], i.prototype, "trailing", 2), i = l([h("schmancy-list-item")], i);
43
- const $ = v(void 0);
44
- var C = Object.defineProperty, E = Object.getOwnPropertyDescriptor, m = (s, e, o, r) => {
42
+ l([g({ context: b, subscribe: !0 }), d()], i.prototype, "variant", 2), l([d({ type: Boolean })], i.prototype, "rounded", 2), l([d({ type: Boolean })], i.prototype, "readonly", 2), l([d({ type: Boolean })], i.prototype, "selected", 2), l([u({ slot: "leading", flatten: !0 })], i.prototype, "leading", 2), l([u({ slot: "trailing", flatten: !0 })], i.prototype, "trailing", 2), i = l([f("schmancy-list-item")], i);
43
+ const $ = x(void 0);
44
+ var C = Object.defineProperty, E = Object.getOwnPropertyDescriptor, y = (s, e, o, r) => {
45
45
  for (var n, t = r > 1 ? void 0 : r ? E(e, o) : e, a = s.length - 1; a >= 0; a--) (n = s[a]) && (t = (r ? n(e, o, t) : n(t)) || t);
46
46
  return r && t && C(e, o, t), t;
47
47
  };
48
- let p = class extends y(f`
48
+ let c = class extends h(m`
49
49
  :host {
50
50
  display: block;
51
51
  padding-top: 8px;
@@ -53,7 +53,7 @@ let p = class extends y(f`
53
53
  }
54
54
  `) {
55
55
  render() {
56
- return c`
56
+ return p`
57
57
  <schmancy-surface type=${this.surface}>
58
58
  <ul>
59
59
  <slot></slot>
@@ -62,9 +62,9 @@ let p = class extends y(f`
62
62
  `;
63
63
  }
64
64
  };
65
- m([O({ context: $ }), d()], p.prototype, "surface", 2), p = m([h("schmancy-list")], p);
65
+ y([O({ context: $ }), d()], c.prototype, "surface", 2), c = y([f("schmancy-list")], c);
66
66
  export {
67
- p as L,
67
+ c as L,
68
68
  i as S
69
69
  };
70
- //# sourceMappingURL=list-DLUs5fLg.js.map
70
+ //# sourceMappingURL=list-C_X_z_54.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-C_X_z_54.js","sources":["../src/list/list-item.ts","../src/list/context.ts","../src/list/list.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceTypeContext } from '@schmancy/surface/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\n/**\n * @element schmancy-list-item\n * @slot leading - leading content\n * @slot trailing - trailing content\n * @slot - default content\n */\n@customElement('schmancy-list-item')\nexport class SchmancyListItem extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@consume({ context: SchmancySurfaceTypeContext, subscribe: true })\n\t@property()\n\tvariant: TSurfaceColor\n\n\t@property({ type: Boolean })\n\trounded: boolean\n\n\t@property({ type: Boolean }) readonly: boolean\n\n\t@property({ type: Boolean }) selected: boolean = false\n\n\t@queryAssignedElements({\n\t\tslot: 'leading',\n\t\tflatten: true,\n\t})\n\tprivate leading!: HTMLElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'trailing',\n\t\tflatten: true,\n\t})\n\tprivate trailing!: HTMLElement[]\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['h-[24px]', 'w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\tthis.leading?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t\tthis.trailing?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'w-full min-h-[56px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'z-0 duration-500 transition-opacity': true,\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ': !this.readonly,\n\t\t}\n\t\treturn html`<li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(classes)}>\n\t\t\t${when(!this.readonly, () => html` <div class=\"${this.classMap(stateLayerClasses)}\"></div> `)}\n\t\t\t<slot></slot>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list-item': SchmancyListItem\n\t}\n}\n","import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancyListTypeContext = createContext<TSurfaceColor>(undefined)\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancyListTypeContext } from './context'\n\n/**\n * @slot - The default slot.\n */\n@customElement('schmancy-list')\nexport class List extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tpadding-top: 8px;\n\t\tpadding-bottom: 8px;\n\t}\n`) {\n\t/**\n\t * The type of list.\n\t * @attr type\n\t * @type {SchmancyListType}\n\t * @default 'surface'\n\t */\n\t@provide({ context: SchmancyListTypeContext })\n\t@property()\n\tsurface: TSurfaceColor\n\n\trender() {\n\t\treturn html`\n\t\t\t<schmancy-surface type=${this.surface}>\n\t\t\t\t<ul>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list': List\n\t}\n}\n"],"names":["SchmancyListItem","TailwindElement","css","super","arguments","this","selected","leading","forEach","img","classList","add","imgClasses","trailing","render","classes","rounded","stateLayerClasses","readonly","html","classMap","when","__decorateClass","consume","context","SchmancySurfaceTypeContext","subscribe","property","prototype","type","Boolean","queryAssignedElements","slot","flatten","customElement","SchmancyListTypeContext","createContext","undefined","List","surface","provide"],"mappings":";;;;;;;;;;;;;;AAea,IAAAA,IAAN,cAA+BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA,CAA/C,EAAA;AAAA,EAAA;AAAAC,UAAAC,GAAAA,SAAAA,GAc2CC,KAAAC,WAAAA;AAAAA,EAAA;AAAA,EAcjD,IAAA,aACQ;AAAA,WAAA,CAAC,YAAY,YAAY,gBAAgB;AAAA,EAAA;AAAA,EAGjD,eACMD;;AAAAA,KAAAA,IAAAA,KAAAE,YAAAF,QAAAA,EAASG,QAAeC,CAAAA;AAC5BA,MAAAA,EAAIC,UAAUC,IAAON,GAAAA,KAAKO;IAAU,KAEhCP,IAAAA,KAAAQ,aAAAR,QAAAA,EAAUG,QAAeC,CAAAA;AAC7BA,MAAAA,EAAIC,UAAUC,IAAON,GAAAA,KAAKO;IAAU;AAAA,EACpC;AAAA,EAGF,SAAAE;AACC,UAAMC,IAAU,EACf,gBAAgBV,KAAKW,YAAY,IACjC,gBAAgBX,KAAKW,SACrB,2NAEA,qDAAqDX,KAAKC,SAAAA,GAGrDW,IAAoB,EACzB,uCAAA,IACA,gBAAgBZ,KAAKW,YAArB,IACA,gBAAgBX,KAAKW,SACrB,uEAAwEX,CAAAA,KAAKa,SAEvE;AAAA,WAAAC,kBAAqBd,KAAKa,gBAAgB,CAAA,UAAWb,KAAKe,SAASL,CAAAA,CAAAA;AAAAA,KACvEM,EAAAA,CAAMhB,KAAKa,UAAU,MAAMC,iBAAoBd,KAAKe,SAASH,CAAAA,CAAAA,WAAAA,CAAAA;AAAAA;AAAAA;AAAAA,EAA8B;AAAA;AAlD/FK,EAAA,CAFCC,EAAQ,EAAEC,SAASC,GAA4BC,WAAW,GAAA,CAAA,GAC1DC,EANW3B,CAAAA,GAAAA,EAOZ4B,WAAA,WAAA,IAGAN,EAAA,CADCK,EAAS,EAAEE,MAAMC,QAAAA,CAAAA,CAAAA,GATN9B,EAUZ4B,WAAA,WAAA,CAAA,GAE6BN,EAAA,CAA5BK,EAAS,EAAEE,MAAMC,QAAAA,CAAAA,CAAAA,GAZN9B,EAYiB4B,WAAA,YAAA,CAEAN,GAAAA,EAAA,CAA5BK,EAAS,EAAEE,MAAMC,QAdN9B,CAAAA,CAAAA,GAAAA,EAciB4B,WAAA,YAAA,CAMrBN,GAAAA,EAAA,CAJPS,EAAsB,EACtBC,MAAM,WACNC,SAAS,GAAA,CAAA,CAAA,GAlBEjC,EAoBJ4B,WAAA,WAAA,CAAA,GAMAN,EAAA,CAJPS,EAAsB,EACtBC,MAAM,YACNC,SAAAA,GAxBWjC,CAAAA,CAAAA,GAAAA,EA0BJ4B,WAAA,YAAA,CAAA,GA1BI5B,IAANsB,EAAA,CADNY,EAAc,oBACFlC,CAAAA,GAAAA,CAAAA;ACbA,MAAAmC,IAA0BC,EAA6BC,MAAAA;;;;;ACSvD,IAAAC,IAAN,cAAmBrC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;EAiBzC,SAAAY;AACQ,WAAAK;AAAAA,4BACmBd,KAAKkC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAO;AAAA;AAJvCjB,EAAA,CAFCkB,EAAQ,EAAEhB,SAASW,MACnBR,EAdWW,CAAAA,GAAAA,EAeZV,WAAA,WAAA,IAfYU,IAANhB,EAAA,CADNY,EAAc,eAAA,CAAA,GACFI;"}
@@ -1,11 +1,11 @@
1
- "use strict";const y=require("./consume-Di0U0iBU.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const p=require("./tailwind.mixin-C3pXEh-C.cjs"),h=require("./context-BATZj31H.cjs"),l=require("lit"),n=require("lit/decorators.js"),m=require("lit/directives/when.js"),u=require("./provide-_VUNOf1R.cjs");var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,a=(r,t,s,i)=>{for(var o,e=i>1?void 0:i?g(t,s):t,c=r.length-1;c>=0;c--)(o=r[c])&&(e=(i?o(t,s,e):o(e))||e);return i&&e&&f(t,s,e),e};exports.SchmancyListItem=class extends p.TailwindElement(l.css`
1
+ "use strict";const y=require("./consume-Di0U0iBU.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const u=require("./tailwind.mixin-bRVZL2lY.cjs"),h=require("./context-BATZj31H.cjs"),l=require("lit"),n=require("lit/decorators.js"),m=require("lit/directives/when.js"),p=require("./provide-_VUNOf1R.cjs");var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,a=(r,t,s,i)=>{for(var o,e=i>1?void 0:i?g(t,s):t,c=r.length-1;c>=0;c--)(o=r[c])&&(e=(i?o(t,s,e):o(e))||e);return i&&e&&f(t,s,e),e};exports.SchmancyListItem=class extends u.TailwindElement(l.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- `){constructor(){super(...arguments),this.selected=!1}get imgClasses(){return["h-[24px]","w-[24px]","object-contain"]}firstUpdated(){var r,t;(r=this.leading)==null||r.forEach(s=>{s.classList.add(...this.imgClasses)}),(t=this.trailing)==null||t.forEach(s=>{s.classList.add(...this.imgClasses)})}render(){const r={"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"w-full min-h-[56px] relative flex items-center gap-[16px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden":!0,"bg-secondary-container text-secondery-onContainer":this.selected},t={"z-0 duration-500 transition-opacity":!0,"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ":!this.readonly};return l.html`<li .tabIndex=${this.readonly?-1:0} class=${this.classMap(r)}>
5
+ `){constructor(){super(...arguments),this.selected=!1}get imgClasses(){return["h-[24px]","w-[24px]","object-contain"]}firstUpdated(){var r,t;(r=this.leading)==null||r.forEach(s=>{s.classList.add(...this.imgClasses)}),(t=this.trailing)==null||t.forEach(s=>{s.classList.add(...this.imgClasses)})}render(){const r={"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"w-full min-h-[56px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden":!0,"bg-secondary-container text-secondery-onContainer":this.selected},t={"z-0 duration-500 transition-opacity":!0,"rounded-none":this.rounded===!1,"rounded-full":this.rounded,"hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ":!this.readonly};return l.html`<li .tabIndex=${this.readonly?-1:0} class=${this.classMap(r)}>
6
6
  ${m.when(!this.readonly,()=>l.html` <div class="${this.classMap(t)}"></div> `)}
7
7
  <slot></slot>
8
- </li>`}},a([y.c({context:h.SchmancySurfaceTypeContext,subscribe:!0}),n.property()],exports.SchmancyListItem.prototype,"variant",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"rounded",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"readonly",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"selected",2),a([n.queryAssignedElements({slot:"leading",flatten:!0})],exports.SchmancyListItem.prototype,"leading",2),a([n.queryAssignedElements({slot:"trailing",flatten:!0})],exports.SchmancyListItem.prototype,"trailing",2),exports.SchmancyListItem=a([n.customElement("schmancy-list-item")],exports.SchmancyListItem);const b=u.n(void 0);var x=Object.defineProperty,v=Object.getOwnPropertyDescriptor,d=(r,t,s,i)=>{for(var o,e=i>1?void 0:i?v(t,s):t,c=r.length-1;c>=0;c--)(o=r[c])&&(e=(i?o(t,s,e):o(e))||e);return i&&e&&x(t,s,e),e};exports.List=class extends p.TailwindElement(l.css`
8
+ </li>`}},a([y.c({context:h.SchmancySurfaceTypeContext,subscribe:!0}),n.property()],exports.SchmancyListItem.prototype,"variant",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"rounded",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"readonly",2),a([n.property({type:Boolean})],exports.SchmancyListItem.prototype,"selected",2),a([n.queryAssignedElements({slot:"leading",flatten:!0})],exports.SchmancyListItem.prototype,"leading",2),a([n.queryAssignedElements({slot:"trailing",flatten:!0})],exports.SchmancyListItem.prototype,"trailing",2),exports.SchmancyListItem=a([n.customElement("schmancy-list-item")],exports.SchmancyListItem);const b=p.n(void 0);var x=Object.defineProperty,v=Object.getOwnPropertyDescriptor,d=(r,t,s,i)=>{for(var o,e=i>1?void 0:i?v(t,s):t,c=r.length-1;c>=0;c--)(o=r[c])&&(e=(i?o(t,s,e):o(e))||e);return i&&e&&x(t,s,e),e};exports.List=class extends u.TailwindElement(l.css`
9
9
  :host {
10
10
  display: block;
11
11
  padding-top: 8px;
@@ -17,5 +17,5 @@
17
17
  <slot></slot>
18
18
  </ul>
19
19
  </schmancy-surface>
20
- `}},d([u.e({context:b}),n.property()],exports.List.prototype,"surface",2),exports.List=d([n.customElement("schmancy-list")],exports.List);
21
- //# sourceMappingURL=list-CPuuRy-O.cjs.map
20
+ `}},d([p.e({context:b}),n.property()],exports.List.prototype,"surface",2),exports.List=d([n.customElement("schmancy-list")],exports.List);
21
+ //# sourceMappingURL=list-CbrHXdaH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-CbrHXdaH.cjs","sources":["../src/list/list-item.ts","../src/list/context.ts","../src/list/list.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { SchmancySurfaceTypeContext } from '@schmancy/surface/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property, queryAssignedElements } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\n/**\n * @element schmancy-list-item\n * @slot leading - leading content\n * @slot trailing - trailing content\n * @slot - default content\n */\n@customElement('schmancy-list-item')\nexport class SchmancyListItem extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@consume({ context: SchmancySurfaceTypeContext, subscribe: true })\n\t@property()\n\tvariant: TSurfaceColor\n\n\t@property({ type: Boolean })\n\trounded: boolean\n\n\t@property({ type: Boolean }) readonly: boolean\n\n\t@property({ type: Boolean }) selected: boolean = false\n\n\t@queryAssignedElements({\n\t\tslot: 'leading',\n\t\tflatten: true,\n\t})\n\tprivate leading!: HTMLElement[]\n\n\t@queryAssignedElements({\n\t\tslot: 'trailing',\n\t\tflatten: true,\n\t})\n\tprivate trailing!: HTMLElement[]\n\n\tprotected get imgClasses(): string[] {\n\t\treturn ['h-[24px]', 'w-[24px]', 'object-contain']\n\t}\n\n\tfirstUpdated() {\n\t\tthis.leading?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t\tthis.trailing?.forEach(img => {\n\t\t\timg.classList.add(...this.imgClasses)\n\t\t})\n\t}\n\n\trender() {\n\t\tconst classes = {\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'w-full min-h-[56px] py-[8px] px-[16px] duration-500 transition-colors focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:z-1 outline-secondary-default outline-hidden':\n\t\t\t\ttrue,\n\t\t\t'bg-secondary-container text-secondery-onContainer': this.selected,\n\t\t}\n\n\t\tconst stateLayerClasses = {\n\t\t\t'z-0 duration-500 transition-opacity': true,\n\t\t\t'rounded-none': this.rounded === false,\n\t\t\t'rounded-full': this.rounded,\n\t\t\t'hover:bg-surface-on opacity-[0.08] cursor-pointer absolute inset-0 ': !this.readonly,\n\t\t}\n\t\treturn html`<li .tabIndex=${this.readonly ? -1 : 0} class=${this.classMap(classes)}>\n\t\t\t${when(!this.readonly, () => html` <div class=\"${this.classMap(stateLayerClasses)}\"></div> `)}\n\t\t\t<slot></slot>\n\t\t</li>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list-item': SchmancyListItem\n\t}\n}\n","import { createContext } from '@lit/context'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nexport const SchmancyListTypeContext = createContext<TSurfaceColor>(undefined)\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { TSurfaceColor } from '@schmancy/types/surface'\nimport { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SchmancyListTypeContext } from './context'\n\n/**\n * @slot - The default slot.\n */\n@customElement('schmancy-list')\nexport class List extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tpadding-top: 8px;\n\t\tpadding-bottom: 8px;\n\t}\n`) {\n\t/**\n\t * The type of list.\n\t * @attr type\n\t * @type {SchmancyListType}\n\t * @default 'surface'\n\t */\n\t@provide({ context: SchmancyListTypeContext })\n\t@property()\n\tsurface: TSurfaceColor\n\n\trender() {\n\t\treturn html`\n\t\t\t<schmancy-surface type=${this.surface}>\n\t\t\t\t<ul>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</schmancy-surface>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-list': List\n\t}\n}\n"],"names":["SchmancyListItem","TailwindElement","css","super","arguments","this","selected","leading","forEach","img","classList","add","imgClasses","trailing","classes","rounded","stateLayerClasses","readonly","html","classMap","when","__decorateClass","consume","context","SchmancySurfaceTypeContext","subscribe","property","prototype","type","Boolean","queryAssignedElements","slot","flatten","customElement","SchmancyListTypeContext","createContext","List","render","surface","provide"],"mappings":"kiBAeaA,QAAAA,iBAAN,cAA+BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA/C,CAAA,CAAA,cAAAC,MAAAC,GAAAA,SAAAA,EAc2CC,KAAAC,SAAAA,EAAA,CAcjD,IAAA,YACQ,CAAA,MAAA,CAAC,WAAY,WAAY,gBAAgB,CAAA,CAGjD,cACMD,UAAAA,EAAAA,KAAAE,UAAAF,MAAAA,EAASG,QAAeC,IAC5BA,EAAIC,UAAUC,IAAON,GAAAA,KAAKO,WAAU,IAEhCP,EAAAA,KAAAQ,WAAAR,MAAAA,EAAUG,QAAeC,IAC7BA,EAAIC,UAAUC,OAAON,KAAKO,UAAAA,CAAU,EACpC,CAGF,QACC,CAAA,MAAME,EAAU,CACf,eAAgBT,KAAKU,UAArB,GACA,eAAgBV,KAAKU,QACrB,sNAAA,GAEA,oDAAqDV,KAAKC,QAGrDU,EAAAA,EAAoB,CACzB,sCAAuC,GACvC,eAAgBX,KAAKU,UAAY,GACjC,eAAgBV,KAAKU,QACrB,uEAAwEV,KAAKY,QAAAA,EAEvE,OAAAC,uBAAqBb,KAAKY,YAAgB,CAAA,UAAWZ,KAAKc,SAASL,CAAAA,CAAAA;AAAAA,KACvEM,QAAMf,KAAKY,SAAU,IAAMC,EAAoBA,oBAAAb,KAAKc,SAASH,CAAAA,CAAAA,WAAAA,CAAAA;AAAAA;AAAAA,QAA8B,CAAA,EAlD/FK,EAAA,CAFCC,EAAAA,EAAQ,CAAEC,QAASC,EAA4BA,2BAAAC,UAAAA,KAC/CC,EAASA,SAAAA,CAAAA,EANE1B,yBAOZ2B,UAAA,UAAA,CAAA,EAGAN,EAAA,CADCK,WAAS,CAAEE,KAAMC,OAAAA,CAAAA,CAAAA,EATN7B,yBAUZ2B,UAAA,UAAA,CAAA,EAE6BN,EAAA,CAA5BK,WAAS,CAAEE,KAAMC,OAZN7B,CAAAA,CAAAA,EAAAA,yBAYiB2B,UAAA,WAAA,CAEAN,EAAAA,EAAA,CAA5BK,WAAS,CAAEE,KAAMC,OAdN7B,CAAAA,CAAAA,EAAAA,yBAciB2B,UAAA,WAAA,CAMrBN,EAAAA,EAAA,CAJPS,wBAAsB,CACtBC,KAAM,UACNC,QAAS,EAAA,CAAA,CAAA,EAlBEhC,yBAoBJ2B,UAAA,UAAA,CAAA,EAMAN,EAAA,CAJPS,wBAAsB,CACtBC,KAAM,WACNC,UAxBWhC,CAAAA,CAAAA,EAAAA,yBA0BJ2B,UAAA,WAAA,CAAA,EA1BI3B,QAANA,iBAAAqB,EAAA,CADNY,EAAAA,cAAc,oBAAA,CAAA,EACFjC,wBCbA,EAAA,MAAAkC,EAA0BC,4MCS1BC,QAAAA,KAAN,cAAmBnC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAiBzC,QAAAmC,CACQ,OAAAnB,EAAAA;AAAAA,4BACmBb,KAAKiC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAO,CAJvCjB,EAAAA,EAAA,CAFCkB,IAAQ,CAAEhB,QAASW,CAAAA,CAAAA,EACnBR,EAASA,SAdEU,CAAAA,EAAAA,aAeZT,UAAA,UAAA,GAfYS,QAANA,KAAAf,EAAA,CADNY,EAAAA,cAAc,eAAA,CAAA,EACFG"}
package/dist/list.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./list-CPuuRy-O.cjs");Object.defineProperty(exports,"List",{enumerable:!0,get:()=>e.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>e.SchmancyListItem});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./list-CbrHXdaH.cjs");Object.defineProperty(exports,"List",{enumerable:!0,get:()=>e.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>e.SchmancyListItem});
2
2
  //# sourceMappingURL=list.cjs.map
package/dist/list.js CHANGED
@@ -1,4 +1,4 @@
1
- import { L as a, S as m } from "./list-DLUs5fLg.js";
1
+ import { L as a, S as m } from "./list-C_X_z_54.js";
2
2
  export {
3
3
  a as List,
4
4
  m as SchmancyListItem
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./tailwind.mixin-C3pXEh-C.cjs");exports.$LitElement=t=>{class s extends e.BaseElement(e.TailwindElement(t)){constructor(){super(...arguments),this.disconnectedCallback=()=>{super.disconnectedCallback()}}}return s};
2
- //# sourceMappingURL=litElement.mixin-CqG5Vzn4.cjs.map
1
+ "use strict";const e=require("./tailwind.mixin-bRVZL2lY.cjs");exports.$LitElement=t=>{class s extends e.BaseElement(e.TailwindElement(t)){constructor(){super(...arguments),this.disconnectedCallback=()=>{super.disconnectedCallback()}}}return s};
2
+ //# sourceMappingURL=litElement.mixin-BGFFSTo6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"litElement.mixin-CqG5Vzn4.cjs","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["componentStyle","TailwindMixinClass","BaseElement","TailwindElement","constructor","super","arguments","this","disconnectedCallback"],"mappings":"kFAKiDA,GAAAA,CAChD,MAAMC,UAA2BC,EAAAA,YAAYC,kBAAgBH,IAA7D,aAAAI,CAAAC,MAAAC,GAAAA,SAAAA,EACCC,KAAAC,qBAAuB,IACtBH,CAAAA,MAAMG,qBAAqB,CAAA,CAC5B,CAEM,CAAA,OAAAP,CAAA"}
1
+ {"version":3,"file":"litElement.mixin-BGFFSTo6.cjs","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["componentStyle","TailwindMixinClass","BaseElement","TailwindElement","constructor","super","arguments","this","disconnectedCallback"],"mappings":"kFAKiDA,GAAAA,CAChD,MAAMC,UAA2BC,EAAAA,YAAYC,kBAAgBH,IAA7D,aAAAI,CAAAC,MAAAC,GAAAA,SAAAA,EACCC,KAAAC,qBAAuB,IACtBH,CAAAA,MAAMG,qBAAqB,CAAA,CAC5B,CAEM,CAAA,OAAAP,CAAA"}
@@ -1,4 +1,4 @@
1
- import { B as t, T as r } from "./tailwind.mixin-C5OzBKVB.js";
1
+ import { B as t, T as r } from "./tailwind.mixin-jeUK-Doz.js";
2
2
  const n = (s) => {
3
3
  class e extends t(r(s)) {
4
4
  constructor() {
@@ -12,4 +12,4 @@ const n = (s) => {
12
12
  export {
13
13
  n as $
14
14
  };
15
- //# sourceMappingURL=litElement.mixin-Bn8Rl6md.js.map
15
+ //# sourceMappingURL=litElement.mixin-BnUdikbt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"litElement.mixin-Bn8Rl6md.js","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["$LitElement","componentStyle","TailwindMixinClass","BaseElement","TailwindElement","super","arguments","this","disconnectedCallback"],"mappings":";AAKa,MAAAA,IAAoCC,CAAAA;EAChD,MAAMC,UAA2BC,EAAYC,EAAgBH,CAA7D,CAAA,EAAA;AAAA,IAAA;AAAAI,YAAAC,GAAAA,SAAAA,GACCC,KAAAC,uBAAuB,MACtBH;AAAAA,cAAMG;MAAqB;AAAA,IAC5B;AAAA,EAAA;AAEM,SAAAN;AAAA;"}
1
+ {"version":3,"file":"litElement.mixin-BnUdikbt.js","sources":["../mixins/litElement.mixin.ts"],"sourcesContent":["import { CSSResult, LitElement } from 'lit'\nimport { TailwindElement } from './tailwind.mixin'\nimport { BaseElement, IBaseMixin } from './baseElement'\nimport { Constructor } from './constructor'\n\nexport const $LitElement = <T extends CSSResult>(componentStyle?: T) => {\n\tclass TailwindMixinClass extends BaseElement(TailwindElement(componentStyle)) {\n\t\tdisconnectedCallback = () => {\n\t\t\tsuper.disconnectedCallback()\n\t\t}\n\t}\n\treturn TailwindMixinClass as CustomElementConstructor &\n\t\tConstructor<LitElement> &\n\t\tConstructor<IBaseMixin> /* see \"typing the subclass\" below */\n}\n"],"names":["$LitElement","componentStyle","TailwindMixinClass","BaseElement","TailwindElement","super","arguments","this","disconnectedCallback"],"mappings":";AAKa,MAAAA,IAAoCC,CAAAA;EAChD,MAAMC,UAA2BC,EAAYC,EAAgBH,CAA7D,CAAA,EAAA;AAAA,IAAA;AAAAI,YAAAC,GAAAA,SAAAA,GACCC,KAAAC,uBAAuB,MACtBH;AAAAA,cAAMG;MAAqB;AAAA,IAC5B;AAAA,EAAA;AAEM,SAAAN;AAAA;"}
@@ -1,8 +1,8 @@
1
1
  import { fromEvent as m, takeUntil as l, tap as p, switchMap as u, from as h } from "rxjs";
2
2
  import "lit/directives/class-map.js";
3
3
  import "lit/directives/style-map.js";
4
- import { $ as g } from "./litElement.mixin-Bn8Rl6md.js";
5
- import { T as v } from "./tailwind.mixin-C5OzBKVB.js";
4
+ import { $ as g } from "./litElement.mixin-BnUdikbt.js";
5
+ import { T as v } from "./tailwind.mixin-jeUK-Doz.js";
6
6
  import { css as b, html as f } from "lit";
7
7
  import { customElement as y, state as E, queryAssignedElements as w, query as k } from "lit/decorators.js";
8
8
  import { computePosition as x, offset as P, flip as M, shift as O } from "@floating-ui/dom";
@@ -88,4 +88,4 @@ let r = class extends v(b`
88
88
  }
89
89
  };
90
90
  c([E()], r.prototype, "open", 2), c([w({ flatten: !0, slot: "button" })], r.prototype, "buttonElement", 2), c([k("#menu")], r.prototype, "menuElement", 2), r = c([y("schmancy-menu")], r);
91
- //# sourceMappingURL=menu-CK0Aunqg.js.map
91
+ //# sourceMappingURL=menu-BXkQgdTe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-CK0Aunqg.js","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","html","customElement","SchmancyMenu","TailwindElement","arguments","open","openMenu","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","closeMenu","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":";;;;;;;;;AAMA,IAAqBA,IAArB,cAA8CC,EAAYC;AAAAA;AAAAA;AAAAA;AAAAA,CAKzD,EAAA;AAAA,EAAA,oBACCC;AAAAA,UAAMC,kBACIC,GAAAA,EAAAC,MAAM,OAAA,EACdC,KAAKC,EAAUF,KAAKG,aAAAA,CAAAA,EACpBC,UAAeC,OAAAA;AACfA,QAAEC,gBAAAA,GACGN,KAAAO,cACJ,IAAIC,YAAY,4BAA4B,EAC3CC,SAAS,IACTC,UAAU,GAAA,CAAA,CAAA;AAAA,IAEZ,CACA;AAAA,EAAA;AAAA,EAEO,SAAAC;AACF,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAA;AApBYlB;AAAAA;;;GAArB,CADCmB,EAAc,oBAAA,CAAA,GACMnB;;;;;ACCrB,IAAqBoB,IAArB,cAA0CC,EAAgBnB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA1D,EAAA;AAAA,EAAA;AAAAC,UAAAmB,GAAAA,SAAAA,GAMiBhB,KAAAiB,OAAA;AAAA,EAAA;AAAA,EAOhB,WAAAC;AACClB,SAAKiB,OAAAA,IACLjB,KAAKmB,aAAAA;AAGC,UAAAC,IAAYpB,KAAKqB,YAAYC,QAClC,CACC,EAAEC,SAAS,GAAGC,WAAW,cAAA,GACzB,EAAED,SAAS,GAAGC,WAAW,WAE1B,CAAA,GAAA,EACCC,UAAU,KACVC,QAAQ;AAIH,WAAA,IAAIC,QAAyBC,CAAAA,MACzBR;AAAAA,QAAAS,WAAW,MAAMD,EAAAA;AAAAA,IAAQ,CACnC;AAAA,EAAA;AAAA,EAGF,UAAUvB,GAAAA;AACLA,SAAKA,aAAayB,UACrBzB,EAAE0B,eACF1B,GAAAA,EAAEC;AAGG,UAAAc,IAAYpB,KAAKqB,YAAYC,QAClC,CACC,EAAEC,SAAS,GAAGC,WAAW,WAAA,GACzB,EAAED,SAAS,GAAGC,WAAW,cAAA,CAAA,GAE1B,EACCC,UAAU,IACVC,QAAQ,wCAIH,CAAA;AAAA,WAAA,IAAIC,QAAyBC,CAAAA,MAAAA;AACnCR,MAAAA,EAAUS,WAAW,MAAA;AACpB7B,aAAKiB,OAAO,IACJW;MAAA;AAAA,IACT,CAAA;AAAA,EACA;AAAA,EAGF,MAAA;AACC,QAAI5B,KAAKgC,cAAcC,UAAUjC,KAAKqB,aAAa;AAC5C,YAAA,EAAAa,GAAEA,GAAGC,GAAAA,YAAYC,EAAgBpC,KAAKgC,cAAc,CAAIhC,GAAAA,KAAKqB,aAAa,EAC/EgB,WAAW,gBACXC,YAAY,CAACC,EAAO,CAAA,GAAIC,KAAQC,EAAM,EAAEC,SAAS,EAG3CC,CAAAA,CAAAA,EAAAA,CAAAA;AAAAA,aAAAC,OAAO5C,KAAKqB,YAAYwB,OAAO,EACrCC,MAAM,GAAGZ,CACTa,MAAAA,KAAK,GAAGZ,CACRa,MAAAA,UAAU,WACV,CAAA;AAAA,IAAA;AAAA,EACF;AAAA,EAGS,eAAAC;AACClD,IAAAA,EAAAC,KAAKgC,eAAe,SAC5B/B,KACAiD,EAAI7C,OAAKA,EAAEC,gBAAAA,CAAAA,GACXJ,EAAUF,KAAKG,aAAAA,GACfgD,EAAU,MAAMC,EAAKpD,KAAKkB,SAE1Bd,CAAAA,CAAAA,CAAAA,EAAAA,UAAAA,GAEQL,EAAAC,MAAM,4BACdC,KACAiD,EAAI7C,OAAKA,EAAEC,gBAAAA,CAAAA,GACXJ,EAAUF,KAAKG,aAAAA,GACfgD,EAAU,MAAMC,EAAKpD,KAAKqD,UAE1BjD,CAAAA,CAAAA,CAAAA,EAAAA,UAAAA;AAAAA,EAAU;AAAA,EAGb,SAAAO;AACQ,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA,6CAIqCZ,CAAAA,KAAKiB,eAAejB,KAAKqD,SAAAA;AAAAA;AAAAA;AAAAA,eAGxDrD,KAAKiB,IAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAI;AAAA;AA9FdqC,EAAA,CAARC,EANmBzC,CAAAA,GAAAA,EAMX0C,WAAA,QAAA,CAGTF,GAAAA,EAAA,CADCG,EAAsB,EAAEC,SAAAA,IAAeC,MAAM,SAAA,CAAA,CAAA,GAR1B7C,EASpB0C,WAAA,iBAAA,CAAA,GAEgBF,EAAA,CAAfM,EAAM,OAXa9C,CAAAA,GAAAA,EAWJ0C,WAAA,eAAA,CAXI1C,GAAAA,IAArBwC,EAAA,CADCzC,EAAc,eACMC,CAAAA,GAAAA,CAAAA;"}
1
+ {"version":3,"file":"menu-BXkQgdTe.js","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","html","customElement","SchmancyMenu","TailwindElement","arguments","open","openMenu","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","closeMenu","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const i=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./litElement.mixin-CqG5Vzn4.cjs"),b=require("./tailwind.mixin-C3pXEh-C.cjs"),p=require("lit"),l=require("lit/decorators.js"),m=require("@floating-ui/dom");var y=Object.defineProperty,f=Object.getOwnPropertyDescriptor;let h=class extends d.$LitElement(p.css`
1
+ "use strict";const i=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./litElement.mixin-BGFFSTo6.cjs"),b=require("./tailwind.mixin-bRVZL2lY.cjs"),p=require("lit"),l=require("lit/decorators.js"),m=require("@floating-ui/dom");var y=Object.defineProperty,f=Object.getOwnPropertyDescriptor;let h=class extends d.$LitElement(p.css`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -28,4 +28,4 @@
28
28
  <slot></slot>
29
29
  </schmancy-list>
30
30
  `}};u([l.state()],c.prototype,"open",2),u([l.queryAssignedElements({flatten:!0,slot:"button"})],c.prototype,"buttonElement",2),u([l.query("#menu")],c.prototype,"menuElement",2),c=u([l.customElement("schmancy-menu")],c);
31
- //# sourceMappingURL=menu-BsjLQTfd.cjs.map
31
+ //# sourceMappingURL=menu-BZyh3Omd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-BsjLQTfd.cjs","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","html","customElement","SchmancyMenu","TailwindElement","constructor","arguments","open","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","openMenu","closeMenu","render","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":"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"}
1
+ {"version":3,"file":"menu-BZyh3Omd.cjs","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { computePosition, flip, offset, shift } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { from, fromEvent, switchMap, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n`) {\n\t@state() open = false\n\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\topenMenu() {\n\t\tthis.open = true\n\t\tthis.positionMenu()\n\n\t\t// Approx. \"easeInQuad\" with a cubic-bezier:\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => resolve()\n\t\t})\n\t}\n\n\tcloseMenu(e?: Event) {\n\t\tif (e && e instanceof Event) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\treturn new Promise<void>(resolve => {\n\t\t\tanimation.onfinish = () => {\n\t\t\t\tthis.open = false\n\t\t\t\tresolve()\n\t\t\t}\n\t\t})\n\t}\n\n\tasync positionMenu() {\n\t\tif (this.buttonElement.length && this.menuElement) {\n\t\t\tconst { x, y } = await computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: [offset(5), flip(), shift({ padding: 5 })],\n\t\t\t})\n\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t\tposition: 'absolute',\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected firstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.openMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tswitchMap(() => from(this.closeMenu())),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert</schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<div class=\"fixed inset-0 z-50\" .hidden=${!this.open} @click=${this.closeMenu}></div>\n\t\t\t<schmancy-list\n\t\t\t\tid=\"menu\"\n\t\t\t\t.hidden=${!this.open}\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md \n min-w-[160px] max-w-[320px] w-max bg-surface-default\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","super","connectedCallback","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","html","customElement","SchmancyMenu","TailwindElement","constructor","arguments","open","positionMenu","animation","menuElement","animate","opacity","transform","duration","easing","Promise","resolve","onfinish","Event","preventDefault","buttonElement","length","x","y","computePosition","placement","middleware","offset","flip","shift","padding","Object","assign","style","left","top","position","firstUpdated","tap","switchMap","from","openMenu","closeMenu","render","__decorateClass","state","prototype","queryAssignedElements","flatten","slot","query"],"mappings":"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"}
package/dist/menu.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./menu-BsjLQTfd.cjs");
1
+ "use strict";require("./menu-BZyh3Omd.cjs");
2
2
  //# sourceMappingURL=menu.cjs.map
package/dist/menu.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./menu-CK0Aunqg.js";
1
+ import "./menu-BXkQgdTe.js";
2
2
  //# sourceMappingURL=menu.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-HoGT2W8s.cjs");Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./teleport.component-B4GC8Z5F.cjs");Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
2
2
  //# sourceMappingURL=nav-drawer.cjs.map